mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-16 14:08:45 +00:00
AVR32: Enable networking
Implement MACB initialization for AVR32 and ATSTK1000, and turn everything on, including the MACB driver. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
This commit is contained in:
parent
5c1fe1ffff
commit
9a24f477a1
6 changed files with 73 additions and 3 deletions
|
@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk
|
|||
|
||||
LIB := $(obj)lib$(BOARD).a
|
||||
|
||||
COBJS := $(BOARD).o flash.o
|
||||
COBJS := $(BOARD).o flash.o eth.o
|
||||
|
||||
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
|
||||
OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS))
|
||||
|
|
|
@ -49,6 +49,10 @@ int board_early_init_f(void)
|
|||
|
||||
gpio_enable_ebi();
|
||||
gpio_enable_usart1();
|
||||
#if defined(CONFIG_MACB)
|
||||
gpio_enable_macb0();
|
||||
gpio_enable_macb1();
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
38
board/atmel/atstk1000/eth.c
Normal file
38
board/atmel/atstk1000/eth.c
Normal file
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* Copyright (C) 2005-2006 Atmel Corporation
|
||||
*
|
||||
* Ethernet initialization for the ATSTK1000 starterkit
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
#include <common.h>
|
||||
|
||||
#include <asm/arch/memory-map.h>
|
||||
|
||||
extern int macb_eth_initialize(int id, void *regs, unsigned int phy_addr);
|
||||
|
||||
#if defined(CONFIG_MACB) && (CONFIG_COMMANDS & CFG_CMD_NET)
|
||||
void atstk1000_eth_initialize(bd_t *bi)
|
||||
{
|
||||
int id = 0;
|
||||
|
||||
macb_eth_initialize(id++, (void *)MACB0_BASE, bi->bi_phy_id[0]);
|
||||
macb_eth_initialize(id++, (void *)MACB1_BASE, bi->bi_phy_id[1]);
|
||||
}
|
||||
#endif
|
|
@ -93,6 +93,22 @@
|
|||
#define CONFIG_AUTOBOOT_DELAY_STR "d"
|
||||
#define CONFIG_AUTOBOOT_STOP_STR " "
|
||||
|
||||
/*
|
||||
* These are "locally administered ethernet addresses" generated by
|
||||
* ./tools/gen_eth_addr
|
||||
*
|
||||
* After booting the board for the first time, new addresses should be
|
||||
* generated and assigned to the environment variables "ethaddr" and
|
||||
* "eth1addr".
|
||||
*/
|
||||
#define CONFIG_ETHADDR "6a:87:71:14:cd:cb"
|
||||
#define CONFIG_ETH1ADDR "ca:f8:15:e6:3e:e6"
|
||||
#define CONFIG_OVERWRITE_ETHADDR_ONCE 1
|
||||
#define CONFIG_NET_MULTI 1
|
||||
|
||||
#define CONFIG_BOOTP_MASK (CONFIG_BOOTP_SUBNETMASK \
|
||||
| CONFIG_BOOTP_GATEWAY)
|
||||
|
||||
#define CONFIG_COMMANDS (CFG_CMD_BDI \
|
||||
| CFG_CMD_LOADS \
|
||||
| CFG_CMD_LOADB \
|
||||
|
@ -100,7 +116,7 @@
|
|||
/* | CFG_CMD_CACHE */ \
|
||||
| CFG_CMD_FLASH \
|
||||
| CFG_CMD_MEMORY \
|
||||
/* | CFG_CMD_NET */ \
|
||||
| CFG_CMD_NET \
|
||||
| CFG_CMD_ENV \
|
||||
/* | CFG_CMD_IRQ */ \
|
||||
| CFG_CMD_BOOTD \
|
||||
|
@ -112,7 +128,7 @@
|
|||
/* | CFG_CMD_I2C */ \
|
||||
| CFG_CMD_REGINFO \
|
||||
/* | CFG_CMD_DATE */ \
|
||||
/* | CFG_CMD_DHCP */ \
|
||||
| CFG_CMD_DHCP \
|
||||
/* | CFG_CMD_AUTOSCRIPT */ \
|
||||
/* | CFG_CMD_MII */ \
|
||||
| CFG_CMD_MISC \
|
||||
|
@ -133,6 +149,7 @@
|
|||
#include <cmd_confdefs.h>
|
||||
|
||||
#define CONFIG_ATMEL_USART 1
|
||||
#define CONFIG_MACB 1
|
||||
#define CONFIG_PIO2 1
|
||||
#define CFG_NR_PIOS 5
|
||||
#define CFG_HSDRAMC 1
|
||||
|
|
|
@ -328,6 +328,13 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)
|
|||
jumptable_init();
|
||||
console_init_r();
|
||||
|
||||
#if (CONFIG_COMMANDS & CFG_CMD_NET)
|
||||
#if defined(CONFIG_NET_MULTI)
|
||||
puts("Net: ");
|
||||
#endif
|
||||
eth_initialize(gd->bd);
|
||||
#endif
|
||||
|
||||
for (;;) {
|
||||
main_loop();
|
||||
}
|
||||
|
|
|
@ -55,6 +55,7 @@ extern int skge_initialize(bd_t*);
|
|||
extern int tsec_initialize(bd_t*, int, char *);
|
||||
extern int npe_initialize(bd_t *);
|
||||
extern int uec_initialize(int);
|
||||
extern int atstk1000_eth_initialize(bd_t *);
|
||||
|
||||
static struct eth_device *eth_devices, *eth_current;
|
||||
|
||||
|
@ -255,6 +256,9 @@ int eth_initialize(bd_t *bis)
|
|||
#if defined(CONFIG_RTL8169)
|
||||
rtl8169_initialize(bis);
|
||||
#endif
|
||||
#if defined(CONFIG_ATSTK1000)
|
||||
atstk1000_eth_initialize(bis);
|
||||
#endif
|
||||
|
||||
if (!eth_devices) {
|
||||
puts ("No ethernet found.\n");
|
||||
|
|
Loading…
Add table
Reference in a new issue