summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2005-10-10 17:43:58 +0200
committerStefan Roese <sr@denx.de>2005-10-10 17:43:58 +0200
commit4f92ac3648483cef34eadf69da1f0895a5a148d8 (patch)
tree70b5ba86e840beab353f54e6b4b744cd395c14e7
parentc29ab9d71d229ee94e8263845ea54222005e3880 (diff)
downloadu-boot-4f92ac3648483cef34eadf69da1f0895a5a148d8.tar.gz
u-boot-4f92ac3648483cef34eadf69da1f0895a5a148d8.tar.xz
u-boot-4f92ac3648483cef34eadf69da1f0895a5a148d8.zip
Fix problem in ppc4xx eth-driver without ethaddr (only without
CONFIG_NET_MULTI set) Patch by Stefan Roese, 10 Oct 2005
-rw-r--r--CHANGELOG4
-rw-r--r--cpu/ppc4xx/4xx_enet.c14
2 files changed, 14 insertions, 4 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 3c0ff3fb9e..c5b9d3fa60 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,10 @@
Changes for U-Boot 1.1.4:
======================================================================
+* Fix problem in ppc4xx eth-driver without ethaddr (only without
+ CONFIG_NET_MULTI set)
+ Patch by Stefan Roese, 10 Oct 2005
+
* Fix gzip bmp support (test if malloc fails, warning when truncated).
Increase CFG_VIDEO_LOGO_MAX_SIZE on HH405 board.
Patch by Stefan Roese, 07 Oct 2005
diff --git a/cpu/ppc4xx/4xx_enet.c b/cpu/ppc4xx/4xx_enet.c
index 34f6e973f4..d3f1de4359 100644
--- a/cpu/ppc4xx/4xx_enet.c
+++ b/cpu/ppc4xx/4xx_enet.c
@@ -139,7 +139,7 @@
static uint32_t mal_ier;
#if !defined(CONFIG_NET_MULTI)
-struct eth_device *emac0_dev;
+struct eth_device *emac0_dev = NULL;
#endif
@@ -306,8 +306,10 @@ static int ppc_4xx_eth_init (struct eth_device *dev, bd_t * bis)
/* before doing anything, figure out if we have a MAC address */
/* if not, bail */
- if (memcmp (dev->enetaddr, "\0\0\0\0\0\0", 6) == 0)
+ if (memcmp (dev->enetaddr, "\0\0\0\0\0\0", 6) == 0) {
+ printf("ERROR: ethaddr not set!\n");
return -1;
+ }
#if defined(CONFIG_440GX)
/* Need to get the OPB frequency so we can access the PHY */
@@ -1486,12 +1488,16 @@ void eth_halt (void) {
int eth_init (bd_t *bis)
{
ppc_4xx_eth_initialize(bis);
- return(ppc_4xx_eth_init(emac0_dev, bis));
+ if (emac0_dev) {
+ return ppc_4xx_eth_init(emac0_dev, bis);
+ } else {
+ printf("ERROR: ethaddr not set!\n");
+ return -1;
+ }
}
int eth_send(volatile void *packet, int length)
{
-
return (ppc_4xx_eth_send(emac0_dev, packet, length));
}