wiki:TBR/BSP/Beagleboard

Version 13 (modified by Beng, on Apr 2, 2014 at 6:36:10 PM) (diff)

Beagleboard

<!-- When filling in the box,

+ Try to include links to other Wiki pages and websites. + If a field is not applicable, not setting the variable will result in it not being displayed + If Simulator is not set, then No. is displayed.

-->

{{Infobox BSP |BSP_name = BeagleBoard? |Manufacturer = Texas Instruments |image = Beagle Board big.jpg |caption = BeagleBoard? rev.B |Board_URL = http:/beagleboard.org |Architecture = ARM |CPU_model = Cortex-A8 |Monitor = uBoot |Simulator = Yes. QEMU? |Aliases = None |RAM = 256 MB LPDDR RAM |NVMEM = 256 MB NAND Flash memory |Serial = TBD |Video = S-Video, DVI |NICs = TBD |Other = TBD }}

Overview

This page documents the currently un-mainline support for the original Beagleboard.

For an overview of it and related targets, see: http://en.wikipedia.org/wiki/BeagleBoard

Board Setup

None

Downloading and Executing

1. Clone and build qemu-maemo:

$ git clone git://gitorious.org/qemu-maemo/qemu.git $ cd qemu $ ./configure --target-list="arm-softmmu" $ make

http://meego.gitorious.org/qemu-maemo

2. Clone and build rtems from my fork:

$ git clone git://github.com/claas/rtems.git

(ben's fork contains a branch that is uptodate w.r.t rtems mainline, has working clock and timers, and has beaglebone support, but is in flux - https://github.com/bengras/rtems.git , beaglebone-wip branch)

$ mkdir rtems-b $ cd rtems $ ./bootstrap $ cd ../rtems-b $ ../rtems/configure --target=arm-rtems4.11 --enable-rtemsbsp=beagle $ make $ make install

(these instructions previously mentioned the now-obsolete arm-rtemseabi4.11 target: --target=arm-rtemseabi4.11.

these instructions also previously mentioned to disable posix, networking, cxx, and enable rtems debug, and specify a prefix, but the default also builds.)

3. Clone my tools repository:

$ git clone git://github.com/claas/tools.git

find the test.c file in the cloned repository and copy it to the examples hello/hello_world_c folder

5. Download the x-loader and uboot images

$ wget http://qemu-omap3.googlecode.com/files/image-v0.01.tar.bz2

6. Build the nand flash image

The original beagleboard has 256MB builtin flash NAND. We make a full image for that flash and feed it to the emulator to boot from.

The script to do that is in the tools repo, the name is: build-nand.sh

For this, you will also need:

Invocation:

$ build-nand.sh <program> <nand flash output file>

e.g. with my layout:

$ sh tools/build-nand.sh rtems-b/arm-rtems4.11/c/beagle/testsuites/samples/hello/hello nand

Then to invoke qemu:

$ qemu-system-arm -M beagle -mtdblock nand -serial stdio

Once you are in the boot prompt, load and run the program:

OMAP3 beagleboard.org # nand read 0x80800000 0x280000 0x400000

NAND read: device 0 offset 0x280000, size 0x400000

4194304 bytes read: OK

OMAP3 beagleboard.org # bootm 0x80800000 ## Booting kernel from Legacy Image at 80800000 ...

Image Name: RTEMS Image Type: ARM RTEMS Kernel Image (gzip compressed) Data Size: 56484 Bytes = 55.2 kB Load Address: 80000000 Entry Point: 80000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK

## Transferring control to RTEMS (at address 80000000) ... bsp_interrupt_facility_initializebeagle_set_exception_handler

* BEGIN OF TEST HELLO WORLD * Hello World * END OF TEST HELLO WORLD *

Debugging

How do you debug code on this board? What gdb setup? BDM, stub, etc?

Beagleboard XM, Linaro qemu

Using a different emulator (fork), and running a different u-boot, emulating a beagleboard xm, this hello world also works on the bbxm. The bbxm has no internal NAND so booting is a bit different, the mmc card is needed. the image referenced contains a FAT partition that contains hello.img:

$ qemu-system-arm -M beaglexm -drive if=sd,cache=writeback,file=rtems_arm_sd.img -clock unix -serial stdio

booting then looks like:

OMAP3 beagleboard.org # fatload mmc 0:1 0x80800000 hello.img reading hello.img 56548 bytes read in 12 ms (4.5 MiB/s) OMAP3 beagleboard.org # bootm 0x80800000 ## Booting kernel from Legacy Image at 80800000 ...

Image Name: RTEMS Image Type: ARM RTEMS Kernel Image (gzip compressed) Data Size: 56484 Bytes = 55.2 KiB Load Address: 80000000 Entry Point: 80000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK

## Transferring control to RTEMS (at address 80000000) ... bsp_interrupt_facility_initializebeagle_set_exception_handler

* BEGIN OF TEST HELLO WORLD * Hello World * END OF TEST HELLO WORLD *

This means that bbxm support should not be too far off.

Test Reports

{{Test Report |Version = CVS head |Date = DATE |User = User:WhoTestedThis? |Report = reports that something happened. }}

=References=

  • TBD

{{Navbox_BSPs}}