Revert "修复efuse 256之后写入失败问题 319/1 319/head 320/target/1
authorsnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Wed, 19 Jun 2024 01:43:59 +0000 (09:43 +0800)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Wed, 19 Jun 2024 01:43:59 +0000 (09:43 +0800)
"

code/sdk/build/config/target_config/brandy/config.py
code/sdk/drivers/drivers/hal/security/efuse/v100/hal_efuse_v100.c

index 417efd0..086dbcf 100755 (executable)
@@ -109,7 +109,7 @@ target = {
         'board': 'evb',
         'base_target_name': 'target_standard_brandy_application_template',
         'defines': ['PRE_ASIC', 'BRANDY_PRODUCT_EVB4', 'VERSION_STANDARD', '__LITEOS__', 'CONFIG_OTA_UPDATE_SUPPORT',
-                    '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CONFIG_PSRAM_SUPPORT', 'CONFIG_EFUSE_READ_TO_RAM',
+                    '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CONFIG_PSRAM_SUPPORT',
                     "-:TARGET_CHIP_BRANDY=1", "-:BRANDY_CHIP_V100=1", 'CFG_DRIVERS_NANDFLASH', 'CONFIG_ZDIAG_NV_SUPPORT',
                     'CONFIG_ZDIAG_AUDIO_PROC_SUPPORT', 'CONFIG_ZDIAG_AUDIO_DUMP_SUPPORT', 'CONFIG_ZDIAG_AUDIO_PROBE_SUPPORT', 'CONFIG_SEA_PHS_SUPPORT', 'CONFIG_DIAG_GPU_PROC_SUPPORT',
                     'SUPPORT_BLE', 'SUPPORT_BREDR', 'ENABLE_UIKIT', 'SUPPORT_GPU_JPEG', 'SUPPORT_GPU_GMMU', 'SUPPORT_GPU_OPENVG',
index 133d00b..25dfcdf 100755 (executable)
 #define HAL_EFUSE_POWER_OFF_VAL     0x0
 
 #define HAL_EFUSE_POWER_ON_DELAY_US 120ULL
-#define HAL_EFUSE_RECORD_NUMS     2
 
 #ifdef CONFIG_EFUSE_READ_TO_RAM
-static uint8_t g_store_efuse_value[HAL_EFUSE_RECORD_NUMS][EFUSE_REGION_MAX_BYTES] = {0};
+static int32_t *g_store_efuse_value;
 
 static errcode_t hal_efuse_v100_read_byte(uint32_t byte_address, uint8_t *value);
 
-static void hal_efuse_v100_read_val_to_ram(void)
+static void hal_efuse_v100_read_val_to_ram(hal_efuse_region_t region)
 {
-    // Record efuse1 and efuse2.
-    uintptr_t byte_addr = EFUSE_REGION_MAX_BYTES;
-    for (uint32_t i = 0; i < EFUSE_REGION_NUM - 1; i++) {
-        for (uint32_t j = 0; j < g_efuse_region_size[i]; j++) {
-            hal_efuse_v100_read_byte(byte_addr, &g_store_efuse_value[i][j]);
-            byte_addr++;
-        }
+    uintptr_t byte_addr = g_efuse_region_read_address[region];
+    for (uint32_t i = 0; i < g_efuse_region_size[region]; i++) {
+        hal_efuse_v100_read_byte(byte_addr, &g_store_efuse_value[i]);
+        byte_addr += i;
     }
 }
 #endif
@@ -71,16 +67,11 @@ static errcode_t hal_efuse_v100_init(void)
     if (hal_efuse_v100_regs_init() != 0) {
         return ERRCODE_EFUSE_REG_ADDR_INVALID;
     }
-
-    if (hal_efuse_v100_refresh_read(HAL_EFUSE_REGION_2) != 0) {
-        return ERRCODE_FAIL;
-    }
-
     if (hal_efuse_v100_refresh_read(HAL_EFUSE_REGION_1) != 0) {
         return ERRCODE_FAIL;
     }
 #ifdef CONFIG_EFUSE_READ_TO_RAM
-    hal_efuse_v100_read_val_to_ram();
+    hal_efuse_v100_read_val_to_ram(HAL_EFUSE_REGION_1);
 #endif
     return ERRCODE_SUCC;
 }
@@ -147,9 +138,8 @@ static errcode_t hal_efuse_v100_read_byte_common(uint32_t byte_address, uint8_t
 #ifndef CONFIG_EFUSE_READ_TO_RAM
     hal_efuse_v100_read_byte(byte_address, value);
 #else
-    hal_efuse_region_t region = hal_efuse_get_region(byte_address);
     uint16_t offset = hal_efuse_get_byte_offset(byte_address);
-    *value = g_store_efuse_value[region - 1][offset];
+    *value = g_store_efuse_value[offset];
 #endif
     return ERRCODE_SUCC;
 }
@@ -176,13 +166,8 @@ static errcode_t hal_efuse_v100_write_byte(uint32_t byte_address, uint8_t value)
                    ((uint16_t)value & HAL_EFUSE_REG_L_MASK);
 
     *efuse_byte = *efuse_byte | write_value;
-
 #ifdef CONFIG_EFUSE_READ_TO_RAM
-    if (byte_address % HAL_EFUSE_BYTES_PRE_REG != 0) {
-        g_store_efuse_value[region - 1][offset] = g_store_efuse_value[region - 1][offset] | value;
-    } else {
-        g_store_efuse_value[region - 1][offset] = g_store_efuse_value[region - 1][offset] | write_value;
-    }
+    g_store_efuse_value[offset] = write_value;
 #endif
     return ERRCODE_SUCC;
 }