386 lines
13 KiB
C
Executable File
386 lines
13 KiB
C
Executable File
|
|
//-----------------------------------
|
|
#define CFG_SFC_RVER_ADDR 0x0000
|
|
#define SFC_RF_VER_OFFSET 0
|
|
#define SFC_RF_VER_MASK 0x0000FFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_CMD0_ADDR 0x0004
|
|
#define SW_SFC_ENA_OFFSET 31
|
|
#define SW_SFC_ENA_MASK 0x80000000
|
|
#define SW_SFC_DLEN_OFFSET 16
|
|
#define SW_SFC_DLEN_MASK 0x01FF0000
|
|
#define SW_SFC_CMODE_OFFSET 8
|
|
#define SW_SFC_CMODE_MASK 0x0000FF00
|
|
#define SW_SFC_MODE_OFFSET 0
|
|
#define SW_SFC_MODE_MASK 0x00000003
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_CMD1_ADDR 0x0008
|
|
#define SW_SFC_CMD_OFFSET 24
|
|
#define SW_SFC_CMD_MASK 0xFF000000
|
|
#define SW_SFC_ADDR_OFFSET 0
|
|
#define SW_SFC_ADDR_MASK 0x00FFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_CTRL0_ADDR 0x000c
|
|
#define SFC_SW_FORCE_MODE_OFFSET 31
|
|
#define SFC_SW_FORCE_MODE_MASK 0x80000000
|
|
|
|
//-----------------------------------
|
|
#define CFG_SPI_CS0_CFG_ADDR 0x0010
|
|
#define SPI_CS1_FORCE_SEL_OFFSET 4
|
|
#define SPI_CS1_FORCE_SEL_MASK 0x00000010
|
|
#define SPI_CS0_SIZE_OFFSET 0
|
|
#define SPI_CS0_SIZE_MASK 0x0000000F
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_CFG0_ADDR 0x0030
|
|
#define SFC_DATA_LE_OFFSET 16
|
|
#define SFC_DATA_LE_MASK 0x00010000
|
|
#define SFC_DUMMY_NUM_OFFSET 12
|
|
#define SFC_DUMMY_NUM_MASK 0x00003000
|
|
#define SFC_PROG_SUS_ENA_OFFSET 8
|
|
#define SFC_PROG_SUS_ENA_MASK 0x00000100
|
|
#define SPI_1P8V_OFFSET 5
|
|
#define SPI_1P8V_MASK 0x00000020
|
|
#define SFC_CRYPT_MODE_OFFSET 4
|
|
#define SFC_CRYPT_MODE_MASK 0x00000010
|
|
#define SFC_CACHE_RD_MODE_OFFSET 0
|
|
#define SFC_CACHE_RD_MODE_MASK 0x00000007
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_CLK0_ADDR 0x0034
|
|
#define CLK_SPI_SFC_FORCE_DIV_OFFSET 5
|
|
#define CLK_SPI_SFC_FORCE_DIV_MASK 0x00000020
|
|
#define CLK_SPI_SFC_ENA_OFFSET 4
|
|
#define CLK_SPI_SFC_ENA_MASK 0x00000010
|
|
#define CLK_SPI_SFC_DIV_OFFSET 0
|
|
#define CLK_SPI_SFC_DIV_MASK 0x00000007
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_CFG1_ADDR 0x0040
|
|
#define PE_WAIT_TIME_OFFSET 0
|
|
#define PE_WAIT_TIME_MASK 0xFFFFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_CFG2_ADDR 0x00044
|
|
#define RESUME_WAIT_TIME_OFFSET 16
|
|
#define RESUME_WAIT_TIME_MASK 0x03FF0000
|
|
#define SUS_WAIT_TIME_OFFSET 0
|
|
#define SUS_WAIT_TIME_MASK 0x0000FFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_STS0_ADDR 0x0048
|
|
#define SFC_CTRL_FSM_STATE_OFFSET 4
|
|
#define SFC_CTRL_FSM_STATE_MASK 0x000001F0
|
|
#define SFC_SPI_FSM_STATE_OFFSET 0
|
|
#define SFC_SPI_FSM_STATE_MASK 0x00000007
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_RDATA_ADDR 0x004c
|
|
#define SW_SFC_RDATA_OFFSET 0
|
|
#define SW_SFC_RDATA_MASK 0xFFFFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_WDATA_ADDR 0x0050
|
|
#define SW_SFC_WDATA_OFFSET 0
|
|
#define SW_SFC_WDATA_MASK 0xFFFFFFFF
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_DBG_ADDR 0x0054
|
|
#define SFC_SMC_ARB_SHARE_OFFSET 9
|
|
#define SFC_SMC_ARB_SHARE_MASK 0x00000200
|
|
#define SFC_WIP_SEL_OFFSET 6
|
|
#define SFC_WIP_SEL_MASK 0x000001C0
|
|
#define SFC_SMC_IO_SHARE_OFFSET 5
|
|
#define SFC_SMC_IO_SHARE_MASK 0x00000020
|
|
#define SFC_TX_EDGE_SEL_OFFSET 4
|
|
#define SFC_TX_EDGE_SEL_MASK 0x00000010
|
|
#define SFC_ADDR_MAP_MODE_OFFSET 3
|
|
#define SFC_ADDR_MAP_MODE_MASK 0x00000008
|
|
#define SFC_ADDR_MAP_ENA_OFFSET 2
|
|
#define SFC_ADDR_MAP_ENA_MASK 0x00000004
|
|
#define SFC_RX_EDGE_SEL_OFFSET 1
|
|
#define SFC_RX_EDGE_SEL_MASK 0x00000002
|
|
#define SFC_CLK_FORCE_OUT_OFFSET 0
|
|
#define SFC_CLK_FORCE_OUT_MASK 0x00000001
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_AMAP0_ADDR 0x0060
|
|
#define SFC_ABLK3_MAP_OFFSET 24
|
|
#define SFC_ABLK3_MAP_MASK 0x1F000000
|
|
#define SFC_ABLK2_MAP_OFFSET 16
|
|
#define SFC_ABLK2_MAP_MASK 0x001F0000
|
|
#define SFC_ABLK1_MAP_OFFSET 8
|
|
#define SFC_ABLK1_MAP_MASK 0x00001F00
|
|
#define SFC_ABLK0_MAP_OFFSET 0
|
|
#define SFC_ABLK0_MAP_MASK 0x0000001F
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_AMAP1_ADDR 0x0064
|
|
#define SFC_ABLK7_MAP_OFFSET 24
|
|
#define SFC_ABLK7_MAP_MASK 0x1F000000
|
|
#define SFC_ABLK6_MAP_OFFSET 16
|
|
#define SFC_ABLK6_MAP_MASK 0x001F0000
|
|
#define SFC_ABLK5_MAP_OFFSET 8
|
|
#define SFC_ABLK5_MAP_MASK 0x00001F00
|
|
#define SFC_ABLK4_MAP_OFFSET 0
|
|
#define SFC_ABLK4_MAP_MASK 0x0000001F
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_AMAP2_ADDR 0x0068
|
|
#define SFC_ABLK11_MAP_OFFSET 24
|
|
#define SFC_ABLK11_MAP_MASK 0x1F000000
|
|
#define SFC_ABLK10_MAP_OFFSET 16
|
|
#define SFC_ABLK10_MAP_MASK 0x001F0000
|
|
#define SFC_ABLK9_MAP_OFFSET 8
|
|
#define SFC_ABLK9_MAP_MASK 0x00001F00
|
|
#define SFC_ABLK8_MAP_OFFSET 0
|
|
#define SFC_ABLK8_MAP_MASK 0x0000001F
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_AMAP3_ADDR 0x006c
|
|
#define SFC_ABLK15_MAP_OFFSET 24
|
|
#define SFC_ABLK15_MAP_MASK 0x1F000000
|
|
#define SFC_ABLK14_MAP_OFFSET 16
|
|
#define SFC_ABLK14_MAP_MASK 0x001F0000
|
|
#define SFC_ABLK13_MAP_OFFSET 8
|
|
#define SFC_ABLK13_MAP_MASK 0x00001F00
|
|
#define SFC_ABLK12_MAP_OFFSET 0
|
|
#define SFC_ABLK12_MAP_MASK 0x0000001F
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_AMAP4_ADDR 0x0070
|
|
#define SFC_ABLK19_MAP_OFFSET 24
|
|
#define SFC_ABLK19_MAP_MASK 0x1F000000
|
|
#define SFC_ABLK18_MAP_OFFSET 16
|
|
#define SFC_ABLK18_MAP_MASK 0x001F0000
|
|
#define SFC_ABLK17_MAP_OFFSET 8
|
|
#define SFC_ABLK17_MAP_MASK 0x00001F00
|
|
#define SFC_ABLK16_MAP_OFFSET 0
|
|
#define SFC_ABLK16_MAP_MASK 0x0000001F
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_AMAP5_ADDR 0x0074
|
|
#define SFC_ABLK23_MAP_OFFSET 24
|
|
#define SFC_ABLK23_MAP_MASK 0x1F000000
|
|
#define SFC_ABLK22_MAP_OFFSET 16
|
|
#define SFC_ABLK22_MAP_MASK 0x001F0000
|
|
#define SFC_ABLK21_MAP_OFFSET 8
|
|
#define SFC_ABLK21_MAP_MASK 0x00001F00
|
|
#define SFC_ABLK20_MAP_OFFSET 0
|
|
#define SFC_ABLK20_MAP_MASK 0x0000001F
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_AMAP6_ADDR 0x0078
|
|
#define SFC_ABLK27_MAP_OFFSET 24
|
|
#define SFC_ABLK27_MAP_MASK 0x1F000000
|
|
#define SFC_ABLK26_MAP_OFFSET 16
|
|
#define SFC_ABLK26_MAP_MASK 0x001F0000
|
|
#define SFC_ABLK25_MAP_OFFSET 8
|
|
#define SFC_ABLK25_MAP_MASK 0x00001F00
|
|
#define SFC_ABLK24_MAP_OFFSET 0
|
|
#define SFC_ABLK24_MAP_MASK 0x0000001F
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_AMAP7_ADDR 0x007c
|
|
#define SFC_ABLK31_MAP_OFFSET 24
|
|
#define SFC_ABLK31_MAP_MASK 0x1F000000
|
|
#define SFC_ABLK30_MAP_OFFSET 16
|
|
#define SFC_ABLK30_MAP_MASK 0x001F0000
|
|
#define SFC_ABLK29_MAP_OFFSET 8
|
|
#define SFC_ABLK29_MAP_MASK 0x00001F00
|
|
#define SFC_ABLK28_MAP_OFFSET 0
|
|
#define SFC_ABLK28_MAP_MASK 0x0000001F
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_SWM_CFG0_ADDR 0x0080
|
|
#define CFG_SPI_WR_OFFSET 9
|
|
#define CFG_SPI_WR_MASK 0x00000200
|
|
#define CFG_SPI_RD_OFFSET 8
|
|
#define CFG_SPI_RD_MASK 0x00000100
|
|
#define CFG_CMD_DUAL_MODE_OFFSET 7
|
|
#define CFG_CMD_DUAL_MODE_MASK 0x00000080
|
|
#define CFG_CMD_QUAD_MODE_OFFSET 6
|
|
#define CFG_CMD_QUAD_MODE_MASK 0x00000040
|
|
#define CFG_ADDR_DUAL_MODE_OFFSET 5
|
|
#define CFG_ADDR_DUAL_MODE_MASK 0x00000020
|
|
#define CFG_ADDR_QUAD_MODE_OFFSET 4
|
|
#define CFG_ADDR_QUAD_MODE_MASK 0x00000010
|
|
#define CFG_CMODE_DUAL_MODE_OFFSET 3
|
|
#define CFG_CMODE_DUAL_MODE_MASK 0x00000008
|
|
#define CFG_CMODE_QUAD_MODE_OFFSET 2
|
|
#define CFG_CMODE_QUAD_MODE_MASK 0x00000004
|
|
#define CFG_DATA_DUAL_MODE_OFFSET 1
|
|
#define CFG_DATA_DUAL_MODE_MASK 0x00000002
|
|
#define CFG_DATA_QUAD_MODE_OFFSET 0
|
|
#define CFG_DATA_QUAD_MODE_MASK 0x00000001
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_SWM_CFG1_ADDR 0x0084
|
|
#define CFG_CMD_LEN_OFFSET 24
|
|
#define CFG_CMD_LEN_MASK 0x1F000000
|
|
#define CFG_ADDR_LEN_OFFSET 16
|
|
#define CFG_ADDR_LEN_MASK 0x001F0000
|
|
#define CFG_CMODE_LEN_OFFSET 8
|
|
#define CFG_CMODE_LEN_MASK 0x00001F00
|
|
#define CFG_DUMMY_LEN_OFFSET 0
|
|
#define CFG_DUMMY_LEN_MASK 0x0000001F
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_SWM_CFG2_ADDR 0x0088
|
|
#define CFG_CACHE_CMD_OFFSET 24
|
|
#define CFG_CACHE_CMD_MASK 0xFF000000
|
|
#define CFG_WIP_CMD_OFFSET 16
|
|
#define CFG_WIP_CMD_MASK 0x00FF0000
|
|
#define CFG_RESUME_CMD_OFFSET 8
|
|
#define CFG_RESUME_CMD_MASK 0x0000FF00
|
|
#define CFG_SUS_CMD_OFFSET 0
|
|
#define CFG_SUS_CMD_MASK 0x000000FF
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_CACHE_CFG0_ADDR 0x008c
|
|
#define CACHE_SPI_WR_OFFSET 9
|
|
#define CACHE_SPI_WR_MASK 0x00000200
|
|
#define CACHE_SPI_RD_OFFSET 8
|
|
#define CACHE_SPI_RD_MASK 0x00000100
|
|
#define CACHE_CMD_DUAL_MODE_OFFSET 7
|
|
#define CACHE_CMD_DUAL_MODE_MASK 0x00000080
|
|
#define CACHE_CMD_QUAD_MODE_OFFSET 6
|
|
#define CACHE_CMD_QUAD_MODE_MASK 0x00000040
|
|
#define CACHE_ADDR_DUAL_MODE_OFFSET 5
|
|
#define CACHE_ADDR_DUAL_MODE_MASK 0x00000020
|
|
#define CACHE_ADDR_QUAD_MODE_OFFSET 4
|
|
#define CACHE_ADDR_QUAD_MODE_MASK 0x00000010
|
|
#define CACHE_CMODE_DUAL_MODE_OFFSET 3
|
|
#define CACHE_CMODE_DUAL_MODE_MASK 0x00000008
|
|
#define CACHE_CMODE_QUAD_MODE_OFFSET 2
|
|
#define CACHE_CMODE_QUAD_MODE_MASK 0x00000004
|
|
#define CACHE_DATA_DUAL_MODE_OFFSET 1
|
|
#define CACHE_DATA_DUAL_MODE_MASK 0x00000002
|
|
#define CACHE_DATA_QUAD_MODE_OFFSET 0
|
|
#define CACHE_DATA_QUAD_MODE_MASK 0x00000001
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_CACHE_CFG1_ADDR 0x0090
|
|
#define CACHE_CMD_LEN_OFFSET 24
|
|
#define CACHE_CMD_LEN_MASK 0x1F000000
|
|
#define CACHE_ADDR_LEN_OFFSET 16
|
|
#define CACHE_ADDR_LEN_MASK 0x001F0000
|
|
#define CACHE_CMODE_LEN_OFFSET 8
|
|
#define CACHE_CMODE_LEN_MASK 0x00001F00
|
|
#define CACHE_DUMMY_LEN_OFFSET 0
|
|
#define CACHE_DUMMY_LEN_MASK 0x0000001F
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_WIP_CFG0_ADDR 0x0094
|
|
#define WIP_SPI_WR_OFFSET 9
|
|
#define WIP_SPI_WR_MASK 0x00000200
|
|
#define WIP_SPI_RD_OFFSET 8
|
|
#define WIP_SPI_RD_MASK 0x00000100
|
|
#define WIP_CMD_DUAL_MODE_OFFSET 7
|
|
#define WIP_CMD_DUAL_MODE_MASK 0x00000080
|
|
#define WIP_CMD_QUAD_MODE_OFFSET 6
|
|
#define WIP_CMD_QUAD_MODE_MASK 0x00000040
|
|
#define WIP_ADDR_DUAL_MODE_OFFSET 5
|
|
#define WIP_ADDR_DUAL_MODE_MASK 0x00000020
|
|
#define WIP_ADDR_QUAD_MODE_OFFSET 4
|
|
#define WIP_ADDR_QUAD_MODE_MASK 0x00000010
|
|
#define WIP_CMODE_DUAL_MODE_OFFSET 3
|
|
#define WIP_CMODE_DUAL_MODE_MASK 0x00000008
|
|
#define WIP_CMODE_QUAD_MODE_OFFSET 2
|
|
#define WIP_CMODE_QUAD_MODE_MASK 0x00000004
|
|
#define WIP_DATA_DUAL_MODE_OFFSET 1
|
|
#define WIP_DATA_DUAL_MODE_MASK 0x00000002
|
|
#define WIP_DATA_QUAD_MODE_OFFSET 0
|
|
#define WIP_DATA_QUAD_MODE_MASK 0x00000001
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_WIP_CFG1_ADDR 0x0098
|
|
#define WIP_CMD_LEN_OFFSET 24
|
|
#define WIP_CMD_LEN_MASK 0x1F000000
|
|
#define WIP_ADDR_LEN_OFFSET 16
|
|
#define WIP_ADDR_LEN_MASK 0x001F0000
|
|
#define WIP_CMODE_LEN_OFFSET 8
|
|
#define WIP_CMODE_LEN_MASK 0x00001F00
|
|
#define WIP_DUMMY_LEN_OFFSET 0
|
|
#define WIP_DUMMY_LEN_MASK 0x0000001F
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_RESUME_CFG0_ADDR 0x009c
|
|
#define RESUME_SPI_WR_OFFSET 9
|
|
#define RESUME_SPI_WR_MASK 0x00000200
|
|
#define RESUME_SPI_RD_OFFSET 8
|
|
#define RESUME_SPI_RD_MASK 0x00000100
|
|
#define RESUME_CMD_DUAL_MODE_OFFSET 7
|
|
#define RESUME_CMD_DUAL_MODE_MASK 0x00000080
|
|
#define RESUME_CMD_QUAD_MODE_OFFSET 6
|
|
#define RESUME_CMD_QUAD_MODE_MASK 0x00000040
|
|
#define RESUME_ADDR_DUAL_MODE_OFFSET 5
|
|
#define RESUME_ADDR_DUAL_MODE_MASK 0x00000020
|
|
#define RESUME_ADDR_QUAD_MODE_OFFSET 4
|
|
#define RESUME_ADDR_QUAD_MODE_MASK 0x00000010
|
|
#define RESUME_CMODE_DUAL_MODE_OFFSET 3
|
|
#define RESUME_CMODE_DUAL_MODE_MASK 0x00000008
|
|
#define RESUME_CMODE_QUAD_MODE_OFFSET 2
|
|
#define RESUME_CMODE_QUAD_MODE_MASK 0x00000004
|
|
#define RESUME_DATA_DUAL_MODE_OFFSET 1
|
|
#define RESUME_DATA_DUAL_MODE_MASK 0x00000002
|
|
#define RESUME_DATA_QUAD_MODE_OFFSET 0
|
|
#define RESUME_DATA_QUAD_MODE_MASK 0x00000001
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_RESUME_CFG1_ADDR 0x00a0
|
|
#define RESUME_CMD_LEN_OFFSET 24
|
|
#define RESUME_CMD_LEN_MASK 0x1F000000
|
|
#define RESUME_ADDR_LEN_OFFSET 16
|
|
#define RESUME_ADDR_LEN_MASK 0x001F0000
|
|
#define RESUME_CMODE_LEN_OFFSET 8
|
|
#define RESUME_CMODE_LEN_MASK 0x00001F00
|
|
#define RESUME_DUMMY_LEN_OFFSET 0
|
|
#define RESUME_DUMMY_LEN_MASK 0x0000001F
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_SUS_CFG0_ADDR 0x00a4
|
|
#define SUS_SPI_WR_OFFSET 9
|
|
#define SUS_SPI_WR_MASK 0x00000200
|
|
#define SUS_SPI_RD_OFFSET 8
|
|
#define SUS_SPI_RD_MASK 0x00000100
|
|
#define SUS_CMD_DUAL_MODE_OFFSET 7
|
|
#define SUS_CMD_DUAL_MODE_MASK 0x00000080
|
|
#define SUS_CMD_QUAD_MODE_OFFSET 6
|
|
#define SUS_CMD_QUAD_MODE_MASK 0x00000040
|
|
#define SUS_ADDR_DUAL_MODE_OFFSET 5
|
|
#define SUS_ADDR_DUAL_MODE_MASK 0x00000020
|
|
#define SUS_ADDR_QUAD_MODE_OFFSET 4
|
|
#define SUS_ADDR_QUAD_MODE_MASK 0x00000010
|
|
#define SUS_CMODE_DUAL_MODE_OFFSET 3
|
|
#define SUS_CMODE_DUAL_MODE_MASK 0x00000008
|
|
#define SUS_CMODE_QUAD_MODE_OFFSET 2
|
|
#define SUS_CMODE_QUAD_MODE_MASK 0x00000004
|
|
#define SUS_DATA_DUAL_MODE_OFFSET 1
|
|
#define SUS_DATA_DUAL_MODE_MASK 0x00000002
|
|
#define SUS_DATA_QUAD_MODE_OFFSET 0
|
|
#define SUS_DATA_QUAD_MODE_MASK 0x00000001
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_SUS_CFG1_ADDR 0x00a8
|
|
#define SUS_CMD_LEN_OFFSET 24
|
|
#define SUS_CMD_LEN_MASK 0x1F000000
|
|
#define SUS_ADDR_LEN_OFFSET 16
|
|
#define SUS_ADDR_LEN_MASK 0x001F0000
|
|
#define SUS_CMODE_LEN_OFFSET 8
|
|
#define SUS_CMODE_LEN_MASK 0x00001F00
|
|
#define SUS_DUMMY_LEN_OFFSET 0
|
|
#define SUS_DUMMY_LEN_MASK 0x0000001F
|
|
|
|
//-----------------------------------
|
|
#define CFG_SFC_PE_PAUSE_CFG_ADDR 0x000ac
|
|
#define PAUSE_WAIT_TIME_OFFSET 0
|
|
#define PAUSE_WAIT_TIME_MASK 0x000003FF
|
|
|
|
//HW module read/write macro
|
|
#define SFC_RF_READ_REG(addr) SOC_READ_REG(SFC_RF_BASEADDR + addr)
|
|
#define SFC_RF_WRITE_REG(addr,value) SOC_WRITE_REG(SFC_RF_BASEADDR + addr,value)
|