Re: [RFC PATCH v2 19/32] crypto: ccp: Introduce the AMD Secure Processor device
On Thu, 2017-03-02 at 13:11 -0600, Brijesh Singh wrote: > Hi Mark, > > On 03/02/2017 11:39 AM, Mark Rutland wrote: > > On Thu, Mar 02, 2017 at 10:16:15AM -0500, Brijesh Singh wrote: > > > > > > +ccp-$(CONFIG_CRYPTO_DEV_CCP) += ccp-dev.o \ > > > ccp-ops.o \ > > > ccp-dev-v3.o \ > > > ccp-dev-v5.o \ > > > - ccp-platform.o \ > > > ccp-dmaengine.o > > > > It looks like ccp-platform.c has morphed into sp-platform.c (judging > > by > > the compatible string and general shape of the code), and the > > original > > ccp-platform.c is no longer built. > > > > Shouldn't ccp-platform.c be deleted by this patch? > > > > Good catch. Both ccp-platform.c and ccp-pci.c should have been > deleted > by this patch. I missed deleting it, will fix in next rev. Don't forget to use -M -C when preparing / sending patches. -- Andy Shevchenko Intel Finland Oy
Re: [RFC PATCH v2 19/32] crypto: ccp: Introduce the AMD Secure Processor device
Hi Mark, On 03/02/2017 11:39 AM, Mark Rutland wrote: On Thu, Mar 02, 2017 at 10:16:15AM -0500, Brijesh Singh wrote: The CCP device is part of the AMD Secure Processor. In order to expand the usage of the AMD Secure Processor, create a framework that allows functional components of the AMD Secure Processor to be initialized and handled appropriately. Signed-off-by: Brijesh Singh Signed-off-by: Tom Lendacky --- drivers/crypto/Kconfig | 10 + drivers/crypto/ccp/Kconfig | 43 +++-- drivers/crypto/ccp/Makefile |8 - drivers/crypto/ccp/ccp-dev-v3.c | 86 +- drivers/crypto/ccp/ccp-dev-v5.c | 73 - drivers/crypto/ccp/ccp-dev.c | 137 +--- drivers/crypto/ccp/ccp-dev.h | 35 drivers/crypto/ccp/sp-dev.c | 308 drivers/crypto/ccp/sp-dev.h | 140 drivers/crypto/ccp/sp-pci.c | 324 ++ drivers/crypto/ccp/sp-platform.c | 268 +++ include/linux/ccp.h |3 12 files changed, 1240 insertions(+), 195 deletions(-) create mode 100644 drivers/crypto/ccp/sp-dev.c create mode 100644 drivers/crypto/ccp/sp-dev.h create mode 100644 drivers/crypto/ccp/sp-pci.c create mode 100644 drivers/crypto/ccp/sp-platform.c diff --git a/drivers/crypto/ccp/Makefile b/drivers/crypto/ccp/Makefile index 346ceb8..8127e18 100644 --- a/drivers/crypto/ccp/Makefile +++ b/drivers/crypto/ccp/Makefile @@ -1,11 +1,11 @@ -obj-$(CONFIG_CRYPTO_DEV_CCP_DD) += ccp.o -ccp-objs := ccp-dev.o \ +obj-$(CONFIG_CRYPTO_DEV_SP_DD) += ccp.o +ccp-objs := sp-dev.o sp-platform.o +ccp-$(CONFIG_PCI) += sp-pci.o +ccp-$(CONFIG_CRYPTO_DEV_CCP) += ccp-dev.o \ ccp-ops.o \ ccp-dev-v3.o \ ccp-dev-v5.o \ - ccp-platform.o \ ccp-dmaengine.o It looks like ccp-platform.c has morphed into sp-platform.c (judging by the compatible string and general shape of the code), and the original ccp-platform.c is no longer built. Shouldn't ccp-platform.c be deleted by this patch? Good catch. Both ccp-platform.c and ccp-pci.c should have been deleted by this patch. I missed deleting it, will fix in next rev. ~ Brijesh
Re: [RFC PATCH v2 19/32] crypto: ccp: Introduce the AMD Secure Processor device
On Thu, Mar 02, 2017 at 10:16:15AM -0500, Brijesh Singh wrote: > The CCP device is part of the AMD Secure Processor. In order to expand the > usage of the AMD Secure Processor, create a framework that allows functional > components of the AMD Secure Processor to be initialized and handled > appropriately. > > Signed-off-by: Brijesh Singh > Signed-off-by: Tom Lendacky > --- > drivers/crypto/Kconfig | 10 + > drivers/crypto/ccp/Kconfig | 43 +++-- > drivers/crypto/ccp/Makefile |8 - > drivers/crypto/ccp/ccp-dev-v3.c | 86 +- > drivers/crypto/ccp/ccp-dev-v5.c | 73 - > drivers/crypto/ccp/ccp-dev.c | 137 +--- > drivers/crypto/ccp/ccp-dev.h | 35 > drivers/crypto/ccp/sp-dev.c | 308 > drivers/crypto/ccp/sp-dev.h | 140 > drivers/crypto/ccp/sp-pci.c | 324 > ++ > drivers/crypto/ccp/sp-platform.c | 268 +++ > include/linux/ccp.h |3 > 12 files changed, 1240 insertions(+), 195 deletions(-) > create mode 100644 drivers/crypto/ccp/sp-dev.c > create mode 100644 drivers/crypto/ccp/sp-dev.h > create mode 100644 drivers/crypto/ccp/sp-pci.c > create mode 100644 drivers/crypto/ccp/sp-platform.c > diff --git a/drivers/crypto/ccp/Makefile b/drivers/crypto/ccp/Makefile > index 346ceb8..8127e18 100644 > --- a/drivers/crypto/ccp/Makefile > +++ b/drivers/crypto/ccp/Makefile > @@ -1,11 +1,11 @@ > -obj-$(CONFIG_CRYPTO_DEV_CCP_DD) += ccp.o > -ccp-objs := ccp-dev.o \ > +obj-$(CONFIG_CRYPTO_DEV_SP_DD) += ccp.o > +ccp-objs := sp-dev.o sp-platform.o > +ccp-$(CONFIG_PCI) += sp-pci.o > +ccp-$(CONFIG_CRYPTO_DEV_CCP) += ccp-dev.o \ > ccp-ops.o \ > ccp-dev-v3.o \ > ccp-dev-v5.o \ > - ccp-platform.o \ > ccp-dmaengine.o It looks like ccp-platform.c has morphed into sp-platform.c (judging by the compatible string and general shape of the code), and the original ccp-platform.c is no longer built. Shouldn't ccp-platform.c be deleted by this patch? Thanks, Mark.
[RFC PATCH v2 19/32] crypto: ccp: Introduce the AMD Secure Processor device
The CCP device is part of the AMD Secure Processor. In order to expand the usage of the AMD Secure Processor, create a framework that allows functional components of the AMD Secure Processor to be initialized and handled appropriately. Signed-off-by: Brijesh Singh Signed-off-by: Tom Lendacky --- drivers/crypto/Kconfig | 10 + drivers/crypto/ccp/Kconfig | 43 +++-- drivers/crypto/ccp/Makefile |8 - drivers/crypto/ccp/ccp-dev-v3.c | 86 +- drivers/crypto/ccp/ccp-dev-v5.c | 73 - drivers/crypto/ccp/ccp-dev.c | 137 +--- drivers/crypto/ccp/ccp-dev.h | 35 drivers/crypto/ccp/sp-dev.c | 308 drivers/crypto/ccp/sp-dev.h | 140 drivers/crypto/ccp/sp-pci.c | 324 ++ drivers/crypto/ccp/sp-platform.c | 268 +++ include/linux/ccp.h |3 12 files changed, 1240 insertions(+), 195 deletions(-) create mode 100644 drivers/crypto/ccp/sp-dev.c create mode 100644 drivers/crypto/ccp/sp-dev.h create mode 100644 drivers/crypto/ccp/sp-pci.c create mode 100644 drivers/crypto/ccp/sp-platform.c diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig index 7956478..d31b469 100644 --- a/drivers/crypto/Kconfig +++ b/drivers/crypto/Kconfig @@ -456,14 +456,14 @@ config CRYPTO_DEV_ATMEL_SHA To compile this driver as a module, choose M here: the module will be called atmel-sha. -config CRYPTO_DEV_CCP - bool "Support for AMD Cryptographic Coprocessor" +config CRYPTO_DEV_SP + bool "Support for AMD Secure Processor" depends on ((X86 && PCI) || (ARM64 && (OF_ADDRESS || ACPI))) && HAS_IOMEM help - The AMD Cryptographic Coprocessor provides hardware offload support - for encryption, hashing and related operations. + The AMD Secure Processor provides hardware offload support for memory + encryption in virtualization and cryptographic hashing and related operations. -if CRYPTO_DEV_CCP +if CRYPTO_DEV_SP source "drivers/crypto/ccp/Kconfig" endif diff --git a/drivers/crypto/ccp/Kconfig b/drivers/crypto/ccp/Kconfig index 2238f77..bc08f03 100644 --- a/drivers/crypto/ccp/Kconfig +++ b/drivers/crypto/ccp/Kconfig @@ -1,26 +1,37 @@ -config CRYPTO_DEV_CCP_DD - tristate "Cryptographic Coprocessor device driver" - depends on CRYPTO_DEV_CCP - default m - select HW_RANDOM - select DMA_ENGINE - select DMADEVICES - select CRYPTO_SHA1 - select CRYPTO_SHA256 - help - Provides the interface to use the AMD Cryptographic Coprocessor - which can be used to offload encryption operations such as SHA, - AES and more. If you choose 'M' here, this module will be called - ccp. - config CRYPTO_DEV_CCP_CRYPTO tristate "Encryption and hashing offload support" - depends on CRYPTO_DEV_CCP_DD + depends on CRYPTO_DEV_SP_DD default m select CRYPTO_HASH select CRYPTO_BLKCIPHER select CRYPTO_AUTHENC + select CRYPTO_DEV_CCP help Support for using the cryptographic API with the AMD Cryptographic Coprocessor. This module supports offload of SHA and AES algorithms. If you choose 'M' here, this module will be called ccp_crypto. + +config CRYPTO_DEV_SP_DD + tristate "Secure Processor device driver" + depends on CRYPTO_DEV_SP + default m + help + Provides the interface to use the AMD Secure Processor. The + AMD Secure Processor support the Platform Security Processor (PSP) + and Cryptographic Coprocessor (CCP). If you choose 'M' here, this + module will be called ccp. + +if CRYPTO_DEV_SP_DD +config CRYPTO_DEV_CCP + bool "Cryptographic Coprocessor interface" + default y + select HW_RANDOM + select DMA_ENGINE + select DMADEVICES + select CRYPTO_SHA1 + select CRYPTO_SHA256 + help + Provides the interface to use the AMD Cryptographic Coprocessor + which can be used to offload encryption operations such as SHA, + AES and more. +endif diff --git a/drivers/crypto/ccp/Makefile b/drivers/crypto/ccp/Makefile index 346ceb8..8127e18 100644 --- a/drivers/crypto/ccp/Makefile +++ b/drivers/crypto/ccp/Makefile @@ -1,11 +1,11 @@ -obj-$(CONFIG_CRYPTO_DEV_CCP_DD) += ccp.o -ccp-objs := ccp-dev.o \ +obj-$(CONFIG_CRYPTO_DEV_SP_DD) += ccp.o +ccp-objs := sp-dev.o sp-platform.o +ccp-$(CONFIG_PCI) += sp-pci.o +ccp-$(CONFIG_CRYPTO_DEV_CCP) += ccp-dev.o \ ccp-ops.o \ ccp-dev-v3.o \ ccp-dev-v5.o \ - ccp-platform.o \ ccp-dmaengine.o -ccp-$(CONFIG_PCI) += ccp-pci.o obj-$(CONFIG_CRYPTO_DEV_CCP_CRYPTO) += ccp-crypto.o ccp-crypto-objs := ccp-crypto-main.o \ diff --git a/drivers/crypto/ccp/ccp-dev-v3.c b/drivers/crypto/ccp