MAINTAINERS | 7 + drivers/char/tpm/Kconfig | 9 + drivers/char/tpm/Makefile | 1 + drivers/char/tpm/tpm_loongson.c | 78 ++++++++ drivers/crypto/Kconfig | 1 + drivers/crypto/Makefile | 1 + drivers/crypto/loongson/Kconfig | 17 ++ drivers/crypto/loongson/Makefile | 3 + drivers/crypto/loongson/loongson-rng.c | 198 ++++++++++++++++++++ drivers/crypto/loongson/loongson-se.c | 239 +++++++++++++++++++++++++ drivers/crypto/loongson/loongson-se.h | 52 ++++++ 11 files changed, 606 insertions(+) create mode 100644 drivers/char/tpm/tpm_loongson.c create mode 100644 drivers/crypto/loongson/Kconfig create mode 100644 drivers/crypto/loongson/Makefile create mode 100644 drivers/crypto/loongson/loongson-rng.c create mode 100644 drivers/crypto/loongson/loongson-se.c create mode 100644 drivers/crypto/loongson/loongson-se.h
The Loongson Security Engine chip supports RNG, SM2, SM3 and SM4
accelerator engines. Each engine have its own DMA buffer provided
by the controller. The kernel cannot directly send commands to the
engine and must first send them to the controller, which will
forward them to the corresponding engine. Based on these engines,
TPM2 have been implemented in the chip, then let's treat TPM2 itself
as an engine.
v8: Like Lee said, the base driver goes beyond MFD scope. Since these
are all encryption related drivers and SM2, SM3, and SM4 drivers
will be added to the crypto subsystem in the future, the base driver
need to be changed when adding these drivers. Therefore, it may be
more appropriate to place the base driver within the crypto subsystem.
Removed complete callback in all drivers. Removed the concepts of
"channel", "msg" and "request" as they may be confusing. Used the
concepts of "egnine" and "command" may be better.
v7: Addressed Huacai's comments.
v6: mfd :MFD_LS6000SE -> MFD_LOONGSON_SE, ls6000se.c -> loongson-se.c
crypto :CRYPTO_DEV_LS6000SE_RNG -> CRYPTO_DEV_LOONGSON_RNG,
ls6000se-rng.c ->loongson-rng.c
tpm: TCG_LSSE -> TCG_LOONGSON, tpm_lsse.c ->tpm_loongson.c
v5: Registered "ls6000se-rng" device in mfd driver.
v4: Please look at changelog in tpm and MAINTAINERS. No changes to mfd
and crypto.
v3: Put the updates to the MAINTAINERS in a separate patch.
Qunqin Zhao (5):
crypto: loongson - Add Loongson Security Engine chip controller driver
crypto: loongson - add Loongson RNG driver support
MAINTAINERS: Add entry for Loongson crypto driver
tpm: Add a driver for Loongson TPM device
MAINTAINERS: Add tpm_loongson.c to LOONGSON CRYPTO DRIVER entry
MAINTAINERS | 7 +
drivers/char/tpm/Kconfig | 9 +
drivers/char/tpm/Makefile | 1 +
drivers/char/tpm/tpm_loongson.c | 78 ++++++++
drivers/crypto/Kconfig | 1 +
drivers/crypto/Makefile | 1 +
drivers/crypto/loongson/Kconfig | 17 ++
drivers/crypto/loongson/Makefile | 3 +
drivers/crypto/loongson/loongson-rng.c | 198 ++++++++++++++++++++
drivers/crypto/loongson/loongson-se.c | 239 +++++++++++++++++++++++++
drivers/crypto/loongson/loongson-se.h | 52 ++++++
11 files changed, 606 insertions(+)
create mode 100644 drivers/char/tpm/tpm_loongson.c
create mode 100644 drivers/crypto/loongson/Kconfig
create mode 100644 drivers/crypto/loongson/Makefile
create mode 100644 drivers/crypto/loongson/loongson-rng.c
create mode 100644 drivers/crypto/loongson/loongson-se.c
create mode 100644 drivers/crypto/loongson/loongson-se.h
base-commit: 8ffd015db85fea3e15a77027fda6c02ced4d2444
--
2.45.2
Hi, Qunqin, On Fri, Apr 18, 2025 at 5:33 PM Qunqin Zhao <zhaoqunqin@loongson.cn> wrote: > > The Loongson Security Engine chip supports RNG, SM2, SM3 and SM4 > accelerator engines. Each engine have its own DMA buffer provided > by the controller. The kernel cannot directly send commands to the > engine and must first send them to the controller, which will > forward them to the corresponding engine. Based on these engines, > TPM2 have been implemented in the chip, then let's treat TPM2 itself > as an engine. > > v8: Like Lee said, the base driver goes beyond MFD scope. Since these > are all encryption related drivers and SM2, SM3, and SM4 drivers > will be added to the crypto subsystem in the future, the base driver > need to be changed when adding these drivers. Therefore, it may be > more appropriate to place the base driver within the crypto subsystem. I don't know what Lee Jones exactly means. But I don't think this version is what he wants. You move the SE driver from drivers/mfd to drivers/crypto, but it is still a mfd driver because of "struct mfd_cell engines". Huacai > > Removed complete callback in all drivers. Removed the concepts of > "channel", "msg" and "request" as they may be confusing. Used the > concepts of "egnine" and "command" may be better. > > v7: Addressed Huacai's comments. > > v6: mfd :MFD_LS6000SE -> MFD_LOONGSON_SE, ls6000se.c -> loongson-se.c > > crypto :CRYPTO_DEV_LS6000SE_RNG -> CRYPTO_DEV_LOONGSON_RNG, > ls6000se-rng.c ->loongson-rng.c > > tpm: TCG_LSSE -> TCG_LOONGSON, tpm_lsse.c ->tpm_loongson.c > > v5: Registered "ls6000se-rng" device in mfd driver. > v4: Please look at changelog in tpm and MAINTAINERS. No changes to mfd > and crypto. > v3: Put the updates to the MAINTAINERS in a separate patch. > > Qunqin Zhao (5): > crypto: loongson - Add Loongson Security Engine chip controller driver > crypto: loongson - add Loongson RNG driver support > MAINTAINERS: Add entry for Loongson crypto driver > tpm: Add a driver for Loongson TPM device > MAINTAINERS: Add tpm_loongson.c to LOONGSON CRYPTO DRIVER entry > > MAINTAINERS | 7 + > drivers/char/tpm/Kconfig | 9 + > drivers/char/tpm/Makefile | 1 + > drivers/char/tpm/tpm_loongson.c | 78 ++++++++ > drivers/crypto/Kconfig | 1 + > drivers/crypto/Makefile | 1 + > drivers/crypto/loongson/Kconfig | 17 ++ > drivers/crypto/loongson/Makefile | 3 + > drivers/crypto/loongson/loongson-rng.c | 198 ++++++++++++++++++++ > drivers/crypto/loongson/loongson-se.c | 239 +++++++++++++++++++++++++ > drivers/crypto/loongson/loongson-se.h | 52 ++++++ > 11 files changed, 606 insertions(+) > create mode 100644 drivers/char/tpm/tpm_loongson.c > create mode 100644 drivers/crypto/loongson/Kconfig > create mode 100644 drivers/crypto/loongson/Makefile > create mode 100644 drivers/crypto/loongson/loongson-rng.c > create mode 100644 drivers/crypto/loongson/loongson-se.c > create mode 100644 drivers/crypto/loongson/loongson-se.h > > > base-commit: 8ffd015db85fea3e15a77027fda6c02ced4d2444 > -- > 2.45.2 > >
在 2025/4/20 下午3:17, Huacai Chen 写道: > Hi, Qunqin, > > On Fri, Apr 18, 2025 at 5:33 PM Qunqin Zhao <zhaoqunqin@loongson.cn> wrote: >> The Loongson Security Engine chip supports RNG, SM2, SM3 and SM4 >> accelerator engines. Each engine have its own DMA buffer provided >> by the controller. The kernel cannot directly send commands to the >> engine and must first send them to the controller, which will >> forward them to the corresponding engine. Based on these engines, >> TPM2 have been implemented in the chip, then let's treat TPM2 itself >> as an engine. >> >> v8: Like Lee said, the base driver goes beyond MFD scope. Since these >> are all encryption related drivers and SM2, SM3, and SM4 drivers >> will be added to the crypto subsystem in the future, the base driver >> need to be changed when adding these drivers. Therefore, it may be >> more appropriate to place the base driver within the crypto subsystem. > I don't know what Lee Jones exactly means. But I don't think this > version is what he wants. You move the SE driver from drivers/mfd to > drivers/crypto, but it is still a mfd driver because of "struct > mfd_cell engines". Hi, Herbert Sorry to bother you, may i ask is it fine to move the Security Engine base driver[Patch v8 1/5] to drivers/crypto ? The base driver uses MFD interface to register child device(tpm, rng) , as done in "drivers/iio/common/ssp_sensors/ssp_dev.c" and "drivers/firmware/xilinx/zynqmp.c". Thank you, and I look forward to hearing from you. BR, Qunqin. > > Huacai > >> Removed complete callback in all drivers. Removed the concepts of >> "channel", "msg" and "request" as they may be confusing. Used the >> concepts of "egnine" and "command" may be better. >> >> v7: Addressed Huacai's comments. >> >> v6: mfd :MFD_LS6000SE -> MFD_LOONGSON_SE, ls6000se.c -> loongson-se.c >> >> crypto :CRYPTO_DEV_LS6000SE_RNG -> CRYPTO_DEV_LOONGSON_RNG, >> ls6000se-rng.c ->loongson-rng.c >> >> tpm: TCG_LSSE -> TCG_LOONGSON, tpm_lsse.c ->tpm_loongson.c >> >> v5: Registered "ls6000se-rng" device in mfd driver. >> v4: Please look at changelog in tpm and MAINTAINERS. No changes to mfd >> and crypto. >> v3: Put the updates to the MAINTAINERS in a separate patch. >> >> Qunqin Zhao (5): >> crypto: loongson - Add Loongson Security Engine chip controller driver >> crypto: loongson - add Loongson RNG driver support >> MAINTAINERS: Add entry for Loongson crypto driver >> tpm: Add a driver for Loongson TPM device >> MAINTAINERS: Add tpm_loongson.c to LOONGSON CRYPTO DRIVER entry >> >> MAINTAINERS | 7 + >> drivers/char/tpm/Kconfig | 9 + >> drivers/char/tpm/Makefile | 1 + >> drivers/char/tpm/tpm_loongson.c | 78 ++++++++ >> drivers/crypto/Kconfig | 1 + >> drivers/crypto/Makefile | 1 + >> drivers/crypto/loongson/Kconfig | 17 ++ >> drivers/crypto/loongson/Makefile | 3 + >> drivers/crypto/loongson/loongson-rng.c | 198 ++++++++++++++++++++ >> drivers/crypto/loongson/loongson-se.c | 239 +++++++++++++++++++++++++ >> drivers/crypto/loongson/loongson-se.h | 52 ++++++ >> 11 files changed, 606 insertions(+) >> create mode 100644 drivers/char/tpm/tpm_loongson.c >> create mode 100644 drivers/crypto/loongson/Kconfig >> create mode 100644 drivers/crypto/loongson/Makefile >> create mode 100644 drivers/crypto/loongson/loongson-rng.c >> create mode 100644 drivers/crypto/loongson/loongson-se.c >> create mode 100644 drivers/crypto/loongson/loongson-se.h >> >> >> base-commit: 8ffd015db85fea3e15a77027fda6c02ced4d2444 >> -- >> 2.45.2 >> >>
On Wed, Apr 30, 2025 at 04:14:40PM +0800, Qunqin Zhao wrote: > > Sorry to bother you, may i ask is it fine to move the Security Engine base > driver[Patch v8 1/5] to drivers/crypto ? > > The base driver uses MFD interface to register child device(tpm, rng) , as > done in > > "drivers/iio/common/ssp_sensors/ssp_dev.c" and > "drivers/firmware/xilinx/zynqmp.c". > > Thank you, and I look forward to hearing from you. I don't mind at this point in time. But if this driver were to develop features way outside of the Crypto API in future then I may change my mind. Thanks, -- Email: Herbert Xu <herbert@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
在 2025/4/30 下午4:18, Herbert Xu 写道: > On Wed, Apr 30, 2025 at 04:14:40PM +0800, Qunqin Zhao wrote: >> Sorry to bother you, may i ask is it fine to move the Security Engine base >> driver[Patch v8 1/5] to drivers/crypto ? >> >> The base driver uses MFD interface to register child device(tpm, rng) , as >> done in >> >> "drivers/iio/common/ssp_sensors/ssp_dev.c" and >> "drivers/firmware/xilinx/zynqmp.c". >> >> Thank you, and I look forward to hearing from you. > I don't mind at this point in time. But if this driver were to > develop features way outside of the Crypto API in future then I > may change my mind. Hi, Herbert, thanks for your reply. In future it just add child platform devices name(sm2, sm3, sm4) to "struct mfd_cell engines". Hi, Huaci Let's go via Herbert's crypto tree for the base driver patch under drivers/crypto/loongson/, What do you think of it? BR, Qunqin. > > Thanks,
On Wed, Apr 30, 2025 at 4:47 PM Qunqin Zhao <zhaoqunqin@loongson.cn> wrote: > > > 在 2025/4/30 下午4:18, Herbert Xu 写道: > > On Wed, Apr 30, 2025 at 04:14:40PM +0800, Qunqin Zhao wrote: > >> Sorry to bother you, may i ask is it fine to move the Security Engine base > >> driver[Patch v8 1/5] to drivers/crypto ? > >> > >> The base driver uses MFD interface to register child device(tpm, rng) , as > >> done in > >> > >> "drivers/iio/common/ssp_sensors/ssp_dev.c" and > >> "drivers/firmware/xilinx/zynqmp.c". > >> > >> Thank you, and I look forward to hearing from you. > > I don't mind at this point in time. But if this driver were to > > develop features way outside of the Crypto API in future then I > > may change my mind. > > Hi, Herbert, thanks for your reply. > > In future it just add child platform devices name(sm2, sm3, sm4) to > "struct mfd_cell engines". > > > Hi, Huaci > > Let's go via Herbert's crypto tree for the base driver patch under > drivers/crypto/loongson/, > > What do you think of it? In my opinion drivers/mfd is better, because another user is in drivers/char rather than drivers/crypto. But if moving to drivers/crypto is what Lee Jones wants, then everything is OK. Huacai > > > BR, Qunqin. > > > > > Thanks, > >
On Wed, 30 Apr 2025, Huacai Chen wrote: > On Wed, Apr 30, 2025 at 4:47 PM Qunqin Zhao <zhaoqunqin@loongson.cn> wrote: > > > > > > 在 2025/4/30 下午4:18, Herbert Xu 写道: > > > On Wed, Apr 30, 2025 at 04:14:40PM +0800, Qunqin Zhao wrote: > > >> Sorry to bother you, may i ask is it fine to move the Security Engine base > > >> driver[Patch v8 1/5] to drivers/crypto ? > > >> > > >> The base driver uses MFD interface to register child device(tpm, rng) , as > > >> done in > > >> > > >> "drivers/iio/common/ssp_sensors/ssp_dev.c" and > > >> "drivers/firmware/xilinx/zynqmp.c". > > >> > > >> Thank you, and I look forward to hearing from you. > > > I don't mind at this point in time. But if this driver were to > > > develop features way outside of the Crypto API in future then I > > > may change my mind. > > > > Hi, Herbert, thanks for your reply. > > > > In future it just add child platform devices name(sm2, sm3, sm4) to > > "struct mfd_cell engines". > > > > > > Hi, Huaci > > > > Let's go via Herbert's crypto tree for the base driver patch under > > drivers/crypto/loongson/, > > > > What do you think of it? > In my opinion drivers/mfd is better, because another user is in > drivers/char rather than drivers/crypto. > > But if moving to drivers/crypto is what Lee Jones wants, then everything is OK. You can move the driver, but then you must not reference or use the MFD API. -- Lee Jones [李琼斯]
在 2025/4/30 下午4:58, Lee Jones 写道: > On Wed, 30 Apr 2025, Huacai Chen wrote: > >> On Wed, Apr 30, 2025 at 4:47 PM Qunqin Zhao <zhaoqunqin@loongson.cn> wrote: >>> >>> 在 2025/4/30 下午4:18, Herbert Xu 写道: >>>> On Wed, Apr 30, 2025 at 04:14:40PM +0800, Qunqin Zhao wrote: >>>>> Sorry to bother you, may i ask is it fine to move the Security Engine base >>>>> driver[Patch v8 1/5] to drivers/crypto ? >>>>> >>>>> The base driver uses MFD interface to register child device(tpm, rng) , as >>>>> done in >>>>> >>>>> "drivers/iio/common/ssp_sensors/ssp_dev.c" and >>>>> "drivers/firmware/xilinx/zynqmp.c". >>>>> >>>>> Thank you, and I look forward to hearing from you. >>>> I don't mind at this point in time. But if this driver were to >>>> develop features way outside of the Crypto API in future then I >>>> may change my mind. >>> Hi, Herbert, thanks for your reply. >>> >>> In future it just add child platform devices name(sm2, sm3, sm4) to >>> "struct mfd_cell engines". >>> >>> >>> Hi, Huaci >>> >>> Let's go via Herbert's crypto tree for the base driver patch under >>> drivers/crypto/loongson/, >>> >>> What do you think of it? >> In my opinion drivers/mfd is better, because another user is in >> drivers/char rather than drivers/crypto. >> >> But if moving to drivers/crypto is what Lee Jones wants, then everything is OK. > You can move the driver, but then you must not reference or use the MFD API. Then looks like i should move it back to drivers/mfd, will do that in next revision. Thank you very much for everyone's replies. BR, Qunqin. >
© 2016 - 2025 Red Hat, Inc.