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

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.
scanning a little more in the git repo, I see all the ancient boards of OMAP family - 5912,2420 etc.. still have LEGACY driver being used..
I am pretty sure I must be missing something here and appreciate any guidance folks can give me on this..

Nishanth,
On Tue, Oct 13, 2009 at 8:13 PM, Nishanth Menon nm@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 in
your board code which in turn must call smc911x_initialize(). Make sure that eth_initialize() gets called somewhere in your cpu/board.c 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.
regards, Ben

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@ti.com mailto:nm@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?
My lack of network chip knowledge is kicking me at the moment.. trying to find the device data sheet internally @ TI..

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@ti.com mailto:nm@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

On Wed, Oct 14, 2009 at 2:00 PM, Ben Warren biggerbadderben@gmail.com wrote: [...]
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
9116 seems to use memory mapped regs, while 91c96 [1] page 39 shows it to use banked register access. So unfortunately, SMC911X would not support this chip as I cannot even see the banked registers in smc911x.[ch]. so unfortuantely, I cant switch to SMC911X driver and will have to wait till lan91c96.c becomes NET_MULTI to be able to remove the warning in sdp3430 build.
In fact, I think the following boards use the legacy LAN91C96 driver: include/configs/apollon.h include/configs/assabet.h include/configs/B2.h include/configs/gcplus.h include/configs/lubbock.h include/configs/omap1510inn.h include/configs/omap1610h2.h include/configs/omap1610inn.h include/configs/omap2420h4.h include/configs/omap5912osk.h include/configs/omap730p2.h to confirm a non ti board which uses this legacy chip, I tried building B2, and yep, I see the same warning which was plaguing me :(..
Do let me know if there are alternatives available.
Regards, Nishanth Menon
Ref: [1] http://www.embeddedsys.com/subpages/resources/images/documents/LAN91C96_data...

Nishanth Menon wrote:
On Wed, Oct 14, 2009 at 2:00 PM, Ben Warren biggerbadderben@gmail.com wrote: [...]
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
9116 seems to use memory mapped regs, while 91c96 [1] page 39 shows it to use banked register access. So unfortunately, SMC911X would not support this chip as I cannot even see the banked registers in smc911x.[ch]. so unfortuantely, I cant switch to SMC911X driver and will have to wait till lan91c96.c becomes NET_MULTI to be able to remove the warning in sdp3430 build.
I guess I misunderstood in thinking that you'd switched chips on the board design.
In fact, I think the following boards use the legacy LAN91C96 driver: include/configs/apollon.h include/configs/assabet.h include/configs/B2.h include/configs/gcplus.h include/configs/lubbock.h include/configs/omap1510inn.h include/configs/omap1610h2.h include/configs/omap1610inn.h include/configs/omap2420h4.h include/configs/omap5912osk.h include/configs/omap730p2.h to confirm a non ti board which uses this legacy chip, I tried building B2, and yep, I see the same warning which was plaguing me :(..
Do let me know if there are alternatives available.
The alternative that most immediately jumps to mind is for you to convert the LAN91C96 driver to NET_MULTI :) It's pretty easy to do and would help the "community" in a big way.
Regards, Nishanth Menon
Ref: [1] http://www.embeddedsys.com/subpages/resources/images/documents/LAN91C96_data...
regards, Ben

Ben,
-----Original Message----- From: Ben Warren [mailto:biggerbadderben@gmail.com] Sent: Thursday, October 15, 2009 12:06 AM To: Menon, Nishanth
[..]
include/configs/omap5912osk.h include/configs/omap730p2.h to confirm a non ti board which uses this legacy chip, I tried building B2, and yep, I see the same warning which was plaguing me :(..
Do let me know if there are alternatives available.
The alternative that most immediately jumps to mind is for you to convert the LAN91C96 driver to NET_MULTI :) It's pretty easy to do and would help the "community" in a big way.
:D - why do I get the feeling "I thought u'd say so" ;).. yep.. started a link in omapedia for OMAP3 TODOs I could think of
Regards, Nishanth Menon Ref: [1] http://omappedia.org/wiki/OMAP3_U-Boot_TODO
PS: Dirk, I think you might ask me to post it elsewhere.. lets discuss that on a different thread if any..
participants (3)
-
Ben Warren
-
Menon, Nishanth
-
Nishanth Menon