2008/8/8 Richard Danter <[EMAIL PROTECTED]>: > I now have a driver that initialises the 64120 and U-Boot sees the > bridge and Ethernet card. So far so good! But the Ethernet card can > not ping anything on my network. > > This is what I see... > > --8<-- > U-Boot 1.3.3-svn19 (Aug 8 2008 - 15:32:31) > > Board: PPMC MIPS > DRAM: 64 MB > Flash: 4 MB > In: serial > Out: serial > Err: serial > Net: i82559#0 > => pci > Scanning PCI devices on bus 0 > BusDevFun VendorId DeviceId Device Class Sub-Class > _____________________________________________________________ > 00.00.00 0x11ab 0x4620 Bridge device 0x00 > 00.07.00 0x8086 0x1030 Network controller 0x00 > 00.08.00 0x1011 0x0026 Bridge device 0x04 > => printenv > baudrate=9600 > ethact=i82559#0 > ipaddr=192.168.1.84 > netmask=255.255.255.0 > stdin=serial > stdout=serial > stderr=serial > > Environment size: 113/32764 bytes > => ping 192.168.1.1 > i82559#0: Tx error buffer not ready > ping failed; host 192.168.1.1 is not alive > --8<-- > > My guess is that there is probably still something I did not do in the > PCI init code, but I have looked at as many examples as I can find and > I can't see anything amiss. Any thoughts on what would case the buffer > not to work even though the Ethernet card itself is seen and appears > to be detected correctly?
OK, I think I figured this out but still not sure what the correct solution is... The tx_ring and rx_ring buffers are being placed in SDRAM accessed via kseg0 (cached) at 0x8nnnnnnn. After trying to ping and getting the timeout I see the following at this location... 83ff8d30: 00000240 308dff03 16080001 00002203 [EMAIL PROTECTED]". 83ff8d40: 01002e00 60088868 0040f284 31050000 [EMAIL PROTECTED] But if I look at the same physical address via kseg1 (uncached) at 0xAnnnnnnn then I see... a3ff8d30: 00a00240 308dff03 16080001 00002203 [EMAIL PROTECTED]". a3ff8d40: 01002e00 60088868 0040f284 31050000 [EMAIL PROTECTED] I think the 00a0 at the start is the correct value (Tx done). Can anyone confirm this? If so then the problem seems to be that I need to read/write the Tx/Rx buffers via kseg1 and not kseg0. But in general I want as much data and code in kseg0 as possible to get the best performance. What is the correct way to do this? Thanks Rich _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot