diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-arm/arch-at91/at91_emac.h | 145 | ||||
| -rw-r--r-- | include/configs/at91rm9200dk.h | 9 | ||||
| -rw-r--r-- | include/configs/at91rm9200ek.h | 8 | ||||
| -rw-r--r-- | include/configs/cmc_pu2.h | 8 | ||||
| -rw-r--r-- | include/configs/cpuat91.h | 8 | ||||
| -rw-r--r-- | include/configs/csb637.h | 8 | ||||
| -rw-r--r-- | include/configs/kb9202.h | 8 | ||||
| -rw-r--r-- | include/configs/m501sk.h | 9 | ||||
| -rw-r--r-- | include/configs/mp2usb.h | 8 | ||||
| -rw-r--r-- | include/netdev.h | 1 | 
10 files changed, 204 insertions, 8 deletions
| diff --git a/include/asm-arm/arch-at91/at91_emac.h b/include/asm-arm/arch-at91/at91_emac.h new file mode 100644 index 000000000..4b96f048b --- /dev/null +++ b/include/asm-arm/arch-at91/at91_emac.h @@ -0,0 +1,145 @@ +/* + * Memory Setup stuff - taken from blob memsetup.S + * + * Copyright (C) 2009 Jens Scharsig (js_at_ng@scharsoft.de) + * + * based on AT91RM9200 datasheet revision I (36. Ethernet MAC (EMAC)) + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef AT91_H +#define AT91_H + +typedef struct at91_emac { +	u32	 ctl; +	u32	 cfg; +	u32	 sr; +	u32	 tar; +	u32	 tcr; +	u32	 tsr; +	u32	 rbqp; +	u32	 reserved0; +	u32	 rsr; +	u32	 isr; +	u32	 ier; +	u32	 idr; +	u32	 imr; +	u32	 man; +	u32	 reserved1[2]; +	u32	 fra; +	u32	 scol; +	u32	 mocl; +	u32	 ok; +	u32	 seqe; +	u32	 ale; +	u32	 dte; +	u32	 lcol; +	u32	 ecol; +	u32	 cse; +	u32	 tue; +	u32	 cde; +	u32	 elr; +	u32	 rjb; +	u32	 usf; +	u32	 sqee; +	u32	 drfc; +	u32	 reserved2[3]; +	u32	 hsh; +	u32	 hsl; +	u32	 sh1l; +	u32	 sa1h; +	u32	 sa2l; +	u32	 sa2h; +	u32	 sa3l; +	u32	 sa3h; +	u32	 sa4l; +	u32	 sa4h; +} at91_emac_t; + +#define AT91_EMAC_CTL_LB	0x0001 +#define AT91_EMAC_CTL_LBL	0x0002 +#define AT91_EMAC_CTL_RE	0x0004 +#define AT91_EMAC_CTL_TE	0x0008 +#define AT91_EMAC_CTL_MPE	0x0010 +#define AT91_EMAC_CTL_CSR	0x0020 +#define AT91_EMAC_CTL_ISR	0x0040 +#define AT91_EMAC_CTL_WES	0x0080 +#define AT91_EMAC_CTL_BP	0x1000 + +#define AT91_EMAC_CFG_SPD	0x0001 +#define AT91_EMAC_CFG_FD	0x0002 +#define AT91_EMAC_CFG_BR	0x0004 +#define AT91_EMAC_CFG_CAF	0x0010 +#define AT91_EMAC_CFG_NBC	0x0020 +#define AT91_EMAC_CFG_MTI	0x0040 +#define AT91_EMAC_CFG_UNI	0x0080 +#define AT91_EMAC_CFG_BIG	0x0100 +#define AT91_EMAC_CFG_EAE	0x0200 +#define AT91_EMAC_CFG_CLK_MASK	0xFFFFF3FF +#define AT91_EMAC_CFG_MCLK_8	0x0000 +#define AT91_EMAC_CFG_MCLK_16	0x0400 +#define AT91_EMAC_CFG_MCLK_32	0x0800 +#define AT91_EMAC_CFG_MCLK_64	0x0C00 +#define AT91_EMAC_CFG_RTY	0x1000 +#define AT91_EMAC_CFG_RMII	0x2000 + +#define AT91_EMAC_SR_LINK	0x0001 +#define AT91_EMAC_SR_MDIO	0x0002 +#define AT91_EMAC_SR_IDLE	0x0004 + +#define AT91_EMAC_TCR_LEN(x)	(x & 0x7FF) +#define AT91_EMAC_TCR_NCRC	0x8000 + +#define AT91_EMAC_TSR_OVR	0x0001 +#define AT91_EMAC_TSR_COL	0x0002 +#define AT91_EMAC_TSR_RLE	0x0004 +#define AT91_EMAC_TSR_TXIDLE	0x0008 +#define AT91_EMAC_TSR_BNQ	0x0010 +#define AT91_EMAC_TSR_COMP	0x0020 +#define AT91_EMAC_TSR_UND	0x0040 + +#define AT91_EMAC_RSR_BNA	0x0001 +#define AT91_EMAC_RSR_REC	0x0002 +#define AT91_EMAC_RSR_OVR	0x0004 + +/*  ISR, IER, IDR, IMR use the same bits */ +#define AT91_EMAC_IxR_DONE	0x0001 +#define AT91_EMAC_IxR_RCOM	0x0002 +#define AT91_EMAC_IxR_RBNA	0x0004 +#define AT91_EMAC_IxR_TOVR	0x0008 +#define AT91_EMAC_IxR_TUND	0x0010 +#define AT91_EMAC_IxR_RTRY	0x0020 +#define AT91_EMAC_IxR_TBRE	0x0040 +#define AT91_EMAC_IxR_TCOM	0x0080 +#define AT91_EMAC_IxR_TIDLE	0x0100 +#define AT91_EMAC_IxR_LINK	0x0200 +#define AT91_EMAC_IxR_ROVR	0x0400 +#define AT91_EMAC_IxR_HRESP	0x0800 + +#define AT91_EMAC_MAN_DATA_MASK		0xFFFF +#define AT91_EMAC_MAN_CODE_802_3	0x00020000 +#define AT91_EMAC_MAN_REGA(reg)		((reg & 0x1F) << 18) +#define AT91_EMAC_MAN_PHYA(phy)		((phy & 0x1F) << 23) +#define AT91_EMAC_MAN_RW_R		0x20000000 +#define AT91_EMAC_MAN_RW_W		0x10000000 +#define AT91_EMAC_MAN_HIGH		0x40000000 +#define AT91_EMAC_MAN_LOW		0x80000000 + +#endif diff --git a/include/configs/at91rm9200dk.h b/include/configs/at91rm9200dk.h index 590c69a19..5de70cb4d 100644 --- a/include/configs/at91rm9200dk.h +++ b/include/configs/at91rm9200dk.h @@ -122,7 +122,14 @@  #define CONFIG_SYS_MEMTEST_START		PHYS_SDRAM  #define CONFIG_SYS_MEMTEST_END			CONFIG_SYS_MEMTEST_START + PHYS_SDRAM_SIZE - 262144 -#define CONFIG_DRIVER_ETHER +#define CONFIG_NET_MULTI		1 +#ifdef CONFIG_NET_MULTI +#define CONFIG_DRIVER_AT91EMAC		1 +#define CONFIG_SYS_RX_ETH_BUFFER	8 +#else +#define CONFIG_DRIVER_ETHER		1 +#endif +  #define CONFIG_NET_RETRY_COUNT		20  #define CONFIG_AT91C_USE_RMII diff --git a/include/configs/at91rm9200ek.h b/include/configs/at91rm9200ek.h index b4f075ebc..47508551f 100644 --- a/include/configs/at91rm9200ek.h +++ b/include/configs/at91rm9200ek.h @@ -145,7 +145,13 @@  /*   * Network Driver Setting   */ -#define CONFIG_DRIVER_ETHER +#define CONFIG_NET_MULTI		1 +#ifdef CONFIG_NET_MULTI +#define CONFIG_DRIVER_AT91EMAC		1 +#define CONFIG_SYS_RX_ETH_BUFFER	8 +#else +#define CONFIG_DRIVER_ETHER		1 +#endif  #define CONFIG_NET_RETRY_COUNT		20  #define CONFIG_AT91C_USE_RMII diff --git a/include/configs/cmc_pu2.h b/include/configs/cmc_pu2.h index be478b24e..00d0cec4f 100644 --- a/include/configs/cmc_pu2.h +++ b/include/configs/cmc_pu2.h @@ -152,7 +152,13 @@  #define CONFIG_SYS_MEMTEST_START	PHYS_SDRAM  #define CONFIG_SYS_MEMTEST_END		CONFIG_SYS_MEMTEST_START + PHYS_SDRAM_SIZE - 262144 -#define CONFIG_DRIVER_ETHER +#define CONFIG_NET_MULTI		1 +#ifdef CONFIG_NET_MULTI +#define CONFIG_DRIVER_AT91EMAC		1 +#define CONFIG_SYS_RX_ETH_BUFFER	8 +#else +#define CONFIG_DRIVER_ETHER		1 +#endif  #define CONFIG_NET_RETRY_COUNT		20  #define CONFIG_AT91C_USE_RMII diff --git a/include/configs/cpuat91.h b/include/configs/cpuat91.h index 8746f702d..e872fe9ab 100644 --- a/include/configs/cpuat91.h +++ b/include/configs/cpuat91.h @@ -128,7 +128,13 @@  #define CONFIG_SYS_MEMTEST_END			\  	(CONFIG_SYS_MEMTEST_START + PHYS_SDRAM_SIZE - 512 * 1024) -#define CONFIG_DRIVER_ETHER			1 +#define CONFIG_NET_MULTI		1 +#ifdef CONFIG_NET_MULTI +#define CONFIG_DRIVER_AT91EMAC		1 +#define CONFIG_SYS_RX_ETH_BUFFER	8 +#else +#define CONFIG_DRIVER_ETHER		1 +#endif  #define CONFIG_NET_RETRY_COUNT			20  #define CONFIG_AT91C_USE_RMII			1  #define CONFIG_PHY_ADDRESS			(1 << 5) diff --git a/include/configs/csb637.h b/include/configs/csb637.h index f4fd808e4..689e7f003 100644 --- a/include/configs/csb637.h +++ b/include/configs/csb637.h @@ -126,7 +126,13 @@  #define CONFIG_SYS_ALT_MEMTEST			1  #define CONFIG_SYS_MEMTEST_SCRATCH		CONFIG_SYS_MEMTEST_START + PHYS_SDRAM_SIZE - 4 -#define CONFIG_DRIVER_ETHER +#define CONFIG_NET_MULTI		1 +#ifdef CONFIG_NET_MULTI +#define CONFIG_DRIVER_AT91EMAC		1 +#define CONFIG_SYS_RX_ETH_BUFFER	8 +#else +#define CONFIG_DRIVER_ETHER		1 +#endif  #define CONFIG_NET_RETRY_COUNT		20  #undef CONFIG_AT91C_USE_RMII diff --git a/include/configs/kb9202.h b/include/configs/kb9202.h index 7dd81e69c..3fe88feec 100644 --- a/include/configs/kb9202.h +++ b/include/configs/kb9202.h @@ -115,7 +115,13 @@  #define CONFIG_SYS_MEMTEST_START		PHYS_SDRAM  #define CONFIG_SYS_MEMTEST_END			CONFIG_SYS_MEMTEST_START + PHYS_SDRAM_SIZE - (512*1024) -#define CONFIG_DRIVER_ETHER +#define CONFIG_NET_MULTI		1 +#ifdef CONFIG_NET_MULTI +#define CONFIG_DRIVER_AT91EMAC		1 +#define CONFIG_SYS_RX_ETH_BUFFER	8 +#else +#define CONFIG_DRIVER_ETHER		1 +#endif  #define CONFIG_NET_RETRY_COUNT		20  #define CONFIG_SYS_FLASH_BASE			0x10000000 diff --git a/include/configs/m501sk.h b/include/configs/m501sk.h index 5c066426c..a28fd27d4 100644 --- a/include/configs/m501sk.h +++ b/include/configs/m501sk.h @@ -34,6 +34,7 @@  #define AT91C_MASTER_CLOCK	59904000  #define AT91_SLOW_CLOCK	32768 /* slow clock */ +#define CONFIG_AT91RM9200	1	/* It's an Atmel AT91RM9200 SoC	*/  #define CONFIG_AT91RM9200DK	1 /* on an AT91RM9200DK Board    */  #undef CONFIG_USE_IRQ /* we don't need IRQ/FIQ stuff */  #define CONFIG_CMDLINE_TAG	1 /* enable passing of ATAGs    */ @@ -166,7 +167,13 @@  /* CONFIG_SYS_MEMTEST_START + PHYS_SDRAM_SIZE - 262144 */  #define CONFIG_SYS_MEMTEST_END	0x00100000 -#define CONFIG_DRIVER_ETHER +#define CONFIG_NET_MULTI		1 +#ifdef CONFIG_NET_MULTI +#define CONFIG_DRIVER_AT91EMAC		1 +#define CONFIG_SYS_RX_ETH_BUFFER	8 +#else +#define CONFIG_DRIVER_ETHER		1 +#endif  #define CONFIG_NET_RETRY_COUNT	20  #define CONFIG_AT91C_USE_RMII diff --git a/include/configs/mp2usb.h b/include/configs/mp2usb.h index 0c2ee6057..31eb1b666 100644 --- a/include/configs/mp2usb.h +++ b/include/configs/mp2usb.h @@ -181,7 +181,13 @@  #define CONFIG_SYS_MEMTEST_START	PHYS_SDRAM  #define CONFIG_SYS_MEMTEST_END		CONFIG_SYS_MEMTEST_START + PHYS_SDRAM_SIZE - 262144 -#define CONFIG_DRIVER_ETHER +#define CONFIG_NET_MULTI		1 +#ifdef CONFIG_NET_MULTI +#define CONFIG_DRIVER_AT91EMAC		1 +#define CONFIG_SYS_RX_ETH_BUFFER	8 +#else +#define CONFIG_DRIVER_ETHER		1 +#endif  #define CONFIG_NET_RETRY_COUNT		20  #undef CONFIG_AT91C_USE_RMII diff --git a/include/netdev.h b/include/netdev.h index 1e0484fa4..1dd80f059 100644 --- a/include/netdev.h +++ b/include/netdev.h @@ -42,6 +42,7 @@ int cpu_eth_init(bd_t *bis);  /* Driver initialization prototypes */  int au1x00_enet_initialize(bd_t*); +int at91emac_register(bd_t *bis, unsigned long iobase);  int bfin_EMAC_initialize(bd_t *bis);  int cs8900_initialize(u8 dev_num, int base_addr);  int dc21x4x_initialize(bd_t *bis); |