= Beagleboard = {{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. [wiki:TBR/UserManual/QEMU 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. = 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 - https://github.com/bengras/rtems.git , beagleboard-merged branch) mkdir rtems-b cd rtems ./bootstrap cd ../rtems-b ../rtems/configure --target=arm-rtems4.11 --disable-posix --disable-networking --disable-cxx --enable-rtems-debug --enable-rtemsbsp=beagle --prefix=/usr/local/beagletems make make install (these instructions previously mentioned the now-obsolete arm-rtemseabi4.11 target: ../rtems/configure --target=arm-rtemseabi4.11 --disable-posix --disable-networking --disable-cxx --enable-rtems-debug --enable-rtemsbsp=beagle --prefix=PUT_YOUR_PREFIX_HERE ) = 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 = 4. build the hello_world example = = 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 script to do that is in the tools repo, the name is: build-nand.sh For this, you will also need: * bb_nandflash.sh and bb_nandflash_ecc from e.g. http://beagleboard.lohray.com/vm-larix/setting-up-an-emulator/qemu-emulation * uboot mkimage, from e.g. uboot-mkimage package (apt-get install uboot-mkimage on ubuntu) * some minor modifications to the build-nand.sh script, like setting the path to the tools and files properly Invocation: $ build-nand.sh 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 = [wiki:User:WhoTestedThis User:WhoTestedThis] |Report = reports that something happened. }} =References= * TBD {{Navbox_BSPs}}