Module Name:    src
Committed By:   matt
Date:           Fri Feb 21 22:18:47 UTC 2014

Modified Files:
        src/sys/arch/arm/allwinner: awin_reg.h

Log Message:
Add EMAC and CPUCFG registers


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/allwinner/awin_reg.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/allwinner/awin_reg.h
diff -u src/sys/arch/arm/allwinner/awin_reg.h:1.9 src/sys/arch/arm/allwinner/awin_reg.h:1.10
--- src/sys/arch/arm/allwinner/awin_reg.h:1.9	Mon Sep  9 17:52:48 2013
+++ src/sys/arch/arm/allwinner/awin_reg.h	Fri Feb 21 22:18:47 2014
@@ -108,7 +108,7 @@
 #define AWIN_TP_OFFSET			0x00025000
 #define AWIN_PMU_OFFSET			0x00025400
 #define AWIN__RSVD6_OFFSET		0x00025800
-#define AWIN_CPUCNF_OFFSET		0x00025C00
+#define AWIN_CPUCFG_OFFSET		0x00025C00
 #define AWIN__RSVD7_OFFSET		0x00026000
 #define AWIN__RSVD8_OFFSET		0x00026400
 #define AWIN__RSVD9_OFFSET		0x00026800
@@ -153,6 +153,13 @@
 #define AWIN_AVG_OFFSET			0x002A0000
 #define AWIN_SDRAM_PBASE		0x40000000
 
+/* A10/A20 SRAM Controller */
+#define AWIN_SRAM_CTL0_REG		0x0000
+#define AWIN_SRAM_CTL1_REG		0x0004
+
+#define AWIN_SRAM_CTL1_A3_A4		__BITS(5,4)
+#define AWIN_SRAM_CTL1_A3_A4_EMAC	1
+
 /* A10/A20 DRAM Controller */
 #define AWIN_DRAM_CCR_REG		0x0000
 #define AWIN_DRAM_DCR_REG		0x0004
@@ -224,6 +231,124 @@
 #define AWIN_DRAM_HPCR_PRIORITY_LEVEL	__BIT(2)
 #define AWIN_DRAM_HPCR_ACCESS_EN	__BIT(0)
 
