mbox series

[RFC,v3,0/6] Add TEE interface support to AMD Secure Processor driver

Message ID cover.1575438845.git.Rijo-john.Thomas@amd.com (mailing list archive)
Headers show
Series Add TEE interface support to AMD Secure Processor driver | expand

Message

Rijo Thomas Dec. 4, 2019, 6:18 a.m. UTC
The goal of this patch series is to introduce TEE (Trusted Execution
Environment) interface support to AMD Secure Processor driver. The
TEE is a secure area of a processor which ensures that sensitive data
is stored, processed and protected in an isolated and trusted
environment. The Platform Security Processor (PSP) is a dedicated
processor which provides TEE to enable HW platform security. It offers
protection against software attacks generated in Rich Operating System
(Rich OS) such as Linux running on x86.

Based on the platform feature support, the PSP is capable of supporting
either SEV (Secure Encrypted Virtualization) and/or TEE. The first three
patches in this series is about moving SEV specific functions and data
structures from PSP device driver file to a dedicated SEV interface
driver file. The last two patches add TEE interface support to AMD
Secure Processor driver. This TEE interface will be used by AMD-TEE
driver to submit command buffers for processing in PSP Trusted Execution
Environment.

v3:
* Rebased the patches onto cryptodev-2.6 tree with base commit
  4ee812f6143d (crypto: vmx - Avoid weird build failures)

v2:
* Rebased the patches on cryptodev-2.6 tree with base commit
  d158367682cd (crypto: atmel - Fix selection of CRYPTO_AUTHENC)
* Regenerated patch with correct diff-stat to show file rename
* Used Co-developed-by: tag to give proper credit to co-author

Rijo Thomas (6):
  crypto: ccp - rename psp-dev files to sev-dev
  crypto: ccp - create a generic psp-dev file
  crypto: ccp - move SEV vdata to a dedicated data structure
  crypto: ccp - check whether PSP supports SEV or TEE before
    initialization
  crypto: ccp - add TEE support for Raven Ridge
  crypto: ccp - provide in-kernel API to submit TEE commands

 drivers/crypto/ccp/Makefile  |    4 +-
 drivers/crypto/ccp/psp-dev.c | 1033 ++++------------------------------------
 drivers/crypto/ccp/psp-dev.h |   51 +-
 drivers/crypto/ccp/sev-dev.c | 1068 ++++++++++++++++++++++++++++++++++++++++++
 drivers/crypto/ccp/sev-dev.h |   63 +++
 drivers/crypto/ccp/sp-dev.h  |   17 +-
 drivers/crypto/ccp/sp-pci.c  |   43 +-
 drivers/crypto/ccp/tee-dev.c |  364 ++++++++++++++
 drivers/crypto/ccp/tee-dev.h |  110 +++++
 include/linux/psp-tee.h      |   73 +++
 10 files changed, 1842 insertions(+), 984 deletions(-)
 create mode 100644 drivers/crypto/ccp/sev-dev.c
 create mode 100644 drivers/crypto/ccp/sev-dev.h
 create mode 100644 drivers/crypto/ccp/tee-dev.c
 create mode 100644 drivers/crypto/ccp/tee-dev.h
 create mode 100644 include/linux/psp-tee.h

--
1.9.1

Comments

Rijo Thomas Dec. 12, 2019, 12:33 p.m. UTC | #1
Hi Herbert,

Please let me know if you have any comment for this patch series.
Request you to consider these patches for next merge cycle.

This patch series exports an in-kernel API which will be used by
AMD-TEE driver. The patch series which introduces AMD-TEE driver can
be found at: https://lkml.org/lkml/2019/12/6/17

Thanks,
Rijo

