Moved initialization of AVR32 Ethernet controllers to board_eth_init()
Subsystems (2)
cover Moved initialization of AVR32 Ethernet controllers to board_eth_init()
Hello,
More cleanup of net/eth.c, this time taking care of AVR32 boards. I got rid of the board/eth.c files because board_eth_init() needs to be in a file where there are other strong symbols in order to override the weak board_eth_init() in net/eth.c. I've compiled this code and verified that the strong board_eth_init() symbols are linked in, but don't have hardware to test on. If somebody can, please try out and let me know.
These patches are being staged in the 'testing' branch of the net repo.
regards,
Ben
PATCH 1/1 Moved initialization of AVR32 Ethernet controllers to board_eth_init()
Renamed initialization functions for atngw100 and atstk1000. Removed initializations for these boards from net/eth.c
--- board/atmel/atngw100/Makefile | 2 +- board/atmel/atngw100/atngw100.c | 11 ++++++++++ board/atmel/atngw100/eth.c | 36 ----------------------------------- board/atmel/atstk1000/Makefile | 2 +- board/atmel/atstk1000/atstk1000.c | 11 ++++++++++ board/atmel/atstk1000/eth.c | 38 ------------------------------------- net/eth.c | 8 ------- 7 files changed, 24 insertions(+), 84 deletions(-) delete mode 100644 board/atmel/atngw100/eth.c delete mode 100644 board/atmel/atstk1000/eth.c
board/atmel/atngw100/Makefile +1 -1
@@ -22,7 +22,7 @@ include $(TOPDIR)/config.mk LIB := $(obj)lib$(BOARD).a -COBJS := $(BOARD).o eth.o +COBJS := $(BOARD).o SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS))
board/atmel/atngw100/atngw100.c +11 -0
@@ -89,3 +89,14 @@ void board_init_info(void) gd->bd->bi_phy_id[0 ] =0x01 ; gd->bd->bi_phy_id[1 ] =0x03 ; } + +extern int macb_eth_initialize (int id,void *regs,unsigned int phy_addr); + +#ifdef CONFIG_CMD_NET +int board_eth_init (bd_t *bi) +{ +macb_eth_initialize (0 , (void *)MACB0_BASE , bi->bi_phy_id[0 ]); +macb_eth_initialize (1 , (void *)MACB1_BASE , bi->bi_phy_id[1 ]); +return 0 ; +} +#endif
board/atmel/atngw100/eth.c deleted +0 -36
@@ -1,36 +0,0 @@ -/* -* Copyright (C) 2006 Atmel Corporation -* -* Ethernet initialization for the AVR32 Network Gateway -* -* 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); - -#ifdef CONFIG_CMD_NET -void atngw100_eth_initialize (bd_t *bi) -{ -macb_eth_initialize (0 , (void *)MACB0_BASE , bi->bi_phy_id[0 ]); -macb_eth_initialize (1 , (void *)MACB1_BASE , bi->bi_phy_id[1 ]); -} -#endif
board/atmel/atstk1000/Makefile +1 -1
@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk LIB := $(obj)lib$(BOARD).a -COBJS := $(BOARD).o flash.o eth.o +COBJS := $(BOARD).o flash.o SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS))
board/atmel/atstk1000/atstk1000.c +11 -0
@@ -115,3 +115,14 @@ void board_init_info(void) gd->bd->bi_phy_id[0 ] =0x10 ; gd->bd->bi_phy_id[1 ] =0x11 ; } + +extern int macb_eth_initialize (int id,void *regs,unsigned int phy_addr); + +#ifdef CONFIG_CMD_NET +int board_eth_init (bd_t *bi) +{ +macb_eth_initialize (0 , (void *)MACB0_BASE , bi->bi_phy_id[0 ]); +macb_eth_initialize (1 , (void *)MACB1_BASE , bi->bi_phy_id[1 ]); +return 0 ; +} +#endif
board/atmel/atstk1000/eth.c deleted +0 -38
@@ -1,38 +0,0 @@ -/* -* 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 ) && defined(CONFIG_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
net/eth.c +0 -8
@@ -69,9 +69,7 @@ extern int uli526x_initialize(bd_t *);extern int npe_initialize (bd_t *);extern int uec_initialize (int );extern int bfin_EMAC_initialize (bd_t *); -extern int atstk1000_eth_initialize (bd_t *);extern int greth_initialize (bd_t *); -extern int atngw100_eth_initialize (bd_t *);extern int at91sam9_eth_initialize (bd_t *);#ifdef CONFIG_API
@@ -269,15 +267,9 @@ int eth_initialize(bd_t *bis)#if defined(CONFIG_BF537 )bfin_EMAC_initialize (bis);#endif -#if defined(CONFIG_ATSTK1000 ) -atstk1000_eth_initialize (bis); -#endif #if defined(CONFIG_GRETH )greth_initialize (bis);#endif -#if defined(CONFIG_ATNGW100 ) -atngw100_eth_initialize (bis); -#endif #if defined(CONFIG_AT91CAP9 ) || defined(CONFIG_AT91SAM9260 ) || \ defined(CONFIG_AT91SAM9263 )at91sam9_eth_initialize (bis);
Signature · 1 line
1.5.4.3
Haavard Skinnemoen
AppliedPATCH 1/1 Moved initialization of AVR32 Ethernet controllers to board_eth_init()
Quoted 4 lines · Ben Warren
Renamed initialization functions for atngw100 and atstk1000. Removed initializations for these boards from
net/eth.cSigned-off-by Ben Warren <[email protected]>
Applied, thanks. It's in a separate eth-cleanup branch for now, but I think I'm going to create some sort of "next" branch eventually where it can stay along with the hammerhead board.
Or is it better if I push it right away? The net/eth.c changes have a rather large potential for conflicts...
Haavard
cover Moved initialization of AVR32 Ethernet controllers to board_eth_init()
In reply to Ben WarrenQuoted 6 lines · On Sat, 5 Jul 2008 00:08:47 -0700 Ben Warren <[email protected]> wrote:
More cleanup of
net/eth.c, this time taking care of AVR32 boards. I got rid of theboard/eth.cfiles becauseboard_eth_init()needs to be in a file where there are other strong symbols in order to override the weakboard_eth_init()innet/eth.c. I've compiled this code and verified that the strongboard_eth_init()symbols are linked in, but don't have hardware to test on. If somebody can, please try out and let me know.
Looks good to me, but I don't have the chance to test it.
Quoted 1 line
These patches are being staged in the 'testing' branch of the net repo.
Maybe someone else could give it a try?
Haavard
cover Moved initialization of AVR32 Ethernet controllers to board_eth_init()
Quoted 12 lines · Haavard Skinnemoen
Quoted 6 lines · On Sat, 5 Jul 2008 00:08:47 -0700 Ben Warren <[email protected]> wrote:
More cleanup of
net/eth.c, this time taking care of AVR32 boards. I got rid of theboard/eth.cfiles becauseboard_eth_init()needs to be in a file where there are other strong symbols in order to override the weakboard_eth_init()innet/eth.c. I've compiled this code and verified that the strongboard_eth_init()symbols are linked in, but don't have hardware to test on. If somebody can, please try out and let me know.Looks good to me, but I don't have the chance to test it.
I tried looking into it, but I do not see who is going to call board_eth_init() ? Is this supposed to be done in net/eth.c or lib_avr32/board.c ?
Quoted 4 lines
Quoted 1 line
These patches are being staged in the 'testing' branch of the net repo.
Maybe someone else could give it a try?
I tried it (just reworked a bit to my board from EarthLCD) and it does not detect the PHY. I am working on master from the AVR32 branch in GIT.
PS! I am not on u-boot-users, and is there a archive which is faster to scroll than the one on sf.net?
Signature · 2 lines
With kind regards, Hans-Christian Egtvedt, Applications Engineer
cover Moved initialization of AVR32 Ethernet controllers to board_eth_init()
Quoted 11 lines · Hans-Christian Egtvedt
Quoted 10 lines · Haavard Skinnemoen
Quoted 6 lines · On Sat, 5 Jul 2008 00:08:47 -0700 Ben Warren <[email protected]> wrote:
More cleanup of
net/eth.c, this time taking care of AVR32 boards. I got rid of theboard/eth.cfiles becauseboard_eth_init()needs to be in a file where there are other strong symbols in order to override the weakboard_eth_init()innet/eth.c. I've compiled this code and verified that the strongboard_eth_init()symbols are linked in, but don't have hardware to test on. If somebody can, please try out and let me know.
Quoted 7 lines
Quoted 2 lines
Looks good to me, but I don't have the chance to test it.
I tried looking into it, but I do not see who is going to call
board_eth_init()? Is this supposed to be done innet/eth.corlib_avr32/board.c?
Cheese, I am blind, just found it almost on top in the eth_initialize() function.
I will pull the master and see if it works.
<snipp>
Signature · 2 lines
With kind regards, Hans-Christian Egtvedt, Applications Engineer
cover Moved initialization of AVR32 Ethernet controllers to board_eth_init()
Quoted 2 lines · Hans-Christian Egtvedt
Quoted 1 line · Hans-Christian Egtvedt
On Thu, 2008-07-10 at 13:24 +0200, Haavard Skinnemoen wrote:
<snipp>
Quoted 8 lines
Quoted 7 lines
Quoted 2 lines
Looks good to me, but I don't have the chance to test it.
I tried looking into it, but I do not see who is going to call
board_eth_init()? Is this supposed to be done innet/eth.corlib_avr32/board.c?
Quoted 5 lines
Cheese, I am blind, just found it almost on top in the
eth_initialize()function.I will pull the master and see if it works.
And it works, proof below (-: (Net: did not work before pulling master)
U-Boot 1.3.3-00248-gae9bc0c-dirty (Jul 10 2008 - 14:50:32)
U-Boot code: 00000000 -> 0000f6b8 data: 000155c0 -> 0004bd18
malloc: Using memory from 0x10f74000 to 0x10fb4000
DMA: Using memory from 0x10f70000 to 0x10f74000
Flash: 8 MB at address 0x00000000
DRAM Configuration:
Bank #0: 10000000 16 MB
In: serial Out: serial Err: serial Net: macb0
Press SPACE to abort autoboot in 1 seconds
macb0: link up, 100Mbps full-duplex (lpa: 0x45e1)
BOOTP broadcast 1
DHCP client bound to address 10.191.252.36
Using macb0 device
TFTP from server 10.191.252.83; our IP address is 10.191.252.36 Filename 'uimage_br_stk'.
Load address: 0x10400000
Loading: T #################################################################
########### done Bytes transferred = 1111788 (10f6ec hex) ## Booting kernel from Legacy Image at 10400000 ... Image Name: Linux-2.6.25.10.atmel.2 Image Type: AVR32 Linux Kernel Image (gzip compressed) Data Size: 1111724 Bytes = 1.1 MB
Load Address: 10000000
Entry Point: 90000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
Starting kernel at 90000000 (params at 10f74008)...
Linux version 2.6.25.10.atmel.2 (hcegtvedt at ssg-0) (gcc version 4.2.2-atmel.1.0.8) #68 Thu Jul 10 13:16:42 CEST 2008
Signature · 2 lines
With kind regards, Hans-Christian Egtvedt, Applications Engineer
cover Moved initialization of AVR32 Ethernet controllers to board_eth_init()
Quoted 55 lines · Hans-Christian Egtvedt
Quoted 4 lines · Hans-Christian Egtvedt
Quoted 2 lines · Hans-Christian Egtvedt
On Thu, 2008-07-10 at 13:24 +0200, Haavard Skinnemoen wrote:
<snipp>
Quoted 8 lines
Quoted 8 lines
Quoted 3 lines
Looks good to me, but I don't have the chance to test it.
I tried looking into it, but I do not see who is going to call
board_eth_init()? Is this supposed to be done innet/eth.corlib_avr32/board.c?Quoted 6 lines
Cheese, I am blind, just found it almost on top in the
eth_initialize()function.I will pull the master and see if it works.
And it works, proof below (-: (Net: did not work before pulling master)
U-Boot 1.3.3-00248-gae9bc0c-dirty (Jul 10 2008 - 14:50:32)
U-Boot code: 00000000 ->
0000f6b8data:000155c0->0004bd18
malloc: Using memory from0x10f74000to0x10fb4000
DMA: Using memory from0x10f70000to0x10f74000
Flash: 8 MB at address0x00000000
DRAM Configuration:
Bank #0: 10000000 16 MBIn: serial Out: serial Err: serial Net: macb0Press SPACE to abort autoboot in 1 seconds
macb0: link up, 100Mbps full-duplex (lpa:0x45e1)
BOOTP broadcast 1
DHCP client bound to address 10.191.252.36
Using macb0 device
TFTP from server 10.191.252.83; our IP address is 10.191.252.36 Filename 'uimage_br_stk'.
Load address:0x10400000
Loading: T ############################################################################ done Bytes transferred = 1111788 (10f6ec hex) ## Booting kernel from Legacy Image at 10400000 ... Image Name: Linux-2.6.25.10.atmel.2 Image Type: AVR32 Linux Kernel Image (gzip compressed) Data Size: 1111724 Bytes = 1.1 MB
Quoted 10 lines
Load Address: 10000000
Entry Point: 90000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OKStarting kernel at 90000000 (params at
10f74008)...Linux version 2.6.25.10.atmel.2 (hcegtvedt at ssg-0) (gcc version 4.2.2-atmel.1.0.8) #68 Thu Jul 10 13:16:42 CEST 2008
Good news!
Thanks,
Ben