167 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			167 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | 
 | ||
|  | //-----------------------------------
 | ||
|  | #define CFG_SMC_RVER_ADDR 0x0000
 | ||
|  | #define SMC_RF_VER_OFFSET 0
 | ||
|  | #define SMC_RF_VER_MASK 0x0000FFFF
 | ||
|  | 
 | ||
|  | //-----------------------------------
 | ||
|  | #define CFG_SMC_CMD0_ADDR 0x0004
 | ||
|  | #define SW_SMC_ENA_OFFSET 31
 | ||
|  | #define SW_SMC_ENA_MASK 0x80000000
 | ||
|  | #define SW_SMC_DLEN_OFFSET 16
 | ||
|  | #define SW_SMC_DLEN_MASK 0x01FF0000
 | ||
|  | #define SW_SMC_CMODE_OFFSET 8
 | ||
|  | #define SW_SMC_CMODE_MASK 0x0000FF00
 | ||
|  | #define SW_SMC_MODE_OFFSET 0
 | ||
|  | #define SW_SMC_MODE_MASK 0x00000003
 | ||
|  | 
 | ||
|  | //-----------------------------------
 | ||
|  | #define CFG_SMC_CMD1_ADDR 0x0008
 | ||
|  | #define SW_SMC_CMD_OFFSET 24
 | ||
|  | #define SW_SMC_CMD_MASK 0xFF000000
 | ||
|  | #define SW_SMC_ADDR_OFFSET 0
 | ||
|  | #define SW_SMC_ADDR_MASK 0x00FFFFFF
 | ||
|  | 
 | ||
|  | //-----------------------------------
 | ||
|  | #define CFG_SMC_CFG0_ADDR 0x000c
 | ||
|  | #define SOFT_SMC_MODE_OFFSET 25
 | ||
|  | #define SOFT_SMC_MODE_MASK 0x02000000
 | ||
|  | #define SMC_DATA_LE_OFFSET 24
 | ||
|  | #define SMC_DATA_LE_MASK 0x01000000
 | ||
|  | #define SMC_DUMMY_NUM_OFFSET 20
 | ||
|  | #define SMC_DUMMY_NUM_MASK 0x00300000
 | ||
|  | #define SMC_CLK_SPI_DIV2_OFFSET 16
 | ||
|  | #define SMC_CLK_SPI_DIV2_MASK 0x00010000
 | ||
|  | #define SMC_SPI_QPI_MODE_OFFSET 12
 | ||
|  | #define SMC_SPI_QPI_MODE_MASK 0x00001000
 | ||
|  | #define SMC_CACHE_WR_MODE_OFFSET 8
 | ||
|  | #define SMC_CACHE_WR_MODE_MASK 0x00000700
 | ||
|  | #define SMC_CRYPT_MODE_OFFSET 4
 | ||
|  | #define SMC_CRYPT_MODE_MASK 0x00000010
 | ||
|  | #define SMC_CACHE_RD_MODE_OFFSET 0
 | ||
|  | #define SMC_CACHE_RD_MODE_MASK 0x00000007
 | ||
|  | 
 | ||
|  | //-----------------------------------
 | ||
|  | #define CFG_SMC_CLK0_ADDR 0x0010
 | ||
|  | #define CLK_SPI_SMC_FORCE_DIV_OFFSET 5
 | ||
|  | #define CLK_SPI_SMC_FORCE_DIV_MASK 0x00000020
 | ||
|  | #define CLK_SPI_SMC_ENA_OFFSET 4
 | ||
|  | #define CLK_SPI_SMC_ENA_MASK 0x00000010
 | ||
|  | #define CLK_SPI_SMC_DIV_OFFSET 0
 | ||
|  | #define CLK_SPI_SMC_DIV_MASK 0x00000007
 | ||
|  | 
 | ||
|  | //-----------------------------------
 | ||
|  | #define CFG_SMC_STS0_ADDR 0x0018
 | ||
|  | #define SMC_FSM_STATE_OFFSET 4
 | ||
|  | #define SMC_FSM_STATE_MASK 0x000001F0
 | ||
|  | #define SPI_FSM_STATE_OFFSET 0
 | ||
|  | #define SPI_FSM_STATE_MASK 0x00000007
 | ||
|  | 
 | ||
|  | //-----------------------------------
 | ||
|  | #define CFG_SMC_RDATA_ADDR 0x001c
 | ||
