replace Wandboard by i.MX6 reference board

Instead of using the Wandboard Quad, the reference hardware from NXP
i.MX6 Quad Sabrelite will be used by Fiasco.OC, sel4 and hw by default.
This commit is contained in:
Stefan Kalkowski 2019-01-15 15:44:16 +01:00 committed by Norman Feske
parent c65860ee53
commit b765cef359
29 changed files with 38 additions and 48 deletions

View File

@ -2,4 +2,4 @@ include $(GENODE_DIR)/repos/base-hw/recipes/src/base-hw_content.inc
content: enable_board_spec
enable_board_spec: etc/specs.conf
echo "SPECS += wand_quad" >> etc/specs.conf
echo "SPECS += imx6q_sabrelite" >> etc/specs.conf

View File

@ -0,0 +1 @@
2019-01-15 3e923bae4232ee22da978e643f135084b1e4959c

View File

@ -1 +0,0 @@
2019-01-13 34adacbbaa1ec943b4a705964b54140394749013

View File

@ -15,7 +15,6 @@ endif
elfloader/elfloader.o:
$(VERBOSE)cp -rf $(ELFLOADER_DIR) elfloader && \
cd elfloader && \
sed -i "s/define UART_PPTR.*IMX6_UART2_PADDR/define UART_PPTR IMX6_UART1_PADDR/" src/arch-arm/plat-imx6/platform.h && \
$(MAKE) \
TOOLPREFIX=$(CROSS_DEV_PREFIX) \
NK_ASFLAGS=-DARMV7_A \
@ -28,6 +27,6 @@ elfloader/elfloader.o:
build_kernel: elfloader/elfloader.o
$(VERBOSE)$(MAKE) \
TOOLPREFIX=$(CROSS_DEV_PREFIX) \
BOARD=wand_quad ARCH=arm PLAT=imx6 CPU=cortex-a9 ARMV=armv7-a DEBUG=1 \
BOARD=imx6q_sabrelite ARCH=arm PLAT=imx6 CPU=cortex-a9 ARMV=armv7-a DEBUG=1 \
SOURCE_ROOT=$(SEL4_DIR) -f$(SEL4_DIR)/Makefile

View File

@ -2,7 +2,7 @@ PLAT := imx6
ARCH := arm
SEL4_ARCH := aarch32
PLAT_BOARD := /wand_quad
PLAT_BOARD := /imx6q_sabrelite
SEL4_WORDBITS := 32
include $(REP_DIR)/lib/mk/syscall-sel4.inc

View File

@ -1,5 +1,5 @@
--- src/kernel/sel4/configs/imx6/wand_quad/autoconf.h
+++ src/kernel/sel4/configs/imx6/wand_quad/autoconf.h
--- src/kernel/sel4/configs/imx6/imx6q_sabrelite/autoconf.h
+++ src/kernel/sel4/configs/imx6/imx6q_sabrelite/autoconf.h
@@ -41,6 +41,7 @@
#define CONFIG_LIBSEL4DEBUG_FUNCTION_INSTRUMENTATION_NONE 1
#define CONFIG_LIB_SEL4_UTILS 1
@ -8,15 +8,7 @@
#define CONFIG_LIB_PLATSUPPORT 1
#define CONFIG_LIB_SEL4_ALLOCMAN 1
#define CONFIG_HAVE_LIB_SEL4_SIMPLE_DEFAULT 1
@@ -71,14 +71,14 @@
#define CONFIG_HAVE_LIB_SEL4_SIMPLE 1
#define CONFIG_ARCH_ARM 1
#define CONFIG_HAVE_LIB_ELF 1
-#define CONFIG_PLAT_SABRE 1
+#define CONFIG_PLAT_WANDQ 1
#define CONFIG_HAVE_LIB_PLATSUPPORT 1
#define CONFIG_NUM_DOMAINS 16
#define CONFIG_HAVE_LIB_UTILS 1
@@ -78,7 +78,7 @@
#define CONFIG_USER_OPTIMISATION_O2 1
#define CONFIG_LIB_CPIO 1
#define CONFIG_RETYPE_FAN_OUT_LIMIT 256

View File

@ -1 +1 @@
919f7abe5ec07414ed7ee9a47c4a52e86aa076ab
e9a08b9de9e3aceb19804af4473b65f9a1ee0280

View File

