base: remove SPEC variables of boards (fix #3971)

* Remove SPEC declarations from mk/spec
* Remove all board-specific REQUIRE declaratiions left
* Replace [have_spec <board>] run-script declarations with have_board where necessary
* Remove addition of BOARD variable to SPECS in toplevel Makefile
* Move board-specific directories in base-hw out of specs
This commit is contained in:
Stefan Kalkowski
2021-01-13 10:15:10 +01:00
committed by Norman Feske
parent 5a123e37c9
commit bdd923406f
236 changed files with 454 additions and 639 deletions

View File

@@ -0,0 +1 @@
BOARD ?= unknown

View File

@@ -1,5 +1 @@
SPECS += sel4
ifneq ($(filter $(SPECS),x86_32 x86_64),)
SPECS += acpi pci ps2 vesa framebuffer
endif

View File

@@ -1,4 +1,6 @@
SEL4_INCLUDE_DIR := $(LIB_CACHE_DIR)/syscall-sel4/include
include $(call select_from_repositories,etc/board.conf)
SEL4_INCLUDE_DIR := $(LIB_CACHE_DIR)/syscall-sel4-$(BOARD)/include
#
# Access kernel-interface headers that were installed when building the

View File

@@ -0,0 +1,2 @@
include $(REP_DIR)/etc/board.conf
LIBS += syscall-sel4-$(BOARD)

View File

@@ -1,9 +1,5 @@
include $(GENODE_DIR)/repos/base/recipes/src/base_content.inc
content: enable_board_spec
enable_board_spec: etc/specs.conf
echo "SPECS += imx6q_sabrelite" >> etc/specs.conf
content: include/os/attached_mmio.h
include/%.h:
@@ -32,8 +28,15 @@ src/tool/sel4_tools: src/kernel/sel4
mkdir -p $@
cp -r $(ELFLOADER_PORT_DIR)/src/tool/sel4_tools/* $@
content: etc/board.conf
etc/board.conf:
echo "BOARD = imx6q_sabrelite" > etc/board.conf
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/imx6_timer_drv/timer/" src/timer/epit/imx6/target.inc
find lib/mk/spec -name kernel-sel4-*.mk -o -name syscall-sel4-*.mk |\
grep -v "sel4-imx6q_sabrelite.mk" | xargs rm -rf

View File

@@ -1,9 +1,5 @@
include $(GENODE_DIR)/repos/base/recipes/src/base_content.inc
content: enable_board_spec
enable_board_spec: etc/specs.conf
echo "SPECS += imx7d_sabre" >> etc/specs.conf
content: include/os/attached_mmio.h
include/%.h:
@@ -32,8 +28,15 @@ src/tool/sel4_tools: src/kernel/sel4
mkdir -p $@
cp -r $(ELFLOADER_PORT_DIR)/src/tool/sel4_tools/* $@
content: etc/board.conf
etc/board.conf:
echo "BOARD = imx7d_sabre" > etc/board.conf
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/imx7_timer_drv/timer/" src/timer/gpt/imx7/target.inc
find lib/mk/spec -name kernel-sel4-*.mk -o -name syscall-sel4-*.mk |\
grep -v "sel4-imx7d_sabre.mk" | xargs rm -rf

View File

@@ -17,10 +17,17 @@ KERNEL_PORT_DIR := $(call port_dir,$(REP_DIR)/ports/sel4)
src/kernel/sel4: src/kernel
cp -r $(KERNEL_PORT_DIR)/src/kernel/sel4/* $@
content: etc/board.conf
etc/board.conf:
echo "BOARD = pc" > etc/board.conf
content:
for spec in x86_32 x86_64 arm; do \
mv lib/mk/spec/$$spec/ld-sel4.mk lib/mk/spec/$$spec/ld.mk; \
done;
sed -i "s/ld-sel4/ld/" src/lib/ld/sel4/target.mk
sed -i "s/pit_timer_drv/timer/" src/timer/pit/target.inc
find lib/mk/spec -name kernel-sel4-*.mk -o -name syscall-sel4-*.mk |\
grep -v "sel4-pc.mk" | xargs rm -rf

View File

@@ -1,4 +1,4 @@
BOARD ?= unknown
include $(REP_DIR)/etc/board.conf
TARGET = sel4-$(BOARD)
LIBS = kernel-sel4-$(BOARD)