From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zang Roy-r61911 Date: 15 Nov 2007 20:03:53 +0800 Subject: [U-Boot-Users] [PATCH] Implement general ULi 526x Ethernet driver support in U-boot In-Reply-To: <473B26BC.3070508@freescale.com> References: <1193910575.19316.21.camel@localhost.localdomain> <1194252111.17074.8.camel@localhost.localdomain> <1194255563.17501.7.camel@localhost.localdomain> <473B157A.5000505@freescale.com> <473B26BC.3070508@freescale.com> Message-ID: <1195128233.7437.22.camel@localhost.localdomain> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Thu, 2007-11-15 at 00:47, Tabi Timur wrote: > Timur Tabi wrote: > > > BTW, where is the code that programs the MAC address *into* the > IDT/SROM? All > > we have is code that reads *from* the IDT/SROM. On the 8610, the > MAC address is > > stored in I2C EEPROM (address 0x57), and so U-Boot will need to copy > that into > > the IDT/SROM *before* this driver runs. > > I think I see the problem. The comment in set_mac_addr() is wrong and > confused me: > > +static void set_mac_addr(struct eth_device *dev) > +{ > + int i; > + u16 addr; > + struct uli526x_board_info *db = dev->priv; > + outl(0x10000, db->ioaddr + DCR0); /* Diagnosis mode */ > + /* Reset dianostic pointer port */ > + outl(0x1c0, db->ioaddr + DCR13); > + outl(0, db->ioaddr + DCR14); /* Clear reset port */ > + outl(0x10, db->ioaddr + DCR14); /* Reset ID Table pointer */ > + outl(0, db->ioaddr + DCR14); /* Clear reset port */ > + outl(0, db->ioaddr + DCR13); /* Clear CR13 */ > + /* Select ID Table access port */ > + outl(0x1b0, db->ioaddr + DCR13); > + /* Read MAC address from CR14 */ > > This should say "Write MAC address to CR14" You are correct! Roy