X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=drivers%2Fnet%2Fpcnet.c;h=e994cb690197f722f50ef03f6fd2c8c2035e11f0;hb=11e238d6e672ac8b81cabbc7921b0da5554efc3a;hp=9ec7b833453749241b2de66d60a6fb0788025ed9;hpb=11ea26fd1cb63c91403fe04a6eea975cd418603f;p=u-boot diff --git a/drivers/net/pcnet.c b/drivers/net/pcnet.c index 9ec7b83345..e994cb6901 100644 --- a/drivers/net/pcnet.c +++ b/drivers/net/pcnet.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include @@ -45,9 +46,6 @@ #define PCNET_DEBUG2(fmt,args...) #endif -#if defined(CONFIG_CMD_NET) \ - && defined(CONFIG_NET_MULTI) && defined(CONFIG_PCNET) - #if !defined(CONF_PCNET_79C973) && defined(CONF_PCNET_79C975) #error "Macro for PCnet chip version is not defined!" #endif @@ -189,6 +187,11 @@ int pcnet_initialize (bd_t * bis) * Allocate and pre-fill the device structure. */ dev = (struct eth_device *) malloc (sizeof *dev); + if (!dev) { + printf("pcnet: Can not allocate memory\n"); + break; + } + memset(dev, 0, sizeof(*dev)); dev->priv = (void *) devbusfn; sprintf (dev->name, "pcnet#%d", dev_nr); @@ -197,6 +200,7 @@ int pcnet_initialize (bd_t * bis) */ pci_read_config_dword (devbusfn, PCI_BASE_ADDRESS_0, (unsigned int *) &dev->iobase); + dev->iobase=pci_io_to_phys (devbusfn, dev->iobase); dev->iobase &= ~0xf; PCNET_DEBUG1 ("%s: devbusfn=0x%x iobase=0x%x: ", @@ -536,4 +540,3 @@ static void pcnet_halt (struct eth_device *dev) printf ("%s: TIMEOUT: controller reset failed\n", dev->name); } } -#endif