On 04/12/19 11:48 am, Rijo Thomas wrote:
> The goal of this patch series is to introduce TEE (Trusted Execution
> Environment) interface support to AMD Secure Processor driver. The
> TEE is a secure area of a processor which ensures that sensitive data
> is stored, processed and protected in an isolated and trusted
> environment. The Platform Security Processor (PSP) is a dedicated
> processor which provides TEE to enable HW platform security. It offers
> protection against software attacks generated in Rich Operating System
> (Rich OS) such as Linux running on x86.
> 
> Based on the platform feature support, the PSP is capable of supporting
> either SEV (Secure Encrypted Virtualization) and/or TEE. The first three
> patches in this series is about moving SEV specific functions and data
> structures from PSP device driver file to a dedicated SEV interface
> driver file. The last two patches add TEE interface support to AMD
> Secure Processor driver. This TEE interface will be used by AMD-TEE
> driver to submit command buffers for processing in PSP Trusted Execution
> Environment.
> 
> v3:
> * Rebased the patches onto cryptodev-2.6 tree with base commit
>   4ee812f6143d (crypto: vmx - Avoid weird build failures)
> 
> v2:
> * Rebased the patches on cryptodev-2.6 tree with base commit
>   d158367682cd (crypto: atmel - Fix selection of CRYPTO_AUTHENC)
> * Regenerated patch with correct diff-stat to show file rename
> * Used Co-developed-by: tag to give proper credit to co-author
> 
> Rijo Thomas (6):
>   crypto: ccp - rename psp-dev files to sev-dev
>   crypto: ccp - create a generic psp-dev file
>   crypto: ccp - move SEV vdata to a dedicated data structure
>   crypto: ccp - check whether PSP supports SEV or TEE before
>     initialization
>   crypto: ccp - add TEE support for Raven Ridge
>   crypto: ccp - provide in-kernel API to submit TEE commands
> 
>  drivers/crypto/ccp/Makefile  |    4 +-
>  drivers/crypto/ccp/psp-dev.c | 1033 ++++------------------------------------
>  drivers/crypto/ccp/psp-dev.h |   51 +-
>  drivers/crypto/ccp/sev-dev.c | 1068 ++++++++++++++++++++++++++++++++++++++++++
>  drivers/crypto/ccp/sev-dev.h |   63 +++
>  drivers/crypto/ccp/sp-dev.h  |   17 +-
>  drivers/crypto/ccp/sp-pci.c  |   43 +-
>  drivers/crypto/ccp/tee-dev.c |  364 ++++++++++++++
>  drivers/crypto/ccp/tee-dev.h |  110 +++++
>  include/linux/psp-tee.h      |   73 +++
>  10 files changed, 1842 insertions(+), 984 deletions(-)
>  create mode 100644 drivers/crypto/ccp/sev-dev.c
>  create mode 100644 drivers/crypto/ccp/sev-dev.h
>  create mode 100644 drivers/crypto/ccp/tee-dev.c
>  create mode 100644 drivers/crypto/ccp/tee-dev.h
>  create mode 100644 include/linux/psp-tee.h
> 
> --
> 1.9.1
>
Herbert Xu Dec. 17, 2019, 9:44 a.m. UTC | #2
Hi Thomas:

On Thu, Dec 12, 2019 at 06:03:20PM +0530, Thomas, Rijo-john wrote:
> 
> Please let me know if you have any comment for this patch series.
> Request you to consider these patches for next merge cycle.

They look fine to me.

Cheers,
Herbert Xu Dec. 20, 2019, 7:04 a.m. UTC | #3
On Wed, Dec 04, 2019 at 11:48:57AM +0530, Rijo Thomas wrote:
> The goal of this patch series is to introduce TEE (Trusted Execution
> Environment) interface support to AMD Secure Processor driver. The
> TEE is a secure area of a processor which ensures that sensitive data
> is stored, processed and protected in an isolated and trusted
> environment. The Platform Security Processor (PSP) is a dedicated
> processor which provides TEE to enable HW platform security. It offers
> protection against software attacks generated in Rich Operating System
> (Rich OS) such as Linux running on x86.
> 
> Based on the platform feature support, the PSP is capable of supporting
> either SEV (Secure Encrypted Virtualization) and/or TEE. The first three
> patches in this series is about moving SEV specific functions and data
> structures from PSP device driver file to a dedicated SEV interface
> driver file. The last two patches add TEE interface support to AMD
> Secure Processor driver. This TEE interface will be used by AMD-TEE
> driver to submit command buffers for processing in PSP Trusted Execution
> Environment.
> 
> v3:
> * Rebased the patches onto cryptodev-2.6 tree with base commit
>   4ee812f6143d (crypto: vmx - Avoid weird build failures)
> 
> v2:
> * Rebased the patches on cryptodev-2.6 tree with base commit
>   d158367682cd (crypto: atmel - Fix selection of CRYPTO_AUTHENC)
> * Regenerated patch with correct diff-stat to show file rename
> * Used Co-developed-by: tag to give proper credit to co-author
> 
> Rijo Thomas (6):
>   crypto: ccp - rename psp-dev files to sev-dev
>   crypto: ccp - create a generic psp-dev file
>   crypto: ccp - move SEV vdata to a dedicated data structure
>   crypto: ccp - check whether PSP supports SEV or TEE before
>     initialization
>   crypto: ccp - add TEE support for Raven Ridge
>   crypto: ccp - provide in-kernel API to submit TEE commands
> 
>  drivers/crypto/ccp/Makefile  |    4 +-
>  drivers/crypto/ccp/psp-dev.c | 1033 ++++------------------------------------
>  drivers/crypto/ccp/psp-dev.h |   51 +-
>  drivers/crypto/ccp/sev-dev.c | 1068 ++++++++++++++++++++++++++++++++++++++++++
>  drivers/crypto/ccp/sev-dev.h |   63 +++
>  drivers/crypto/ccp/sp-dev.h  |   17 +-
>  drivers/crypto/ccp/sp-pci.c  |   43 +-
>  drivers/crypto/ccp/tee-dev.c |  364 ++++++++++++++
>  drivers/crypto/ccp/tee-dev.h |  110 +++++
>  include/linux/psp-tee.h      |   73 +++
>  10 files changed, 1842 insertions(+), 984 deletions(-)
>  create mode 100644 drivers/crypto/ccp/sev-dev.c
>  create mode 100644 drivers/crypto/ccp/sev-dev.h
>  create mode 100644 drivers/crypto/ccp/tee-dev.c
>  create mode 100644 drivers/crypto/ccp/tee-dev.h
>  create mode 100644 include/linux/psp-tee.h

