BeagleBoardFAQ

This page collects frequently asked questions (FAQ) about TI's ARM based OMAP3 Beagle Board. See "official" BeagleBoard FAQ and eLinux BeagleBoard wiki page, too.

=Board revisions=

Q: What is the difference between BeagleBoard revision B4 and B5?

A: Revision B5 removes capacitor C70 to fix errata #7.

Note: Revision A boards have capacitor C70 at the same location as rev. B layout.

=BeagleBoard alternative distributors=

Q: Are there any alternative distributors to order BeagleBoard from?

A: No, unfortunately not. You have to order from DigiKey.

However, for India there is an exception: The Beagle Board is available for Rs 9,999 /- from Cranes Software. Use [mailto:beaglesales.india@cranessoftware.com beaglesales.india@cranessoftware.com] for contact.

=DigiKey out of stock=

Q: I like to order a BeagleBoard from DigiKey. But they seem to be out of stock?

A: DigiKey is having IT issues in that they can't handle partial shipments against an order, it does not show up in their system. Currently, they are receiving > 200 boards a week from the contract manufacturer. Typically they will only show a QTY of 1 for EVMs and it is not an indication of total quantity they have.

=Shipped hardware=

Q: I like to buy a BeagleBoard from DigiKey, what hardware is included?

A: Only the board itself. To make board as cheap as possible, for most peripherals you need additional adapters.

=Shipped software=

Q: I like to buy a BeagleBoard from DigiKey, what software is included?

A: 2nd stage loader (X-Loader) and bootloader U-Boot in diagnostic version is flashed to Beagle's NAND flash. No further operating system, e.g. Linux, is included.

=Peripherals needed=

Q: As shipped BeagleBoard doesn't contain any peripherals and adapters, what else will I need?

A: There are some adapters necessary to bring up and some are nice to have for diagnosis etc.:


 * IDC10 to DB9M serial adapter (necessary)
 * Serial null modem cable (optional, depends on your serial adapter and your serial PC port)
 * USB serial adapter (optional, depends if your PC has still DB9M serial connector)
 * SD card >= 256MB (necessary, at least for some fun with demos)
 * USB-A to mini USB cable to power BeagleBoard (necessary, or optional if you have additional 5V power supply, see below)
 * 5V, >= 500mA, 2,1mm/5,5mm plug, well-regulated power supply (optional). This must be a well-regulated supply: greater than 5.5V can damage your BeagleBoard.  Beware of cheap 5V bricks,  as they may produce more than 5.5V with a light load and destroy your board.
 * HDMI to DVI-D cable (optional)
 * USB Standard-A to Mini-A Adapter (optional, for USB usage external 5V power supply is necessary)
 * Self powered USB hub (optional, and some USB peripherals like keyboard and mouse)

=New board, and now=

Q: Hurray, I got my board. And now?

A: See BeagleBoard beginners guide and out of the box page.

=Beagle reading=

Q: What pages about Beagle are available? There are so many pages, is there an overview?

A: Main BeagleBoard resources are:


 * TI maintained BeagleBoard home and Google wiki for BeagleBoard
 * Community maintained eLinux wiki

Wiki article overview tries to track a list of available Beagle wiki pages.

=Serial connection #1=

Q: My serial connection doesn't work, has issue xxx. Where can I get more information?

A: Download BeagleBoard revision B5 HW manual. It has some pictures to help you debug serial issues. See chapter 10.2 and 13.3 of revision B5 HW manual.

=Serial connection #2=

Q: If I power my new board, after some seconds USR1 and USR2 LEDs are switching on, but I can't get anything in terminal program (minicom, kermit, hyperterm etc,).

A: Review wiring of your IDC10 to DB9M serial adapter, try with and without NullModem cable, try to use DB9 serial port of your PC or USB serial adapter. Try all combinations.

