From a1e70b9ba4799c1199df4ac361a04fccd09c034a Mon Sep 17 00:00:00 2001 From: Stefan Kalkowski Date: Thu, 9 May 2019 14:04:03 +0200 Subject: [PATCH] kernel: differentiate board-specific components Components like kernel, core, and bootstrap that are built for a specific board need to reside inside the same architectural dependent build directory. For instance there are sel4, foc, and hw kernel builds for imx6q_sabrelite and imx7d_sabre, which have to reside inside the same arm_v7 build directory. This commit names those components explicitely, and adapts the run-tool to it. Fix #3316 --- repos/base-foc/lib/mk/kernel-foc.inc | 5 +-- repos/base-foc/lib/mk/l4_pkg.inc | 4 +-- .../lib/mk/spec/arndale/syscall-foc.mk | 2 +- .../mk/spec/imx6q_sabrelite/syscall-foc.mk | 2 +- .../lib/mk/spec/imx7d_sabre/syscall-foc.mk | 2 +- .../lib/mk/spec/odroid_x2/syscall-foc.mk | 2 +- .../base-foc/lib/mk/spec/panda/syscall-foc.mk | 2 +- .../base-foc/lib/mk/spec/pbxa9/syscall-foc.mk | 2 +- repos/base-foc/lib/mk/spec/rpi/syscall-foc.mk | 2 +- .../lib/mk/spec/x86_32/syscall-foc.mk | 2 +- .../lib/mk/spec/x86_64/syscall-foc.mk | 2 +- repos/base-foc/lib/mk/syscall-foc.inc | 11 ++++--- .../recipes/src/base-foc-arndale/content.mk | 6 +--- .../src/base-foc-imx6q_sabrelite/content.mk | 6 +--- .../src/base-foc-imx7d_sabre/content.mk | 6 +--- .../recipes/src/base-foc-pbxa9/content.mk | 6 +--- .../recipes/src/base-foc-pc/content.mk | 2 +- .../base-foc/recipes/src/base-foc_content.inc | 8 +++++ repos/base-foc/src/core/foc/target.mk | 4 ++- repos/base-foc/src/kernel/foc/target.mk | 5 +-- repos/base-hw/etc/specs.conf | 2 +- .../bootstrap-hw-rpi.mk} | 0 .../{rpi/core-hw.mk => arm_v6/core-hw-rpi.mk} | 0 .../bootstrap-hw-arndale.mk} | 0 .../bootstrap-hw-imx53_qsb.inc} | 6 ---- .../mk/spec/arm_v7/bootstrap-hw-imx53_qsb.mk | 3 ++ .../spec/arm_v7/bootstrap-hw-imx53_qsb_tz.mk | 3 ++ .../bootstrap-hw-imx6q_sabrelite.mk} | 0 .../bootstrap-hw-imx7d_sabre.mk} | 0 .../bootstrap-hw-nit6_solox.mk} | 0 .../bootstrap-hw-odroid_xu.mk} | 0 .../bootstrap-hw-panda.mk} | 0 .../bootstrap-hw-pbxa9.mk} | 0 .../bootstrap-hw-usb_armory.mk} | 0 .../bootstrap-hw-wand_quad.mk} | 0 .../bootstrap-hw-zynq_qemu.mk} | 0 .../core-hw.mk => arm_v7/core-hw-arndale.mk} | 0 .../lib/mk/spec/arm_v7/core-hw-imx53_qsb.inc | 17 ++++++++++ .../lib/mk/spec/arm_v7/core-hw-imx53_qsb.mk | 5 +++ .../mk/spec/arm_v7/core-hw-imx53_qsb_tz.mk | 14 ++++++++ .../core-hw-imx6q_sabrelite.mk} | 0 .../core-hw-imx7d_sabre.mk} | 0 .../core-hw-nit6_solox.mk} | 0 .../core-hw-odroid_xu.mk} | 0 .../core-hw.mk => arm_v7/core-hw-panda.mk} | 0 .../core-hw.mk => arm_v7/core-hw-pbxa9.mk} | 0 .../core-hw-usb_armory.mk} | 0 .../core-hw-wand_quad.mk} | 0 .../core-hw-zynq_qemu.mk} | 0 .../base-hw/lib/mk/spec/imx53_qsb/core-hw.mk | 32 ------------------- ...{bootstrap-hw.mk => bootstrap-hw-spike.mk} | 0 .../riscv/{core-hw.mk => core-hw-spike.mk} | 0 .../bootstrap-hw-muen.mk} | 0 .../bootstrap-hw-pc.mk} | 0 .../core-hw.mk => x86_64/core-hw-muen.mk} | 0 .../core-hw.mk => x86_64/core-hw-pc.mk} | 0 repos/base-hw/src/bootstrap/hw/target.mk | 7 ++-- repos/base-hw/src/core/hw/target.mk | 6 ++-- .../{imx6q_sabrelite => arm}/core-sel4.mk | 0 .../kernel-sel4-imx6q_sabrelite.mk} | 0 .../kernel-sel4-imx7d_sabre.mk} | 0 .../lib/mk/spec/imx7d_sabre/core-sel4.mk | 13 -------- .../{kernel-sel4.mk => kernel-sel4-pc.mk} | 0 .../{kernel-sel4.mk => kernel-sel4-pc.mk} | 0 repos/base-sel4/src/kernel/sel4/target.mk | 7 ++-- repos/base/src/core/target.inc | 2 +- tool/builddir/build.mk | 1 + tool/run/boot_dir/foc | 12 +++---- tool/run/boot_dir/hw | 8 ++--- tool/run/boot_dir/sel4 | 8 ++--- tool/run/run | 14 ++++++++ 71 files changed, 124 insertions(+), 117 deletions(-) rename repos/base-hw/lib/mk/spec/{rpi/bootstrap-hw.mk => arm_v6/bootstrap-hw-rpi.mk} (100%) rename repos/base-hw/lib/mk/spec/{rpi/core-hw.mk => arm_v6/core-hw-rpi.mk} (100%) rename repos/base-hw/lib/mk/spec/{arndale/bootstrap-hw.mk => arm_v7/bootstrap-hw-arndale.mk} (100%) rename repos/base-hw/lib/mk/spec/{imx53_qsb/bootstrap-hw.mk => arm_v7/bootstrap-hw-imx53_qsb.inc} (69%) create mode 100644 repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx53_qsb.mk create mode 100644 repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx53_qsb_tz.mk rename repos/base-hw/lib/mk/spec/{imx6q_sabrelite/bootstrap-hw.mk => arm_v7/bootstrap-hw-imx6q_sabrelite.mk} (100%) rename repos/base-hw/lib/mk/spec/{imx7d_sabre/bootstrap-hw.mk => arm_v7/bootstrap-hw-imx7d_sabre.mk} (100%) rename repos/base-hw/lib/mk/spec/{nit6_solox/bootstrap-hw.mk => arm_v7/bootstrap-hw-nit6_solox.mk} (100%) rename repos/base-hw/lib/mk/spec/{odroid_xu/bootstrap-hw.mk => arm_v7/bootstrap-hw-odroid_xu.mk} (100%) rename repos/base-hw/lib/mk/spec/{panda/bootstrap-hw.mk => arm_v7/bootstrap-hw-panda.mk} (100%) rename repos/base-hw/lib/mk/spec/{pbxa9/bootstrap-hw.mk => arm_v7/bootstrap-hw-pbxa9.mk} (100%) rename repos/base-hw/lib/mk/spec/{usb_armory/bootstrap-hw.mk => arm_v7/bootstrap-hw-usb_armory.mk} (100%) rename repos/base-hw/lib/mk/spec/{wand_quad/bootstrap-hw.mk => arm_v7/bootstrap-hw-wand_quad.mk} (100%) rename repos/base-hw/lib/mk/spec/{zynq_qemu/bootstrap-hw.mk => arm_v7/bootstrap-hw-zynq_qemu.mk} (100%) rename repos/base-hw/lib/mk/spec/{arndale/core-hw.mk => arm_v7/core-hw-arndale.mk} (100%) create mode 100644 repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx53_qsb.inc create mode 100644 repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx53_qsb.mk create mode 100644 repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx53_qsb_tz.mk rename repos/base-hw/lib/mk/spec/{imx6q_sabrelite/core-hw.mk => arm_v7/core-hw-imx6q_sabrelite.mk} (100%) rename repos/base-hw/lib/mk/spec/{imx7d_sabre/core-hw.mk => arm_v7/core-hw-imx7d_sabre.mk} (100%) rename repos/base-hw/lib/mk/spec/{nit6_solox/core-hw.mk => arm_v7/core-hw-nit6_solox.mk} (100%) rename repos/base-hw/lib/mk/spec/{odroid_xu/core-hw.mk => arm_v7/core-hw-odroid_xu.mk} (100%) rename repos/base-hw/lib/mk/spec/{panda/core-hw.mk => arm_v7/core-hw-panda.mk} (100%) rename repos/base-hw/lib/mk/spec/{pbxa9/core-hw.mk => arm_v7/core-hw-pbxa9.mk} (100%) rename repos/base-hw/lib/mk/spec/{usb_armory/core-hw.mk => arm_v7/core-hw-usb_armory.mk} (100%) rename repos/base-hw/lib/mk/spec/{wand_quad/core-hw.mk => arm_v7/core-hw-wand_quad.mk} (100%) rename repos/base-hw/lib/mk/spec/{zynq_qemu/core-hw.mk => arm_v7/core-hw-zynq_qemu.mk} (100%) delete mode 100644 repos/base-hw/lib/mk/spec/imx53_qsb/core-hw.mk rename repos/base-hw/lib/mk/spec/riscv/{bootstrap-hw.mk => bootstrap-hw-spike.mk} (100%) rename repos/base-hw/lib/mk/spec/riscv/{core-hw.mk => core-hw-spike.mk} (100%) rename repos/base-hw/lib/mk/spec/{muen/bootstrap-hw.mk => x86_64/bootstrap-hw-muen.mk} (100%) rename repos/base-hw/lib/mk/spec/{x86_pc/bootstrap-hw.mk => x86_64/bootstrap-hw-pc.mk} (100%) rename repos/base-hw/lib/mk/spec/{muen/core-hw.mk => x86_64/core-hw-muen.mk} (100%) rename repos/base-hw/lib/mk/spec/{x86_pc/core-hw.mk => x86_64/core-hw-pc.mk} (100%) rename repos/base-sel4/lib/mk/spec/{imx6q_sabrelite => arm}/core-sel4.mk (100%) rename repos/base-sel4/lib/mk/spec/{imx6q_sabrelite/kernel-sel4.mk => arm/kernel-sel4-imx6q_sabrelite.mk} (100%) rename repos/base-sel4/lib/mk/spec/{imx7d_sabre/kernel-sel4.mk => arm/kernel-sel4-imx7d_sabre.mk} (100%) delete mode 100644 repos/base-sel4/lib/mk/spec/imx7d_sabre/core-sel4.mk rename repos/base-sel4/lib/mk/spec/x86_32/{kernel-sel4.mk => kernel-sel4-pc.mk} (100%) rename repos/base-sel4/lib/mk/spec/x86_64/{kernel-sel4.mk => kernel-sel4-pc.mk} (100%) diff --git a/repos/base-foc/lib/mk/kernel-foc.inc b/repos/base-foc/lib/mk/kernel-foc.inc index 2af9322fc..07709b33f 100644 --- a/repos/base-foc/lib/mk/kernel-foc.inc +++ b/repos/base-foc/lib/mk/kernel-foc.inc @@ -1,4 +1,5 @@ -FOC_BUILD_DIR = $(shell pwd)/build +BOARD ?= unknown +FOC_BUILD_DIR = $(shell pwd)/$(BOARD)-build FOC = $(FOC_BUILD_DIR)/foc FOC_SRC := $(call select_from_ports,foc)/src/kernel/foc/kernel/fiasco @@ -41,7 +42,7 @@ PKGS := l4re-core/crtn \ drivers-frst/include drivers-frst/of drivers-frst/uart \ bootstrap -L4_BUILD_DIR := $(LIB_CACHE_DIR)/syscall-foc/build +L4_BUILD_DIR := $(LIB_CACHE_DIR)/syscall-foc/$(BOARD)-build # # Supress several warnings especially of the uclibc-minimal diff --git a/repos/base-foc/lib/mk/l4_pkg.inc b/repos/base-foc/lib/mk/l4_pkg.inc index 714e45ac1..f4e3c42ab 100644 --- a/repos/base-foc/lib/mk/l4_pkg.inc +++ b/repos/base-foc/lib/mk/l4_pkg.inc @@ -30,7 +30,7 @@ endif L4_BUILD_OPT = CROSS_COMPILE=$(CROSS_DEV_PREFIX) L4_PKG_DIR := $(call select_from_ports,foc)/src/kernel/foc/l4/pkg -PKG_TAGS = $(addsuffix .tag,$(PKGS)) +PKG_TAGS = $(addsuffix .tag,$(addsuffix .$(BOARD),$(PKGS))) BUILD_OUTPUT_FILTER = 2>&1 | sed "s~^~ [$*] ~" @@ -49,7 +49,7 @@ endif # .NOTPARALLEL: $(PKG_TAGS) -%.tag: +%.$(BOARD).tag: $(VERBOSE_MK) set -o pipefail; \ $(MAKE) $(VERBOSE_DIR) O=$(L4_BUILD_DIR) -C $(L4_PKG_DIR)/$* \ "$(L4_BUILD_OPT)" WARNINGS=$(WARNINGS) $(BUILD_OUTPUT_FILTER) diff --git a/repos/base-foc/lib/mk/spec/arndale/syscall-foc.mk b/repos/base-foc/lib/mk/spec/arndale/syscall-foc.mk index d06e0f479..11b2a8544 100644 --- a/repos/base-foc/lib/mk/spec/arndale/syscall-foc.mk +++ b/repos/base-foc/lib/mk/spec/arndale/syscall-foc.mk @@ -1,5 +1,5 @@ L4_CONFIG := $(call select_from_repositories,config/arndale.user) -L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/build/bin/arm_armv7a +L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/arndale-build/bin/arm_armv7a include $(REP_DIR)/lib/mk/spec/arm/syscall-foc.inc diff --git a/repos/base-foc/lib/mk/spec/imx6q_sabrelite/syscall-foc.mk b/repos/base-foc/lib/mk/spec/imx6q_sabrelite/syscall-foc.mk index 48f1417aa..f54d45567 100644 --- a/repos/base-foc/lib/mk/spec/imx6q_sabrelite/syscall-foc.mk +++ b/repos/base-foc/lib/mk/spec/imx6q_sabrelite/syscall-foc.mk @@ -1,5 +1,5 @@ L4_CONFIG := $(call select_from_repositories,config/imx6q_sabrelite.user) -L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/build/bin/arm_armv7a +L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/imx6q_sabrelite-build/bin/arm_armv7a include $(REP_DIR)/lib/mk/spec/arm/syscall-foc.inc diff --git a/repos/base-foc/lib/mk/spec/imx7d_sabre/syscall-foc.mk b/repos/base-foc/lib/mk/spec/imx7d_sabre/syscall-foc.mk index 888c45d6b..35cc89eb4 100644 --- a/repos/base-foc/lib/mk/spec/imx7d_sabre/syscall-foc.mk +++ b/repos/base-foc/lib/mk/spec/imx7d_sabre/syscall-foc.mk @@ -1,5 +1,5 @@ L4_CONFIG := $(call select_from_repositories,config/imx7.user) -L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/build/bin/arm_armv7a +L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/imx7d_sabre-build/bin/arm_armv7a include $(REP_DIR)/lib/mk/spec/arm/syscall-foc.inc diff --git a/repos/base-foc/lib/mk/spec/odroid_x2/syscall-foc.mk b/repos/base-foc/lib/mk/spec/odroid_x2/syscall-foc.mk index 37f4e6bf7..2631b4122 100644 --- a/repos/base-foc/lib/mk/spec/odroid_x2/syscall-foc.mk +++ b/repos/base-foc/lib/mk/spec/odroid_x2/syscall-foc.mk @@ -1,5 +1,5 @@ L4_CONFIG := $(call select_from_repositories,config/odroid_x2.user) -L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/build/bin/arm_armv7a +L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/odroid_x2-build/bin/arm_armv7a include $(REP_DIR)/lib/mk/spec/arm/syscall-foc.inc diff --git a/repos/base-foc/lib/mk/spec/panda/syscall-foc.mk b/repos/base-foc/lib/mk/spec/panda/syscall-foc.mk index 0cd78154e..faa7ca3d5 100644 --- a/repos/base-foc/lib/mk/spec/panda/syscall-foc.mk +++ b/repos/base-foc/lib/mk/spec/panda/syscall-foc.mk @@ -1,5 +1,5 @@ L4_CONFIG := $(call select_from_repositories,config/panda.user) -L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/build/bin/arm_armv7a +L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/panda-build/bin/arm_armv7a include $(REP_DIR)/lib/mk/spec/arm/syscall-foc.inc diff --git a/repos/base-foc/lib/mk/spec/pbxa9/syscall-foc.mk b/repos/base-foc/lib/mk/spec/pbxa9/syscall-foc.mk index 8eb67d6ec..7245f957f 100644 --- a/repos/base-foc/lib/mk/spec/pbxa9/syscall-foc.mk +++ b/repos/base-foc/lib/mk/spec/pbxa9/syscall-foc.mk @@ -1,5 +1,5 @@ L4_CONFIG := $(call select_from_repositories,config/pbxa9.user) -L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/build/bin/arm_armv7a +L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/pbxa9-build/bin/arm_armv7a include $(REP_DIR)/lib/mk/spec/arm/syscall-foc.inc diff --git a/repos/base-foc/lib/mk/spec/rpi/syscall-foc.mk b/repos/base-foc/lib/mk/spec/rpi/syscall-foc.mk index 06166f593..de6cb14e0 100644 --- a/repos/base-foc/lib/mk/spec/rpi/syscall-foc.mk +++ b/repos/base-foc/lib/mk/spec/rpi/syscall-foc.mk @@ -1,5 +1,5 @@ L4_CONFIG := $(call select_from_repositories,config/rpi.user) -L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/build/bin/arm_armv6 +L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/rpi-build/bin/arm_armv6 include $(REP_DIR)/lib/mk/spec/arm/syscall-foc.inc diff --git a/repos/base-foc/lib/mk/spec/x86_32/syscall-foc.mk b/repos/base-foc/lib/mk/spec/x86_32/syscall-foc.mk index 464d10c7b..74642c289 100644 --- a/repos/base-foc/lib/mk/spec/x86_32/syscall-foc.mk +++ b/repos/base-foc/lib/mk/spec/x86_32/syscall-foc.mk @@ -4,7 +4,7 @@ L4_INC_TARGETS := x86/l4/sys x86/l4f/l4/sys x86/l4/vcpu CC_OPT += -Iinclude/x86 -L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/build/bin/x86_586 +L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/pc-build/bin/x86_586 include $(REP_DIR)/lib/mk/spec/x86/syscall-foc.inc diff --git a/repos/base-foc/lib/mk/spec/x86_64/syscall-foc.mk b/repos/base-foc/lib/mk/spec/x86_64/syscall-foc.mk index b588f3dee..fb2d76a9e 100644 --- a/repos/base-foc/lib/mk/spec/x86_64/syscall-foc.mk +++ b/repos/base-foc/lib/mk/spec/x86_64/syscall-foc.mk @@ -4,6 +4,6 @@ L4_INC_TARGETS := amd64/l4/sys amd64/l4f/l4/sys amd64/l4/vcpu CC_OPT += -Iinclude/amd64 -L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/build/bin/amd64_K8 +L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/pc-build/bin/amd64_K8 include $(REP_DIR)/lib/mk/spec/x86/syscall-foc.inc diff --git a/repos/base-foc/lib/mk/syscall-foc.inc b/repos/base-foc/lib/mk/syscall-foc.inc index c7c3a0e0f..c4df2a1d9 100644 --- a/repos/base-foc/lib/mk/syscall-foc.inc +++ b/repos/base-foc/lib/mk/syscall-foc.inc @@ -6,8 +6,9 @@ # userland (L4re) that comes with Fiasco.OC. # +BOARD ?= unknown L4_SRC_DIR := $(call select_from_ports,foc)/src/kernel/foc -L4_BUILD_DIR := $(shell pwd)/build +L4_BUILD_DIR := $(shell pwd)/$(BOARD)-build # # Create mirror for architecture-specific L4sys header files @@ -67,14 +68,14 @@ $(SRC_S) $(SRC_C) : $(PKG_TAGS) # included in the depot's base-foc binary archives. # ifneq ($(INSTALL_DIR),) -all: $(INSTALL_DIR)/sigma0-foc $(INSTALL_DIR)/bootstrap-foc +all: $(INSTALL_DIR)/sigma0-foc-$(BOARD) $(INSTALL_DIR)/bootstrap-foc-$(BOARD) -$(INSTALL_DIR)/sigma0-foc $(INSTALL_DIR)/bootstrap-foc: $(PKG_TAGS) +$(INSTALL_DIR)/sigma0-foc-$(BOARD) $(INSTALL_DIR)/bootstrap-foc-$(BOARD): $(PKG_TAGS) -$(INSTALL_DIR)/sigma0-foc: +$(INSTALL_DIR)/sigma0-foc-$(BOARD): $(VERBOSE)ln -sf $(L4_BIN_DIR)/l4f/sigma0 $@ -$(INSTALL_DIR)/bootstrap-foc: +$(INSTALL_DIR)/bootstrap-foc-$(BOARD): $(VERBOSE)ln -sf $(L4_BIN_DIR)/bootstrap $@ endif diff --git a/repos/base-foc/recipes/src/base-foc-arndale/content.mk b/repos/base-foc/recipes/src/base-foc-arndale/content.mk index aa745520b..b64eed871 100644 --- a/repos/base-foc/recipes/src/base-foc-arndale/content.mk +++ b/repos/base-foc/recipes/src/base-foc-arndale/content.mk @@ -1,7 +1,3 @@ -RECIPE_DIR := $(REP_DIR)/recipes/src/base-foc-arndale +BOARD := arndale include $(GENODE_DIR)/repos/base-foc/recipes/src/base-foc_content.inc - -content: enable_board_spec -enable_board_spec: etc/specs.conf - echo "SPECS += arndale" >> etc/specs.conf diff --git a/repos/base-foc/recipes/src/base-foc-imx6q_sabrelite/content.mk b/repos/base-foc/recipes/src/base-foc-imx6q_sabrelite/content.mk index 56b834fca..ef40dec12 100644 --- a/repos/base-foc/recipes/src/base-foc-imx6q_sabrelite/content.mk +++ b/repos/base-foc/recipes/src/base-foc-imx6q_sabrelite/content.mk @@ -1,7 +1,3 @@ -RECIPE_DIR := $(REP_DIR)/recipes/src/base-foc-imx6q_sabrelite +BOARD := imx6q_sabrelite include $(GENODE_DIR)/repos/base-foc/recipes/src/base-foc_content.inc - -content: enable_board_spec -enable_board_spec: etc/specs.conf - echo "SPECS += imx6q_sabrelite" >> etc/specs.conf diff --git a/repos/base-foc/recipes/src/base-foc-imx7d_sabre/content.mk b/repos/base-foc/recipes/src/base-foc-imx7d_sabre/content.mk index 39a3fbac1..c746fc255 100644 --- a/repos/base-foc/recipes/src/base-foc-imx7d_sabre/content.mk +++ b/repos/base-foc/recipes/src/base-foc-imx7d_sabre/content.mk @@ -1,7 +1,3 @@ -RECIPE_DIR := $(REP_DIR)/recipes/src/base-foc-imx7d_sabre +BOARD := imx7d_sabre include $(GENODE_DIR)/repos/base-foc/recipes/src/base-foc_content.inc - -content: enable_board_spec -enable_board_spec: etc/specs.conf - echo "SPECS += imx7d_sabre" >> etc/specs.conf diff --git a/repos/base-foc/recipes/src/base-foc-pbxa9/content.mk b/repos/base-foc/recipes/src/base-foc-pbxa9/content.mk index e63b0c0a7..3ccda6f68 100644 --- a/repos/base-foc/recipes/src/base-foc-pbxa9/content.mk +++ b/repos/base-foc/recipes/src/base-foc-pbxa9/content.mk @@ -1,7 +1,3 @@ -RECIPE_DIR := $(REP_DIR)/recipes/src/base-foc-pbxa9 +BOARD := pbxa9 include $(GENODE_DIR)/repos/base-foc/recipes/src/base-foc_content.inc - -content: enable_board_spec -enable_board_spec: etc/specs.conf - echo "SPECS += pbxa9" >> etc/specs.conf diff --git a/repos/base-foc/recipes/src/base-foc-pc/content.mk b/repos/base-foc/recipes/src/base-foc-pc/content.mk index 645d61d72..71cb4d875 100644 --- a/repos/base-foc/recipes/src/base-foc-pc/content.mk +++ b/repos/base-foc/recipes/src/base-foc-pc/content.mk @@ -1,3 +1,3 @@ -RECIPE_DIR := $(REP_DIR)/recipes/src/base-foc-pc +BOARD := pc include $(GENODE_DIR)/repos/base-foc/recipes/src/base-foc_content.inc diff --git a/repos/base-foc/recipes/src/base-foc_content.inc b/repos/base-foc/recipes/src/base-foc_content.inc index c1b67097d..239c45a8a 100644 --- a/repos/base-foc/recipes/src/base-foc_content.inc +++ b/repos/base-foc/recipes/src/base-foc_content.inc @@ -1,5 +1,6 @@ include $(GENODE_DIR)/repos/base/recipes/src/base_content.inc +RECIPE_DIR := $(REP_DIR)/recipes/src/base-foc-$(BOARD) FROM_BASE_FOC := include/foc include/foc_native_cpu content: $(FROM_BASE_FOC) @@ -30,4 +31,11 @@ content: done; sed -i "s/ld-foc/ld/" src/lib/ld/foc/target.mk sed -i "s/foc_timer_drv/timer/" src/timer/foc/target.mk + sed -i "s/BOARD.*unknown/BOARD = $(BOARD)/" src/core/foc/target.mk + sed -i "s/BOARD.*unknown/BOARD = $(BOARD)/" src/kernel/foc/target.mk + sed -i "s/BOARD.*unknown/BOARD = $(BOARD)/" lib/mk/syscall-foc.inc + sed -i "s/BOARD.*unknown/BOARD = $(BOARD)/" lib/mk/kernel-foc.inc +content: enable_board_spec +enable_board_spec: etc/specs.conf + echo "SPECS += $(BOARD)" >> etc/specs.conf diff --git a/repos/base-foc/src/core/foc/target.mk b/repos/base-foc/src/core/foc/target.mk index 2caea549c..4279dc26d 100644 --- a/repos/base-foc/src/core/foc/target.mk +++ b/repos/base-foc/src/core/foc/target.mk @@ -1,4 +1,6 @@ +BOARD ?= unknown +TARGET := foc-$(BOARD) LIBS := core-foc -CORE_OBJ := core-foc.o +CORE_OBJ := core-foc-$(BOARD).o include $(BASE_DIR)/src/core/target.inc diff --git a/repos/base-foc/src/kernel/foc/target.mk b/repos/base-foc/src/kernel/foc/target.mk index e244ea76d..097e44ff0 100644 --- a/repos/base-foc/src/kernel/foc/target.mk +++ b/repos/base-foc/src/kernel/foc/target.mk @@ -1,7 +1,8 @@ +BOARD ?= unknown TARGET = kernel-foc LIBS = kernel-foc -$(TARGET): $(INSTALL_DIR)/foc +$(TARGET): $(INSTALL_DIR)/foc-$(BOARD) -$(INSTALL_DIR)/foc: $(LIB_CACHE_DIR)/kernel-foc/build/fiasco +$(INSTALL_DIR)/foc-$(BOARD): $(LIB_CACHE_DIR)/kernel-foc/$(BOARD)-build/fiasco $(VERBOSE)ln -sf $< $@ diff --git a/repos/base-hw/etc/specs.conf b/repos/base-hw/etc/specs.conf index c28739a60..79df93aec 100644 --- a/repos/base-hw/etc/specs.conf +++ b/repos/base-hw/etc/specs.conf @@ -4,7 +4,7 @@ ifeq ($(filter-out $(SPECS),x86_64),) SPECS += pci ps2 vesa framebuffer ifneq ($(filter-out $(SPECS),muen),) -SPECS += acpi x86_pc +SPECS += acpi endif endif diff --git a/repos/base-hw/lib/mk/spec/rpi/bootstrap-hw.mk b/repos/base-hw/lib/mk/spec/arm_v6/bootstrap-hw-rpi.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/rpi/bootstrap-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v6/bootstrap-hw-rpi.mk diff --git a/repos/base-hw/lib/mk/spec/rpi/core-hw.mk b/repos/base-hw/lib/mk/spec/arm_v6/core-hw-rpi.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/rpi/core-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v6/core-hw-rpi.mk diff --git a/repos/base-hw/lib/mk/spec/arndale/bootstrap-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-arndale.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/arndale/bootstrap-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-arndale.mk diff --git a/repos/base-hw/lib/mk/spec/imx53_qsb/bootstrap-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx53_qsb.inc similarity index 69% rename from repos/base-hw/lib/mk/spec/imx53_qsb/bootstrap-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx53_qsb.inc index 5b8325795..bb4e99d52 100644 --- a/repos/base-hw/lib/mk/spec/imx53_qsb/bootstrap-hw.mk +++ b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx53_qsb.inc @@ -8,10 +8,4 @@ SRC_CC += bootstrap/spec/arm/imx_tzic.cc SRC_CC += bootstrap/spec/arm/arm_v7_cpu.cc SRC_CC += hw/spec/32bit/memory_map.cc -ifneq ($(filter-out $(SPECS),trustzone),) -SRC_CC += bootstrap/spec/imx53_qsb/platform.cc -else -SRC_CC += bootstrap/spec/imx53_qsb/platform_trustzone.cc -endif - include $(BASE_DIR)/../base-hw/lib/mk/bootstrap-hw.inc diff --git a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx53_qsb.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx53_qsb.mk new file mode 100644 index 000000000..7ee17001e --- /dev/null +++ b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx53_qsb.mk @@ -0,0 +1,3 @@ +SRC_CC += bootstrap/spec/imx53_qsb/platform.cc + +include $(BASE_DIR)/../base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx53_qsb.inc diff --git a/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx53_qsb_tz.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx53_qsb_tz.mk new file mode 100644 index 000000000..60f53ed62 --- /dev/null +++ b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx53_qsb_tz.mk @@ -0,0 +1,3 @@ +SRC_CC += bootstrap/spec/imx53_qsb/platform_trustzone.cc + +include $(BASE_DIR)/../base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx53_qsb.inc diff --git a/repos/base-hw/lib/mk/spec/imx6q_sabrelite/bootstrap-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx6q_sabrelite.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/imx6q_sabrelite/bootstrap-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx6q_sabrelite.mk diff --git a/repos/base-hw/lib/mk/spec/imx7d_sabre/bootstrap-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx7d_sabre.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/imx7d_sabre/bootstrap-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-imx7d_sabre.mk diff --git a/repos/base-hw/lib/mk/spec/nit6_solox/bootstrap-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-nit6_solox.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/nit6_solox/bootstrap-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-nit6_solox.mk diff --git a/repos/base-hw/lib/mk/spec/odroid_xu/bootstrap-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-odroid_xu.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/odroid_xu/bootstrap-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-odroid_xu.mk diff --git a/repos/base-hw/lib/mk/spec/panda/bootstrap-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-panda.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/panda/bootstrap-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-panda.mk diff --git a/repos/base-hw/lib/mk/spec/pbxa9/bootstrap-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-pbxa9.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/pbxa9/bootstrap-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-pbxa9.mk diff --git a/repos/base-hw/lib/mk/spec/usb_armory/bootstrap-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-usb_armory.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/usb_armory/bootstrap-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-usb_armory.mk diff --git a/repos/base-hw/lib/mk/spec/wand_quad/bootstrap-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-wand_quad.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/wand_quad/bootstrap-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-wand_quad.mk diff --git a/repos/base-hw/lib/mk/spec/zynq_qemu/bootstrap-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-zynq_qemu.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/zynq_qemu/bootstrap-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/bootstrap-hw-zynq_qemu.mk diff --git a/repos/base-hw/lib/mk/spec/arndale/core-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-arndale.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/arndale/core-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/core-hw-arndale.mk diff --git a/repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx53_qsb.inc b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx53_qsb.inc new file mode 100644 index 000000000..b0d8ac556 --- /dev/null +++ b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx53_qsb.inc @@ -0,0 +1,17 @@ +# +# \brief Build config for Genodes core process +# \author Stefan Kalkowski +# \author Martin Stein +# \date 2012-10-24 +# + +# add include paths +INC_DIR += $(REP_DIR)/src/core/spec/imx53_qsb +INC_DIR += $(REP_DIR)/src/core/spec/imx53 + +SRC_CC += spec/imx53/pic.cc +SRC_CC += spec/imx53/timer.cc + +# include less specific configuration +include $(REP_DIR)/lib/mk/spec/cortex_a8/core-hw.inc + diff --git a/repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx53_qsb.mk b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx53_qsb.mk new file mode 100644 index 000000000..d6d12bb21 --- /dev/null +++ b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx53_qsb.mk @@ -0,0 +1,5 @@ +SRC_CC += kernel/vm_thread_off.cc +SRC_CC += platform_services.cc + +# include less specific configuration +include $(REP_DIR)/lib/mk/spec/arm_v7/core-hw-imx53_qsb.inc diff --git a/repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx53_qsb_tz.mk b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx53_qsb_tz.mk new file mode 100644 index 000000000..7dcfeb7a0 --- /dev/null +++ b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx53_qsb_tz.mk @@ -0,0 +1,14 @@ +INC_DIR += $(REP_DIR)/src/core/spec/arm_v7/trustzone +INC_DIR += $(REP_DIR)/src/core/spec/imx53/trustzone + +SRC_CC += spec/imx53/trustzone/platform_services.cc +SRC_CC += kernel/vm_thread_on.cc +SRC_CC += spec/arm_v7/trustzone/kernel/vm.cc +SRC_CC += spec/arm_v7/vm_session_component.cc +SRC_CC += spec/arm_v7/trustzone/vm_session_component.cc + +SRC_S += spec/arm_v7/trustzone/exception_vector.s + +# include less specific configuration +include $(REP_DIR)/lib/mk/spec/arm_v7/core-hw-imx53_qsb.inc + diff --git a/repos/base-hw/lib/mk/spec/imx6q_sabrelite/core-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx6q_sabrelite.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/imx6q_sabrelite/core-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx6q_sabrelite.mk diff --git a/repos/base-hw/lib/mk/spec/imx7d_sabre/core-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx7d_sabre.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/imx7d_sabre/core-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/core-hw-imx7d_sabre.mk diff --git a/repos/base-hw/lib/mk/spec/nit6_solox/core-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-nit6_solox.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/nit6_solox/core-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/core-hw-nit6_solox.mk diff --git a/repos/base-hw/lib/mk/spec/odroid_xu/core-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-odroid_xu.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/odroid_xu/core-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/core-hw-odroid_xu.mk diff --git a/repos/base-hw/lib/mk/spec/panda/core-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-panda.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/panda/core-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/core-hw-panda.mk diff --git a/repos/base-hw/lib/mk/spec/pbxa9/core-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-pbxa9.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/pbxa9/core-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/core-hw-pbxa9.mk diff --git a/repos/base-hw/lib/mk/spec/usb_armory/core-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-usb_armory.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/usb_armory/core-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/core-hw-usb_armory.mk diff --git a/repos/base-hw/lib/mk/spec/wand_quad/core-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-wand_quad.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/wand_quad/core-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/core-hw-wand_quad.mk diff --git a/repos/base-hw/lib/mk/spec/zynq_qemu/core-hw.mk b/repos/base-hw/lib/mk/spec/arm_v7/core-hw-zynq_qemu.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/zynq_qemu/core-hw.mk rename to repos/base-hw/lib/mk/spec/arm_v7/core-hw-zynq_qemu.mk diff --git a/repos/base-hw/lib/mk/spec/imx53_qsb/core-hw.mk b/repos/base-hw/lib/mk/spec/imx53_qsb/core-hw.mk deleted file mode 100644 index d3f18351b..000000000 --- a/repos/base-hw/lib/mk/spec/imx53_qsb/core-hw.mk +++ /dev/null @@ -1,32 +0,0 @@ -# -# \brief Build config for Genodes core process -# \author Stefan Kalkowski -# \author Martin Stein -# \date 2012-10-24 -# - -# add include paths -INC_DIR += $(REP_DIR)/src/core/spec/imx53_qsb -INC_DIR += $(REP_DIR)/src/core/spec/imx53 - -SRC_CC += spec/imx53/pic.cc -SRC_CC += spec/imx53/timer.cc - -ifneq ($(filter-out $(SPECS),trustzone),) -SRC_CC += kernel/vm_thread_off.cc -SRC_CC += platform_services.cc -else -INC_DIR += $(REP_DIR)/src/core/spec/arm_v7/trustzone -INC_DIR += $(REP_DIR)/src/core/spec/imx53/trustzone - -SRC_CC += spec/imx53/trustzone/platform_services.cc -SRC_CC += kernel/vm_thread_on.cc -SRC_CC += spec/arm_v7/trustzone/kernel/vm.cc -SRC_CC += spec/arm_v7/vm_session_component.cc -SRC_CC += spec/arm_v7/trustzone/vm_session_component.cc - -SRC_S += spec/arm_v7/trustzone/exception_vector.s -endif - -# include less specific configuration -include $(REP_DIR)/lib/mk/spec/cortex_a8/core-hw.inc diff --git a/repos/base-hw/lib/mk/spec/riscv/bootstrap-hw.mk b/repos/base-hw/lib/mk/spec/riscv/bootstrap-hw-spike.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/riscv/bootstrap-hw.mk rename to repos/base-hw/lib/mk/spec/riscv/bootstrap-hw-spike.mk diff --git a/repos/base-hw/lib/mk/spec/riscv/core-hw.mk b/repos/base-hw/lib/mk/spec/riscv/core-hw-spike.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/riscv/core-hw.mk rename to repos/base-hw/lib/mk/spec/riscv/core-hw-spike.mk diff --git a/repos/base-hw/lib/mk/spec/muen/bootstrap-hw.mk b/repos/base-hw/lib/mk/spec/x86_64/bootstrap-hw-muen.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/muen/bootstrap-hw.mk rename to repos/base-hw/lib/mk/spec/x86_64/bootstrap-hw-muen.mk diff --git a/repos/base-hw/lib/mk/spec/x86_pc/bootstrap-hw.mk b/repos/base-hw/lib/mk/spec/x86_64/bootstrap-hw-pc.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/x86_pc/bootstrap-hw.mk rename to repos/base-hw/lib/mk/spec/x86_64/bootstrap-hw-pc.mk diff --git a/repos/base-hw/lib/mk/spec/muen/core-hw.mk b/repos/base-hw/lib/mk/spec/x86_64/core-hw-muen.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/muen/core-hw.mk rename to repos/base-hw/lib/mk/spec/x86_64/core-hw-muen.mk diff --git a/repos/base-hw/lib/mk/spec/x86_pc/core-hw.mk b/repos/base-hw/lib/mk/spec/x86_64/core-hw-pc.mk similarity index 100% rename from repos/base-hw/lib/mk/spec/x86_pc/core-hw.mk rename to repos/base-hw/lib/mk/spec/x86_64/core-hw-pc.mk diff --git a/repos/base-hw/src/bootstrap/hw/target.mk b/repos/base-hw/src/bootstrap/hw/target.mk index 6202efab2..e8dc5bc64 100644 --- a/repos/base-hw/src/bootstrap/hw/target.mk +++ b/repos/base-hw/src/bootstrap/hw/target.mk @@ -1,6 +1,7 @@ -TARGET = bootstrap -LIBS = bootstrap-hw -BOOTSTRAP_OBJ = bootstrap-hw.o +BOARD ?= unknown +TARGET = bootstrap_hw_$(BOARD) +LIBS = bootstrap-hw-$(BOARD) +BOOTSTRAP_OBJ = bootstrap-hw-$(BOARD).o $(TARGET): $(VERBOSE)true diff --git a/repos/base-hw/src/core/hw/target.mk b/repos/base-hw/src/core/hw/target.mk index 3226e78f2..1b06d322a 100644 --- a/repos/base-hw/src/core/hw/target.mk +++ b/repos/base-hw/src/core/hw/target.mk @@ -1,4 +1,6 @@ -LIBS := core-hw -CORE_OBJ := core-hw.o +BOARD ?= unknown +TARGET := core_hw_$(BOARD) +LIBS := core-hw-$(BOARD) +CORE_OBJ := core-hw-$(BOARD).o include $(BASE_DIR)/src/core/target.inc diff --git a/repos/base-sel4/lib/mk/spec/imx6q_sabrelite/core-sel4.mk b/repos/base-sel4/lib/mk/spec/arm/core-sel4.mk similarity index 100% rename from repos/base-sel4/lib/mk/spec/imx6q_sabrelite/core-sel4.mk rename to repos/base-sel4/lib/mk/spec/arm/core-sel4.mk diff --git a/repos/base-sel4/lib/mk/spec/imx6q_sabrelite/kernel-sel4.mk b/repos/base-sel4/lib/mk/spec/arm/kernel-sel4-imx6q_sabrelite.mk similarity index 100% rename from repos/base-sel4/lib/mk/spec/imx6q_sabrelite/kernel-sel4.mk rename to repos/base-sel4/lib/mk/spec/arm/kernel-sel4-imx6q_sabrelite.mk diff --git a/repos/base-sel4/lib/mk/spec/imx7d_sabre/kernel-sel4.mk b/repos/base-sel4/lib/mk/spec/arm/kernel-sel4-imx7d_sabre.mk similarity index 100% rename from repos/base-sel4/lib/mk/spec/imx7d_sabre/kernel-sel4.mk rename to repos/base-sel4/lib/mk/spec/arm/kernel-sel4-imx7d_sabre.mk diff --git a/repos/base-sel4/lib/mk/spec/imx7d_sabre/core-sel4.mk b/repos/base-sel4/lib/mk/spec/imx7d_sabre/core-sel4.mk deleted file mode 100644 index b3d144087..000000000 --- a/repos/base-sel4/lib/mk/spec/imx7d_sabre/core-sel4.mk +++ /dev/null @@ -1,13 +0,0 @@ -GEN_SRC_CC = platform_services.cc - -REP_SRC_CC = \ - spec/arm/boot_info.cc \ - spec/arm/irq.cc \ - spec/arm/platform.cc \ - spec/arm/platform_thread.cc \ - spec/arm/thread.cc \ - spec/arm/vm_space.cc - -INC_DIR += $(REP_DIR)/src/core/spec/arm - -include $(REP_DIR)/lib/mk/core-sel4.inc diff --git a/repos/base-sel4/lib/mk/spec/x86_32/kernel-sel4.mk b/repos/base-sel4/lib/mk/spec/x86_32/kernel-sel4-pc.mk similarity index 100% rename from repos/base-sel4/lib/mk/spec/x86_32/kernel-sel4.mk rename to repos/base-sel4/lib/mk/spec/x86_32/kernel-sel4-pc.mk diff --git a/repos/base-sel4/lib/mk/spec/x86_64/kernel-sel4.mk b/repos/base-sel4/lib/mk/spec/x86_64/kernel-sel4-pc.mk similarity index 100% rename from repos/base-sel4/lib/mk/spec/x86_64/kernel-sel4.mk rename to repos/base-sel4/lib/mk/spec/x86_64/kernel-sel4-pc.mk diff --git a/repos/base-sel4/src/kernel/sel4/target.mk b/repos/base-sel4/src/kernel/sel4/target.mk index d2f004df2..5bb940632 100644 --- a/repos/base-sel4/src/kernel/sel4/target.mk +++ b/repos/base-sel4/src/kernel/sel4/target.mk @@ -1,5 +1,6 @@ -TARGET = sel4 -LIBS = kernel-sel4 +BOARD ?= unknown +TARGET = sel4-$(BOARD) +LIBS = kernel-sel4-$(BOARD) $(INSTALL_DIR)/$(TARGET): - $(VERBOSE)ln -sf $(LIB_CACHE_DIR)/kernel-sel4/kernel.elf.strip $@ + $(VERBOSE)ln -sf $(LIB_CACHE_DIR)/kernel-sel4-$(BOARD)/kernel.elf.strip $@ diff --git a/repos/base/src/core/target.inc b/repos/base/src/core/target.inc index 167aaa22a..98a25ffcd 100644 --- a/repos/base/src/core/target.inc +++ b/repos/base/src/core/target.inc @@ -1,4 +1,4 @@ -TARGET = core +TARGET ?= core CORE_OBJ ?= core.o $(TARGET): diff --git a/tool/builddir/build.mk b/tool/builddir/build.mk index c5fc1c1bc..191f2803b 100644 --- a/tool/builddir/build.mk +++ b/tool/builddir/build.mk @@ -324,6 +324,7 @@ run/%: $(call select_from_repositories,run/%.run) $(RUN_ENV) $(VERBOSE)$(GENODE_DIR)/tool/run/run --genode-dir $(GENODE_DIR) \ --name $* \ --specs "$(SPECS)" \ + --board "$(BOARD)" \ --repositories "$(REPOSITORIES)" \ --cross-dev-prefix "$(CROSS_DEV_PREFIX)" \ --qemu-args "$(QEMU_OPT)" \ diff --git a/tool/run/boot_dir/foc b/tool/run/boot_dir/foc index ba72beee3..9c21655d3 100644 --- a/tool/run/boot_dir/foc +++ b/tool/run/boot_dir/foc @@ -1,5 +1,5 @@ proc binary_name_ld_lib_so { } { return "ld-foc.lib.so" } -proc binary_name_core_o { } { return "core-foc.o" } +proc binary_name_core_o { } { return "core-foc-[board].o" } proc binary_name_timer { } { return "foc_timer_drv" } proc kernel_files { } { return { foc sigma0-foc bootstrap-foc } } @@ -39,10 +39,10 @@ proc reset_target { {spawn_id_arg -1} } { } -proc l4_build_dir { } { return "[pwd]/var/libcache/syscall-foc/build" } +proc l4_build_dir { } { return "[pwd]/var/libcache/syscall-foc/[board]-build" } -proc kernel_binary { } { return "[pwd]/bin/foc" } +proc kernel_binary { } { return "[pwd]/bin/foc-[board]" } proc l4_bin_dir { } { @@ -72,9 +72,9 @@ proc run_boot_dir_x86 {binaries} { if {[llength $targets]} { build $targets } if {$kernel_arg != ""} { - file copy -force [pwd]/bin/foc [run_dir]/genode/foc - file copy -force [pwd]/bin/sigma0-foc [run_dir]/genode/sigma0-foc - file copy -force [pwd]/bin/bootstrap-foc [run_dir]/genode/bootstrap-foc + file copy -force [pwd]/bin/foc-[board] [run_dir]/genode/foc + file copy -force [pwd]/bin/sigma0-foc-[board] [run_dir]/genode/sigma0-foc + file copy -force [pwd]/bin/bootstrap-foc-[board] [run_dir]/genode/bootstrap-foc } build_core_image $binaries diff --git a/tool/run/boot_dir/hw b/tool/run/boot_dir/hw index 31b22ca42..3fa5aaa2b 100644 --- a/tool/run/boot_dir/hw +++ b/tool/run/boot_dir/hw @@ -61,8 +61,8 @@ proc run_boot_dir {binaries} { if {[llength $build_args]} { build $build_args } if {$ld_arg != ""} { file copy -force bin/ld-hw.lib.so [run_dir]/genode/ld.lib.so } - if {$core_arg != ""} { file copy -force bin/core-hw.o [run_dir]/genode/core-hw.o } - if {$bootstrap_arg != ""} { file copy -force bin/bootstrap-hw.o [run_dir]/genode/bootstrap-hw.o } + if {$core_arg != ""} { file copy -force bin/core-hw-[board].o [run_dir]/genode/core-hw.o } + if {$bootstrap_arg != ""} { file copy -force bin/bootstrap-hw-[board].o [run_dir]/genode/bootstrap-hw.o } # # Copy specified modules to the run directory, excluding core. @@ -77,8 +77,8 @@ proc run_boot_dir {binaries} { set bootstrap_obj bootstrap-hw.o # create core and bootstrap binary without modules for debugging - if {[file exists debug/$core_obj]} { - build_core debug/$core_obj {} [run_dir].core [core_link_address] + if {[file exists debug/core-hw-[board].o]} { + build_core debug/core-hw-[board].o {} [run_dir].core [core_link_address] build_core [run_dir]/genode/$bootstrap_obj {} [run_dir].bootstrap [bootstrap_link_address] } diff --git a/tool/run/boot_dir/sel4 b/tool/run/boot_dir/sel4 index 249026042..14f2dbafc 100644 --- a/tool/run/boot_dir/sel4 +++ b/tool/run/boot_dir/sel4 @@ -15,10 +15,10 @@ proc run_boot_string { } { return "\n\rBooting all finished, dropped to user s proc core_link_address { } { return "0x02000000" } proc sel4_elfloader_dir { } { - if {![file exists [pwd]/var/libcache/kernel-sel4/elfloader]} { - build LIB=kernel-sel4 + if {![file exists [pwd]/var/libcache/kernel-sel4-[board]/elfloader]} { + build LIB=kernel-sel4-[board] } - return "[pwd]/var/libcache/kernel-sel4/elfloader" + return "[pwd]/var/libcache/kernel-sel4-[board]/elfloader" } ## @@ -39,7 +39,7 @@ proc run_boot_dir {binaries} { if {[llength $targets]} { build $targets } if {$kernel_arg != ""} { - file copy -force [pwd]/bin/sel4 [run_dir]/genode/sel4 + file copy -force [pwd]/bin/sel4-[board] [run_dir]/genode/sel4 } build_core_image $binaries diff --git a/tool/run/run b/tool/run/run index 1e3d6fda5..947930c21 100755 --- a/tool/run/run +++ b/tool/run/run @@ -499,6 +499,7 @@ set run_name [get_cmd_arg --name "noname"] set genode_dir [get_cmd_arg --genode-dir ""] set cross_dev_prefix [get_cmd_arg --cross-dev-prefix ""] set specs [get_cmd_arg --specs ""] +set board_var [get_cmd_arg --board ""] set repositories [get_cmd_arg --repositories ""] @@ -815,6 +816,19 @@ proc terminal { } { } +## +# Return the board to build for +# +proc board { } { + global board_var + if {$board_var eq ""} { + puts "Unknown platform no BOARD variable set" + exit 0 + } + return $board_var +} + + ## # Determine GDB executable installed at the host #