All applied.  Thanks.
Rijo Thomas Dec. 24, 2019, 10:55 a.m. UTC | #4
Hi Herbert,

On 20/12/19 12:34 pm, Herbert Xu wrote:
> On Wed, Dec 04, 2019 at 11:48:57AM +0530, Rijo Thomas wrote:
>> The goal of this patch series is to introduce TEE (Trusted Execution
>> Environment) interface support to AMD Secure Processor driver. The
>> TEE is a secure area of a processor which ensures that sensitive data
>> is stored, processed and protected in an isolated and trusted
>> environment. The Platform Security Processor (PSP) is a dedicated
>> processor which provides TEE to enable HW platform security. It offers
>> protection against software attacks generated in Rich Operating System
>> (Rich OS) such as Linux running on x86.
>>
>> Based on the platform feature support, the PSP is capable of supporting
>> either SEV (Secure Encrypted Virtualization) and/or TEE. The first three
>> patches in this series is about moving SEV specific functions and data
>> structures from PSP device driver file to a dedicated SEV interface
>> driver file. The last two patches add TEE interface support to AMD
>> Secure Processor driver. This TEE interface will be used by AMD-TEE
>> driver to submit command buffers for processing in PSP Trusted Execution
>> Environment.
>>
>> v3:
>> * Rebased the patches onto cryptodev-2.6 tree with base commit
>>   4ee812f6143d (crypto: vmx - Avoid weird build failures)
>>
>> v2:
>> * Rebased the patches on cryptodev-2.6 tree with base commit
>>   d158367682cd (crypto: atmel - Fix selection of CRYPTO_AUTHENC)
>> * Regenerated patch with correct diff-stat to show file rename
>> * Used Co-developed-by: tag to give proper credit to co-author
>>
>> Rijo Thomas (6):
>>   crypto: ccp - rename psp-dev files to sev-dev
>>   crypto: ccp - create a generic psp-dev file
>>   crypto: ccp - move SEV vdata to a dedicated data structure
>>   crypto: ccp - check whether PSP supports SEV or TEE before
>>     initialization
>>   crypto: ccp - add TEE support for Raven Ridge
>>   crypto: ccp - provide in-kernel API to submit TEE commands
>>
>>  drivers/crypto/ccp/Makefile  |    4 +-
>>  drivers/crypto/ccp/psp-dev.c | 1033 ++++------------------------------------
>>  drivers/crypto/ccp/psp-dev.h |   51 +-
>>  drivers/crypto/ccp/sev-dev.c | 1068 ++++++++++++++++++++++++++++++++++++++++++
>>  drivers/crypto/ccp/sev-dev.h |   63 +++
>>  drivers/crypto/ccp/sp-dev.h  |   17 +-
>>  drivers/crypto/ccp/sp-pci.c  |   43 +-
>>  drivers/crypto/ccp/tee-dev.c |  364 ++++++++++++++
>>  drivers/crypto/ccp/tee-dev.h |  110 +++++
>>  include/linux/psp-tee.h      |   73 +++
>>  10 files changed, 1842 insertions(+), 984 deletions(-)
>>  create mode 100644 drivers/crypto/ccp/sev-dev.c
>>  create mode 100644 drivers/crypto/ccp/sev-dev.h
>>  create mode 100644 drivers/crypto/ccp/tee-dev.c
>>  create mode 100644 drivers/crypto/ccp/tee-dev.h
>>  create mode 100644 include/linux/psp-tee.h
> 
> All applied.  Thanks.
> 

Thank you for pulling in the changes!
Can you also pull in the patch series titled - TEE driver for AMD APUs? It is
related to this patch series.

Jens who is the TEE subsystem maintainer has given an Acked-by for the
patch series. Please refer link: https://lkml.org/lkml/2019/12/16/608

Thanks,
Rijo
Herbert Xu Dec. 27, 2019, 2:43 a.m. UTC | #5
On Tue, Dec 24, 2019 at 04:25:55PM +0530, Thomas, Rijo-john wrote:
>
> Thank you for pulling in the changes!
> Can you also pull in the patch series titled - TEE driver for AMD APUs? It is
> related to this patch series.
> 
> Jens who is the TEE subsystem maintainer has given an Acked-by for the
> patch series. Please refer link: https://lkml.org/lkml/2019/12/16/608

Please resubmit the patches with the acks attached to linux-crypto.

Thanks,