BeagleBoard only implements RS-232 signals RX, TX, and GND. These are pins 2, 3, and 5 of BeagleBoard 5x2 header P9 and also the DB9 connector on the serial adapter. So pins 1 - 5 on IDC go to pins 1 - 5 on DB9. There appear to be 2 types of these IDC to DB9 connectors. One has 1:1 wiring which is what you want. The other seem to have IDC:1 -> DB9:1, IDC:2 -> DB9:6, IDC:3 -> DB9:2, IDC:4 -> DB9:7 etc. This is wrong and will not work with BeagleBoard. The second (wrong) type of connector might give comms in one direction only! E.g., this was reported by one user who returned a board due to serial connection problems:

I originally ordered quantity 2 of the cables from PCCables website: So make sure you see the "-N", which is what is reported to be the proper version if you order from PCCables website.
 * One was labeled 000-F903 and was the one I did the initial testing on both boards with.
 * The second was labeled 000-F903-N and actually works (on the new one and the RMAed one). This matches the code on the pccables website.

To see if there is any activity at all on the serial port, use an RS-232 LED monitor or break-out box or a digital oscilloscope to see if there is a bit stream on TX.

=Serial connection #3=

Q: I tried everything from serial connection #1 above but still nothing. It seems that I sometimes get some random characters, though.

A: If there is a bit stream, check that you have configured your terminal program to:


 * BAUD RATE: 115200
 * DATA: 8 bit
 * PARITY: none
 * STOP: 1bit
 * FLOW CONTROL: none

This will work with most PCs. However, your PC may want to see DSR before it transmits to BeagleBoard and needs to have DTR (pin 4) wrapped back to DSR (pin 6).

=Serial connection #4=

Q: Hurray, I got my new board, I'm quite sure that my serial connection is correct using the above two FAQs. Unfortunately, I get (boot) output, but can't type anything at U-Boot prompt.

A: Try test proposed from John: Here's a useful experiment: disconnect BeagleBoard and jumper TX (DB9 pin 3) to RX (pin 2) at the end of your serial cable. See if your jumper echoes to your terminal emulator. If not, try jumpering DTR (pin 4) to DSR (pin 6) and repeat test. You can also jumper RTS (pin7) to CTS (pin 8) if you don't trust your software to have turned off flow control.

=Serial connection #5=

Q: I tried all three serial FAQs above, and I'm really really sure that anything is fine with my local serial configuration. But I still can't type anything at U-Boot prompt.

A: If you get TX data from the BeagleBoard OK but do not get RX data from your terminal program to BeagleBoard, check P9 pin 2 with a digital 'scope or an LED with 1K series resistor to see if there is any activity there. If there is data and you are really, really sure that everything is correct with your serial connection, then most probably your board suffers from errata #8. Then it's time for the Beagle Hospital. Sorry, you have to replace/repair it using RMA process.

ATTENTION: One user reports that his board showed all symptoms of errata #8 but only when DC powered; when USB powered serial input was fine. It turned out that pin 5 (ground) was miswired.

=SD Card=

Q: I prepared my SD card with one FAT partition or as dual boot card. Unfortunately, system doesn't seem to boot from this card, I don't get MMC boot info

...40T.........XH.H.U�..Instruments X-Loader 1.41 Starting on with MMC Reading boot sector ...

A: Some users report issues with creating proper FAT or dual boot partitions as described in above linked documents. These descriptions are known to be correct, though. Because of unknown reasons, sometimes they seem to not work. Fragmentation of files in FAT boot partition may be one issue. Therefore:


 * Restart from scratch and try again to create boot partitions as described in above documents.
 * Try another SD card.
 * Make sure you made FAT boot partition bootable (fdisk 'a' command).
 * Make sure the images at your SD card are named MLO, u-boot.bin and uImage. If you downloaded the binaries make sure you remove all file name extensions to match these names.
 * Press and hold user button while powering the board to ensure that boot images are really read from SD card and not from NAND.

Note: A user reports: It is absolutely necessary that MLO starts in the first sector of the FAT32 partition. What has worked best for that user is to reformat the FAT32 partition using Windows before copying MLO, u-boot.bin, and uImage. What might have happened is that formatting the FAT32 partition under Kubuntu Linux (sudo mkfs.msdos -F 32 /dev/sdb1 -n LABEL) added standard directories "." and ".." at the beginning of the partition so that when he copied MLO it did not end up at the beginning.