@ -15,7 +15,7 @@ $(call check_python_module,six)
PATCHES := $(sort $(wildcard $(REP_DIR)/patches/*.patch))
HASH_INPUT += $(REP_DIR)/patches/wand_quad.config
HASH_INPUT += $(REP_DIR)/patches/imx6q_sabrelite.config
# adjust kernel config usable on qemu and on native hw, and add a 32bit version
default: $(DOWNLOADS)
@ -24,6 +24,6 @@ default: $(DOWNLOADS)
$(VERBOSE)cp src/kernel/sel4/configs/pc99/autoconf.h src/kernel/sel4/configs/pc99/x86_64/autoconf.h
$(VERBOSE)mv src/kernel/sel4/configs/pc99/autoconf.h src/kernel/sel4/configs/pc99/ia32/autoconf.h
$(VERBOSE)sed -i "s.^ \*/. \*/\n#ifndef ARCH_IA32\n#define ARCH_IA32\n#endif\n." src/kernel/sel4/configs/pc99/ia32/autoconf.h
$(VERBOSE)mkdir -p src/kernel/sel4/configs/imx6/wand_quad
$(VERBOSE)mv src/kernel/sel4/configs/imx6/autoconf.h src/kernel/sel4/configs/imx6/wand_quad/autoconf.h
$(VERBOSE)patch -p0 <$(REP_DIR)/patches/wand_quad.config
$(VERBOSE)mkdir -p src/kernel/sel4/configs/imx6/imx6q_sabrelite
$(VERBOSE)mv src/kernel/sel4/configs/imx6/autoconf.h src/kernel/sel4/configs/imx6/imx6q_sabrelite/autoconf.h
$(VERBOSE)patch -p0 <$(REP_DIR)/patches/imx6q_sabrelite.config

View File

@ -2,7 +2,7 @@ include $(GENODE_DIR)/repos/base/recipes/src/base_content.inc
content: enable_board_spec
enable_board_spec: etc/specs.conf
echo "SPECS += wand_quad" >> etc/specs.conf
echo "SPECS += imx6q_sabrelite" >> etc/specs.conf
content: include/os/attached_mmio.h
@ -12,7 +12,7 @@ include/%.h:
content: README
README:
cp $(REP_DIR)/recipes/src/base-sel4-wand_quad/README $@
cp $(REP_DIR)/recipes/src/base-sel4-imx6q_sabrelite/README $@
content: lib/import etc include/sel4
lib/import etc include/sel4:
@ -35,5 +35,5 @@ src/tool/elfloader: src/kernel/sel4
content:
mv lib/mk/spec/arm/ld-sel4.mk lib/mk/spec/arm/ld.mk;
sed -i "s/ld-sel4/ld/" src/lib/ld/sel4/target.mk
sed -i "s/wand_quad_timer_drv/timer/" src/timer/epit/wand_quad/target.inc
sed -i "s/imx6_timer_drv/timer/" src/timer/epit/imx6/target.inc

View File

@ -0,0 +1 @@
2019-01-15 ceef2077a4815aa7b115f94739cf1bfafaaa7c96

View File

@ -1 +0,0 @@
2019-01-13 92fcf77cdd5ab204bec05122b948847cecc3ae8e

View File

@ -0,0 +1 @@
include $(call select_from_repositories,src/timer/epit/imx6/target.inc)

View File

@ -1 +0,0 @@
include $(call select_from_repositories,src/timer/epit/wand_quad/target.inc)

View File

@ -6,7 +6,7 @@
if {
![have_spec arndale] &&
![have_spec wand_quad] &&
![have_spec imx6q_sabrelite] &&
![have_spec panda] &&
![expr [have_spec zynq] && ![have_spec zynq_qemu] ] &&
![expr [have_spec x86_32] && [have_spec foc] ] &&

View File

@ -37,7 +37,7 @@ proc usb_host_drv_binary { } {
if {[have_spec arndale]} { return arndale_usb_host_drv }
if {[have_spec panda]} { return panda_usb_host_drv }
if {[have_spec rpi]} { return rpi_usb_host_drv }
if {[have_spec wand_quad]} { return wand_quad_usb_host_drv }
if {[have_spec imx6q_sabrelite]} { return imx6q_sabrelite_usb_host_drv }
if {[have_spec odroid_x2]} { return odroid_x2_usb_host_drv }
if {[have_spec x86]} { return x86_pc_usb_host_drv }
return no_usb_drv_available
@ -61,7 +61,7 @@ proc nic_drv_binary { } {
proc nic_drv_config { } {
if {[have_spec imx53]} {
return "<config><card type=\"fsl,imx25-fec\" mii=\"rmii\" irq=\"87\" mmio=\"0x63fec000\"/></config>" }
if {[have_spec wand_quad]} {
if {[have_spec imx6q_sabrelite]} {
return "<config><card type=\"fsl,imx6q-fec\" mii=\"rgmii\" irq=\"150\" mmio=\"0x2188000\"/></config>" }
if {[have_spec omap4] || [have_spec arndale] || [have_spec rpi]} {
return {<config uhci="yes" ohci="yes" ehci="yes"><nic mac="02:00:00:00:01:01"/></config>} }

View File

@ -1,8 +1,8 @@
TARGET = wand_quad_timer_drv
REQUIRES = wand_quad
TARGET = imx6_timer_drv
REQUIRES = imx6
GEN_DIR := $(dir $(call select_from_repositories,src/timer/main.cc))
INC_DIR += $(GEN_DIR)/epit
SRC_CC += epit/time_source.cc epit/wand_quad/timer.cc
SRC_CC += epit/time_source.cc epit/imx6/timer.cc
include $(GEN_DIR)/target.inc

View File

@ -1,5 +1,5 @@
/*
* \brief Time source for Wandboard Quad i.MX6
* \brief Time source for i.MX6 (EPIT2)
* \author Norman Feske
* \author Martin Stein
* \author Stefan Kalkowski
@ -15,7 +15,7 @@
*/
/* base include */
#include <drivers/defs/wand_quad.h>
#include <drivers/defs/imx6.h>
/* local include */
#include <time_source.h>
@ -24,9 +24,9 @@ using namespace Genode;
Timer::Time_source::Time_source(Env &env)
:
Attached_mmio(env, Wand_quad::EPIT_2_MMIO_BASE, Wand_quad::EPIT_2_MMIO_SIZE),
Attached_mmio(env, Imx6::EPIT_2_MMIO_BASE, Imx6::EPIT_2_MMIO_SIZE),
Signalled_time_source(env),
_timer_irq(env, Wand_quad::EPIT_2_IRQ)
_timer_irq(env, Imx6::EPIT_2_IRQ)
{
_timer_irq.sigh(_signal_handler);
while (read<Cr::Swr>()) ;

View File

@ -1,5 +1,5 @@
set use_usb_driver [expr [have_spec omap4] || [have_spec arndale] || [have_spec rpi]]
set use_nic_driver [expr [have_spec linux] || [expr !$use_usb_driver && ![have_spec imx53] && ![have_spec odroid_xu] && ![have_spec linux] && ![have_spec wand_quad]]]
set use_nic_driver [expr [have_spec linux] || [expr !$use_usb_driver && ![have_spec imx53] && ![have_spec odroid_xu] && ![have_spec linux] && ![have_spec imx6q_sabrelite]]]
set lynx [installed_command lynx]

View File

@ -53,7 +53,7 @@ if { [get_cmd_switch --autopilot] &&
![have_spec panda] &&
![have_spec rpi] &&
![have_spec x86] &&
![have_spec wand_quad]} {
![have_spec imx6q_sabrelite]} {
puts "Run script does not support autopilot mode on this platform"
exit 0
}

View File

@ -1,7 +1,7 @@
include $(REP_DIR)/src/drivers/usb_host/target.inc
TARGET = wand_quad_usb_host_drv
REQUIRES = wand_quad
TARGET = imx6q_sabrelite_usb_host_drv
REQUIRES = imx6q_sabrelite
SRC_C += usb/chipidea/ci_hdrc_imx.c
SRC_C += usb/chipidea/core.c
@ -14,7 +14,7 @@ INC_DIR += $(REP_DIR)/src/drivers/usb_host/spec/arm
INC_DIR += $(REP_DIR)/src/include/spec/arm
SRC_CC += spec/arm/platform.cc
SRC_CC += spec/wand_quad/platform.cc
SRC_CC += spec/imx6q_sabrelite/platform.cc
CC_OPT += -DCONFIG_USB_CHIPIDEA
CC_OPT += -DCONFIG_USB_CHIPIDEA_HOST

View File

@ -3,7 +3,7 @@
#
if {[have_spec odroid_xu] ||
[have_spec wand_quad] ||
[have_spec imx6q_sabrelite] ||
([get_cmd_switch --autopilot] && [have_spec linux]) ||
([get_cmd_switch --autopilot] && [have_include "power_on/qemu"])} {
puts "Run script does not support this platform."

View File

@ -2,7 +2,7 @@
# Build
#
if {[have_spec odroid_xu] || [have_spec wand_quad] || [have_spec zynq] || [have_spec imx53] && [have_spec foc]} {
if {[have_spec odroid_xu] || [have_spec imx6q_sabrelite] || [have_spec zynq] || [have_spec imx53] && [have_spec foc]} {
puts "\n Run script is not supported on this platform. \n";
exit 0
}

View File

@ -210,7 +210,6 @@ proc base_src { } {
if {[have_spec x86_64] && [have_spec muen]} { return base-hw-muen }
if {[have_spec pbxa9]} { return base-hw-pbxa9 }
if {[have_spec rpi]} { return base-hw-rpi }
if {[have_spec wand_quad]} { return base-hw-wand_quad }
if {[have_spec imx6q_sabrelite]} { return base-hw-imx6q_sabrelite }
if {[have_spec odroid_xu]} { return base-hw-odroid_xu }
if {[have_spec imx53_qsb] && ![have_spec trustzone]} { return base-hw-imx53_qsb }

View File

@ -1,8 +1,8 @@
proc binary_name_ld_lib_so { } { return "ld-sel4.lib.so" }
proc binary_name_core_o { } { return "core-sel4.o" }
proc binary_name_timer { } {
if {[have_spec wand_quad]} { return "wand_quad_timer_drv" }
if {[have_spec x86]} { return "pit_timer_drv" }
if {[have_spec imx6]} { return "imx6_timer_drv" }
if {[have_spec x86]} { return "pit_timer_drv" }
puts "unknown platform - no timer driver"
exit -1
}
@ -147,8 +147,8 @@ proc run_boot_dir {binaries} {
#
proc base_src { } {
if {[have_spec x86]} { return base-sel4-x86 }
if {[have_spec wand_quad]} { return base-sel4-wand_quad }
if {[have_spec x86]} { return base-sel4-x86 }
if {[have_spec imx6q_sabrelite]} { return base-sel4-imx6q_sabrelite }
global specs