sel4: add Wandboard Quad (iMX6) support

Issue #2451
This commit is contained in:
Alexander Boettcher
2017-07-04 14:17:38 +02:00
committed by Christian Helmuth
parent c22b60f0c4
commit da5441292a
57 changed files with 848 additions and 140 deletions

View File

@@ -1,13 +1,19 @@
proc binary_name_ld_lib_so { } { return "ld-sel4.lib.so" }
proc binary_name_core_o { } { return "core-sel4.o" }
proc binary_name_timer { } { return "pit_timer_drv" }
proc binary_name_timer { } {
if {[have_spec wand_quad]} { return "wand_quad_timer_drv" }
if {[have_spec x86]} { return "pit_timer_drv" }
puts "unknown platform - no timer driver"
exit -1
}
proc kernel_files { } { return sel4 }
proc run_boot_string { } { return "\n\rStarting node #0" }
proc run_boot_string { } { return "\n\rBooting all finished, dropped to user space" }
proc core_link_address { } { return "0x02000000" }
proc sel4_elfloader_dir { } { return "[pwd]/var/libcache/kernel-sel4/elfloader" }
##
# Populate boot directory with binaries on hw
@@ -59,9 +65,35 @@ proc run_boot_dir {binaries} {
close $fh
}
#
# Use seL4 elfloader tool to generate bootable image on ARM
#
if {[have_spec arm]} {
if {![have_spec imx6]} {
puts "abort - unknown ARM board"
exit 1
}
# keep Genode image.elf as genode.elf
exec mv [run_dir]/image.elf [run_dir]/genode.elf
# call seL4 elfloader tool to generate image.elf bootable by uboot with 'bootelf' command
set ::env(PLAT) imx6
set ::env(TOOLPREFIX) [cross_dev_prefix]
exec [sel4_elfloader_dir]/gen_boot_image.sh [run_dir]/sel4 [run_dir]/genode.elf [run_dir]/image.elf
}
run_image [run_dir]/image.elf
if {[have_include "load/tftp"]} {
# set symbolic link to image.elf file in TFTP directory for PXE boot
if {[have_spec arm] && [have_include "load/tftp"]} {
exec ln -sf [pwd]/[run_dir]/image.elf [load_tftp_base_dir][load_tftp_offset_dir]
if {[have_include "image/uboot"]} {
exec ln -sf [pwd]/[run_dir]/uImage [load_tftp_base_dir][load_tftp_offset_dir]
}
}
if {[have_spec x86] && [have_include "load/tftp"]} {
#
# Install PXE bootloader pulsar
#
@@ -79,7 +111,7 @@ proc run_boot_dir {binaries} {
generate_tftp_config
}
if {[have_include "load/ipxe"]} {
if {[have_spec x86] && [have_include "load/ipxe"]} {
create_ipxe_iso_config
update_ipxe_boot_dir
create_symlink_for_iso