Difference between revisions of "U-boot musb gadget support"

From eLinux.org
Jump to: navigation, search
(Getting the source code)
(by)
Line 1: Line 1:
=== About this patch ===
+
This is currently publish as a patch instead of a git repository since I haven't got time to setup a git somewhere.
 +
 
  
 
=== Current Status ===
 
=== Current Status ===
 +
* Currently the patch enables beagleboard to be recognized as an usb ACM modem, and provide u-boot console over it. However some issues with initialization needs to be solved (see Known bugs section).
 +
 +
=== Known bugs ===
 +
* The twl4030 initialization isn't right yet (working on it), so the only work around to make a board bootable with this patch if by pressing the user button while applying power to the board, otherwise the USB PHY won't be properly initialized.
 +
* Setting the stdint,stdout,stderr to be multi-io (have the u-boot console and serial and USB at the same time) get stuck if a terminal like minicom isn't open on the USB ACM device.
  
 
=== Next steps ===
 
=== Next steps ===
 +
* Fix the twl3040 initialization issues
 +
* Fix the problem with multi-io
 +
* Get the patch into some of the git u-boot trees around (omap3-dev-usb?).
  
 
=== Getting the source code ===
 
=== Getting the source code ===
Line 22: Line 31:
 
  make CROSS_COMPILE=arm-none-linux-gnueabi- omap3_beagle_config
 
  make CROSS_COMPILE=arm-none-linux-gnueabi- omap3_beagle_config
 
  make CROSS_COMPILE=arm-none-linux-gnueabi-
 
  make CROSS_COMPILE=arm-none-linux-gnueabi-
 +
 +
=== Getting started ===
 +
* Load your new u-boot.bin image into the board using any of the existing methods. If you have a beagle running already a working u-boot, you can load it by serial using the 'loady' command and minicom or 'sb' (be sure to have lszrz installed in your distro). Then erasing the u-boot in flash and reflashing the new image with the following commands:
 +
 +
nand unlock
 +
nand erase 80000 160000
 +
nand write.i 80000000 80000 160000
 +
 +
* Reboot your board and keep the user button pressed while applying power (see Known bugs).
 +
* Attach an mini-b USB cable to the beagle. Your host should recognize an ACM CDC device (works out of the box on Linux and OS X).
 +
* If you want to have the u-boot console over USB use the following command:
 +
setenv stdout usbtty; setenv stdin usbtty; setenv stderr usbtty
 +
* You can also use multi-io to have the console over serial and USB at the same time, but this has a bug documented in Known bugs:
 +
setenv stdout usbtty,serial; setenv stdin usbtty,serial; setenv stderr usbtty,serial

Revision as of 15:41, 9 January 2009

This is currently publish as a patch instead of a git repository since I haven't got time to setup a git somewhere.


Current Status

  • Currently the patch enables beagleboard to be recognized as an usb ACM modem, and provide u-boot console over it. However some issues with initialization needs to be solved (see Known bugs section).

Known bugs

  • The twl4030 initialization isn't right yet (working on it), so the only work around to make a board bootable with this patch if by pressing the user button while applying power to the board, otherwise the USB PHY won't be properly initialized.
  • Setting the stdint,stdout,stderr to be multi-io (have the u-boot console and serial and USB at the same time) get stuck if a terminal like minicom isn't open on the USB ACM device.

Next steps

  • Fix the twl3040 initialization issues
  • Fix the problem with multi-io
  • Get the patch into some of the git u-boot trees around (omap3-dev-usb?).

Getting the source code

Checkout the git source from Beagle U-Boot git repository. Get it by:

git clone git://www.sakoman.net/git/u-boot-omap3.git
cd u-boot-omap3
git checkout --track -b omap3-dev origin/omap3-dev

Apply the patch by:

patch -p1 <  musb-gadget-beagle.patch

Build (assuming Code Sourcery GCC 2007q3):

make CROSS_COMPILE=arm-none-linux-gnueabi- mrproper
make CROSS_COMPILE=arm-none-linux-gnueabi- omap3_beagle_config
make CROSS_COMPILE=arm-none-linux-gnueabi-

Getting started

  • Load your new u-boot.bin image into the board using any of the existing methods. If you have a beagle running already a working u-boot, you can load it by serial using the 'loady' command and minicom or 'sb' (be sure to have lszrz installed in your distro). Then erasing the u-boot in flash and reflashing the new image with the following commands:
nand unlock
nand erase 80000 160000
nand write.i 80000000 80000 160000
  • Reboot your board and keep the user button pressed while applying power (see Known bugs).
  • Attach an mini-b USB cable to the beagle. Your host should recognize an ACM CDC device (works out of the box on Linux and OS X).
  • If you want to have the u-boot console over USB use the following command:
setenv stdout usbtty; setenv stdin usbtty; setenv stderr usbtty
  • You can also use multi-io to have the console over serial and USB at the same time, but this has a bug documented in Known bugs:
setenv stdout usbtty,serial; setenv stdin usbtty,serial; setenv stderr usbtty,serial