Merge #331 into sdk602patch0521 from refs/changes/331/head 332/target/1
authorsnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Thu, 20 Jun 2024 08:51:48 +0000 (08:51 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Thu, 20 Jun 2024 08:51:48 +0000 (08:51 +0000)
Code review from snickersun@163.com

* refs/changes/331/head: (2 commits squashed)

  - 变更版本号V1.0.2

  - efuse读写问题修复

Signed-off-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/331
autobuild.sh
code/sdk/build/config/target_config/brandy/config.py
code/sdk/drivers/drivers/hal/security/efuse/v100/hal_efuse_v100.c

index a902134..21fabea 100755 (executable)
@@ -5,7 +5,7 @@ DATE=$(date  +%Y%m%d_%H%M%S)
 HOMEDIR=$PWD
 DEFAULT_BUILD_TYPE=release
 DEFAULT_TARGET_PACK_NAME=pack_brandy_native_js
-DEFAULT_CUSTOM_FW_VERSION=1.0.1
+DEFAULT_CUSTOM_FW_VERSION=1.0.2
 
 TARGET_PACK_NAME=$DEFAULT_TARGET_PACK_NAME
 RELEASE_BUILD=$DEFAULT_BUILD_TYPE
index f53c96a..57cd7f3 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',
+                    '_ALL_SOURCE', 'SUPPORT_CXX', 'I2C_SLAVE_REG_ADDR_4BYTE', 'CONFIG_PSRAM_SUPPORT','CONFIG_EFUSE_READ_TO_RAM',
                     "-: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 25dfcdf..35075d4 100755 (executable)
 #define HAL_EFUSE_POWER_OFF_VAL     0x0
 
 #define HAL_EFUSE_POWER_ON_DELAY_US 120ULL
+#define HAL_EFUSE_RECORD_NUMS     3
 
 #ifdef CONFIG_EFUSE_READ_TO_RAM
-static int32_t *g_store_efuse_value;
+static uint8_t g_store_efuse_value[HAL_EFUSE_RECORD_NUMS][EFUSE_REGION_MAX_BYTES] = {0};
 
 static errcode_t hal_efuse_v100_read_byte(uint32_t byte_address, uint8_t *value);
 
-static void hal_efuse_v100_read_val_to_ram(hal_efuse_region_t region)
+static void hal_efuse_v100_read_val_to_ram(void)
 {
-    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;
+    // Record efuse.
+    uintptr_t byte_addr = 0;
+    for (uint32_t i = 0; i < EFUSE_REGION_NUM; 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++;
+        }
     }
 }
 #endif
@@ -67,11 +71,17 @@ 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_REGION_1);
+    hal_efuse_v100_read_val_to_ram();
 #endif
     return ERRCODE_SUCC;
 }
@@ -138,8 +148,9 @@ 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[offset];
+    *value = g_store_efuse_value[region][offset];
 #endif
     return ERRCODE_SUCC;
 }
@@ -166,8 +177,13 @@ 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
-    g_store_efuse_value[offset] = write_value;
+    if (byte_address % HAL_EFUSE_BYTES_PRE_REG != 0) {
+        g_store_efuse_value[region][offset] = g_store_efuse_value[region][offset] | value;
+    } else {
+        g_store_efuse_value[region][offset] = g_store_efuse_value[region][offset] | write_value;
+    }
 #endif
     return ERRCODE_SUCC;
 }