Also, make sure the SD card is inserted all the way in. The socket on a new BeagleBoard may be quite stiff. A properly inserted SD card sticks out 18mm and pushes the top gold contacts aside. If you're unsure, look inside the socket from the edge of the board and see where the 9 contacts are that must mate with the SD. This tells you how far to insert the card. As always, be careful and don't force.

=User button #1=

Q: User button doesn't seem to work for me!

A: Make sure you hold the user button down while releasing the reset. Do not release them at the same time.

=User button #2=

Q: Pressing the user button my image at SD/MMC card isn't started! In terminal program I always get

Texas Instruments X-Loader 1.41 Starting OS Bootloader... ...

A: It seems that you don't press user button correctly. See user button #1 above. If you use user button correctly, you get

Instruments X-Loader 1.41 Starting on with MMC Reading boot sector ...

If you don't get "MMC" message, you still boot from NAND.

=Graphics accelerator=

Q: OMAP3530 used on BeagleBoard contains a graphics accelerator (SGX) based on the SGX core from Imagination Technologies. Are Linux drivers available for this? If not, when will they be available? Will they be OpenSource?

A: See Graphics accelerator section at BeagleBoard wiki page.

=USB 2.0 EHCI HS connector=

Q: On my board, USB 2.0 EHCI HS connector (#8) isn't soldered? Why? How can I use USB?

A: At revision A and B boards, USB 2.0 EHCI HS is broken due to HW errata #5. Therefore revision B boards don't have this connector soldered. This will be fixed with revision C boards (expected ~November 2008). You can use full USB functionality using OTG port with something like mini A to USB A adapter and self powered USB hub instead.

=USB OTG connection #1=

Q: As USB 2.0 EHCI connector doesn't work on BeagleBoards rev A and rev B, I would like to use OTG port in host mode. I use a Mini to Standard A cable but if I connect something, nothing happens.

A: Make sure that
 * Your cable is plugged in while the kernel boots. At the moment, Linux only detects OTG port in host mode if cable is connected at boot time.
 * You use a self-powered (externally-powered) hub to attach devices. BeagleBoard only supports devices <= 100mA, so if you have USB issues try a self-powered hub.
 * Your Mini USB plug is 5-pin Mini-A. Mini-B will not work.  See types of USB connectors.  Mini-B can be plugged to Beagle, but they don't have ID pin wired to GND.  Only Mini-A cables connect ID pin to GND.  So Mini-A with ID pin to GND is necessary.  Since Mini-A is not an official USB standard the connectors/cables can be extremely difficult to find (without building your own); you can find a Mini-A to Standard female A adapter here though.
 * If you use a 5-pin Mini-A to Standard A male cable, be sure that you plug the Standard A cable into the host port of your hub and not one of the device ports. You will probably need a double-female Standard A adapter since most hubs either have a host cable with a Standard A male plug or have a Standard B jack for a Standard A male to Standard B male cable.

=USB OTG connection #2=

Q: How can I force the USB OTG port to act like a host?

A: At kernel command line do

echo host> /sys/devices/platform/musb_hdrc/mode

=X-Loader and U-Boot version=

Q: I use X-Loader and U-Boot shipped with BeagleBoard. These are the versions from code.google.com. Unfortunately, sometimes I have issue xxx with these. Is this known? How to fix this?

A: The X-Loader and U-Boot version at code.google.com are the official TI versions available there for reference. They are known to have some issues. Try the community versions of X-Loader and U-Boot instead.

=Expansion connector #1=

Q: I got my new BeagleBoard Rev. xx board. But expansion connector (#5) isn't soldered. Is this wrong?

A: No, this is correct. All boards are shipped without mounted expansion connector.

=Expansion connector #2=

Q: Which signals are available at expansion connector?

A: See BeagleBoard HW Reference Manual Table 17 & 18. Depending on the pin mux you have:


 * MMC2
 * McBSP1
 * McBSP3
 * I2C2
 * McSPI3
 * McSPI4
 * UART2
 * GPIO

=Expansion connector #3=

Q: Should I mount expansion connector at top or bottom side?

A: Do as you like and as it fits your application. This is the reason why it isn't soldered by default

=Expansion connector #4=

Q: How much current can the Beagle supply to peripherals?

A: You are limited to 100mA @ 1.8V. This is referenced in the BeagleBoard HW Reference Manual in section 5.19.

=Sound at git kernel=

Q: I use OMAP git kernel, e.g. by Koen's demo images or I compiled it my own. Using audio or mplayer with audio output kernel crashes with something like

Unable to handle kernel NULL pointer dereference at virtual address 00000000

A: Unfortunately, ALSA sound output with current OMAP git kernel is broken. It is supposed that Beagle ASoC driver is fine, but something in ALSA together with the driver results in above error. So you can't use audio with recent git kernel, used within Koen's demo images, too. Use mplayer with -nosound option, switch to OSS

mplayer -ao oss

or use omapfbplay.

Update 25th September 2008: Since today, a workaround for this is found. If you compile kernel yourself, make sure you enable SLAB instead of SLUB:

CONFIG_SLAB=y CONFIG_SLABINFO=y

Koen provides reconfigured uImage.

=NEON performance=

Q: There is some rumor abot NEON bugs in OMAP3?

A: Some occasional crashes were observed with Beagleboard running intensive NEON or floating-point code. This is now fully understood and there is a simple software workaround that completely fixes the problem (enable L1NEON in Cortex-A8 aux ctrl register), which requires a new u-boot from what is being shipped on the Beagle boards. See Mans' U-boot git. This fix is required for Cortex-A8 r1pX (Beagle rev B & Rev C). The L1NEON setting allows the CPU to allocate NEON data into L1 D-cache. It can change performance by a few % either way, depending on the amount of data being processed.

There is another extremely rare NEON issue (ARM errata #451034) that can cause deadlock; this issue is fixed in Cortex-A8 r1p3 (Beagle Rev C). This issue is so rare that we do not believe it has ever been seen running any real code.

With the new U-boot, all Beagle revisions are now reliable for NEON development

=Demo videos=

Q: I'm using Koen's demo image. Which (demo) videos can I use to test (720p) video playback with mplayer or omapfbplay?

Q: Try 720p .avi versions of


 * Big Buck Bunny
 * Elephants Dream

Don't forget to disable sound, though.

Note: Don't forget to extend your kernel's bootargs in U-Boot by

video=omapfb:vram:2M,vram:4M

=Windows/Cygwin #1=

Q: I'd like to do some Linux development for BeagleBoard. But because of ... I can't use Linux as OS on my development PC. I only have a Windows PC.

A: Really consider switching to Linux at your development PC for doing BeagleBoard Linux development. Yes, you can use Cygwin (see below), but most probably this will result in some issues here and there you won't have if you develop under Linux, too. If you can't switch to Linux PC, consider running Linux in a virtual machine under Windows (VMWare etc.).

=Windows/Cygwin #2=

Q: Can I used Windows/Cygwin as a development platform?

A: While most Beaglers use a Linux development platform, it is possible to use Windows. Cygwin is a nice environment, since it gives you Linux commands but runs as a Windows application.

CodeSourcery has a G++ Lite toolchain that runs under Windows. For most Beagle applications the best version is ARM GNU/Linux 2007g3-51. When working with Cygwin, you need to set CYGPATH to the Cygwin "cygpath" program which converts Unix path names to Windows path names. Here is a typical CYGPATH assignment you might put in .bash_profile:

export CYGPATH=c:\\cygwin\\bin\\cygpath

Note: The Sourcery document says

export CYGPATH=c:/cygwin/bin/cygpath

but it seems necessary to change '/' to '\', with '\\' needed to escape the '\' character.

One thing that is more or less impossible to do under Windows is to copy (or better yet, untar) a root file system to an ext2 or ext3 partition of an MMC/SD card. One way to do this is to boot a version of Linux from CD ROM without installing it on the Windows machine. It's slow, but it's a safe way to run Linux. Kubuntu 8.04 has been used successfully to untar a Linux file system to an MMC/SD card with two partitions. Ubuntu 8.04.1 LTS Desktop Edition was not successful because the user could not find a way to access the second MMC/SD partition. Linux CD-ROMs are generally cheap or free.

Once you have successfully built a Linux system that runs on BeagleBoard, you can transfer future files using a FAT32 USB Flash drive or Ethernet.

=Windows/Cygwin #3=

Q: How can I build Angstrom X Windows applications using Windows 2000 and Cygwin?

A: It requires fooling CodeSourcery in various interesting ways.

First, to compile X Windows applications you needed to make the X11R6 include files available to CodeSourcery. It turned out the easiest way to do that was simply to copy Cygwin's /usr/X11R6/include/X11 directory to CodeSourcery's .../arm-none-linux-gnueabi/include directory. X11R6 is extremely stable (the politically-correct euphemism for "obsolete") so I don't need to worry about my include files becoming inconsistent. The compile command I use right now in gnu make is:

cc = arm-none-linux-gnueabi-gcc -O -Wunused -march=armv7-a %.o: %.c 	$(cc) -o $@ -c $<

(This doesn't use floating point at this time so options for this are not added)

Linking is much more interesting. It's important to link to the correct libraries. So untar the Angstrom demo root file system at your PC, and then tell CodeSourcery to link to the Angstrom demo's libraries. All or most of these are dynamic shared libraries (.so). Here are gnu make commands:

RTdir = /cygdrive/c/John/Beagle/AngstromDemo/usr/lib GXC_OBJS =  gboot: $(GXC_OBJS) $(cc) -o $@ $(GXC_OBJS) -L$(RTdir) \ -Xlinker -rpath -Xlinker $(RTdir) -lX11 -lm
 * 1) Beagle run-time directory containing libX11.so, etc.
 * 1) Beagle: need to specify RTdir both for -L and -rpath options.

The "-rpath" linker option tells the linker to look in $(RTdir) for .so files. The "-Xlinker" option tells gcc to pass the next string to the linker: "-Xlinker -rpath -Xlinker $(RTdir)" passes "-rpath $(RTdir)".

After linking you should end up with a reasonably small executable that contains references to dynamic shared object libraries. When you copy the executable and run under Angstrom, Angstrom very nicely finds the same .so files you used to link the programs, loads the library modules, and cheerfully runs the program.

This was tested with CodeSourcery GNU/Linux for Windows 2007q3-51.

= MacOS X / x86 =

Q: Can I use MacOS X as a development platform?

A: Yes. Here is a link to the codesourcery toolchain compiled for MacOS X (x86):

http://www.beagleboard.org/uploads/arm-2007q3-macosx-20080828.tar.bz2

This includes gcc, glibc, and gdbserver/gdb for debugging.

To install, untar to somewhere like /usr/local/arm.

Note: so far I've been unable to download/flash x-loader and u-boot, but I suspect that is issues with my USB->UART converter. Hopefully this gets easier when flashing over USB is working.

=TWL4030 data sheet=

Q: Where do I get data sheet for TWL4030 used at BeagleBoard?

A: You probably want to keep nagging your TI contact, the TRM for the part requires a NDA. Note that you will probably be looking at a TPS65950 manual instead (for which there is some documentation out there but the TRM still requires NDA) which is functionally equivalent to the TWL4030.

=Pico Video Projector Kit (PVPK)=

Q: What is this Pico Video Projector Kit (PVPK)?

A: See DLP Pico projector and Beagle Running Angstrom (VGA) on DLP Pico Projector.

=Display timings=

Q: I like to configure some display timings not yet supported in patches from Mans or Steve. How do I calculate the settings needed for BeagleBoard?

A: You can use a tool like CVT Timings Program.

=Display resolutions #1=

Q: Which display resolutions are supported?

A: By recent OMAP git kernel and additional patch, the resolutions in this patch are supported.

Note: Not all of those resolutions actually work as advertised, since the pixel clock is currently limited to 72MHz. It depends on the monitor whether it the slightly lower sync rates this results in will work.

=Display resolutions #2=

Q: I checked the resolutions in patch mentioned above and can't find 1280 x 1024. Why?

A: Pixel clock is currently limited to 72MHz. With this, it isn't possible to configure 1280 x 1024 with at least 50Hz refresh (most monitors need at least 50Hz). This is a software configuration issue, somebody has to optimize kernel display driver.

=Root password Angstrom image=

Q: I use Angstrom demo image. Help, what is the root passord?

A: Try no password at all, i.e., just press return. The default root password is empty in Angstrom.

=NFS=

Q: Anyone has luck to mount NFS from BeagleBoard?

A: To mount root file system with Fedora, try:

1) Add file ifcfg-usb0 into /etc/sysconfig/network-scripts/

DEVICE=usb0 IPADDR=192.168.1.5 NETMASK=255.255.255.0 ONBOOT=yes TYPE=USB BOOTPROTO=none USERCTL=no IPV6INIT=no PEERDNS=yes

2) Add following line to /etc/exports /data/target 192.168.1.1(rw,no_root_squash,no_all_squash,async)

