drivers: crypto: add it51xxx sha256 driver
Implement a crypto sha256 driver for it51xxx series. Signed-off-by: Yunshao Chiang <Yunshao.Chiang@ite.com.tw>
This commit is contained in:
parent
cec116c83f
commit
8f8b223ff2
9 changed files with 349 additions and 0 deletions
|
@ -40,6 +40,19 @@ config SOC_IT51XXX_USE_ILM
|
|||
predictable than executing from Flash directly, and some code (such as code
|
||||
that writes to the internal Flash) must execute out of RAM.
|
||||
|
||||
config SOC_IT51XXX_SHA256_HW_ACCELERATE
|
||||
bool "HW SHA256 calculation"
|
||||
help
|
||||
IT51XXX HW support sha256 calculation, and its calculation is faster than FW.
|
||||
|
||||
config SOC_IT515XX_SHA256_DLM_OFFSET
|
||||
hex
|
||||
default 0x03E000
|
||||
depends on SOC_IT51XXX_SHA256_HW_ACCELERATE
|
||||
help
|
||||
Due to the hardware requirements of the IT515XX, the SHA-256 data must be
|
||||
placed within the specific address range (0x83E000 to 0x83EFFF by default).
|
||||
|
||||
config ILM_MAX_SIZE
|
||||
int "ILM Size in kB"
|
||||
default 4
|
||||
|
|
|
@ -79,6 +79,12 @@
|
|||
#define RAM_BASE CONFIG_SRAM_BASE_ADDRESS
|
||||
#define RAM_SIZE KB(CONFIG_SRAM_SIZE)
|
||||
|
||||
/* The IT515XX series must use the address range 0x83E000 to 0x83EFFF to calculate SHA */
|
||||
#ifdef CONFIG_SOC_IT51XXX_SHA256_HW_ACCELERATE
|
||||
#define SHA256_DLM_BASE (RAM_BASE + CONFIG_SOC_IT515XX_SHA256_DLM_OFFSET)
|
||||
#define SHA256_DLM_LENGTH KB(4)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_RISCV_PMP
|
||||
#define MPU_MIN_SIZE CONFIG_PMP_GRANULARITY
|
||||
#define MPU_MIN_SIZE_ALIGN . = ALIGN(MPU_MIN_SIZE);
|
||||
|
@ -104,6 +110,10 @@ MEMORY
|
|||
#endif
|
||||
RAM (rwx) : ORIGIN = RAM_BASE, LENGTH = RAM_SIZE
|
||||
|
||||
#ifdef CONFIG_SOC_IT51XXX_SHA256_HW_ACCELERATE
|
||||
SHA256_DLM (rw) : ORIGIN = SHA256_DLM_BASE, LENGTH = SHA256_DLM_LENGTH
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_LINKER_DEVNULL_MEMORY)
|
||||
DEVNULL_ROM (rx) : ORIGIN = DEVNULL_ADDR, LENGTH = DEVNULL_SIZE
|
||||
#endif
|
||||
|
@ -443,6 +453,21 @@ GROUP_END(DTCM)
|
|||
|
||||
GROUP_END(RAMABLE_REGION)
|
||||
|
||||
#ifdef CONFIG_SOC_IT51XXX_SHA256_HW_ACCELERATE
|
||||
GROUP_START(SHA256_DLM)
|
||||
|
||||
SECTION_PROLOGUE(it515xx_sha256_ram, (NOLOAD),)
|
||||
{
|
||||
__sha256_ram_block_start = .;
|
||||
KEEP(*(.__sha256_ram_block))
|
||||
|
||||
ASSERT((ABSOLUTE(__sha256_ram_block_start) & 0xfff) == 0, \
|
||||
"SHA256 DLM block must be 4KB aligned");
|
||||
} GROUP_LINK_IN(SHA256_DLM)
|
||||
|
||||
GROUP_END(SHA256_DLM)
|
||||
#endif
|
||||
|
||||
#include <zephyr/linker/debug-sections.ld>
|
||||
|
||||
/DISCARD/ : { *(.note.GNU-stack) }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue