mgcoge make ether_scc.c work with CONFIG_NET_MULTI
PATCH 1/1 mgcoge make ether_scc.c work with CONFIG_NET_MULTI
This change is needed for mgcoge because it uses two ethernet drivers.
Add a check for the presence of the PIGGY board on mgcoge. Without this board networking cannot work and the initialization must be aborted.
Only allocate rtx once to prevent DPRAM exhaustion.
Initialize ether_scc.c and the keymile-specific HDLC driver (to be added soon) in eth.c.
---
I ran "MAKEALL ppc" and no errors were caused by this patch.
cpu/mpc8260/ether_scc.c | 56 +++++++++++++++++++++++++++++++++++++++++------ net/eth.c | 8 ++++++ 2 files changed, 57 insertions(+), 7 deletions(-)
cpu/mpc8260/ether_scc.c +49 -7
@@ -10,6 +10,12 @@* Advent Networks, Inc. <http://www.adventnetworks.com> * Jay Monkman <[email protected]> * +* Modified so that it plays nicely when more than one ETHERNET interface +* is in use a la ether_fcc.c. +* (C) Copyright 2008 +* DENX Software Engineerin GmbH +* Gary Jennejohn <[email protected]> +* * See file CREDITS for list of people who contributed to this * project. *
@@ -32,12 +38,17 @@#include <common.h> #include <asm/cpm_8260.h> #include <mpc8260.h> +#include <malloc.h> #include <net.h> #include <command.h> #include <config.h> #if defined(CONFIG_ETHER_ON_SCC ) && defined(CONFIG_CMD_NET ) +#ifndef CONFIG_NET_MULTI +#error "CONFIG_NET_MULTI must be defined." +#endif +#if (CONFIG_ETHER_INDEX ==1 )# define PROFF_ENET PROFF_SCC1# define CPM_CR_ENET_PAGE CPM_CR_SCC1_PAGE
@@ -100,7 +111,7 @@ typedef volatile struct CommonBufferDescriptor {static RTXBD *rtx; -int eth_send (volatile void *packet,int length) +int sec_send (struct eth_device *dev,volatile void *packet,int length) {int i;int result =0 ;
@@ -137,7 +148,7 @@ int eth_send(volatile void *packet, int length) } -int eth_rx (void ) +int sec_rx (struct eth_device *dev) {int length;
@@ -184,19 +195,32 @@ int eth_rx(void)* *************************************************************/ -int eth_init (bd_t *bis) +int sec_init (struct eth_device *dev,bd_t *bis) {int i;volatile immap_t *immr = (immap_t *)CONFIG_SYS_IMMR ;scc_enet_t *pram_ptr;uint dpaddr; +#if defined(CONFIG_CHECK_ETHERNET_PRESENT ) +if (ethernet_present (CONFIG_ETHER_INDEX ) ==0 ) { +printf ("Ethernet index: %d not present.\n" , +CONFIG_ETHER_INDEX ); +return -1 ; + } +#endif + rxIdx =0 ; txIdx =0 ; -/* assign static pointer to BD area */ - dpaddr =m8260_cpm_dpalloc (sizeof (RTXBD ) +2 ,16 ); - rtx = (RTXBD *)&immr->im_dprambase[dpaddr]; +/* +* Assign static pointer to BD area. +* Avoid exhausting DPRAM, which would cause a panic. +*/ +if (rtx ==NULL ) { + dpaddr =m8260_cpm_dpalloc (sizeof (RTXBD ) +2 ,16 ); + rtx = (RTXBD *)&immr->im_dprambase[dpaddr]; + }/* 24.21 - (1-3): ioports have been set up already */
@@ -338,7 +362,7 @@ int eth_init(bd_t *bis) } -void eth_halt (void ) +void sec_halt (struct eth_device *dev) {volatile immap_t *immr = (immap_t *)CONFIG_SYS_IMMR ; immr->im_scc[CONFIG_ETHER_INDEX-1].scc_gsmrl &= ~(SCC_GSMRL_ENR |
@@ -354,4 +378,22 @@ void restart(void) }#endif +int sec_initialize (bd_t *bis) +{ +struct eth_device *dev; + + dev = (struct eth_device *)malloc (sizeof *dev); +memset (dev,0 ,sizeof *dev); + +sprintf (dev->name,"SCC ETHERNET" ); + dev->init = sec_init; + dev->halt = sec_halt; + dev->send = sec_send; + dev->recv = sec_rx; + +eth_register (dev); + +return 1 ; +} +#endif
net/eth.c +8 -0
@@ -48,6 +48,8 @@ extern int ppc_4xx_eth_initialize(bd_t *);extern int scc_initialize (bd_t *);extern int npe_initialize (bd_t *);extern int uec_initialize (int ); +extern int sec_initialize (bd_t *); +extern int keymile_hdlc_enet_initialize (bd_t *);#ifdef CONFIG_API extern void (*push_packet)(volatile void *,int );
@@ -196,6 +198,12 @@ int eth_initialize(bd_t *bis)#if defined(CONFIG_IXP4XX_NPE )npe_initialize (bis);#endif +#if defined(CONFIG_ETHER_ON_SCC ) && defined(CONFIG_MPC8260 ) +sec_initialize (bis); +#endif +#if defined(CONFIG_KEYMILE_HDLC_ENET ) +keymile_hdlc_enet_initialize (bis); +#endif if (!eth_devices) {puts ("No ethernet found.\n" );show_boot_progress (-64 );
Signature · 9 lines
1.5.4.3 --- Gary Jennejohn ********************************************************************* DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de *********************************************************************
PATCH 1/1 mgcoge make ether_scc.c work with CONFIG_NET_MULTI
Hi Gary,
Quoted 3 lines · Gary Jennejohn
This change is needed for mgcoge because it uses two ethernet drivers.
I like the idea of moving drivers to use CONFIG_NET_MULTI, particularly so that we can get rid of it as an option... There are a few more things you need to think about, though.
Quoted 35 lines
Add a check for the presence of the PIGGY board on mgcoge. Without this board networking cannot work and the initialization must be aborted.
Only allocate rtx once to prevent DPRAM exhaustion.
Initialize
ether_scc.cand the keymile-specific HDLC driver (to be added soon) ineth.c.Signed-off-by Gary Jennejohn <[email protected]>---
I ran "MAKEALL ppc" and no errors were caused by this patch.
cpu/mpc8260/ether_scc.c | 56 +++++++++++++++++++++++++++++++++++++++++------ net/eth.c | 8 ++++++ 2 files changed, 57 insertions(+), 7 deletions(-)cpu/mpc8260/ether_scc.c +6
-0@@ -10,6 +10,12 @@* Advent Networks, Inc. <http://www.adventnetworks.com> * Jay Monkman <[email protected]> * +* Modified so that it plays nicely when more than one ETHERNET interface +* is in use a la ether_fcc.c. +* (C) Copyright 2008 +* DENX Software Engineerin GmbH +* Gary Jennejohn <[email protected]> +* * See file CREDITS for list of people who contributed to this * project. *
cpu/mpc8260/ether_scc.c line 47
Quoted 10 lines
cpu/mpc8260/ether_scc.c +1
-0@@ -32,12 +38,17 @@#include <common.h> #include <asm/cpm_8260.h> #include <mpc8260.h> +#include <malloc.h> #include <net.h> #include <command.h> #include <config.h> #if defined(CONFIG_ETHER_ON_SCC ) && defined(CONFIG_CMD_NET )
While you're mucking around with this file, please settle on a single CONFIG that can allow conditional compilation from the Makefile, then get rid of this stuff.
Quoted 9 lines
cpu/mpc8260/ether_scc.c +4
-0+#ifndef CONFIG_NET_MULTI +#error "CONFIG_NET_MULTI must be defined." +#endif +#if (CONFIG_ETHER_INDEX ==1 )# define PROFF_ENET PROFF_SCC1# define CPM_CR_ENET_PAGE CPM_CR_SCC1_PAGE
cpu/mpc8260/ether_scc.c typedef volatile struct CommonBufferDescriptor { · line 115
Quoted 6 lines
cpu/mpc8260/ether_scc.c +1
-1@@ -100,7 +111,7 @@ typedef volatile struct CommonBufferDescriptor {static RTXBD *rtx; -int eth_send (volatile void *packet,int length) +int sec_send (struct eth_device *dev,volatile void *packet,int length)
Please give all these functions, except initialize(), file scope (i.e. make them static). I'm not crazy about the name 'sec', but if it's static the objection doesn't carry much weight. I also can't think of a better name.
Quoted 59 lines
cpu/mpc8260/ether_scc.c +0
-0{int i;int result = 0;cpu/mpc8260/ether_scc.c +19
-6@@ -137,7 +148,7 @@ int eth_send(volatile void *packet, int length) } -int eth_rx (void ) +int sec_rx (struct eth_device *dev) {int length;@@ -184,19 +195,32 @@ int eth_rx(void)* *************************************************************/ -int eth_init (bd_t *bis) +int sec_init (struct eth_device *dev,bd_t *bis) {int i;volatile immap_t *immr = (immap_t *)CONFIG_SYS_IMMR ;scc_enet_t *pram_ptr;uint dpaddr; +#if defined(CONFIG_CHECK_ETHERNET_PRESENT ) +if (ethernet_present (CONFIG_ETHER_INDEX ) ==0 ) { +printf ("Ethernet index: %d not present.\n" , +CONFIG_ETHER_INDEX ); +return -1 ; + } +#endif + rxIdx =0 ; txIdx =0 ; -/* assign static pointer to BD area */ - dpaddr =m8260_cpm_dpalloc (sizeof (RTXBD ) +2 ,16 ); - rtx = (RTXBD *)&immr->im_dprambase[dpaddr]; +/* +* Assign static pointer to BD area. +* Avoid exhausting DPRAM, which would cause a panic. +*/ +if (rtx ==NULL ) { + dpaddr =m8260_cpm_dpalloc (sizeof (RTXBD ) +2 ,16 ); + rtx = (RTXBD *)&immr->im_dprambase[dpaddr]; + }/* 24.21 - (1-3): ioports have been set up already */ @@ -338,7 +362,7 @@ int eth_init(bd_t *bis) } -void eth_halt (void ) +void sec_halt (struct eth_device *dev) {volatile immap_t *immr = (immap_t *)CONFIG_SYS_IMMR ; immr->im_scc[CONFIG_ETHER_INDEX-1].scc_gsmrl &= ~(SCC_GSMRL_ENR |
cpu/mpc8260/ether_scc.c void restart(void) · line 382
Quoted 5 lines
cpu/mpc8260/ether_scc.c +1
-0@@ -354,4 +378,22 @@ void restart(void) }#endif +int sec_initialize (bd_t *bis)
For this function with global namespace, please pick a more descriptive name. Maybe 82xx_scc_initialize() or something?
Quoted 35 lines
cpu/mpc8260/ether_scc.c +17
-0+{ +struct eth_device *dev; + + dev = (struct eth_device *)malloc (sizeof *dev); +memset (dev,0 ,sizeof *dev); + +sprintf (dev->name,"SCC ETHERNET" ); + dev->init = sec_init; + dev->halt = sec_halt; + dev->send = sec_send; + dev->recv = sec_rx; + +eth_register (dev); + +return 1 ; +} +#endif
net/eth.c +2
-0@@ -48,6 +48,8 @@ extern int ppc_4xx_eth_initialize(bd_t *);extern int scc_initialize (bd_t *);extern int npe_initialize (bd_t *);extern int uec_initialize (int ); +extern int sec_initialize (bd_t *); +extern int keymile_hdlc_enet_initialize (bd_t *);#ifdef CONFIG_API extern void (*push_packet)(volatile void *,int );@@ -196,6 +198,12 @@ int eth_initialize(bd_t *bis)#if defined(CONFIG_IXP4XX_NPE )npe_initialize (bis);
net/eth.c int eth_initialize(bd_t *bis) · line 209
Quoted 10 lines
net/eth.c +6
-0#endif +#if defined(CONFIG_ETHER_ON_SCC ) && defined(CONFIG_MPC8260 ) +sec_initialize (bis); +#endif +#if defined(CONFIG_KEYMILE_HDLC_ENET ) +keymile_hdlc_enet_initialize (bis); +#endif if (!eth_devices) {puts ("No ethernet found.\n" );show_boot_progress (-64 );
Please don't add anything to this file. All initializations now go in cpu_eth_init()/board_eth_init(). There are plenty of examples you can draw from. Don't forget to add your initializer function to include/netdev.h
You get bonus points if you move this driver to drivers/net
regards,
Ben
PATCH 1/1 mgcoge make ether_scc.c work with CONFIG_NET_MULTI
Hi Ben,
Quoted 1 line · Ben Warren
Gary Jennejohn wrote:
[snip]
Quoted 6 lines
Quoted 2 lines
#if
defined(CONFIG_ETHER_ON_SCC)&&defined(CONFIG_CMD_NET)While you're mucking around with this file, please settle on a single CONFIG that can allow conditional compilation from the
Makefile, then get rid of this stuff.
You mean get rid of CONFIG_ETHER_ON_SCC and CONFIG_CMD_NET? But isn't at least CONFIG_CMD_NET required to get networking support in other parts of U-Boot, which would make it a prerequisite for compiling this?
And eliminating or supplementing CONFIG_ETHER_ON_SCC with a new CONFIG would mean changing a whole slew of configuration files, not to mention include/net.h.
Quoted 8 lines
cpu/mpc8260/ether_scc.c typedef volatile struct CommonBufferDescriptor { · line 114
Quoted 3 lines
cpu/mpc8260/ether_scc.c +1
-1-int eth_send (volatile void *packet,int length) +int sec_send (struct eth_device *dev,volatile void *packet,int length)Please give all these functions, except
initialize(), file scope (i.e. make them static). I'm not crazy about the name 'sec', but if it's static the objection doesn't carry much weight. I also can't think of a better name.
Yeah, I should have thought of this when I did the mods.
[snip]
Quoted 5 lines
Quoted 2 lines
+int
sec_initialize(bd_t *bis)For this function with global namespace, please pick a more descriptive name. Maybe 82xx_scc_initialize() or something?
I called it 82xx_scc_enet_initialize() to make its function clear.
Quoted 21 lines
Quoted 21 lines
net/eth.c +8
-0@@ -48,6 +48,8 @@ extern int ppc_4xx_eth_initialize(bd_t *);extern int scc_initialize (bd_t *);extern int npe_initialize (bd_t *);extern int uec_initialize (int ); +extern int sec_initialize (bd_t *); +extern int keymile_hdlc_enet_initialize (bd_t *);#ifdef CONFIG_API extern void (*push_packet)(volatile void *,int );@@ -196,6 +198,12 @@ int eth_initialize(bd_t *bis)#if defined(CONFIG_IXP4XX_NPE )npe_initialize (bis);#endif +#if defined(CONFIG_ETHER_ON_SCC ) && defined(CONFIG_MPC8260 ) +sec_initialize (bis); +#endif +#if defined(CONFIG_KEYMILE_HDLC_ENET ) +keymile_hdlc_enet_initialize (bis); +#endif
Quoted 9 lines
net/eth.c int eth_initialize(bd_t *bis) · line 209
Quoted 4 lines
net/eth.c +0
-0if (!eth_devices) {puts ("No ethernet found.\n" );show_boot_progress (-64 );Please don't add anything to this file. All initializations now go in cpu_eth_init()/board_eth_init(). There are plenty of examples you can draw from. Don't forget to add your initializer function to
include/netdev.h
OK, that should be easy enough. I've now done it for keymile.
Quoted 2 lines
You get bonus points if you move this driver to
drivers/net
I'll look into it but make no promises.
---
Gary Jennejohn
*********************************************************************
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
*********************************************************************
PATCH 1/1 mgcoge make ether_scc.c work with CONFIG_NET_MULTI
Hi Gary,
Quoted 17 lines · Gary Jennejohn
Hi Ben,
Quoted 2 lines · Ben Warren
Gary Jennejohn wrote:
[snip]
Quoted 8 lines
Quoted 3 lines
#if
defined(CONFIG_ETHER_ON_SCC)&&defined(CONFIG_CMD_NET)While you're mucking around with this file, please settle on a single CONFIG that can allow conditional compilation from the
Makefile, then get rid of this stuff.
Quoted 9 lines
You mean get rid of
CONFIG_ETHER_ON_SCCandCONFIG_CMD_NET? But isn't at leastCONFIG_CMD_NETrequired to get networking support in other parts of U-Boot, which would make it a prerequisite for compiling this?And eliminating or supplementing
CONFIG_ETHER_ON_SCCwith a new CONFIG would mean changing a whole slew of configuration files, not to mentioninclude/net.h.
I don't mean get rid of them completely, just move the conditionality to the Makefile. IMHO the CONFIG_ETHER_ON_SCC conditional is enough, you don't need to check for CONFIG_CMD_NET. It the user doesn' t have it set, problems will show up all over the place, and very quickly. I'd prefer to change the name of CONFIG_ETHER_ON_SCC to something indicating 82xx-ness, since this driver is specific to the 82xx family of SOCs, but SCCs have been around longer than PowerPC. One thing you'll notice is that most of the config files that mention this option are #undef'ing it only.
Quoted 18 lines
Quoted 10 lines
cpu/mpc8260/ether_scc.c typedef volatile struct CommonBufferDescriptor { · line 114
Quoted 4 lines
cpu/mpc8260/ether_scc.c +1
-1-int eth_send (volatile void *packet,int length) +int sec_send (struct eth_device *dev,volatile void *packet,int length)Please give all these functions, except
initialize(), file scope (i.e. make them static). I'm not crazy about the name 'sec', but if it's static the objection doesn't carry much weight. I also can't think of a better name.Yeah, I should have thought of this when I did the mods.
[snip]
Quoted 3 lines
Quoted 3 lines
+int
sec_initialize(bd_t *bis)
Quoted 8 lines
Quoted 4 lines
For this function with global namespace, please pick a more descriptive name. Maybe 82xx_scc_initialize() or something?
I called it 82xx_scc_enet_initialize() to make its function clear.
Perfect.
Quoted 33 lines
Quoted 22 lines
Quoted 22 lines
net/eth.c +8
-0@@ -48,6 +48,8 @@ extern int ppc_4xx_eth_initialize(bd_t *);extern int scc_initialize (bd_t *);extern int npe_initialize (bd_t *);extern int uec_initialize (int ); +extern int sec_initialize (bd_t *); +extern int keymile_hdlc_enet_initialize (bd_t *);#ifdef CONFIG_API extern void (*push_packet)(volatile void *,int );@@ -196,6 +198,12 @@ int eth_initialize(bd_t *bis)#if defined(CONFIG_IXP4XX_NPE )npe_initialize (bis);#endif +#if defined(CONFIG_ETHER_ON_SCC ) && defined(CONFIG_MPC8260 ) +sec_initialize (bis); +#endif +#if defined(CONFIG_KEYMILE_HDLC_ENET ) +keymile_hdlc_enet_initialize (bis); +#endif if (!eth_devices) {Quoted 10 lines
net/eth.c int eth_initialize(bd_t *bis) · line 209
Quoted 4 lines
net/eth.c +0
-0puts ("No ethernet found.\n" );show_boot_progress (-64 );Please don't add anything to this file. All initializations now go in cpu_eth_init()/board_eth_init(). There are plenty of examples you can draw from. Don't forget to add your initializer function to
include/netdev.h
Quoted 9 lines
OK, that should be easy enough. I've now done it for keymile.
Quoted 3 lines
You get bonus points if you move this driver to
drivers/netI'll look into it but make no promises.
That's OK, do what you can. We all have priorities.
regards,
Ben
PATCH 1/1 mgcoge make ether_scc.c work with CONFIG_NET_MULTI
Hi Ben,
Quoted 25 lines · Ben Warren
Quoted 15 lines · Gary Jennejohn
Quoted 2 lines · Ben Warren
Gary Jennejohn wrote:
[snip]
Quoted 8 lines
Quoted 3 lines
#if
defined(CONFIG_ETHER_ON_SCC)&&defined(CONFIG_CMD_NET)While you're mucking around with this file, please settle on a single CONFIG that can allow conditional compilation from the
Makefile, then get rid of this stuff.Quoted 9 lines
You mean get rid of
CONFIG_ETHER_ON_SCCandCONFIG_CMD_NET? But isn't at leastCONFIG_CMD_NETrequired to get networking support in other parts of U-Boot, which would make it a prerequisite for compiling this?And eliminating or supplementing
CONFIG_ETHER_ON_SCCwith a new CONFIG would mean changing a whole slew of configuration files, not to mentioninclude/net.h.
Quoted 10 lines
I don't mean get rid of them completely, just move the conditionality to the
Makefile. IMHO theCONFIG_ETHER_ON_SCCconditional is enough, you don't need to check forCONFIG_CMD_NET. It the user doesn' t have it set, problems will show up all over the place, and very quickly. I'd prefer to change the name ofCONFIG_ETHER_ON_SCCto something indicating 82xx-ness, since this driver is specific to the 82xx family of SOCs, but SCCs have been around longer than PowerPC. One thing you'll notice is that most of the config files that mention this option are #undef'ing it only.
OK, I think I'll keep CONFIG_ETHER_ON_SCC because
a) there's less repo churn and less work for me :-)
b) it's also used in board/pm826/pm826.c and board/pm828/pm828.c to control setup of port pins and I hesitate to touch board-specific code.
---
Gary Jennejohn
*********************************************************************
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
*********************************************************************
PATCH v2 1/1 mgcoge make ether_scc.c work with CONFIG_NET_MULTI
In reply to Gary JennejohnThis change is needed for mgcoge because it uses two ethernet drivers.
Add a check for the presence of the PIGGY board on mgcoge. Without this board networking cannot work and the initialization must be aborted.
Only allocate rtx once to prevent DPRAM exhaustion.
Initialize ether_scc.c and the keymile-specific HDLC driver (to be added soon) in eth.c.
---
I ran "MAKEALL ppc" and no errors were caused by this patch.
v2
- handle comments from Ben Warren
1) set local routines in ether_scc.c static; renamed sec_initialize() to
mpc82xx_scc_enet_initialize(); eliminated the dependency on CONFIG_ETHER_ON_SCC
and CONFIG_CMD_NET
2) made compilation of ether_scc.c conditional on CONFIG_ETHER_ON_SCC in
cpu/mpc8260/Makefile
3) moved the initialization of ether_scc.c from net/eth.c to
cpu/mpc8260/cpu.c 4) added mpc82xx_scc_enet_initialize() to include/netdev.h
5) Changes to net/eth.c are no longer required and this part of the old patch has now disappeared
cpu/mpc8260/Makefile | 8 +++++- cpu/mpc8260/cpu.c | 11 ++++++++- cpu/mpc8260/ether_scc.c | 58 ++++++++++++++++++++++++++++++++++++++-------- include/netdev.h | 1 + 4 files changed, 65 insertions(+), 13 deletions(-)
cpu/mpc8260/Makefile +6 -2
@@ -1,5 +1,5 @@ # -# (C) Copyright 2000-2006 +# (C) Copyright 2000-2008 # Wolfgang Denk, DENX Software Engineering, wd at denx.de. # # See file CREDITS for list of people who contributed to this
@@ -27,9 +27,13 @@ LIB = $(obj)lib$(CPU).a START = start.o kgdb.o COBJS = traps.o serial_smc.o serial_scc.o cpu.o cpu_init.o speed.o \ - interrupts.o ether_scc.o ether_fcc.o i2c.o commproc.o \ + interrupts.o ether_fcc.o i2c.o commproc.o \ bedbug_603e.o pci.o spi.o +COBJS-$(CONFIG_ETHER_ON_SCC) = ether_scc.o + +COBJS += $(COBJS-y) + SRCS := $(START:.o=.S) $(SOBJS:.o=.S) $(COBJS:.o=.c) OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS)) START := $(addprefix $(obj),$(START))
cpu/mpc8260/cpu.c +10 -1
@@ -1,5 +1,5 @@/* -* (C) Copyright 2000-2006 +* (C) Copyright 2000-2008 * Wolfgang Denk, DENX Software Engineering, wd at denx.de. * * See file CREDITS for list of people who contributed to this
@@ -44,6 +44,7 @@#include <watchdog.h> #include <command.h> #include <mpc8260.h> +#include <netdev.h> #include <asm/processor.h> #include <asm/cpm_8260.h>
@@ -315,3 +316,11 @@ void ft_cpu_setup (void *blob, bd_t *bd) do_fixup_by_path_u32(blob, cpu_path, "clock-frequency", bd->bi_intfreq, 1); }#endif /* CONFIG_OF_LIBFDT */ + +/* ------------------------------------------------------------------------- */ +#if defined(CONFIG_ETHER_ON_SCC ) +int cpu_eth_init (bd_t *bd) +{ +return mpc82xx_scc_enet_initialize (bd); +} +#endif /* CONFIG_ETHER_ON_SCC */
cpu/mpc8260/ether_scc.c +48 -10
116 lines not on this page · raw message
include/netdev.h +1 -0
@@ -54,6 +54,7 @@ int mcdmafec_initialize(bd_t *bis);int mcffec_initialize (bd_t *bis);int mpc512x_fec_initialize (bd_t *bis);int mpc5xxx_fec_initialize (bd_t *bis); +int mpc82xx_scc_enet_initialize (bd_t *bis);int natsemi_initialize (bd_t *bis);int ns8382x_initialize (bd_t *bis);int pcnet_initialize (bd_t *bis);
Signature · 9 lines
1.5.4.3 --- Gary Jennejohn ********************************************************************* DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de *********************************************************************
PATCH v2 1/1 mgcoge make ether_scc.c work with CONFIG_NET_MULTI
Dear Ben,
Quoted 11 lines · In message <[email protected]> Gary Jennejohn wrote:
This change is needed for mgcoge because it uses two ethernet drivers.
Add a check for the presence of the PIGGY board on mgcoge. Without this board networking cannot work and the initialization must be aborted.
Only allocate rtx once to prevent DPRAM exhaustion.
Initialize
ether_scc.cand the keymile-specific HDLC driver (to be added soon) ineth.c.Signed-off-by Gary Jennejohn <[email protected]>
Any comments on this?
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de One does not thank logic. -- Sarek, "Journey to Babel", stardate 3842.4
PATCH v2 1/1 mgcoge make ether_scc.c work with CONFIG_NET_MULTI
Dear Ben,
Quoted 2 lines · In message <[email protected]> I wrote:
Any comments on this?
Please ignore. I missed the v3 patch.
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
A committee is a group that keeps the minutes and loses hours.
-- Milton BerlePATCH v2 1/1 mgcoge make ether_scc.c work with CONFIG_NET_MULTI
In reply to Wolfgang DenkHi Wolfgang,
Quoted 14 lines · Wolfgang Denk
Dear Ben,
Quoted 10 lines · In message <[email protected]> Gary Jennejohn wrote:
This change is needed for mgcoge because it uses two ethernet drivers.
Add a check for the presence of the PIGGY board on mgcoge. Without this board networking cannot work and the initialization must be aborted.
Only allocate rtx once to prevent DPRAM exhaustion.
Initialize
ether_scc.cand the keymile-specific HDLC driver (to be added soon) ineth.c.
Quoted 10 lines
Quoted 2 lines
Signed-off-by Gary Jennejohn <[email protected]>Any comments on this?
Best regards,
Wolfgang Denk
Looks like I pulled it into the 'next' branch and forgot to tell anyone :-( Do you want it in the current release?
regards,
Ben
PATCH v2 1/1 mgcoge make ether_scc.c work with CONFIG_NET_MULTI
Quoted 20 lines · On Mon, 08 Dec 2008 14:05:22 -0800 Ben Warren <[email protected]> wrote:
Quoted 19 lines · Wolfgang Denk
Dear Ben,
Quoted 5 lines · In message <[email protected]> Gary Jennejohn wrote:
This change is needed for mgcoge because it uses two ethernet drivers.
Add a check for the presence of the PIGGY board on mgcoge. Without this board networking cannot work and the initialization must be aborted.
Quoted 7 lines
Only allocate rtx once to prevent DPRAM exhaustion.
Initialize
ether_scc.cand the keymile-specific HDLC driver (to be added soon) ineth.c.Signed-off-by Gary Jennejohn <[email protected]>Any comments on this?
Quoted 8 lines
Quoted 5 lines
Best regards,
Wolfgang Denk
Looks like I pulled it into the 'next' branch and forgot to tell anyone :-( Do you want it in the current release?
You told me :-)
---
Gary Jennejohn
*********************************************************************
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
*********************************************************************