|  | #define SW_SMC_RDATA_OFFSET 0
 | ||
|  | #define SW_SMC_RDATA_MASK 0xFFFFFFFF
 | ||
|  | 
 | ||
|  | //-----------------------------------
 | ||
|  | #define CFG_SMC_WDATA_ADDR 0x0020
 | ||
|  | #define SW_SMC_WDATA_OFFSET 0
 | ||
|  | #define SW_SMC_WDATA_MASK 0xFFFFFFFF
 | ||
|  | 
 | ||
|  | //-----------------------------------
 | ||
|  | #define CFG_SMC_DBG0_ADDR 0x0024
 | ||
|  | #define SMC_CLK_FORCE_OUT_OFFSET 2
 | ||
|  | #define SMC_CLK_FORCE_OUT_MASK 0x00000004
 | ||
|  | #define SMC_TX_EDGE_SEL_OFFSET 1
 | ||
|  | #define SMC_TX_EDGE_SEL_MASK 0x00000002
 | ||
|  | #define SMC_RX_EDGE_SEL_OFFSET 0
 | ||
|  | #define SMC_RX_EDGE_SEL_MASK 0x00000001
 | ||
|  | 
 | ||
|  | //-----------------------------------
 | ||
|  | #define CFG_SMC_SWM_CFG0_ADDR 0x0028
 | ||
|  | #define SMC_CFG_SPI_WR_OFFSET 9
 | ||
|  | #define SMC_CFG_SPI_WR_MASK 0x00000200
 | ||
|  | #define SMC_CFG_SPI_RD_OFFSET 8
 | ||
|  | #define SMC_CFG_SPI_RD_MASK 0x00000100
 | ||
|  | #define SMC_CFG_CMD_DUAL_MODE_OFFSET 7
 | ||
|  | #define SMC_CFG_CMD_DUAL_MODE_MASK 0x00000080
 | ||
|  | #define SMC_CFG_CMD_QUAD_MODE_OFFSET 6
 | ||
|  | #define SMC_CFG_CMD_QUAD_MODE_MASK 0x00000040
 | ||
|  | #define SMC_CFG_ADDR_DUAL_MODE_OFFSET 5
 | ||
|  | #define SMC_CFG_ADDR_DUAL_MODE_MASK 0x00000020
 | ||
|  | #define SMC_CFG_ADDR_QUAD_MODE_OFFSET 4
 | ||
|  | #define SMC_CFG_ADDR_QUAD_MODE_MASK 0x00000010
 | ||
|  | #define SMC_CFG_DATA_DUAL_MODE_OFFSET 1
 | ||
|  | #define SMC_CFG_DATA_DUAL_MODE_MASK 0x00000002
 | ||
|  | #define SMC_CFG_DATA_QUAD_MODE_OFFSET 0
 | ||
|  | #define SMC_CFG_DATA_QUAD_MODE_MASK 0x00000001
 | ||
|  | 
 | ||
|  | //-----------------------------------
 | ||
|  | #define CFG_SMC_SWM_CFG1_ADDR 0x002c
 | ||
|  | #define SMC_CFG_CMD_LEN_OFFSET 24
 | ||
|  | #define SMC_CFG_CMD_LEN_MASK 0x1F000000
 | ||
|  | #define SMC_CFG_ADDR_LEN_OFFSET 16
 | ||
|  | #define SMC_CFG_ADDR_LEN_MASK 0x001F0000
 | ||
|  | #define SMC_CFG_CMODE_LEN_OFFSET 8
 | ||
|  | #define SMC_CFG_CMODE_LEN_MASK 0x00001F00
 | ||
|  | #define SMC_CFG_DUMMY_LEN_OFFSET 0
 | ||
|  | #define SMC_CFG_DUMMY_LEN_MASK 0x0000001F
 | ||
|  | 
 | ||
|  | //-----------------------------------
 | ||
|  | #define CFG_SMC_CACHE_CFG_ADDR 0x0030
 | ||
|  | #define SMC_CACHE_RD_CMD_OFFSET 24
 | ||
|  | #define SMC_CACHE_RD_CMD_MASK 0xFF000000
 | ||
|  | #define SMC_CACHE_WR_CMD_OFFSET 16
 | ||
|  | #define SMC_CACHE_WR_CMD_MASK 0x00FF0000
 | ||
|  | 
 | ||
|  | //-----------------------------------
 | ||
|  | #define CFG_SMC_CACHE_RCFG0_ADDR 0x0034
 | ||
