Skip to content

Commit

Permalink
Updating README to add snp functionality
Browse files Browse the repository at this point in the history
Signed-off-by: Diego Gonzalez Villalobos <[email protected]>
  • Loading branch information
DGonzalezVillal committed Nov 2, 2023
1 parent a9360e3 commit 3d2ac95
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 8 deletions.
29 changes: 25 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,37 @@

# sev

The `sev` crate provides an implementation of [AMD Secure Encrypted
Virtualization (SEV)](https://developer.amd.com/sev/) APIs.
The `sev` crate provides an implementation of the [AMD Secure Encrypted
Virtualization (SEV)](https://developer.amd.com/sev/) APIs and the [SEV Secure Nested Paging
Firmware (SNP)] (https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/specifications/56860.pdf) ABIs.

### SEV APIs

The Linux kernel exposes two technically distinct AMD SEV APIs:

1. An API for managing the SEV platform itself
2. An API for managing SEV-enabled KVM virtual machines

This crate implements both of those APIs and offers them to client
code through a flexible and type-safe high level interface.
This crate implements both of those APIs and offers them to client.
code through a flexible and type-safe high-level interface.

### SNP ABIs

The exposed ASP (AMD Secure Processor) firmware gets an enhancement with the SEV-SNP update.
The new exposed ABI has the same two functionalities as the SEV API:

1. An ABI for managing the SEV-SNP platform itself
2. An ABI for managing SEV-SNP enabled KVM virtual machines

These new ABIs work only for **SEV-SNP** enabled hosts and guests.

This crate now implements both the APIs for SEV management as well as the ABIs for SEV-SNP management.

### SEV and SEV-SNP enablement

By default, both the SEV and SEV-SNP libraries are compiled.
Since both generations have similar functions, the library is still split by folders according to function, and inside the modules we separate the functionalities into `sev.rs` and `snp.rs` files.
You can select to only compile `sev` or `snp`.

### Platform Management

Expand Down
29 changes: 25 additions & 4 deletions src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,15 +1,36 @@
// SPDX-License-Identifier: Apache-2.0

//! The `sev` crate provides an implementation of [AMD Secure Encrypted
//! Virtualization (SEV)](https://developer.amd.com/sev/) APIs.
//! The `sev` crate provides an implementation of the [AMD Secure Encrypted
//! Virtualization (SEV)](https://developer.amd.com/sev/) APIs and the [SEV Secure Nested Paging
//! Firmware (SNP)] (https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/specifications/56860.pdf) ABIs.
//!
//! ## SEV APIs
//!
//! The Linux kernel exposes two technically distinct AMD SEV APIs:
//!
//! 1. An API for managing the SEV platform itself
//! 2. An API for managing SEV-enabled KVM virtual machines
//!
//! This crate implements both of those APIs and offers them to client
//! code through a flexible and type-safe high level interface.
//! This crate implements both of those APIs and offers them to client.
//! code through a flexible and type-safe high-level interface.
//!
//! ## SNP ABIs
//!
//! The exposed ASP (AMD Secure Processor) firmware gets an enhancement with the SEV-SNP update.
//! The new exposed ABI has the same two functionalities as the SEV API:
//!
//! 1. An ABI for managing the SEV-SNP platform itself
//! 2. An ABI for managing SEV-SNP enabled KVM virtual machines
//!
//! These new ABIs work only for **SEV-SNP** enabled hosts and guests.
//!
//! This crate now implements both the APIs for SEV management as well as the ABIs for SEV-SNP management.
//!
//! ## SEV and SEV-SNP enablement
//!
//! By default, both the SEV and SEV-SNP libraries are compiled.
//! Since both generations have similar functions, the library is still split by folders according to function, and inside the modules we separate the functionalities into `sev.rs` and `snp.rs` files.
//! You can select to only compile `sev` or `snp`.
//!
//! ## Platform Management
//!
Expand Down

0 comments on commit 3d2ac95

Please sign in to comment.