u-boot: call usb_stop on pxe boot

Badea Daniel badeadaniel at yahoo.com
Tue Aug 9 18:52:31 UTC 2011


Hi all, 


After reading rsalveti's blog post on net booting with TFTP and PXE on Pandaboard I decided to try it and boot my 2.6.35 kernel (locked to this version because of some vendor specific changes). Unfortunately, although u-boot was able to retrieve and start the kernel image it wouldn't detect the SMSC ethernet adapter. This happens because older kernel versions rely on u-boot to do some initialization of the USB subsystem.
First "fix" was to call usb_stop() from the pxe boot function just before booting. But usb_stop calls omap4_ehci_hcd_stop which disables some clocks and 2.6.35 is still unable to detect the ethernet adapter.
So the second "fix" was to rewrite (to my best understanding - without going through the documentation) omap4_ehci_hcd_stop to reset some subsystems and leave the clocks running.

I attached the patch in case someone else needs to boot older kernels in this PXE + NFS rootfs configuration.

Problems with the patch are:
  - changes omap4_ehci_hcd_stop functionality
  - probably breaks other use cases
  - tested only in my particular configuration
Thanks,
Daniel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linaro.org/pipermail/linaro-dev/attachments/20110809/212d5cb3/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-PXE-boot-stop-USB-but-keep-clocks-running.patch
Type: application/octet-stream
Size: 3766 bytes
Desc: not available
URL: <http://lists.linaro.org/pipermail/linaro-dev/attachments/20110809/212d5cb3/attachment-0001.obj>


More information about the linaro-dev mailing list