+/* DMA controller defintions */
+#define AWIN_DMA_IRQ_EN_REG		0x0000
+#define AWIN_DMA_IRQ_PEND_STA_REG	0x0004
+#define AWIN_NDMA_AUTO_GATE_REG		0x0008
+#define AWIN_NDMA_REG(n)		(0x100+0x20*(n))
+#define AWIN_NDMA_CTL_REG		0x0000
+#define AWIN_NDMA_SRC_ADDR_REG		0x0004
+#define AWIN_NDMA_DEST_ADDR_REG		0x0008
+#define AWIN_NDMA_BC_REG		0x000c
+
+#define AWIN_DDMA_REG(n)		(0x300+0x20*(n))
+#define AWIN_DDMA_CTL_REG		0x0000
+#define AWIN_DDMA_SRC_START_ADDR_REG	0x0004
+#define AWIN_DDMA_DEST_START_ADDR_REG	0x0008
+#define AWIN_DDMA_BC_REG		0x000c
+#define AWIN_DDMA_PARA_REG		0x0018
+
+#define AWIN_DMA_IRQ_DDMA_END(n)	__BIT(17+2*(n))
+#define AWIN_DMA_IRQ_DDMA_HF(n)		__BIT(16+2*(n))
+#define AWIN_DMA_IRQ_NDMA_END(n)	__BIT(1+2*(n))
+#define AWIN_DMA_IRQ_NDMA_HF(n)		__BIT(0+2*(n))
+
+#define AWIN_NDMA_AUTO_GATING_DIS	__BIT(16)
+
+#define AWIN_DMA_CTL_DST_DATA_WIDTH	__BITS(26,25)
+#define AWIN_DMA_CTL_DATA_WIDTH_8	0
+#define AWIN_DMA_CTL_DATA_WIDTH_16	1
+#define AWIN_DMA_CTL_DATA_WIDTH_32	2
+#define AWIN_DMA_CTL_DST_BURST_LEN	__BITS(24,23)
+#define AWIN_DMA_CTL_BURST_LEN_1	0
+#define AWIN_DMA_CTL_BURST_LEN_4	1
+#define AWIN_DMA_CTL_BURST_LEN_8	2
+#define AWIN_DMA_CTL_DST_DRQ_TYPE	__BITS(20,16)
+#define AWIN_DMA_CTL_BC_REMAINING	__BIT(15)
+#define AWIN_DMA_CTL_SRC_DATA_WIDTH	__BITS(10,9)
+#define AWIN_DMA_CTL_SRC_BURST_LEN	__BITS(8,7)
+#define AWIN_DMA_CTL_SRC_DRQ_TYPE	__BITS(4,0)
+
+#define AWIN_NDMA_CTL_DMA_LOADING	__BIT(31)
+#define AWIN_NDMA_CTL_DMA_CONTIN_MODE	__BIT(30)
+#define AWIN_NDMA_CTL_WAIT_STATE_LOG2	__BITS(29,27)
+#define AWIN_NDMA_CTL_DST_NON_SECURE	__BIT(22)
+#define AWIN_NDMA_CTL_DST_ADDR_NOINCR	__BIT(21)
+#define AWIN_NDMA_CTL_DRQ_IRO		0
+#define AWIN_NDMA_CTL_DRQ_IR1		1
+#define AWIN_NDMA_CTL_DRQ_SPDIF		2
+#define AWIN_NDMA_CTL_DRQ_IISO		3
+#define AWIN_NDMA_CTL_DRQ_IIS1		4
+#define AWIN_NDMA_CTL_DRQ_AC97		5
+#define AWIN_NDMA_CTL_DRQ_IIS2		6
+#define AWIN_NDMA_CTL_DRQ_UARTO		8
+#define AWIN_NDMA_CTL_DRQ_UART1		9
+#define AWIN_NDMA_CTL_DRQ_UART2		10
+#define AWIN_NDMA_CTL_DRQ_UART3		11
+#define AWIN_NDMA_CTL_DRQ_UART4		12
+#define AWIN_NDMA_CTL_DRQ_UART5		13
+#define AWIN_NDMA_CTL_DRQ_UART6		14
+#define AWIN_NDMA_CTL_DRQ_UART7		15
+#define AWIN_NDMA_CTL_DRQ_DDC		16
+#define AWIN_NDMA_CTL_DRQ_USB_EP1	17
+#define AWIN_NDMA_CTL_DRQ_CODEC		19
+#define AWIN_NDMA_CTL_DRQ_SRAM		21
+#define AWIN_NDMA_CTL_DRQ_SDRAM		22
+#define AWIN_NDMA_CTL_DRQ_TP_AD		23
+#define AWIN_NDMA_CTL_DRQ_SPI0		24
+#define AWIN_NDMA_CTL_DRQ_SPI1		25
+#define AWIN_NDMA_CTL_DRQ_SPI2		26
+#define AWIN_NDMA_CTL_DRQ_SPI3		27
+#define AWIN_NDMA_CTL_DRQ_USB_EP2	28
+#define AWIN_NDMA_CTL_DRQ_USB_EP3	29
+#define AWIN_NDMA_CTL_DRQ_USB_EP4	30
+#define AWIN_NDMA_CTL_DRQ_USB_EP5	31
+#define AWIN_NDMA_CTL_SRC_NON_SECURE	__BIT(6)
+#define AWIN_NDMA_CTL_SRC_ADDR_NOINCR	__BIT(5)
+
+#define AWIN_NDMA_BC_COUNT		__BITS(17,0)
+
+#define AWIN_DDMA_CTL_DMA_LOADING	__BIT(31)
+#define AWIN_DDMA_CTL_BUSY		__BIT(30)
+#define AWIN_DDMA_CTL_DMA_CONTIN_MODE	__BIT(29)
+#define AWIN_DDMA_CTL_DST_NON_SECURE	__BIT(28)
+#define AWIN_DDMA_CTL_DST_ADDR_MODE	__BITS(22,21)
+#define AWIN_DDMA_CTL_DMA_ADDR_LINEAR	0
+#define AWIN_DDMA_CTL_DMA_ADDR_IO	1
+#define AWIN_DDMA_CTL_DMA_ADDR_HPAGE	2
+#define AWIN_DDMA_CTL_DMA_ADDR_VPAGE	3
+#define AWIN_DDMA_CTL_DST_DRQ_TYPE	__BITS(20,16)
+#define AWIN_DDMA_CTL_DRQ_SRAM		0
+#define AWIN_DDMA_CTL_DRQ_SDRAM		1
+#define AWIN_DDMA_CTL_DRQ_NFC		3
+#define AWIN_DDMA_CTL_DRQ_USB0		4
+#define AWIN_DDMA_CTL_DRQ_EMAC_TX	6
+#define AWIN_DDMA_CTL_DRQ_EMAC_RX	7
+#define AWIN_DDMA_CTL_DRQ_SPI1_TX	8
+#define AWIN_DDMA_CTL_DRQ_SPI1_RX	9
+#define AWIN_DDMA_CTL_DRQ_SS_TX		10
+#define AWIN_DDMA_CTL_DRQ_SS_RX		11
+#define AWIN_DDMA_CTL_DRQ_TCON0		14
+#define AWIN_DDMA_CTL_DRQ_TCON1		15
+#define AWIN_DDMA_CTL_DRQ_MS_TX		23
+#define AWIN_DDMA_CTL_DRQ_MS_RX		23
+#define AWIN_DDMA_CTL_DRQ_HDMI_AUDIO	24
+#define AWIN_DDMA_CTL_DRQ_SPI0_TX	26
+#define AWIN_DDMA_CTL_DRQ_SPI0_RX	27
+#define AWIN_DDMA_CTL_DRQ_SPI2_TX	28
+#define AWIN_DDMA_CTL_DRQ_SPI2_RX	29
+#define AWIN_DDMA_CTL_DRQ_SPI3_TX	30
+#define AWIN_DDMA_CTL_DRQ_SPI3_RX	31
+#define AWIN_DDMA_CTL_SRC_NON_SECURE	__BIT(12)
+#define AWIN_DDMA_CTL_SRC_ADDR_MODE	__BITS(6,5)
+
+#define AWIN_DDMA_BC_COUNT		__BITS(13,0)
+
+#define AWIN_DDMA_PARA_DST_DATA_BLK_SIZ	__BITS(31,24)
+#define AWIN_DDMA_PARA_DST_WAIT_CYC	__BITS(23,16)
+#define AWIN_DDMA_PARA_SRC_DATA_BLK_SIZ	__BITS(15,8)
+#define AWIN_DDMA_PARA_SRC_WAIT_CYC	__BITS(7,0)
+
 #define AWIN_NFC_CTL_REG		0x0000
 #define AWIN_NFC_ST_REG			0x0004
 #define AWIN_NFC_INT_REG		0x0008
