506 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			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 */
 | 
						|
 |