[U-Boot-Users] [PATCH] DM9000 driver

Ben Warren bwarren at qstreams.com
Tue Aug 21 15:25:35 CEST 2007


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 <sbabic at denx.de>
>
>   
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 <sbabic at denx.de>
> 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?




More information about the U-Boot mailing list