[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