|
@@ -17,17 +17,33 @@
|
|
|
#include "amt630hv160_lib.h"
|
|
#include "amt630hv160_lib.h"
|
|
|
#include "libhsm.h"
|
|
#include "libhsm.h"
|
|
|
|
|
|
|
|
|
|
+#pragma location = "SEC_DDT"
|
|
|
|
|
+#define SEC_DDT_SIZE 512
|
|
|
|
|
+uint8_t sec_ddts[SEC_DDT_SIZE + 64];
|
|
|
|
|
+
|
|
|
int secure_module_init(void)
|
|
int secure_module_init(void)
|
|
|
{
|
|
{
|
|
|
|
|
+ uint32_t val;
|
|
|
|
|
+
|
|
|
HSM_Logout(0);
|
|
HSM_Logout(0);
|
|
|
|
|
|
|
|
EFUSE_Init();
|
|
EFUSE_Init();
|
|
|
|
|
|
|
|
|
|
+ val = MCU_SYSCTRL->V6_EHSE_CLK;
|
|
|
|
|
+ val &= ~0xff;
|
|
|
|
|
+ val |= (0 << 3) | 1;
|
|
|
|
|
+ MCU_SYSCTRL->V6_EHSE_CLK = val;
|
|
|
|
|
+
|
|
|
if (EHSE_Init() != HSM_OK) {
|
|
if (EHSE_Init() != HSM_OK) {
|
|
|
printf("EHSE_Init fail!\n");
|
|
printf("EHSE_Init fail!\n");
|
|
|
return -1;
|
|
return -1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ if (EHSE_DDT_Init(sec_ddts, SEC_DDT_SIZE) != HSM_OK) {
|
|
|
|
|
+ printf("EHSE_DDT_Init fail!\n");
|
|
|
|
|
+ return -1;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
if (PKA_Init() != HSM_OK) {
|
|
if (PKA_Init() != HSM_OK) {
|
|
|
printf("PKA_Init fail!\n");
|
|
printf("PKA_Init fail!\n");
|
|
|
return -1;
|
|
return -1;
|