Difference between revisions of "BeagleBoard Community"
(Document OpenOCD bring up steps)
|Line 5:||Line 5:|
The Beagle Board is ''a low-cost, fan-less single-board computer based on TIs OMAP3 device family, with all of the expandability of today's desktop machines, but without the bulk, expense, or noise'' (from [http://beagleboard.org/ beagleboard.org]). It uses a TI [http://focus.ti.com/docs/prod/folders/print/omap3530.html OMAP3530] processor (ARM Cortex-A8 Core ~600MHz + TMS320C64x+ DSP ~430MHz). See [http://focus.ti.com/docs/prod/folders/print/omap3530.html#features OMAP3530 features] for more processor features. [[BeagleBoard#Availability|Target price is US-$149]]. The design goal was to make is as simple and cheap as possible, e.g. not having a LCD added, but letting you connect all add-ons available as cheap external components. See [http://beagleboard.org/brief What is Beagle?] page for more details.
The Beagle Board is ''a low-cost, fan-less single-board computer based on TIs OMAP3 device family, with all of the expandability of today's desktop machines, but without the bulk, expense, or noise'' (from [http://beagleboard.org/ beagleboard.org]). It uses a TI [http://focus.ti.com/docs/prod/folders/print/omap3530.html OMAP3530] processor (ARM Cortex-A8 Core ~600MHz + TMS320C64x+ DSP ~430MHz ). See [http://focus.ti.com/docs/prod/folders/print/omap3530.html#features OMAP3530 features] for more processor features. [[BeagleBoard#Availability|Target price is US-$149]]. The design goal was to make is as simple and cheap as possible, e.g. not having a LCD added, but letting you connect all add-ons available as cheap external components. See [http://beagleboard.org/brief What is Beagle?] page for more details.
Revision as of 11:48, 29 April 2008
- 1 Hardware
- 2 Availability
- 3 Adapters
- 4 BootRom
- 5 Code
- 6 Compiler
- 7 Links
- 8 Other OMAP boards
The Beagle Board is a low-cost, fan-less single-board computer based on TIs OMAP3 device family, with all of the expandability of today's desktop machines, but without the bulk, expense, or noise (from beagleboard.org). It uses a TI OMAP3530 processor (ARM Cortex-A8 Core ~600MHz + TMS320C64x+ DSP ~430MHz + Imagination SGX 2D/3D graphics processor). See OMAP3530 features for more processor features. Target price is US-$149. The design goal was to make is as simple and cheap as possible, e.g. not having a LCD added, but letting you connect all add-ons available as cheap external components. See What is Beagle? page for more details.
- 1: OMAP3530 processor + 128MB DDR + 256MB NAND (PoP: Package-On-Package implementation for Memory Stacking)
- 2: DVI chip
- 3: DVI-D
- 4: 14-pin JTAG
- 5: Expansion connector: I2C, I2S, SPI, MMC/SD
- 6: User button (boot select)
- 7: Reset button
- 8: USB 2.0 EHCI HS
- 9: SD/MMC+
- 10: RS-232 serial
- 11: Alternate power (normally powered by USB) (unmounted on REV Ax boards, see errata)
- 12: USB 2.0 HS OTG (Power)
- 13: Stereo In
- 14: Stereo Out
- 15: S-Video
- Board size: 3" x 3"
- Currently 6 layer PCB; target: 4 layer
- The DC power jack pinout is incorrect on the PCB layout. For this reason it is currently removed. It will be back on the Rev B board.
- There is excess voltage drop across R6 which is used to measure the current consumption on the board. This needs to be a .1 ohm instead of a 1 ohm resistor. All revision A5 boards have been updated to .1. You can also just solder in a jumper to J2 bypassing the current read point. This issue can cause issues with the USB host port as the voltage supplied to that port can be too low.
- User LEDS 0 and 1 are shorted on the layout preventing them from being controlled individually. You need to control both GPIO_149 and GPIO_150 to turn on or off both LEDS. This is fixed in the Rev B boards.
- There is an issue where on some boards the 1.8V has excessive noise on it. This is the result of two incorrect parts being installed on the board. This change will require that the board be returned for update.
Currently it is planned that BeagleBoards will be available starting at June 2008 for target price $149 + shipping through beagleboard.org.
There are already some limited early revision Ax prototypes out there (see errata above) used by some hackers hanging around at #beagle channel on irc.freenode.net.
For quite detailed information about all BeagleBoard peripherals see BeagleBoard HW Reference Manual (rev. A5).
Depending on your JTAG tool, you'd need a 14-pin to 20-pin adapter to use an ARM debugger. The 14-pin TI JTAG connector is used on BeagleBoard and is supported by a large number of JTAG emulation products.
Note: JTAG on BeagleBoard uses 1.8V!
OpenOCD currently doesn't support BeagleBoard Cortex-A8, only Cortex-M3. If this support is added and the JTAG scan chain for OMAP3 is known, Flyswatter from tincan TOOLS for ~ $50 would be an ideal JTAG choice. It supports 1.8V and additionally has a RS232 interface.
OpenOCD JTAG bring up
On IRC it was discussed what will be necessary to get OpenOCD working with OMAP3 on BeagleBoard:
- OpenOCD compatible JTAG hardware interface with FTDI's FT2232 chip, e.g. Flyswatter. The JTAG interface has to support 1.8V and 14 pin JTAG connector. For JTAG pin out see section 8.17 of BeagleBoard HW Reference Manual (rev. A5)
- Get latest OpenOCD source
- Add Cortex-A8 CPU ID. Currently only Cortex-M3 is supported. Take this as example. Once you connect to target you should get error message expect cpuid of xxxxxx but got yyyyyy which should contain Cortex-A8 CPU ID.
- Take CPU scan lengths from OMAP3530 CCS config.
- Pull-down the EMU0/EMU1 pins on BeagleBoard. Jumper P3 can be used to pull-down EMU0. There is no jumper for EMU1, though. Unsure if EMU1 has to be pulled-down, too. If so, modify HW to pull down EMU1 using pin 14 of JTAG connector P2 or via R15.
TI DaVinci OpenOCD configuration can be used as example for above.
If above basics work, additionally MMU, cache support and some include files for A8 might be added to OpenOCD.
Note: If you made some progress regarding BeagleBoard OpenOCD support, please send a short note to BeagleBoard ML.
The pinout on the beagle board is "AT/Everex" or "IDC10". You can buy IDC10 to DB9M adapters in many places as they are commonly used for old PCs. Depending on your local configuration, you may need a 9-Pin NullModem cable to connect BeagleBoard to serial port of your PC.
There are two USB ports on the BeagleBoard, one with an EHCI controller and another with an OTG controller.
The HS (HighSpeed) USB ECHI controller on OMAP3 on BeagleBoard supports high-speed only. This simplifies the logic on the device. FS/LS (FullSpeed/LowSpeed) devices, such as keyboards and mice, require going through a HS hub.
The HS USB OTG (OnTheGo) controller on OMAP3 on the BeagleBoard does have support for all the USB 2.0 speeds (LS/FS/HS) and can act as either a host or a gadget/device. The HS USB OTG port is used as the default power input for the BeagleBoard. It is possible to boot the BeagleBoard using this USB port.
DVI-D connection on BeagleBoard uses a HDMI connector:
HDMI is backward-compatible with the single-link Digital Visual Interface carrying digital video (DVI-D or DVI-I, but not DVI-A) used on modern computer monitors and graphics cards. This means that a DVI-D source can drive a HDMI monitor, or vice versa, by means of a suitable adapter or cable, but the audio and remote control features of HDMI will not be available.
BeagleBoard can be connected to a DVI monitor using HDMI female to DVI male cable.
OMAP3 on BeagleBoard contains a BootRom. With this, BeagleBoard can boot without any code in permanent storage (NAND) or from peripherals. This is useful for first board bring up or if your BeagleBoard is bricked. For more information about BootRom booting see SPRUFD6.
With user button on BeagleBoard you can configure boot order. Depending on this button, the order used to scan boot devices is changed. The boot order is (the first is the default boot source):
- User button not pressed: NAND -> USB -> UART -> MMC
- User button is pressed: USB -> UART -> MMC -> NAND
Technically speaking, the user button configures pin SYS.BOOT. See SPRUFD6 for more details.
To boot from USB or UART, you need a PC tool which talks with OMAP BootRom and speaks the correct protocol to download ARM target code to BeagleBoard. Currently there are two (experimental) tools for UART boot:
See USB and serial download target code for some example target code to be downloaded to OMAP3 on BeagleBoard.
For USB boot, there is currently one (experimental) tool to boot BeagleBoard over USB:
See USB and serial download target code for some example target code to be downloaded to OMAP3 on BeagleBoard.
Currently, boot the BeagleBoard with MMC/SD is the only working way for first board bring up.
As described in above MMC/SD boot description, you have to create a bootable partition on MMC/SD Card. This can be done using e.g. Windows or Linux tools.
See HP USB Disk Storage Format Tool 2.0.6 description on boot the BeagleBoard with MMC/SD page.
If your MMC/SD card formatting is correct and you put MLO, u-boot.bin and uImage on the card you should get a u-boot prompt after booting beagle board. E.g. (output from terminal program with 115200 8N1):
...40T.........XH.H.U�..Instruments X-Loader 1.41 Starting on with MMC Reading boot sector 717948 Bytes Read from MMC Starting OS Bootloader from MMC... U-Boot 1.1.4 (Apr 2 2008 - 13:42:13) OMAP3430-GP rev 2, CPU-OPP2 L3-133MHz TI 3430Beagle 2.0 Version + mDDR (Boot ONND) DRAM: 128 MB Flash: 0 kB NAND:256 MiB In: serial Out: serial Err: serial Audio Tone on Speakers ... complete OMAP3 beagleboard.org #
Using this u-boot prompt, you now can start kernel uImage stored on MMC card manually:
OMAP3 beagleboard.org # mmcinit OMAP3 beagleboard.org # fatload mmc 0:1 0x80000000 uimage OMAP3 beagleboard.org # bootm
If you like to make that happen every boot:
OMAP3 beagleboard.org # set bootcmd 'mmcinit ; fatload mmc 0:1 0x80000000 uimage ; bootm' ; saveenv
Code and binaries for BeagleBoard are available at various places.
Complete source and binaries
Besides above binary and source images, for X-loader there is a temporary git repository. Clone this using:
git-clone http://www.beagleboard.org/x-load.git xload-git
Note: Only http:// protocol works, git:// was never set up and port is still closed.
Note: This x-loader git repository for BeagleBoard is temporary. It is planned to move to http://source.mvista.com/git/?p=xloader.git;a=summary
Additionally to above code and binaries, there are some patches against recent upstream git repositories available:
- Recent OMAP git kernel has basic BeagleBoard support.
- Preliminary U-Boot patches on BeagleBoard ML
Known working combination of above code/binaries:
- MLO binary from Beagle source code page
- u-boot.bin from Beagle source code page
- OMAP git kernel
- rd-ext2.bin from Beagle source code page
This combination is known to boot using MMC/SD boot.
TI OMAP3530 processor on BeagleBoard contains an ARM Cortex-A8 general purpose processor and a TMS320C64x+ DSP.
Cortex A8 ARM
Note: A user reports that he found the use of CodeSourcery tool chain version 2007q1-21 as strange. He has been using 2007q3-53 for a couple of months now.
Currently there is no free C64x+ DSP compiler available. DSP compiler is only available with DVSPB or CCS license.
However, there is some talk to make C64x+ DSP CGT (CodeGenerationTool) available easier/cheaper.
Note: There seems to be an old/limited (no code compressor?) C64x Linux compiler available on TI FTP site.
- beagleboard.org (beagle board home)
- Using Google you can search beagleboard.org (including IRC logs) using site:beagleboard.org <search term>
- BeagleBoard HW Reference Manual (rev. A5)
- OMAP3530 processor description and manuals
- Beagle board memory map and flashing
- OMAP3530/25 CBB BSDL Model
- Beagle board discussion list
- Beagle board RSS feed
- Slides from TI developer conference (TIDC) open source session, covering also beagle board
- TI/Beagle Presentation at LUG RADIO Live USA 2008
- TI open source page
- DSP Bridge driver for OMAP3 platform
- OMAP34xx Wireless Technical Reference Manual (swpu114g.pdf, 47 MB)
- Beagle photos: