From e337b844e558b8c50eb06a92271e7bbfc079b020 Mon Sep 17 00:00:00 2001 From: Sebastian Sumpf Date: Tue, 21 May 2019 14:01:26 +0200 Subject: [PATCH] depot: support for ARM 64-bit for base-foc on rpi3 issue #3407 --- repos/base-foc/lib/mk/l4_pkg.inc | 2 +- repos/base-foc/lib/mk/spec/rpi3/syscall-foc.mk | 2 +- repos/base-foc/recipes/src/base-foc-rpi3/README | 7 +++++++ repos/base-foc/recipes/src/base-foc-rpi3/content.mk | 3 +++ repos/base-foc/recipes/src/base-foc-rpi3/hash | 1 + repos/base-foc/recipes/src/base-foc-rpi3/used_apis | 1 + repos/base-foc/recipes/src/base-foc_content.inc | 2 +- tool/run/boot_dir/foc | 3 ++- tool/run/depot.inc | 1 + 9 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 repos/base-foc/recipes/src/base-foc-rpi3/README create mode 100644 repos/base-foc/recipes/src/base-foc-rpi3/content.mk create mode 100644 repos/base-foc/recipes/src/base-foc-rpi3/hash create mode 100644 repos/base-foc/recipes/src/base-foc-rpi3/used_apis diff --git a/repos/base-foc/lib/mk/l4_pkg.inc b/repos/base-foc/lib/mk/l4_pkg.inc index 6e6268356c..3ad13652df 100644 --- a/repos/base-foc/lib/mk/l4_pkg.inc +++ b/repos/base-foc/lib/mk/l4_pkg.inc @@ -25,7 +25,7 @@ ifeq ($(filter-out $(SPECS),arm_v6),) endif ifeq ($(filter-out $(SPECS),arm_v8),) - L4_BUILD_ARCH := arm_armv8a + L4_BUILD_ARCH := arm64_armv8a endif diff --git a/repos/base-foc/lib/mk/spec/rpi3/syscall-foc.mk b/repos/base-foc/lib/mk/spec/rpi3/syscall-foc.mk index fdc747f31b..33e9dfffa0 100644 --- a/repos/base-foc/lib/mk/spec/rpi3/syscall-foc.mk +++ b/repos/base-foc/lib/mk/spec/rpi3/syscall-foc.mk @@ -1,6 +1,6 @@ L4_CONFIG := $(call select_from_repositories,config/rpi3.user) -L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/rpi3-build/bin/arm_armv8 +L4_BIN_DIR := $(LIB_CACHE_DIR)/syscall-foc/rpi3-build/bin/arm64_armv8a L4_INC_TARGETS = arm64/l4/sys \ arm64/l4f/l4/sys \ diff --git a/repos/base-foc/recipes/src/base-foc-rpi3/README b/repos/base-foc/recipes/src/base-foc-rpi3/README new file mode 100644 index 0000000000..c19a0dd5b9 --- /dev/null +++ b/repos/base-foc/recipes/src/base-foc-rpi3/README @@ -0,0 +1,7 @@ +This archive contains the Fiasco.OC-specific part of Genode. + +It also contains the source code of the Fiasco.OC kernel in the +'src/kernel/foc' directory. + +Please note that Fiasco.OC has a license distinct from Genode. Fiasco.OC's +license can be found at 'src/kernel/foc/COPYING-GPL-2'. diff --git a/repos/base-foc/recipes/src/base-foc-rpi3/content.mk b/repos/base-foc/recipes/src/base-foc-rpi3/content.mk new file mode 100644 index 0000000000..9908a2946a --- /dev/null +++ b/repos/base-foc/recipes/src/base-foc-rpi3/content.mk @@ -0,0 +1,3 @@ +BOARD := rpi3 + +include $(GENODE_DIR)/repos/base-foc/recipes/src/base-foc_content.inc diff --git a/repos/base-foc/recipes/src/base-foc-rpi3/hash b/repos/base-foc/recipes/src/base-foc-rpi3/hash new file mode 100644 index 0000000000..fef37f5405 --- /dev/null +++ b/repos/base-foc/recipes/src/base-foc-rpi3/hash @@ -0,0 +1 @@ +2019-05-21 9649f5d5574031c45012fef7e2407a62e6c50954 diff --git a/repos/base-foc/recipes/src/base-foc-rpi3/used_apis b/repos/base-foc/recipes/src/base-foc-rpi3/used_apis new file mode 100644 index 0000000000..df967b96a5 --- /dev/null +++ b/repos/base-foc/recipes/src/base-foc-rpi3/used_apis @@ -0,0 +1 @@ +base diff --git a/repos/base-foc/recipes/src/base-foc_content.inc b/repos/base-foc/recipes/src/base-foc_content.inc index 239c45a8a9..cfc368095e 100644 --- a/repos/base-foc/recipes/src/base-foc_content.inc +++ b/repos/base-foc/recipes/src/base-foc_content.inc @@ -26,7 +26,7 @@ src/kernel/foc: src/kernel cp -r $(KERNEL_PORT_DIR)/src/kernel/foc/* $@ content: - for spec in x86_32 x86_64 arm; do \ + for spec in x86_32 x86_64 arm arm_64; do \ mv lib/mk/spec/$$spec/ld-foc.mk lib/mk/spec/$$spec/ld.mk; \ done; sed -i "s/ld-foc/ld/" src/lib/ld/foc/target.mk diff --git a/tool/run/boot_dir/foc b/tool/run/boot_dir/foc index 2b101614a6..6381c51e3e 100644 --- a/tool/run/boot_dir/foc +++ b/tool/run/boot_dir/foc @@ -12,7 +12,7 @@ proc core_link_address { } { if {[have_spec x86 ]} { return "0x01100000" } if {[have_spec arndale ]} { return "0x80100000" } if {[have_spec rpi ]} { return "0x00800000" } - if {[have_spec rpi3 ]} { return "0x00800000" } + if {[have_spec rpi3 ]} { return "0x02000000" } if {[have_spec panda ]} { return "0xa0000000" } if {[have_spec pbxa9 ]} { return "0x76000000" } if {[have_spec odroid_x2]} { return "0x80100000" } @@ -227,6 +227,7 @@ proc base_src { } { if {[have_spec x86]} { return base-foc-pc } if {[have_spec pbxa9]} { return base-foc-pbxa9 } if {[have_spec arndale]} { return base-foc-arndale } + if {[have_spec rpi3]} { return base-foc-rpi3 } if {[have_spec imx6q_sabrelite]} { return base-foc-imx6q_sabrelite } if {[have_spec imx7d_sabre]} { return base-foc-imx7d_sabre } diff --git a/tool/run/depot.inc b/tool/run/depot.inc index eb9fbe814d..9e804c9931 100644 --- a/tool/run/depot.inc +++ b/tool/run/depot.inc @@ -23,6 +23,7 @@ proc depot_spec { } { if {[have_spec x86_64]} { return "x86_64" } if {[have_spec arm_v6]} { return "arm_v6" } if {[have_spec arm_v7a]} { return "arm_v7a" } + if {[have_spec arm_v8a]} { return "arm_v8a" } }