Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Virgo pufs support #8

Open
wants to merge 58 commits into
base: virgo_soc_support
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
491e67a
PUFcc Support in Zephyr
junaidaslamRS Sep 10, 2024
95036e6
PUFcc Support in Progress
junaidaslamRS Sep 11, 2024
591fecc
PUFcc Support in Progress
junaidaslamRS Sep 11, 2024
c0efa73
PUFcc Support in Progress
junaidaslamRS Sep 12, 2024
134fa25
PUFcc Support in Progress
junaidaslamRS Sep 16, 2024
15c0e6c
PUFcc Support in Progress
junaidaslamRS Sep 18, 2024
dbc0048
PUFcc Support in Progress
junaidaslamRS Sep 18, 2024
3614618
PUFcc Support in Progress
junaidaslamRS Sep 18, 2024
92b1999
PUFcc Support in Progress
junaidaslamRS Sep 19, 2024
ff29a69
Continuing FSBL PUFcc integration with Zephyr Crypto APIs
junaidaslamRS Sep 19, 2024
b9b85b8
Continuing FSBL PUFcc integration with Zephyr Crypto APIs
junaidaslamRS Sep 20, 2024
8a89b48
Continuing FSBL PUFcc integration with Zephyr Crypto APIs
junaidaslamRS Sep 20, 2024
212ef9b
Continuing FSBL PUFcc integration with Zephyr Crypto APIs for sign ve…
junaidaslamRS Sep 20, 2024
33e6811
Continuing FSBL PUFcc integration with Zephyr Crypto APIs for sign ve…
junaidaslamRS Sep 23, 2024
f28c9c5
PUFcc integration. Callback Handlers and Cipher Integration Remaining
junaidaslamRS Sep 24, 2024
89028d6
PUFcc integration. Cipher Integration Remaining
junaidaslamRS Sep 24, 2024
3c6d087
PUFcc integration. Cipher Integration In Progress
junaidaslamRS Sep 24, 2024
011506e
Primary Integration Done.
junaidaslamRS Sep 24, 2024
1fc4d74
Primary Integration Done. Added comments and initialized unused point…
junaidaslamRS Sep 24, 2024
78e9148
Removed OTP Part since a new API+Driver of OTP shall be created.
junaidaslamRS Sep 25, 2024
bdda9c9
Corrected the CONFIG_RISCV_EXCEPTION_MASK value from 0x1F to 0xFF
junaidaslamRS Sep 25, 2024
cc2fb46
Refactoring crypto_pufs.c to retain pufcc.c in a modular way
junaidaslamRS Sep 26, 2024
cc9f079
isolated pufcc and crypto_pufs source files
junaidaslamRS Sep 27, 2024
53dafad
Crypto OTP Mem API in progress
junaidaslamRS Sep 29, 2024
82f4184
Crypto OTP Mem API in progress
junaidaslamRS Sep 30, 2024
126e0a4
Crypto OTP Mem API in progress
junaidaslamRS Sep 30, 2024
993c47e
Crypto OTP Mem API in progress
junaidaslamRS Sep 30, 2024
6f51268
Crypto OTP Mem API in progress
junaidaslamRS Sep 30, 2024
a70472f
Crypto OTP Mem API Done./riscv32-elf-gdb Testing Remaning
junaidaslamRS Oct 1, 2024
646c370
Crypto OTP Mem API Tested!
junaidaslamRS Oct 1, 2024
3d55660
Asynch support to be integrated into PUFcc.c via pufcc native callbac…
junaidaslamRS Oct 2, 2024
b8c57ed
Hash testing done!
junaidaslamRS Oct 2, 2024
2168d17
Hash SG debugging in progress
junaidaslamRS Oct 3, 2024
1635b68
Hash SG debugging in progress
junaidaslamRS Oct 4, 2024
7502d9d
Hash SG debugging in progress
junaidaslamRS Oct 4, 2024
66a5b2b
Hash SG debugging in progress
junaidaslamRS Oct 4, 2024
9a99a8b
Hash SG Test Passed!
junaidaslamRS Oct 7, 2024
310ebc0
Hash SG Test Passed!
junaidaslamRS Oct 7, 2024
6d52e40
Decryption test in progress!
junaidaslamRS Oct 7, 2024
3cbe6fe
Decryption test passed!
junaidaslamRS Oct 8, 2024
ef0ba41
Updated the PUFcc RS_RTOS_PORT flag definition through KConfig
junaidaslamRS Oct 10, 2024
db8f147
RSA2048 signature verification in progress
junaidaslamRS Oct 10, 2024
f0a97a7
RSA2048 signature verification in progress
junaidaslamRS Oct 11, 2024
c0cbd49
RSA2048 signature verification in progress
junaidaslamRS Oct 11, 2024
3e4443f
RSA2048 signature verification in progress
junaidaslamRS Oct 14, 2024
4f876d9
RSA2048 signature verification in progress
junaidaslamRS Oct 14, 2024
69e9b92
RSA2048 signature verification in progress
junaidaslamRS Oct 17, 2024
a07d024
defconfig update for the virgo_proto board
junaidaslamRS Oct 18, 2024
6d3ca36
RSA2048 signature verification in progress, modulus copy success with…
junaidaslamRS Oct 21, 2024
14a0643
RSA2048 signature verification success... Cleanup with RS_RTOS_PORT U…
junaidaslamRS Oct 21, 2024
f2067c5
RSA2048 signature verification success... Cleanup with RS_RTOS_PORT U…
junaidaslamRS Oct 21, 2024
d155747
Flash test failing
junaidaslamRS Oct 21, 2024
557f35b
Flash test passed. Needed correction in defconfig file
junaidaslamRS Oct 22, 2024
8ebfe8c
Updated PUFcc file with compilation flags
junaidaslamRS Oct 22, 2024
21ffcbf
EC256 Unit test Created. To Fix PUFcc Driver with Manual word size copy
junaidaslamRS Oct 22, 2024
71a7056
EC256 Unit test Created and Sign Verification Passed!
junaidaslamRS Oct 22, 2024
662de50
Updated Unit tests with compilation flags
junaidaslamRS Oct 24, 2024
339cc6d
Update to Cipher context structure for supporting secure fpga bitstre…
junaidaslamRS Oct 27, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions boards/rapidsilicon/virgo_proto/virgo_proto.dts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
/dts-v1/;

