Odroid-X
seL4 supports the Odroid-X Exynos4412 board.
Platform | OdroidX |
Architecture | ARMv7A |
System-on-chip | Exynos4412 |
CPU | Cortex-A9 |
seL4 virtualisation support | – |
seL4 SMMU support | – |
Verification status | Verified |
seL4 CMake platform name | exynos4 |
Contributed by | Data61 |
Maintained by | seL4 Foundation |
This board is discontinued by the manufacturer. The instructions here are provided to keep existing setups working. See support for other more recent Odroid boards on Supported platforms.
Client setup
Hardware requirements:
- 5V power supply
- RS232 or USB to UART converter
- USB OTG cable
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"
U-Boot
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
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 that fastboot fails silently if you do not have permissions to access the device. In that case, try running withsudo
. -
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