@@ -265,16 +390,16 @@
 #define AWIN_NFC_CTL_RESET		__BIT(1)
 #define AWIN_NFC_CTL_EN			__BIT(0)
 
-#define	AWIN_NFC_ST_STATE3		__BIT(11)
-#define	AWIN_NFC_ST_STATE2		__BIT(10)
-#define	AWIN_NFC_ST_STATE1		__BIT(9)
-#define	AWIN_NFC_ST_STATE0		__BIT(8)
-#define	AWIN_NFC_ST_MATCH_INT		__BIT(5)
-#define	AWIN_NFC_ST_STAT		__BIT(4)
-#define	AWIN_MFC_ST_CMD_FIFO		__BIT(3)
-#define	AWIN_MFC_ST_DMA_INT		__BIT(2)
-#define	AWIN_MFC_ST_CMD_INT		__BIT(1)
-#define	AWIN_MFC_ST_RB_B2R		__BIT(0)
+#define AWIN_NFC_ST_STATE3		__BIT(11)
+#define AWIN_NFC_ST_STATE2		__BIT(10)
+#define AWIN_NFC_ST_STATE1		__BIT(9)
+#define AWIN_NFC_ST_STATE0		__BIT(8)
+#define AWIN_NFC_ST_MATCH_INT		__BIT(5)
+#define AWIN_NFC_ST_STAT		__BIT(4)
+#define AWIN_MFC_ST_CMD_FIFO		__BIT(3)
+#define AWIN_MFC_ST_DMA_INT		__BIT(2)
+#define AWIN_MFC_ST_CMD_INT		__BIT(1)
+#define AWIN_MFC_ST_RB_B2R		__BIT(0)
 
 #define AWIN_NFC_INT_DMA_EN		__BIT(2)
 #define AWIN_NFC_INT_CMD_EN		__BIT(1)
