From 49ae529b8f1416e5c9d009ec5861c779c7af85a4 Mon Sep 17 00:00:00 2001 From: thead_admin Date: Wed, 4 Jan 2023 13:12:32 +0800 Subject: [PATCH] Linux_SDK_V1.0.3 --- efuse-hal-lib/lib/src/efuse-api.h | 26 +++++ efuse-hal-lib/lib/src/light-efuse-hal.c | 110 ++++++++++++++++++ efuse-hal-lib/lib/src/light-efuse-hal.o | Bin 81520 -> 0 bytes efuse-hal-lib/test/efuse_demo/efuse-api.h | 26 +++++ .../test/efuse_demo/light-efuse-test.c | 32 +++-- .../test/efuse_demo/light-efuse-test.o | Bin 20904 -> 0 bytes efuse-hal-lib/test/output/efuse_demo | Bin 23184 -> 0 bytes 7 files changed, 184 insertions(+), 10 deletions(-) delete mode 100644 efuse-hal-lib/lib/src/light-efuse-hal.o delete mode 100644 efuse-hal-lib/test/efuse_demo/light-efuse-test.o delete mode 100755 efuse-hal-lib/test/output/efuse_demo diff --git a/efuse-hal-lib/lib/src/efuse-api.h b/efuse-hal-lib/lib/src/efuse-api.h index 1406e7d..5e592b5 100644 --- a/efuse-hal-lib/lib/src/efuse-api.h +++ b/efuse-hal-lib/lib/src/efuse-api.h @@ -43,6 +43,18 @@ typedef enum { SECURE_BOOT_EN = 0x5a5a5a5a, } sboot_st_t; +enum life_cycle_e { + LC_INIT = 0, + LC_DEV, + LC_OEM, + LC_PRO, + LC_RMA, + LC_RIP, + LC_KILL_KEY1, + LC_KILL_KEY0, + LC_MAX, +}; + /** * csi_efuse_get_chipid() - Get chip id in eFuse * @@ -374,4 +386,18 @@ int csi_efuse_update_lc_rma(); */ int csi_efuse_update_lc_rip(); +/** + * csi_efuse_get_lc_preld() - get efuse life cycle preld + * @lc_name: the output name of life cycle preld + * Return: 0: Success others: Failed + */ +int csi_efuse_get_lc_preld(char *lc_name); + +/* + * csi_efuse_update_lc(enum life_cycle_e life_cycle) + * @life_cycle: the life cycle to set + * Return: 0: Success others: Failed + */ +int csi_efuse_update_lc(enum life_cycle_e life_cycle); + #endif diff --git a/efuse-hal-lib/lib/src/light-efuse-hal.c b/efuse-hal-lib/lib/src/light-efuse-hal.c index 935147d..4f70004 100644 --- a/efuse-hal-lib/lib/src/light-efuse-hal.c +++ b/efuse-hal-lib/lib/src/light-efuse-hal.c @@ -1505,3 +1505,113 @@ int csi_efuse_update_lc_rip() return 0; } +int csi_efuse_get_lc_preld(char *lc_name) +{ + int fd, ret; + char data[30] = {0}; + unsigned int lf = 0; + const char *dev_path = "/sys/devices/platform/soc/ffff210000.efuse/lc_preld"; + char *str; + + assert(lc_name); + + fd = open(dev_path, O_RDONLY); + if (fd < 0) { + printf("failed to open device '%s' (%d)\n", dev_path, -errno); + return -errno; + } + + ret = read(fd, data, 30); + if (ret < 0){ + printf("failed to read lifecycle from preld area\n"); + return -errno; + } + + lf = strtoul(data, NULL, 16); + + switch (lf) { + case 0xC44ACFCF: + str = "LC_INIT"; + break; + case 0xCA410C33: + str = "LC_DEV"; + break; + case 0x548411A6: + str = "LC_OEM"; + break; + case 0xABB00F15: + str = "LC_PRO"; + break; + case 0x67E93416: + str = "LC_RMA"; + break; + case 0x9fCAE0EA: + str = "LC_RIP"; + break; + default: + str = "LC_MAX"; + return -EINVAL; + } + + strcpy(lc_name, str); + + close(fd); + + return 0; +} + +/* + * csi_efuse_update_lc(enum life_cycle_e life_cycle) + * @life_cycle: the life cycle to set + * Return: 0: Success others: Failed + */ +int csi_efuse_update_lc(enum life_cycle_e life_cycle) +{ + int fd, ret = 0; + char *lf; + const char *dev_path = "/sys/devices/platform/soc/ffff210000.efuse/update_lc"; + + fd = open(dev_path, O_WRONLY); + if (fd < 0) { + printf("failed to open device '%s' (%d)\n", dev_path, -errno); + return -errno; + } + + switch (life_cycle) { + case LC_DEV: + lf = "LC_DEV"; + break; + case LC_OEM: + lf = "LC_OEM"; + break; + case LC_PRO: + lf = "LC_PRO"; + break; + case LC_RMA: + lf = "LC_RMA"; + break; + case LC_RIP: + lf = "LC_RIP"; + break; + case LC_KILL_KEY1: + lf = "LC_KILL_KEY1"; + break; + case LC_KILL_KEY0: + lf = "LC_KILL_KEY0"; + break; + default: + ret = -EINVAL; + goto exit; + } + + ret = write(fd, lf, strlen(lf)); + if (ret < 0) + printf("failed to update efuse life cycle(%d)\n", ret); + else + ret = 0; + +exit: + close(fd); + + return ret; +} diff --git a/efuse-hal-lib/lib/src/light-efuse-hal.o b/efuse-hal-lib/lib/src/light-efuse-hal.o deleted file mode 100644 index 853ea5b4d81bc13c54c23a46499e5c99f15cf194..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81520 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 diff --git a/efuse-hal-lib/test/efuse_demo/efuse-api.h b/efuse-hal-lib/test/efuse_demo/efuse-api.h index 1406e7d..5e592b5 100644 --- a/efuse-hal-lib/test/efuse_demo/efuse-api.h +++ b/efuse-hal-lib/test/efuse_demo/efuse-api.h @@ -43,6 +43,18 @@ typedef enum { SECURE_BOOT_EN = 0x5a5a5a5a, } sboot_st_t; +enum life_cycle_e { + LC_INIT = 0, + LC_DEV, + LC_OEM, + LC_PRO, + LC_RMA, + LC_RIP, + LC_KILL_KEY1, + LC_KILL_KEY0, + LC_MAX, +}; + /** * csi_efuse_get_chipid() - Get chip id in eFuse * @@ -374,4 +386,18 @@ int csi_efuse_update_lc_rma(); */ int csi_efuse_update_lc_rip(); +/** + * csi_efuse_get_lc_preld() - get efuse life cycle preld + * @lc_name: the output name of life cycle preld + * Return: 0: Success others: Failed + */ +int csi_efuse_get_lc_preld(char *lc_name); + +/* + * csi_efuse_update_lc(enum life_cycle_e life_cycle) + * @life_cycle: the life cycle to set + * Return: 0: Success others: Failed + */ +int csi_efuse_update_lc(enum life_cycle_e life_cycle); + #endif diff --git a/efuse-hal-lib/test/efuse_demo/light-efuse-test.c b/efuse-hal-lib/test/efuse_demo/light-efuse-test.c index fb1775e..98d1428 100644 --- a/efuse-hal-lib/test/efuse_demo/light-efuse-test.c +++ b/efuse-hal-lib/test/efuse_demo/light-efuse-test.c @@ -410,18 +410,38 @@ void csi_efuse_gmac_macaddr_test() printf("gmac mac0 address: %2x:%2x:%2x:%2x:%2x:%2x\n", r_mac1[0], r_mac1[1], r_mac1[2], r_mac1[3], r_mac1[4], r_mac1[5]); } +void csi_efuse_get_lc_preld_test() +{ + char life_cycle[12] = {0}; + int ret; + + ret = csi_efuse_get_lc_preld(life_cycle); + if (ret) { + printf("ret = %d\n", ret); + return; + } + printf("lc_preld: %s\n", life_cycle); +} + +void csi_efuse_update_lc_test() +{ + csi_efuse_update_lc(LC_DEV); + csi_efuse_update_lc(LC_RMA); +} + int main() { + printf("efuse testing....\n"); + csi_efuse_update_lc_test(); #if 0 + csi_efuse_get_lc_preld_test(); csi_efuse_bl4_img_encrypt_test(); csi_efuse_bl2_img_encrypt_test(); csi_efuse_bl3_img_encrypt_test(); csi_efuse_get_bl1_version_test(); csi_efuse_get_hash_challenge_test(); csi_efuse_get_secure_boot_st_test(); -#endif csi_efuse_offset_test(); -#if 0 csi_efuse_usr_brom_cct_test(); csi_efuse_usr_brom_usb_fastboot_test(); csi_efuse_boot_index_test(); @@ -432,9 +452,7 @@ int main() csi_efuse_get_secure_boot_st_test(); csi_efuse_get_hash_challenge_test(); csi_efuse_userdata_group_test(); -#endif -#if 0 efuse_chip_id_get_test(); csi_efuse_user_dbg_mode_test(); csi_efuse_boot_offset_test(); @@ -442,9 +460,7 @@ int main() csi_efuse_bak_boot_offset_test(); csi_efuse_bak_boot_index_test(); csi_efuse_usr_brom_usb_fastboot_test(); -#endif -#if 0 csi_efuse_usr_brom_cct_test(); printf("welcome to riscv world!!!\n"); @@ -457,13 +473,9 @@ int main() csi_efuse_get_hash_challenge_test(); csi_efuse_userdata_group_test(); csi_efuse_offset_test(); -#endif -#if 0 csi_efuse_update_lc_rma_test(); csi_efuse_update_lc_rip_test(); -#endif -#if 0 csi_efuse_gmac_macaddr_test(); #endif return 0; diff --git a/efuse-hal-lib/test/efuse_demo/light-efuse-test.o b/efuse-hal-lib/test/efuse_demo/light-efuse-test.o deleted file mode 100644 index ae07ac8eb5defcd7e32001da875e459f373593ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20904 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 diff --git a/efuse-hal-lib/test/output/efuse_demo b/efuse-hal-lib/test/output/efuse_demo deleted file mode 100755 index fb47c5edb3286b653b19fe605018454b083c0b5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23184 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