Files
kunlun/inc/hw/reg/riscv3/2/soc/macro/efuse_mapping.h
2024-09-28 14:24:04 +08:00

506 lines
22 KiB
C

/* KL3 efuse mapping */
#define CFG_EFUSE_MAPPING_ATE_SECTION_W0_ADDR 0x0000
#define EFUSE_FUNC_ATE_LOT_ID0_OFFSET 0
#define EFUSE_FUNC_ATE_LOT_ID0_MASK 0x000000ff
#define EFUSE_FUNC_ATE_LOT_ID1_OFFSET 8
#define EFUSE_FUNC_ATE_LOT_ID1_MASK 0x0000ff00
#define EFUSE_FUNC_ATE_LOT_ID2_OFFSET 16
#define EFUSE_FUNC_ATE_LOT_ID2_MASK 0x00ff0000
#define EFUSE_FUNC_ATE_LOT_ID3_OFFSET 24
#define EFUSE_FUNC_ATE_LOT_ID3_MASK 0xff000000
#define CFG_EFUSE_MAPPING_ATE_SECTION_W1_ADDR 0x0004
#define EFUSE_FUNC_ATE_LOT_ID4_OFFSET 0
#define EFUSE_FUNC_ATE_LOT_ID4_MASK 0x000000ff
#define EFUSE_FUNC_ATE_LOT_ID5_OFFSET 8
#define EFUSE_FUNC_ATE_LOT_ID5_MASK 0x0000ff00
#define EFUSE_FUNC_ATE_WAFER_ID_OFFSET 16
#define EFUSE_FUNC_ATE_WAFER_ID_MASK 0x00ff0000
#define EFUSE_FUNC_ATE_DIE_X_COORDINATE_OFFSET 24
#define EFUSE_FUNC_ATE_DIE_X_COORDINATE_MASK 0xff000000
#define CFG_EFUSE_MAPPING_ATE_SECTION_W2_ADDR 0x0008
#define EFUSE_FUNC_ATE_DIE_Y_COORDINATE_OFFSET 0
#define EFUSE_FUNC_ATE_DIE_Y_COORDINATE_MASK 0x000000ff
#define EFUSE_FUNC_ATE_WAFER_REV_RECORD_OFFSET 8
#define EFUSE_FUNC_ATE_WAFER_REV_RECORD_MASK 0x0000ff00
#define EFUSE_FUNC_ATE_FT_PASS_FLAG_OFFSET 16
#define EFUSE_FUNC_ATE_FT_PASS_FLAG_MASK 0x000f0000
#define EFUSE_FUNC_ATE_ANALOG_BIN_VER_OFFSET 20
#define EFUSE_FUNC_ATE_ANALOG_BIN_VER_MASK 0x00f00000
#define EFUSE_FUNC_ATE_D_VREF_TUNE_DCDC_OFFSET 24
#define EFUSE_FUNC_ATE_D_VREF_TUNE_DCDC_MASK 0x0f000000
#define EFUSE_FUNC_ATE_FLASH_LDO_OUT_TRIM_18_OFFSET 28
#define EFUSE_FUNC_ATE_FLASH_LDO_OUT_TRIM_18_MASK 0xf0000000
#define CFG_EFUSE_MAPPING_ATE_SECTION_W3_ADDR 0x000C
#define EFUSE_FUNC_ATE_D_MDLL_LDOVREF_TRIM_OFFSET 0
#define EFUSE_FUNC_ATE_D_MDLL_LDOVERF_TRIM_MASK 0x0000000f
#define EFUSE_FUNC_ATE_D_BG_VBG_CNTL_OFFSET 4
#define EFUSE_FUNC_ATE_D_BG_VBG_CNTL_MASK 0x00000070
#define EFUSE_FUNC_ATE_RESERVED0_OFFSET 7
#define EFUSE_FUNC_ATE_RESERVED0_MASK 0x00000080
#define EFUSE_FUNC_ATE_D_BG_ICCAL_OFFSET 8
#define EFUSE_FUNC_ATE_D_BG_ICCAL_MASK 0x00001f00
#define EFUSE_FUNC_ATE_RX_ADC_VCM_CTRL_OFFSET 13
#define EFUSE_FUNC_ATE_RX_ADC_VCM_CTRL_MASK 0x0000e000
#define EFUSE_FUNC_ATE_FLASH_LDO_OUT_TRIM_25_OFFSET 16
#define EFUSE_FUNC_ATE_FLASH_LDO_OUT_TRIM_25_MASK 0x000f0000
#define EFUSE_FUNC_ATE_RESERVED1_OFFSET 20
#define EFUSE_FUNC_ATE_RESERVED1_MASK 0x00f00000
#define EFUSE_FUNC_MARK_OFFSET 24
#define EFUSE_FUNC_MARK_MASK 0x0f000000
#define EFUSE_FUNC_WAFER_VER_OFFSET 28
#define EFUSE_FUNC_WAFER_VER_MASK 0xf0000000
#define CFG_EFUSE_MAPPING_ATE_SECTION_W4_ADDR 0x0010
#define EFUSE_FUNC_SIP_OFFSET 0
#define EFUSE_FUNC_SIP_MASK 0x0000000f
#define EFUSE_FUNC_PROJECT_OFFSET 4
#define EFUSE_FUNC_PROJECT_MASK 0x000000f0
#define EFUSE_FUNC_ATE_RESERVED2_OFFSET 8
#define EFUSE_FUNC_ATE_RESERVED2_MASK 0x0000ff00
#define EFUSE_FUNC_ATE_MAC_ADDR0_OFFSET 16
#define EFUSE_FUNC_ATE_MAC_ADDR0_MASK 0x00ff0000
#define EFUSE_FUNC_ATE_MAC_ADDR1_OFFSET 24
#define EFUSE_FUNC_ATE_MAC_ADDR1_MASK 0xff000000
#define CFG_EFUSE_MAPPING_ATE_SECTION_W5_ADDR 0x0014
#define EFUSE_FUNC_ATE_MAC_ADDR2_OFFSET 0
#define EFUSE_FUNC_ATE_MAC_ADDR2_MASK 0x000000ff
#define EFUSE_FUNC_ATE_MAC_ADDR3_OFFSET 8
#define EFUSE_FUNC_ATE_MAC_ADDR3_MASK 0x0000ff00
#define EFUSE_FUNC_ATE_MAC_ADDR4_OFFSET 16
#define EFUSE_FUNC_ATE_MAC_ADDR4_MASK 0x00ff0000
#define EFUSE_FUNC_ATE_MAC_ADDR5_OFFSET 24
#define EFUSE_FUNC_ATE_MAC_ADDR5_MASK 0xff000000
#define CFG_EFUSE_MAPPING_BOND_SECTION_W6_ADDR 0x0018
#define EFUSE_FUNC_BOND_PHY_CFG0_GP_OFFSET 0
#define EFUSE_FUNC_BOND_PHY_CFG0_GP_MASK 0x00000001
#define EFUSE_FUNC_BOND_PHY_CFG1_SG_OFFSET 1
#define EFUSE_FUNC_BOND_PHY_CFG1_SG_MASK 0x00000002
#define EFUSE_FUNC_BOND_PHY_CFG2_GD_OFFSET 2
#define EFUSE_FUNC_BOND_PHY_CFG2_GD_MASK 0x00000004
#define EFUSE_FUNC_BOND_PHY_CFG3_G3_OFFSET 3
#define EFUSE_FUNC_BOND_PHY_CFG3_G3_MASK 0x00000008
#define EFUSE_FUNC_BOND_PHY_CFG4_AV_OFFSET 4
#define EFUSE_FUNC_BOND_PHY_CFG4_AV_MASK 0x00000010
#define EFUSE_FUNC_BOND_PHY_CFG5_1901_OFFSET 5
#define EFUSE_FUNC_BOND_PHY_CFG5_1901_MASK 0x00000020
#define EFUSE_FUNC_BOND_PHY_CFG6_RF_OFFSET 6
#define EFUSE_FUNC_BOND_PHY_CFG6_RF_MASK 0x00000040
#define EFUSE_FUNC_BOND_RESERVED0_OFFSET 7
#define EFUSE_FUNC_BOND_RESERVED0_MASK 0x00000380
#define EFUSE_FUNC_BOND_SEC_AES_SHA2_OFFSET 10
#define EFUSE_FUNC_BOND_SEC_AES_SHA2_MASK 0x00000400
#define EFUSE_FUNC_BOND_SEC_SM4_SM3_OFFSET 11
#define EFUSE_FUNC_BOND_SEC_SM4_SM3_MASK 0x00000800
#define EFUSE_FUNC_BOND_SEC_SM2_RSA_OFFSET 12
#define EFUSE_FUNC_BOND_SEC_SM2_RSA_MASK 0x00001000
#define EFUSE_FUNC_BOND_FFT_OFFSET 13
#define EFUSE_FUNC_BOND_FFT_MASK 0x00002000
#define EFUSE_FUNC_BOND_RF_BONDING_FIELD_OFFSET 14
#define EFUSE_FUNC_BOND_RF_BONDING_FIELD_MASK 0x00004000
#define EFUSE_FUNC_BOND_RESERVED1_OFFSET 15
#define EFUSE_FUNC_BOND_RESERVED1_MASK 0x00008000
#define EFUSE_FUNC_BOND_METER_SELP_OFFSET 16
#define EFUSE_FUNC_BOND_METER_SELP_MASK 0x00010000
#define EFUSE_FUNC_BOND_METER_SELN_OFFSET 17
#define EFUSE_FUNC_BOND_METER_SELN_MASK 0x00020000
#define EFUSE_FUNC_BOND_METER_ONE_PHASE_OFFSET 18
#define EFUSE_FUNC_BOND_METER_ONE_PHASE_MASK 0x00040000
#define EFUSE_FUNC_BOND_TPID_SELP_OFFSET 19
#define EFUSE_FUNC_BOND_TPID_SELP_MASK 0x00080000
#define EFUSE_FUNC_BOND_TPID_SELN_OFFSET 20
#define EFUSE_FUNC_BOND_TPID_SELN_MASK 0x00100000
#define EFUSE_FUNC_BOND_TPID_ONE_PHASE_OFFSET 21
#define EFUSE_FUNC_BOND_TPID_ONE_PHASE_MASK 0x00200000
#define EFUSE_FUNC_BOND_RESERVED2_OFFSET 22
#define EFUSE_FUNC_BOND_RESERVED2_MASK 0xffc00000
#define CFG_EFUSE_MAPPING_BOND_SECTION_W7_ADDR 0x001C
#define EFUSE_FUNC_BOND_PHY_CFG0_GP_BAK_OFFSET 0
#define EFUSE_FUNC_BOND_PHY_CFG0_GP_BAK_MASK 0x00000001
#define EFUSE_FUNC_BOND_PHY_CFG1_SG_BAK_OFFSET 1
#define EFUSE_FUNC_BOND_PHY_CFG1_SG_BAK_MASK 0x00000002
#define EFUSE_FUNC_BOND_PHY_CFG2_GD_BAK_OFFSET 2
#define EFUSE_FUNC_BOND_PHY_CFG2_GD_BAK_MASK 0x00000004
#define EFUSE_FUNC_BOND_PHY_CFG3_G3_BAK_OFFSET 3
#define EFUSE_FUNC_BOND_PHY_CFG3_G3_BAK_MASK 0x00000008
#define EFUSE_FUNC_BOND_PHY_CFG4_AV_BAK_OFFSET 4
#define EFUSE_FUNC_BOND_PHY_CFG4_AV_BAK_MASK 0x00000010
#define EFUSE_FUNC_BOND_PHY_CFG5_1901_BAK_OFFSET 5
#define EFUSE_FUNC_BOND_PHY_CFG5_1901_BAK_MASK 0x00000020
#define EFUSE_FUNC_BOND_PHY_CFG6_RF_BAK_OFFSET 6
#define EFUSE_FUNC_BOND_PHY_CFG6_RF_BAK_MASK 0x00000040
#define EFUSE_FUNC_BOND_RESERVED0_BAK_OFFSET 7
#define EFUSE_FUNC_BOND_RESERVED0_BAK_MASK 0x00000380
#define EFUSE_FUNC_BOND_SEC_AES_SHA2_BAK_OFFSET 10
#define EFUSE_FUNC_BOND_SEC_AES_SHA2_BAK_MASK 0x00000400
#define EFUSE_FUNC_BOND_SEC_SM4_SM3_BAK_OFFSET 11
#define EFUSE_FUNC_BOND_SEC_SM4_SM3_BAK_MASK 0x00000800
#define EFUSE_FUNC_BOND_SEC_SM2_RSA_BAK_OFFSET 12
#define EFUSE_FUNC_BOND_SEC_SM2_RSA_BAK_MASK 0x00001000
#define EFUSE_FUNC_BOND_FFT_BAK_OFFSET 13
#define EFUSE_FUNC_BOND_FFT_BAK_MASK 0x00002000
#define EFUSE_FUNC_BOND_RF_BONDING_FIELD_BAK_OFFSET 14
#define EFUSE_FUNC_BOND_RF_BONDING_FIELD_BAK_MASK 0x00004000
#define EFUSE_FUNC_BOND_RESERVED1_BAK_OFFSET 15
#define EFUSE_FUNC_BOND_RESERVED1_BAK_MASK 0x00008000
#define EFUSE_FUNC_BOND_METER_SELP_BAK_OFFSET 16
#define EFUSE_FUNC_BOND_METER_SELP_BAK_MASK 0x00010000
#define EFUSE_FUNC_BOND_METER_SELN_BAK_OFFSET 17
#define EFUSE_FUNC_BOND_METER_SELN_BAK_MASK 0x00020000
#define EFUSE_FUNC_BOND_METER_ONE_PHASE_BAK_OFFSET 18
#define EFUSE_FUNC_BOND_METER_ONE_PHASE_BAK_MASK 0x00040000
#define EFUSE_FUNC_BOND_TPID_SELP_BAK_OFFSET 19
#define EFUSE_FUNC_BOND_TPID_SELP_BAK_MASK 0x00080000
#define EFUSE_FUNC_BOND_TPID_SELN_BAK_OFFSET 20
#define EFUSE_FUNC_BOND_TPID_SELN_BAK_MASK 0x00100000
#define EFUSE_FUNC_BOND_TPID_ONE_PHASE_BAK_OFFSET 21
#define EFUSE_FUNC_BOND_TPID_ONE_PHASE_BAK_MASK 0x00200000
#define EFUSE_FUNC_BOND_RESERVED2_BAK_OFFSET 22
#define EFUSE_FUNC_BOND_RESERVED2_BAK_MASK 0xffc00000
#define CFG_EFUSE_MAPPING_IOMAP_SECTION_W8_ADDR 0x0020
#define EFUSE_FUNC_IOMAP_VALID_FLAG_OFFSET 0
#define EFUSE_FUNC_IOMAP_VALID_FLAG_MASK 0x00000001
#define EFUSE_FUNC_IOMAP_VALUE_OFFSET 1
#define EFUSE_FUNC_IOMAP_VALUE_MASK 0xfffffffe
#define CFG_EFUSE_MAPPING_IOMAP_SECTION_W9_ADDR 0x0024
#define EFUSE_FUNC_IOMAP_VALID_FLAG_BAK_OFFSET 0
#define EFUSE_FUNC_IOMAP_VALID_FLAG_BAK_MASK 0x00000001
#define EFUSE_FUNC_IOMAP_VALUE_BAK_OFFSET 1
#define EFUSE_FUNC_IOMAP_VALUE_BAK_MASK 0xfffffffe
#define CFG_EFUSE_MAPPING_SYS_ANA_SECTION_W10_ADDR 0x0028
#define EFUSE_FUNC_SYSTEM_SBL_CRC_EB_POWER_OFFSET 0
#define EFUSE_FUNC_SYSTEM_SBL_CRC_EB_POWER_MASK 0x00000003
#define EFUSE_FUNC_SYSTEM_SBL_CRC_EB_WDG_OFFSET 2
#define EFUSE_FUNC_SYSTEM_SBL_CRC_EB_WDG_MASK 0x0000000c
#define EFUSE_FUNC_SYSTEM_ROM_MSG_EB_OFFSET 4
#define EFUSE_FUNC_SYSTEM_ROM_MSG_EB_MASK 0x00000010
#define EFUSE_FUNC_SYSTEM_RESERVED0_OFFSET 5
#define EFUSE_FUNC_SYSTEM_RESERVED0_MASK 0x000000e0
#define EFUSE_FUNC_SYSTEM_SBL_CRC_EB_POWER_BAK_OFFSET 8
#define EFUSE_FUNC_SYSTEM_SBL_CRC_EB_POWER_BAK_MASK 0x00000300
#define EFUSE_FUNC_SYSTEM_SBL_CRC_EB_WDG_BAK_OFFSET 10
#define EFUSE_FUNC_SYSTEM_SBL_CRC_EB_WDG_BAK_MASK 0x00000c00
#define EFUSE_FUNC_SYSTEM_ROM_MSG_EB_BAK_OFFSET 12
#define EFUSE_FUNC_SYSTEM_ROM_MSG_EB_BAK_MASK 0x00001000
#define EFUSE_FUNC_SYSTEM_RESERVED1_OFFSET 13
#define EFUSE_FUNC_SYSTEM_RESERVED1_MASK 0x0000e000
#define EFUSE_FUNC_ANA_DATA0_OFFSET 16
#define EFUSE_FUNC_ANA_DATA0_MASK 0xffff0000
#define CFG_EFUSE_MAPPING_ANA_SECTION_W11_ADDR 0x002C
#define EFUSE_FUNC_ANA_DATA1_OFFSET 0
#define EFUSE_FUNC_ANA_DATA1_MASK 0xffffffff
#define CFG_EFUSE_MAPPING_ANA_SECTION_W12_ADDR 0x0030
#define EFUSE_FUNC_ANA_DATA2_OFFSET 0
#define EFUSE_FUNC_ANA_DATA2_MASK 0xffffffff
#define CFG_EFUSE_MAPPING_ANA_SECTION_W13_ADDR 0x0034
#define EFUSE_FUNC_ANA_DATA3_OFFSET 0
#define EFUSE_FUNC_ANA_DATA3_MASK 0xffffffff
#define CFG_EFUSE_MAPPING_ANA_PATCH_SECTION_W14_ADDR 0x0038
#define EFUSE_FUNC_ANA_DATA4_OFFSET 0
#define EFUSE_FUNC_ANA_DATA4_MASK 0x0000ffff
#define EFUSE_FUNC_PATCH_VALID_FLAG_OFFSET 16
#define EFUSE_FUNC_PATCH_VALID_FLAG_MASK 0x00ff0000
#define EFUSE_FUNC_PATCH_VALID_FLAG_BAK_OFFSET 24
#define EFUSE_FUNC_PATCH_VALID_FLAG_BAK_MASK 0xff000000
#define CFG_EFUSE_MAPPING_PATCH_SECTION_W15_ADDR 0x003c
#define EFUSE_FUNC_PATCH_POSITION0_OFFSET 0
#define EFUSE_FUNC_PATCH_POSITION0_MASK 0x0000000f
#define EFUSE_FUNC_PATCH_POSITION1_OFFSET 4
#define EFUSE_FUNC_PATCH_POSITION1_MASK 0x000000f0
#define EFUSE_FUNC_PATCH_POSITION2_OFFSET 8
#define EFUSE_FUNC_PATCH_POSITION2_MASK 0x00000f00
#define EFUSE_FUNC_PATCH_POSITION3_OFFSET 12
#define EFUSE_FUNC_PATCH_POSITION3_MASK 0x0000f000
#define EFUSE_FUNC_PATCH_RESV_OFFSET 16
#define EFUSE_FUNC_PATCH_RESV_MASK 0xffff0000
#define CFG_EFUSE_MAPPING_PATCH_SECTION_W16_ADDR 0x0040
#define EFUSE_FUNC_PATCH_ADDR0_OFFSET 0
#define EFUSE_FUNC_PATCH_ADDR0_MASK 0xffffffff
#define CFG_EFUSE_MAPPING_PATCH_SECTION_W17_ADDR 0x0044
#define EFUSE_FUNC_PATCH_DATA0_OFFSET 0
#define EFUSE_FUNC_PATCH_DATA0_MASK 0xffffffff
#define CFG_EFUSE_MAPPING_PATCH_SECTION_W18_ADDR 0x0048
#define EFUSE_FUNC_PATCH_ADDR1_OFFSET 0
#define EFUSE_FUNC_PATCH_ADDR1_MASK 0xffffffff
#define CFG_EFUSE_MAPPING_PATCH_SECTION_W19_ADDR 0x004c
#define EFUSE_FUNC_PATCH_DATA1_OFFSET 0
#define EFUSE_FUNC_PATCH_DATA1_MASK 0xffffffff
#define CFG_EFUSE_MAPPING_PATCH_SECTION_W20_ADDR 0x0050
#define EFUSE_FUNC_PATCH_ADDR2_OFFSET 0
#define EFUSE_FUNC_PATCH_ADDR2_MASK 0xffffffff
#define CFG_EFUSE_MAPPING_PATCH_SECTION_W21_ADDR 0x0054
#define EFUSE_FUNC_PATCH_DATA2_OFFSET 0
#define EFUSE_FUNC_PATCH_DATA2_MASK 0xffffffff
#define CFG_EFUSE_MAPPING_PATCH_SECTION_W22_ADDR 0x0058
#define EFUSE_FUNC_PATCH_ADDR3_OFFSET 0
#define EFUSE_FUNC_PATCH_ADDR3_MASK 0xffffffff
#define CFG_EFUSE_MAPPING_PATCH_SECTION_W23_ADDR 0x005c
#define EFUSE_FUNC_PATCH_DATA3_OFFSET 0
#define EFUSE_FUNC_PATCH_DATA3_MASK 0xffffffff
#define CFG_EFUSE_MAPPING_SADC_2_SECTION_W24_ADDR 0x0060
#define EFUSE_FUNC_SADC_2_TPID_DC_OFFSET_N12DB_OFFSET 0
#define EFUSE_FUNC_SADC_2_TPID_DC_OFFSET_N12DB_MASK 0x0000ffff
#define EFUSE_FUNC_SADC_2_TPID_DC_OFFSET_N6DB_OFFSET 16
#define EFUSE_FUNC_SADC_2_TPID_DC_OFFSET_N6DB_MASK 0xffff0000
#define CFG_EFUSE_MAPPING_SADC_2_SECTION_W25_ADDR 0x0064
#define EFUSE_FUNC_SADC_2_TPID_DC_OFFSET_12DB_OFFSET 0
#define EFUSE_FUNC_SADC_2_TPID_DC_OFFSET_12DB_MASK 0x0000ffff
#define EFUSE_FUNC_SADC_2_TPID_DC_OFFSET_24DB_OFFSET 16
#define EFUSE_FUNC_SADC_2_TPID_DC_OFFSET_24DB_MASK 0xffff0000
#define CFG_EFUSE_MAPPING_SADC_2_SECTION_W26_ADDR 0x0068
#define EFUSE_FUNC_SADC_2_METER_DC_OFFSET_N12DB_OFFSET 0
#define EFUSE_FUNC_SADC_2_METER_DC_OFFSET_N12DB_MASK 0x0000ffff
#define EFUSE_FUNC_SADC_2_METER_DC_OFFSET_N6DB_OFFSET 16
#define EFUSE_FUNC_SADC_2_METER_DC_OFFSET_N6DB_MASK 0xffff0000
#define CFG_EFUSE_MAPPING_SADC_2_SECTION_W27_ADDR 0x006c
#define EFUSE_FUNC_SADC_2_METER_DC_OFFSET_12DB_OFFSET 0
#define EFUSE_FUNC_SADC_2_METER_DC_OFFSET_12DB_MASK 0x0000ffff
#define EFUSE_FUNC_SADC_2_METER_DC_OFFSET_24DB_OFFSET 16
#define EFUSE_FUNC_SADC_2_METER_DC_OFFSET_24DB_MASK 0xffff0000
#define CFG_EFUSE_MAPPING_PATCH_SECTION_W28_ADDR 0x0070
#define EFUSE_FUNC_PATCH_ADDR6_RESERVED0_OFFSET 0
#define EFUSE_FUNC_PATCH_ADDR6_RESERVED0_MASK 0x0000ffff
#define EFUSE_FUNC_PATCH_SUB_MARK_OFFSET 16
#define EFUSE_FUNC_PATCH_SUB_MARK_MASK 0x000f0000
#define EFUSE_FUNC_PATCH_SUB_WAFER_VER_OFFSET 20
#define EFUSE_FUNC_PATCH_SUB_WAFER_VER_MASK 0x00f00000
#define EFUSE_FUNC_PATCH_SUB_SIP_OFFSET 24
#define EFUSE_FUNC_PATCH_SUB_SIP_MASK 0x0f000000
#define EFUSE_FUNC_PATCH_SUB_PROJECT_OFFSET 28
#define EFUSE_FUNC_PATCH_SUB_PROJECT_MASK 0xf0000000
#define CFG_EFUSE_MAPPING_SADC_SECTION_W29_ADDR 0x0074
#define EFUSE_FUNC_SADC_TPID_DC_OFFSET_OFFSET 0
#define EFUSE_FUNC_SADC_TPID_DC_OFFSET_MASK 0x0000ffff
#define EFUSE_FUNC_SADC_TPID_VREF_OFFSET 16
#define EFUSE_FUNC_SADC_TPID_VREF_MASK 0xffff0000
#define CFG_EFUSE_MAPPING_SADC_SECTION_W30_ADDR 0x0078
#define EFUSE_FUNC_SADC_TPID_VCM_OFFSET 0
#define EFUSE_FUNC_SADC_TPID_VCM_MASK 0x0000ffff
#define EFUSE_FUNC_SADC_METER_DC_OFFSET_OFFSET 16
#define EFUSE_FUNC_SADC_METER_DC_OFFSET_MASK 0xffff0000
#define CFG_EFUSE_MAPPING_SADC_SECTION_W31_ADDR 0x007c
#define EFUSE_FUNC_SADC_METER_VREF_OFFSET 0
#define EFUSE_FUNC_SADC_METER_VREF_MASK 0x0000ffff
#define EFUSE_FUNC_SADC_METER_VCM_OFFSET 16
#define EFUSE_FUNC_SADC_METER_VCM_MASK 0xffff0000
#pragma pack(push) /* save the pack status */
#pragma pack(1) /* 1 byte align */
typedef struct _efuse_section_ate_t {
uint8_t lot_id[6]; //byte 0~5
uint8_t wafer_id; //byte 6
uint8_t x_coor; //byte 7
uint8_t y_coor; //byte 8
uint8_t wafer_rev; //byte 9
uint8_t ft_pass_flag : 4,
analog_bin_ver : 4;
uint8_t dcdc_1p1 : 4,
ldo_1p8 : 4;
uint8_t mdll_ldo_1p1 : 4,
vbg_cntl : 3,
resv_1 : 1;
uint8_t ic_cal : 5,
rx_adc_vcm_ctrl : 3;
uint8_t ldo_2p5 : 4,
resv_2 : 4;
uint8_t mark : 4,
wafer_ver : 4;
/* sip[3]:rf_in, sip[2]:pa_in, sip[1]:psram_in, sip[0]:flash_in */
uint8_t sip : 4,
project : 4;
uint8_t resv_3;
uint8_t mac[6];
} efuse_section_ate_t;
typedef struct _efuse_section_bond_t {
uint8_t phy_cfg0_gp : 1,
phy_cfg1_sg : 1,
phy_cfg2_gd : 1,
phy_cfg3_g3 : 1,
phy_cfg4_av : 1,
phy_cfg5_ieee1901 : 1,
phy_cfg6_rfplc : 1,
resv_1 : 1;
uint8_t resv_2 : 2,
sec_aes_sha2 : 1,
sec_sm4_sm3 : 1,
sec_sm2_rsa : 1,
fft : 1,
rfplc_bonding : 1,
resfv_3 : 1;
uint8_t meter_selp : 1,
meter_seln : 1,
meter_one_phase : 1,
tpid_selp : 1,
tpid_seln : 1,
tpid_one_phase : 1,
resv_4 : 2;
uint8_t resv_5;
uint8_t phy_cfg0_gp_bak : 1,
phy_cfg1_sg_bak : 1,
phy_cfg2_gd_bak : 1,
phy_cfg3_g3_bak : 1,
phy_cfg4_av_bak : 1,
phy_cfg5_ieee1901_bak : 1,
phy_cfg6_rfplc_bak : 1,
resv_1_bak : 1;
uint8_t resv_2_bak : 2,
sec_aes_sha2_bak : 1,
sec_sm4_sm3_bak : 1,
sec_sm2_rsa_bak : 1,
fft_bak : 1,
rfplc_bonding_bak : 1,
resfv_3_bak : 1;
uint8_t meter_selp_bak : 1,
meter_seln_bak : 1,
meter_one_phase_bak : 1,
tpid_selp_bak : 1,
tpid_seln_bak : 1,
tpid_one_phase_bak : 1,
resv_4_bak : 2;
uint8_t resv_5_bak;
} efuse_section_bond_t;
typedef struct _efuse_section_iomap_t {
uint32_t iomap; //bit0 is flag, 1->valid, 0->invalid
uint32_t iomap_bak; //bit0 is flag, 1->valid, 0->invalid
} efuse_section_iomap_t;
typedef struct _efuse_section_system_config_t {
uint8_t sbl_crc_power_on : 2, //00->check crc while not fast boot, 01/10->check crc, 11->not check
sbl_crc_wdg_rst : 2, //00->check crc while not fast boot, 01/10->check crc, 11->not check
rom_err_msg_en : 1,
resv : 3;
uint8_t sbl_crc_power_on_bak : 2, //00->check crc while not fast boot, 01/10->check crc, 11->not check
sbl_crc_wdg_rst_bak : 2, //00->check crc while not fast boot, 01/10->check crc, 11->not check
rom_err_msg_en_bak : 1,
resv_bak : 3;
} efuse_section_system_config_t;
/* define valid marks for different types calibration information in ana
* section.
*/
#define EFULSE_SEC_ANA_VALID_MARK_RF_TX_IQM_DC_CALIB (1 << 0)
/* rf tx iqm and dc calibration compensate info layout */
typedef struct {
/* tx I MAG balance compensate value, range: 0~15 */
uint8_t i_mag : 4,
/* tx Q MAG balance compensate value, range: 0~15 */
q_mag : 4;
/* tx I phase compensate value, range: 0~31 */
uint8_t i_phase;
/* tx Q phase compensate value, range: 0~31 */
uint8_t q_phase;
/* tx I dc compensate value, range: -127~127 */
int8_t i_dc;
/* tx Q dc compensate value, range: -127~127 */
int8_t q_dc;
} efuse_section_ana_rf_tx_iqm_dc_t;
/* rf calibration compensation information layout */
typedef struct _efuse_section_ana_t {
/* compensate value valid mark flag bm
* bit0: rf tx iqm and dc calibration compensate value valid mark
* bit1~7: rsvd
*/
uint8_t valid_mark;
/* rf tx iq mismatch and dc calibration info */
efuse_section_ana_rf_tx_iqm_dc_t tx_iqm_dc;
/* reserved for further use */
uint8_t rsvd[10];
} efuse_section_ana_t;
typedef struct _efsue_section_rom_patch_t {
uint8_t valid_flag; //patch0~6 valid flag
uint8_t valid_flag_bak; //patch0~6 valid flag
uint8_t patch_0_pos : 4,
patch_1_pos : 4;
uint8_t patch_2_pos : 4,
patch_3_pos : 4;
uint8_t resv[2];
uint32_t patch_0_addr;
uint32_t patch_0_data;
uint32_t patch_1_addr;
uint32_t patch_1_data;
uint32_t patch_2_addr;
uint32_t patch_2_data;
uint32_t patch_3_addr;
uint32_t patch_3_data;
} efuse_section_rom_patch_t;
typedef struct _efuse_section_sadc_2_t {
uint16_t tpid_dc_offset_n12db;
uint16_t tpid_dc_offset_n6db;
uint16_t tpid_dc_offset_12db;
uint16_t tpid_dc_offset_24db;
uint16_t meter_dc_offset_n12db;
uint16_t meter_dc_offset_n6db;
uint16_t meter_dc_offset_12db;
uint16_t meter_dc_offset_24db;
} efuse_section_sadc_2_t;
typedef struct _efsue_section_subid_t {
uint8_t resv_2[2];
uint8_t sub_mark : 4,
sub_wafer_ver : 4;
/* sip[3]:rf_in, sip[2]:pa_in, sip[1]:psram_in, sip[0]:flash_in */
uint8_t sub_sip : 4,
sub_project : 4;
} efuse_section_subid_t;
typedef struct _efuse_section_sadc_t {
uint16_t tpid_dc_offset_code;
uint16_t tpid_vref_code;
uint16_t tpid_vcm_code;
uint16_t meter_dc_offset_code;
uint16_t meter_vref_code;
uint16_t meter_vcm_code;
} efuse_section_sadc_t;
typedef struct _efuse_section_t {
efuse_section_ate_t ate;
efuse_section_bond_t bond;
efuse_section_iomap_t iomap;
efuse_section_system_config_t system;
efuse_section_ana_t ana;
efuse_section_rom_patch_t rom_patch;
efuse_section_sadc_2_t sadc_2;
efuse_section_subid_t subid;
efuse_section_sadc_t sadc;
} efuse_section_t;
#pragma pack(pop) /* restore the pack status */