Odroid-X
seL4 supports the Odroid-X Exynos4412 board.
Client setup
Hardware requirements:
- 5V power supply
- RS232 or USB to UART converter
- USB OTG cable
Note: The USB-UART converter that is shipped with the board requires a Linux kernel version > 3.2
Serial port setup
Open minicom on /dev/ttyUSB*
and set the
serial port settings to: 115200N1
- 115200bps
- parity-none
- 1 stop bit
udev
You may also like to set up a udev rule for Fastboot:
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="0002", MODE="660", GROUP="dialout"
SD card setup
An image file can be found here: TODO Add sd image
This image contains both U-Boot and Android. This should set up SD card partitions properly. seL4 image can be uploaded via Fastboot.
To prepare the SD card, run
$ sudo dd if=<image file> of=</dev/sdx>
Where sdx
is the device that is associated with your SD card.
U-Boot
<TODO> Uboot source?
U-Boot must reside at a magical offset in a special partition of the SD card. To copy U-Boot and the other boot loaders to the SD card:
cd sd_fusesudo
./sd_fusing_4412.sh /dev/sdx
seL4 Image file preparation
Checkout the sel4test project using repo as per seL4Test
repo init -u https://github.com/seL4/sel4test-manifest.git
repo sync
mkdir cbuild
cd cbuild
../init-build.sh -DPLATFORM=exynos4 -DAARCH32=1
# The default cmake wrapper sets up a default configuration for the target platform.
# To change individual settings, run `ccmake` and change the configuration
# parameters to suit your needs.
ninja
Generated binaries can be found in the images/
directory.
The seL4 image file must be converted into a U-Boot application file. The first step is to strip the elf file into a binary file. Next we use mkimage to create the image.
sudo apt-get install uboot-mkimage
INPUT_FILE=images/sel4test-image-arm-exynos4
OUTPUT_FILE=sel4-uImage
mkimage -a 0x48000000 -e 0x48000000 -C none -A arm -T kernel -O qnx -d $INPUT_FILE $OUTPUT_FILE
The reason we choose QNX is because we exploit the fact that, like seL4, QNX expects to be ELF-loaded. The alternative is to convert our ELF file into a binary file using objcopy.
Booting
Fastboot will be used to upload images to the device. The tool can be found here: or here: you can clone and build the tool from source
<TODO> add fastboot link
Follow these steps to boot your program:
- Connect the USB cable between the ODROID and the client
- Connect the UART converter between the ODROID and the client
- Insert your SD card into the ODROID
- Connect the 5V power supply
- Open minicom
- Hold the power button for 3 seconds
- In minicom, press a key to stop the auto boot process or hold the user button on the board during the boot process
To boot using fastboot:
-
At the u-boot prompt, type fastboot
-
On the client machine, run sudo fastboot devices to ensure that the device has been recognised. The device should have the label “SMDKEXYNOS-01”.
- NOTE: fastboot fails silently if you do not have permissions to access the device. Try running with sudo.
-
On the client machine, run fastboot boot sel4-uImage
To boot from mmc:
- At the U-Boot prompt type
fatload mmc 0:2 0x42000000 <filename> bootm 0x42000000
References
http://www.hardkernel.com/renewal_2011/products/prdt_info.php
http://dev.odroid.com/projects/odroid-xq/#s-2.2.1 <- This should be replaced with the official Samsung exynos4412 “User manual”