@@ -326,12 +451,15 @@
 #define AWIN_EMAC_TX_FLOW_REG		0x0008
 #define AWIN_EMAC_TX_CTL0_REG		0x000C
 #define AWIN_EMAC_TX_CTL1_REG		0x0010
+#define AWIN_EMAC_TX_CTL_REG(n)		(0x000C+4*(n))
 #define AWIN_EMAC_TX_INS_REG		0x0014
 #define AWIN_EMAC_TX_PL0_REG		0x0018
 #define AWIN_EMAC_TX_PL1_REG		0x001C
+#define AWIN_EMAC_TX_PL_REG(n)		(0x0018+4*(n))
 #define AWIN_EMAC_TX_STA_REG		0x0020
 #define AWIN_EMAC_TX_IO_DATA0_REG	0x0024
 #define AWIN_EMAC_TX_IO_DATA1_REG	0x0028
+#define AWIN_EMAC_TX_IO_DATA_REG(n)	(0x0024+4*(n))
 #define AWIN_EMAC_TX_TSVL0_REG		0x002C
 #define AWIN_EMAC_TX_TSVH0_REG		0x0030
 #define AWIN_EMAC_TX_TSVL1_REG		0x0034
@@ -371,6 +499,69 @@
 #define AWIN_EMAC_SAFX3_L_REG		0x00BC
 #define AWIN_EMAC_SAFX3_H_REG		0x00C0
 
