[U-Boot] NET: SDP3430: trouble with shifting from LAN9C916 to SMC91XX driver

Ben Warren biggerbadderben at gmail.com
Wed Oct 14 21:00:47 CEST 2009


Hi Nishanth,

Nishanth Menon wrote:
> Ben Warren had written, on 10/13/2009 11:36 PM, the following:
>> Nishanth,
>>
>> On Tue, Oct 13, 2009 at 8:13 PM, Nishanth Menon <nm at ti.com 
>> <mailto:nm at ti.com>> wrote:
>>
>>     Hi Folks,
>>
>>     While attempting to address the warning for SDP3430 as pointed 
>> out by
>>     dirk in [1], I did a patch corresponding to what was done for 
>> EVM(353x)
>>     as in [2]. unfortunately, this wont work for me, I get:
>>     U-Boot 2009.08-00515-gfea6a55-dirty (Oct 12 2009 - 14:03:23)
>>
>>     OMAP3530-GP ES3.0, CPU-OPP2 L3-165MHz
>>     OMAP3 SDP3430 board + LPDDR/NOR
>>     I2C:   ready
>>     DRAM:  128 MB
>>     Flash: 128 MB
>>     In:    serial
>>     Out:   serial
>>     Err:   serial
>>     smc911x: Invalid chip endian 0xdee0013d
>>     Net:   No ethernet found.
>>     OMAP34XX SDP #
>>
>>     and no network, using LEGACY driver seems to be working just great
>>     for me.
>>
>>     Note: in my patch [2], I did try both CONFIG_SMC911X_32_BIT and
>>     CONFIG_SMC911X_16_BIT with no luck either way.  I even tried to 
>> hack the
>>     driver by skipping the supported chip detection code, but the driver
>>     still did not work for me.
>>
>> When using CONFIG_NET_MULTI you need to have a board_eth_init() function 
> done
>> in your board code which in turn must call smc911x_initialize().  Make 
> done
>> sure that eth_initialize() gets called somewhere in your cpu/board.c 
> why eth_initalize? rest of the OMAP3 boards dont seem to be doing that
>> call sequence.  I suspect that while the SMC911x driver is being 
>> initialized, it isn't being registered properly with the networking 
>> library.  There are many examples in the source tree of how to do this.
> I would expect that and did check too, but why:
> smc911x: Invalid chip endian 0xdee0013d
> when I had a base address and device which was supported by LAN91C96 
> legacy driver?
>
The SMC911x chips all contain the magic value 0x87654321 @ offset 0x64.  
Your board has something else there (it's obviously not an endianness 
issue, so ignore the error message text).  I think you need to learn 
more about your board, in particular which SMCS chip you're using, which 
data width and where it's located in memory.  This is a simple 
memory-mapped device, and once you find out where it's located, it 
should 'just work'

Here's a datasheet for reference.  See page 68 for the memory map.

http://www.smsc.com/media/Downloads_Public/Data_Sheets/9116.pdf

regards,
Ben


More information about the U-Boot mailing list