3) Create directory /data/target and copy your root file system to /data/target

4) Type following commands:


 * 1) service rpcbind restart
 * 2) service nfs restart

5) On BeagleBoard console type following commands:

OMAP3 beagleboard.org # setenv bootargs console=ttyS2,115200n8 root=/dev/nfs rw nfsroot=192.168.1.5:/data/target ip=192.168.1.1::255.255.255.0 nolock,rsize=1024,wsize=1024 rootdelay=2 OMAP3 beagleboard.org # saveenv OMAP3 beagleboard.org # mmcinit OMAP3 beagleboard.org # fatload mmc 0 0x80300000 uImage OMAP3 beagleboard.org # bootm 0x80300000

=LEDs=

Q: How can I control (switch on/off) USR0 and USR1 LEDs at BeagleBoard from user space?

A: You can do this using kernel's LED sys-fs interface. E.g

echo 1 > /sys/class/leds/beagleboard\:\:usr0/brightness

at command line enables USR0 LED and

echo 0 > /sys/class/leds/beagleboard\:\:usr0/brightness

disables it again. Same works with USR1 LED.

=ES2.1 vs. ES3.0=

Q: Upcoming ES3.0 (engineering sample) has some minor improvements (e.g. fixes extremely rare NEON errata #451034 that has not been seen outside the test lab). How can I check if I have ES2.1 or ES3.0?

A: ES3.0 is supposed to be used at BeagleBoard revision C. As long as you have an older board (e.g. rev. Bx) most probably you have ES2.1. ES2.1 uses ARM Cortex A8 version r1p1, while ES3.0 uses updated ARM Cortex A8 version r1p3. You can check this by kernel's boot messages:

CPU: ARMv7 Processor [411fc082] revision 2 (ARMv7), cr=00c5387f

is ES2.1 with ARM Cortex A8 r1p1, while

CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=00c5387f

is ES3.0 with ARM Cortex A8 r1p3.

=128MB vs. 256MB SDRAM=

Q: How can I detect if my BeagleBoard has 128MB or 256MB SDRAM?

A: All BeagleBoards revision Ax and Bx have 128MB SDRAM. There is some rumor that there will be OMAP3 ES3.0 on revision C boards that will have 256MB PoP memory. Mans has some U-Boot v1 patches to check for second memory bank.

=IRQ -33=

Q: Using recent Linux kernel, I do foo and system often stops with

irq -33, desc: c0335cf8, depth: 0, count: 0, unhandled: 0 ->handle_irq: c00744e0, handle_bad_irq+0x0/0x22c ->chip: 00000000, 0x0 ->action: 00000000

I have to reboot then.

A: There is a workaround/fix making certain I/O regions Strongly Ordered instead of default MT_DEVICE. There is some discussion if this makes the system slower and if this is a workaround or real fix.

=Boris=

Q: Who is Boris?

A: You don't know Boris?

=BeagleGame=

Q: What is BeagleGame?

A: Enjoy BeagleGame.