|  | #define CACHE_RD_CMD_DUAL_MODE_OFFSET 7
 | ||
|  | #define CACHE_RD_CMD_DUAL_MODE_MASK 0x00000080
 | ||
|  | #define CACHE_RD_CMD_QUAD_MODE_OFFSET 6
 | ||
|  | #define CACHE_RD_CMD_QUAD_MODE_MASK 0x00000040
 | ||
|  | #define CACHE_RD_ADDR_DUAL_MODE_OFFSET 5
 | ||
|  | #define CACHE_RD_ADDR_DUAL_MODE_MASK 0x00000020
 | ||
|  | #define CACHE_RD_ADDR_QUAD_MODE_OFFSET 4
 | ||
|  | #define CACHE_RD_ADDR_QUAD_MODE_MASK 0x00000010
 | ||
|  | #define CACHE_RD_DATA_DUAL_MODE_OFFSET 1
 | ||
|  | #define CACHE_RD_DATA_DUAL_MODE_MASK 0x00000002
 | ||
|  | #define CACHE_RD_DATA_QUAD_MODE_OFFSET 0
 | ||
|  | #define CACHE_RD_DATA_QUAD_MODE_MASK 0x00000001
 | ||
|  | 
 | ||
|  | //-----------------------------------
 | ||
|  | #define CFG_SMC_CACHE_RCFG1_ADDR 0x0038
 | ||
|  | #define CACHE_RD_CMD_LEN_OFFSET 24
 | ||
|  | #define CACHE_RD_CMD_LEN_MASK 0x1F000000
 | ||
|  | #define CACHE_RD_ADDR_LEN_OFFSET 16
 | ||
|  | #define CACHE_RD_ADDR_LEN_MASK 0x001F0000
 | ||
|  | #define CACHE_RD_DUMMY_LEN_OFFSET 0
 | ||
|  | #define CACHE_RD_DUMMY_LEN_MASK 0x0000001F
 | ||
|  | 
 | ||
|  | //-----------------------------------
 | ||
|  | #define CFG_SMC_CACHE_WCFG0_ADDR 0x003c
 | ||
|  | #define CACHE_WR_CMD_DUAL_MODE_OFFSET 7
 | ||
|  | #define CACHE_WR_CMD_DUAL_MODE_MASK 0x00000080
 | ||
|  | #define CACHE_WR_CMD_QUAD_MODE_OFFSET 6
 | ||
|  | #define CACHE_WR_CMD_QUAD_MODE_MASK 0x00000040
 | ||
|  | #define CACHE_WR_ADDR_DUAL_MODE_OFFSET 5
 | ||
|  | #define CACHE_WR_ADDR_DUAL_MODE_MASK 0x00000020
 | ||
|  | #define CACHE_WR_ADDR_QUAD_MODE_OFFSET 4
 | ||
|  | #define CACHE_WR_ADDR_QUAD_MODE_MASK 0x00000010
 | ||
|  | #define CACHE_WR_DATA_DUAL_MODE_OFFSET 1
 | ||
|  | #define CACHE_WR_DATA_DUAL_MODE_MASK 0x00000002
 | ||
|  | #define CACHE_WR_DATA_QUAD_MODE_OFFSET 0
 | ||
|  | #define CACHE_WR_DATA_QUAD_MODE_MASK 0x00000001
 | ||
|  | 
 | ||
|  | //-----------------------------------
 | ||
|  | #define CFG_SMC_CACHE_WCFG1_ADDR 0x0040
 | ||
|  | #define CACHE_WR_CMD_LEN_OFFSET 24
 | ||
|  | #define CACHE_WR_CMD_LEN_MASK 0x1F000000
 | ||
|  | #define CACHE_WR_ADDR_LEN_OFFSET 16
 | ||
|  | #define CACHE_WR_ADDR_LEN_MASK 0x001F0000
 | ||
|  | #define CACHE_WR_DUMMY_LEN_OFFSET 0
 | ||
|  | #define CACHE_WR_DUMMY_LEN_MASK 0x0000001F
 | ||
|  | 
 | ||
|  | //HW module read/write macro
 | ||
|  | #define SMC_RF_READ_REG(addr) SOC_READ_REG(SMC_RF_BASEADDR + addr)
 | ||
|  | #define SMC_RF_WRITE_REG(addr,value) SOC_WRITE_REG(SMC_RF_BASEADDR + addr,value)
 |