+#define AWIN_EMAC_RXHDR_STS		__BITS(31,16)
+#define AWIN_EMAC_RXHDR_LEN		__BITS(15,0)
+
+#define AWIN_EMAC_TX_MODE_ABF_ENA	__BIT(0)
+#define AWIN_EMAC_TX_MODE_DMA		__BIT(1)
+
+#define AWIN_EMAC_TX_CTL_START		__BIT(0)
+
+#define AWIN_EMAC_RX_CTL_SA_IF		__BIT(25)	// SA filter invert
+#define AWIN_EMAC_RX_CTL_SA		__BIT(24)	// SA filter
+#define AWIN_EMAC_RX_CTL_BC0		__BIT(22)	// broadcast ena
+#define AWIN_EMAC_RX_CTL_MHF		__BIT(21)	// multicast hash ena
+#define AWIN_EMAC_RX_CTL_MC0		__BIT(20)	// multicast accept
+#define AWIN_EMAC_RX_CTL_DAF		__BIT(17)	// DA filter
+#define AWIN_EMAC_RX_CTL_UCAD		__BIT(16)	// unicast accept
+#define AWIN_EMAC_RX_CTL_POR		__BIT(8)	// pass too long
+#define AWIN_EMAC_RX_CTL_PLE		__BIT(7)	// pass length err
+#define AWIN_EMAC_RX_CTL_PCRCE		__BIT(6)	// pass crc errors
+#define AWIN_EMAC_RX_CTL_PCF		__BIT(5)	// pass control frames
+#define AWIN_EMAC_RX_CTL_PROMISC	__BIT(4)	// pass all frames
+#define AWIN_EMAC_RX_CTL_FIFO_RESET	__BIT(3)
+#define AWIN_EMAC_RX_CTL_DMA		__BIT(2)
+#define AWIN_EMAC_RX_CTL_DRQ_MODE	__BIT(1)
+#define AWIN_EMAC_RX_CTL_START		__BIT(0)
+
+#define AWIN_EMAC_RX_MAGIC		0x0143414d	// M A C \001
+
+#define AWIN_EMAC_MAC_CTL0_SOFT_RESET	__BIT(15)
+#define AWIN_EMAC_MAC_CTL0_TFC		__BIT(3)
+#define AWIN_EMAC_MAC_CTL0_RFC		__BIT(2)
+
+#define AWIN_EMAC_MAC_CTL1_ED		__BIT(15)
+#define AWIN_EMAC_MAC_CTL1_NB		__BIT(13)
+#define AWIN_EMAC_MAC_CTL1_BNB		__BIT(12)
+#define AWIN_EMAC_MAC_CTL1_LPE		__BIT(9)
+#define AWIN_EMAC_MAC_CTL1_PRE		__BIT(8)
+#define AWIN_EMAC_MAC_CTL1_ADP		__BIT(7)	// auto detect short
+#define AWIN_EMAC_MAC_CTL1_VC		__BIT(6)	// pad short and append
+#define AWIN_EMAC_MAC_CTL1_PC		__BIT(5)	// enable pad short
+#define AWIN_EMAC_MAC_CTL1_CRC		__BIT(4)	// append crc
+#define AWIN_EMAC_MAC_CTL1_DCRC		__BIT(3)	// delayed CRC
+#define AWIN_EMAC_MAC_CTL1_HF		__BIT(2)	// huge frame
+#define AWIN_EMAC_MAC_CTL1_FLC		__BIT(1)	// frame length check
+#define AWIN_EMAC_MAC_CTL1_FD		__BIT(0)	// full duplex
+
+#define AWIN_EMAC_MAC_IPGR_IPG1		__BITS(7,0)
+#define AWIN_EMAC_MAC_IPGR_IPG2		__BITS(15,8)
+
+#define AWIN_EMAC_MAC_CLRT_RM		__BITS(7,0)
+#define AWIN_EMAC_MAC_CLRT_CW		__BITS(15,8)
+
+#define AWIN_EMAC_MAC_SUPP_100M		__BIT(8)
+
+#define AWIN_EMAC_RX_STA_CRCERR		__BIT(4)
+#define AWIN_EMAC_RX_STA_LENERR		__BIT(5)
+#define AWIN_EMAC_RX_STA_ALNERR		__BIT(6)
+
+#define AWIN_MAC_MCFG_CLK		__BITS(5,2)
+
+#define AWIN_EMAC_INT_RX		__BIT(8)
+#define AWIN_EMAC_INT_TX1		__BIT(1)
+#define AWIN_EMAC_INT_TX0		__BIT(0)
+
 #define AWIN_AHCI_DMA_REG		0x0070
 #define AWIN_AHCI_BISTAFR_REG		0x00A0
 #define AWIN_AHCI_BISTCR_REG		0x00A4
@@ -396,6 +587,23 @@
 #define AWIN_AHCI_P0PHYCR_REG		0x0178
 #define AWIN_AHCI_P0PHYSR_REG		0x017C
 
+#define AWIN_CPUCFG_CPU0_RST_CTRL_REG	0x0040
+#define AWIN_CPUCFG_CPU0_CTRL_REG	0x0044
+#define AWIN_CPUCFG_CPU0_STATUS_REG	0x0048
+#define AWIN_CPUCFG_CPU1_RST_CTRL_REG	0x0080
+#define AWIN_CPUCFG_CPU1_CTRL_REG	0x0084
+#define AWIN_CPUCFG_CPU1_STATUS_REG	0x0088
+#define AWIN_CPUCFG_PRIVATE_REG		0x01A4
+
+#define AWIN_CPUCFG_CPU_RST_CTRL_CORE_RESET __BIT(1)
+#define AWIN_CPUCFG_CPU_RST_CTRL_RESET	__BIT(0)
+
+#define AWIN_CPUCFG_CPU_CTRL_CP15_WRITE_DISABLE	__BIT(0)
+
+#define AWIN_CPUCFG_CPU_STATUS_STANDBYWFI	__BIT(2)
+#define AWIN_CPUCFG_CPU_STATUS_STANDBYWFE	__BIT(1)
+#define AWIN_CPUCFG_CPU_STATUS_SMP_AMP		__BIT(0)
+
 #define AWIN_PLL1_CFG_REG		0x0000
 #define AWIN_PLL1_TUN_REG		0x0004
 #define AWIN_PLL2_CFG_REG		0x0008

Reply via email to