Here is my experience building and running seL4 on the BeagleBoard (original, redboard, revision D). I'm hoping the notes will be helpful for others who arent very experience with this platform, like myself. Start with a BeagleBoard, a 5volt power supply (or the USB cable for power), a SDCard and an RS232 serial connector. Note: the BeagleBoard uses RS232 serial levels, not TTL levels, so you'll need some kind of RS232 connector. I used a USB<->RS232 (9-pin D-connector) cable. The beagle board has serial on header P9, which is a 2x5 header. P9 pin 2 (RX) <--> D-connector pin 3 (TX) P9 pin 3 (TX) <--> D-connector pin 2 (RX) P9 pin 5 (GND) <--> D-connector pin 5 (GND) I use "screen" or "cu" from linux to connect to the serial line with one of the following commands (note: I'm in linux and my account has permissions on /dev/ttyUSB0): $ cu -l /dev/ttyUSB0 -s 115200 $ screen /dev/ttyUSB0 115200 Verify that when you power on the device (no SDCard necessary yet) you get the u-boot bootloader in your terminal. Next get and build your seL4 image for the beagleboard. I'm running the sel4 test project in a debug build. You'll need to have the proper prerequisites, as covered in the sel4 build notes. $ mkdir sel4/beagle $ cd sel4/beagle $ repo init -u https://github.com/seL4/sel4test-manifest.git $ repo sync $ make beagle_debug_xml_defconfig $ make menuconfig # at this point I adjusted the tools prefix to # "arm-none-eabi-" to match the arm toolchain I have $ make At this point you've got an ELF image in the images dir. It has one section at 0x82000000 starting at offset 0x8000 in the file, and the start address is 0x82000000. Mount an SDCard with a FAT filesystem and nothing else on it and copy the image to your sdcard $ cp images/sel4test-driver-image-arm-omap3 /media/SDCARD/ $ umount /media/SDCARD now power off the beagle board, move the SDCard to the beagleboard, power it on and interrupt the u-boot sequence to get a boot loader prompt. Enter the following commands to boot the image. They will load the file so that offset 0x8000 is at 0x82000000 (by loading the entire file 0x8000 bytes before 0x82000000). Then it will jump to the entry point and run the sel4 loader, kernel and tests. mmc rescan 0 fatload mmc 0 0x81ff8000 sel4test-driver-image-arm-omap3 go 0x82000000 At this point sel4 is up and running and the test program is running through its tests! The full output of the tests can be seen at http://pastebin.com/cC0FTuqM There are some errors printed during the test, but happily the test ends with: 136/136 tests passed. All is well in the universe. Tim
Hi Tim,
I have a toolchain (gcc-4.9.1) for arm created using newlib 2.1.0. I
followed your instructions just to confirm that I can create the same image
as you did for beagleboard with no problem.
Unfortunately the package seems to be broken for beaglebone.
seL4Test/libs/libplatsupport/
src/plat/am335x/dm.c:56:25: error: ‘timer’ undeclared (first use in this
function)
dm_t *dm = (dm_t *) timer->data;
I just did "make menuconfig" and change:
Architecture Type (ARM) --->
ARM CPU selection (Cortex A8) --->
Platform Type (AM335X (BeagleBone)) --->
Save the configuration and "make".
I'm trying to figure out what is missing.
On Mon, Aug 4, 2014 at 9:11 PM, Tim Newsham
Here is my experience building and running seL4 on the BeagleBoard (original, redboard, revision D). I'm hoping the notes will be helpful for others who arent very experience with this platform, like myself.
Start with a BeagleBoard, a 5volt power supply (or the USB cable for power), a SDCard and an RS232 serial connector. Note: the BeagleBoard uses RS232 serial levels, not TTL levels, so you'll need some kind of RS232 connector. I used a USB<->RS232 (9-pin D-connector) cable. The beagle board has serial on header P9, which is a 2x5 header.
P9 pin 2 (RX) <--> D-connector pin 3 (TX) P9 pin 3 (TX) <--> D-connector pin 2 (RX) P9 pin 5 (GND) <--> D-connector pin 5 (GND)
I use "screen" or "cu" from linux to connect to the serial line with one of the following commands (note: I'm in linux and my account has permissions on /dev/ttyUSB0):
$ cu -l /dev/ttyUSB0 -s 115200 $ screen /dev/ttyUSB0 115200
Verify that when you power on the device (no SDCard necessary yet) you get the u-boot bootloader in your terminal.
Next get and build your seL4 image for the beagleboard. I'm running the sel4 test project in a debug build. You'll need to have the proper prerequisites, as covered in the sel4 build notes.
$ mkdir sel4/beagle $ cd sel4/beagle $ repo init -u https://github.com/seL4/sel4test-manifest.git $ repo sync $ make beagle_debug_xml_defconfig $ make menuconfig # at this point I adjusted the tools prefix to # "arm-none-eabi-" to match the arm toolchain I have $ make
At this point you've got an ELF image in the images dir. It has one section at 0x82000000 starting at offset 0x8000 in the file, and the start address is 0x82000000. Mount an SDCard with a FAT filesystem and nothing else on it and copy the image to your sdcard
$ cp images/sel4test-driver-image-arm-omap3 /media/SDCARD/ $ umount /media/SDCARD
now power off the beagle board, move the SDCard to the beagleboard, power it on and interrupt the u-boot sequence to get a boot loader prompt. Enter the following commands to boot the image. They will load the file so that offset 0x8000 is at 0x82000000 (by loading the entire file 0x8000 bytes before 0x82000000). Then it will jump to the entry point and run the sel4 loader, kernel and tests.
mmc rescan 0 fatload mmc 0 0x81ff8000 sel4test-driver-image-arm-omap3 go 0x82000000
At this point sel4 is up and running and the test program is running through its tests!
The full output of the tests can be seen at http://pastebin.com/cC0FTuqM There are some errors printed during the test, but happily the test ends with:
136/136 tests passed. All is well in the universe.
Tim
_______________________________________________ Devel mailing list Devel@sel4.systems https://sel4.systems/lists/listinfo/devel
participants (2)
-
Jorge Ventura
-
Tim Newsham