From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Warren Date: Tue, 21 Aug 2007 09:25:35 -0400 Subject: [U-Boot-Users] [PATCH] DM9000 driver In-Reply-To: <46CAC398.2030706@denx.de> References: <46CAC398.2030706@denx.de> Message-ID: <46CAE7CF.9000602@qstreams.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de stefano babic wrote: > The logic to check if there is a correct MAC address in the DM9000 > EEPROM, added in the last patch, is wrong. > Now the MAC address is always taken from the environment, even if a > suitable MAC is present in the EEPROM. > > Signed-off-by: Stefano Babic > > Your patch is backwards (stuff to remove should be - and to add should be +), and so won't apply. The same goes for the TFTP one. > ------------------------------------------------------------------------ > > >From 432445542c9ebc11cc9d4ed4200de3671a2cf029 Mon Sep 17 00:00:00 2001 > From: Stefano Babic > Date: Tue, 21 Aug 2007 12:46:34 +0200 > Subject: [PATCH] The logic to check if there is a correct MAC address in the DM9000 EEPROM, > added in the last patch, is wrong. > Now the MAC address is always taken from the environment, even if a suitable MAC > is present in the EEPROM. Time to wait reading the EEPROM is set to 8ms > according to the linux driver > --- > drivers/dm9000x.c | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/dm9000x.c b/drivers/dm9000x.c > index e0d531b..78acb09 100644 > --- a/drivers/dm9000x.c > +++ b/drivers/dm9000x.c > @@ -303,8 +303,8 @@ eth_init(bd_t * bd) > for (i = 0; i < 6; i++) > ((u16 *) bd->bi_enetaddr)[i] = read_srom_word(i); > > - if (is_zero_ether_addr(bd->bi_enetaddr) || > - is_multicast_ether_addr(bd->bi_enetaddr)) { > + if (!is_zero_ether_addr(bd->bi_enetaddr) && > + !is_mutlicast_ether_addr(bd->bi_enetaddr)) { > /* try reading from environment */ > u8 i; > char *s, *e; > @@ -542,7 +542,7 @@ read_srom_word(int offset) > { > DM9000_iow(DM9000_EPAR, offset); > DM9000_iow(DM9000_EPCR, 0x4); > - udelay(8000); > + udelay(200); > Does the 200us delay not work, or are you just doing this to match the Linux driver?