#include <rapidsilicon/rapidsi_virgo.dtsi>

/
{
model = "Rapid Silicon Virgo Proto";
Expand Down Expand Up @@ -50,6 +51,14 @@
status = "okay";
};

&pufs_otp {
status = "okay";
};

&pufs {
status = "okay";
};

&spi0 {
status = "okay";
clock-frequency = <26666667>;
Expand Down
30 changes: 29 additions & 1 deletion boards/rapidsilicon/virgo_proto/virgo_proto_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,32 @@ CONFIG_HWINFO_ANDES=n
# CONFIG_SOC_ANDES_V5_EXECIT=y

# Sys Clock HW Cycles for Virgo Proto used by mtimer
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=13333333
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=13333333

# Enabling the SPI Peripheral
CONFIG_SPI=y
CONFIG_SPI_NOR=y

# Enabling the Crypto Peripheral
CONFIG_CRYPTO=y
CONFIG_PUFCC_SECURITY=y
CONFIG_CRYPTO_PUF_SECURITY=y
CONFIG_CRYPTO_PUF_SECURITY_OTP=y

# Enabling the DMA Peripheral
CONFIG_DMA=y
CONFIG_DMA_ANDES_ATCDMAC100=y

# Enabling the SPI and Flash Peripheral
CONFIG_FLASH=y
CONFIG_SPI_NOR_SFDP_DEVICETREE=y
CONFIG_SPI_ANDES_ATCSPI200=y
CONFIG_ANDES_SPI_DMA_MODE=n

# Enabling the Counter Peripheral
CONFIG_COUNTER=y
CONFIG_COUNTER_ANDES_ATCPIT100=y

# Enabling the Sensor Peripheral
CONFIG_SENSOR=y
CONFIG_DTI_PVT=y
3 changes: 3 additions & 0 deletions drivers/crypto/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,7 @@ zephyr_library_sources_ifdef(CONFIG_CRYPTO_NPCX_SHA crypto_npcx_sha.c)
zephyr_library_sources_ifdef(CONFIG_CRYPTO_MCHP_XEC_SYMCR crypto_mchp_xec_symcr.c)
zephyr_library_sources_ifdef(CONFIG_CRYPTO_IT8XXX2_SHA crypto_it8xxx2_sha.c)
zephyr_library_sources_ifdef(CONFIG_CRYPTO_MCUX_DCP crypto_mcux_dcp.c)
zephyr_library_sources_ifdef(CONFIG_PUFCC_SECURITY pufcc.c)
zephyr_library_sources_ifdef(CONFIG_CRYPTO_PUF_SECURITY crypto_pufs.c)
zephyr_library_sources_ifdef(CONFIG_CRYPTO_PUF_SECURITY_OTP crypto_pufs_otp.c)
zephyr_library_link_libraries_ifdef(CONFIG_MBEDTLS mbedTLS)
1 change: 1 addition & 0 deletions drivers/crypto/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ source "drivers/crypto/Kconfig.stm32"
source "drivers/crypto/Kconfig.nrf_ecb"
source "drivers/crypto/Kconfig.intel"
source "drivers/crypto/Kconfig.npcx"
source "drivers/crypto/Kconfig.pufs"
source "drivers/crypto/Kconfig.xec"
source "drivers/crypto/Kconfig.it8xxx2"
source "drivers/crypto/Kconfig.mcux_dcp"
Expand Down
34 changes: 34 additions & 0 deletions drivers/crypto/Kconfig.pufs
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# PUF Security Cryptographic Accelerator configuration options

# Copyright (c) 2024 Muhammad Junaid Aslam <[email protected]>
# SPDX-License-Identifier: Apache-2.0

menuconfig PUFCC_SECURITY
bool "PUF Security Hardware"
depends on DT_HAS_PUFSECURITY_PUFCC_ENABLED
help
Enable PUF Security Hardware.

if PUFCC_SECURITY

config RS_RTOS_PORT
bool

config CRYPTO_PUF_SECURITY
bool "PUF security Cryptographic Accelerator driver"
default n
depends on DT_HAS_PUFSECURITY_PUFCC_ENABLED
select RS_RTOS_PORT
help
Enable PUF Security based Cryptographic Accelerator driver.

config CRYPTO_PUF_SECURITY_OTP
bool "PUF security One Time Programmable Memory"
default n
depends on DT_HAS_PUFSECURITY_OTP_ENABLED
select RS_RTOS_PORT
help
Enable PUF Security based One Time Programmable Memory.

endif

Loading