base-foc: support for Raspberry Pi

Fixes #1596
This commit is contained in:
Reinier Millo Sánchez 2015-06-21 10:53:54 -04:00 committed by Christian Helmuth
parent 46b7227ef0
commit c60d65150e
10 changed files with 185 additions and 2 deletions

View File

@ -0,0 +1,77 @@
#
# Automatically generated file; DO NOT EDIT.
# Fiasco configuration
#
#
# Target configuration
#
# CONFIG_IA32 is not set
# CONFIG_AMD64 is not set
CONFIG_ARM=y
# CONFIG_PF_REALVIEW is not set
# CONFIG_PF_IMX is not set
# CONFIG_PF_S3C2410 is not set
# CONFIG_PF_TEGRA is not set
# CONFIG_PF_OMAP is not set
# CONFIG_PF_XSCALE is not set
# CONFIG_PF_SA1100 is not set
# CONFIG_PF_EXYNOS is not set
# CONFIG_PF_KIRKWOOD is not set
# CONFIG_PF_INTEGRATOR is not set
CONFIG_PF_BCM2835=y
CONFIG_BSP_NAME="bcm2835"
CONFIG_ABI_VF=y
CONFIG_CAN_ARM_CPU_1176=y
CONFIG_ARM_1176=y
# CONFIG_ARM_ALIGNMENT_CHECK is not set
CONFIG_ARM_EM_STD=y
# CONFIG_ARM_EM_NS is not set
# CONFIG_ARM_EM_TZ is not set
# CONFIG_FPU is not set
# CONFIG_ARM_1176_CACHE_ALIAS_FIX is not set
# CONFIG_ARM_CPU_ERRATA is not set
#
# Kernel options
#
CONFIG_CONTEXT_4K=y
# CONFIG_FINE_GRAINED_CPUTIME is not set
CONFIG_SCHED_FIXED_PRIO=y
#
# Debugging
#
CONFIG_INLINE=y
# CONFIG_NDEBUG is not set
CONFIG_NO_FRAME_PTR=y
# CONFIG_STACK_DEPTH is not set
# CONFIG_LIST_ALLOC_SANITY is not set
CONFIG_SERIAL=y
CONFIG_JDB=y
# CONFIG_JDB_LOGGING is not set
# CONFIG_JDB_DISASM is not set
# CONFIG_JDB_GZIP is not set
# CONFIG_VMEM_ALLOC_TEST is not set
# CONFIG_DEBUG_KERNEL_PAGE_FAULTS is not set
# CONFIG_WARN_NONE is not set
CONFIG_WARN_WARNING=y
# CONFIG_WARN_ANY is not set
#
# Compiling
#
CONFIG_CC="gcc"
CONFIG_CXX="g++"
CONFIG_HOST_CC="gcc"
CONFIG_HOST_CXX="g++"
# CONFIG_MAINTAINER_MODE is not set
CONFIG_LABEL=""
# CONFIG_EXPERIMENTAL is not set
CONFIG_PERF_CNT=y
CONFIG_BIT32=y
CONFIG_ARM_V6=y
CONFIG_ARM_V6PLUS=y
CONFIG_WARN_LEVEL=1
CONFIG_XARCH="arm"
CONFIG_ABI="vf"

View File

@ -0,0 +1,69 @@
#
# Automatically generated file; DO NOT EDIT.
# L4Re Configuration
#
# CONFIG_BUILD_ARCH_x86 is not set
# CONFIG_BUILD_ARCH_amd64 is not set
CONFIG_BUILD_ARCH_arm=y
# CONFIG_BUILD_ARCH_ppc32 is not set
# CONFIG_BUILD_ARCH_sparc is not set
CONFIG_BUILD_ARCH="arm"
CONFIG_BUILD_ABI_l4f=y
CONFIG_BUILD_ABI="l4f"
CONFIG_CPU="armv6"
# CONFIG_CPU_ARM_ARMV4 is not set
# CONFIG_CPU_ARM_ARMV4T is not set
# CONFIG_CPU_ARM_ARMV5 is not set
# CONFIG_CPU_ARM_ARMV5T is not set
# CONFIG_CPU_ARM_ARMV5TE is not set
CONFIG_CPU_ARM_ARMV6=y
# CONFIG_CPU_ARM_ARMV6T2 is not set
# CONFIG_CPU_ARM_ARMV6ZK is not set
# CONFIG_CPU_ARM_ARMV7A is not set
# CONFIG_CPU_ARM_ARMV7R is not set
CONFIG_CPU_ARMV6PLUS=y
# CONFIG_PLATFORM_TYPE_beagleboard is not set
# CONFIG_PLATFORM_TYPE_exynos4 is not set
# CONFIG_PLATFORM_TYPE_exynos5 is not set
# CONFIG_PLATFORM_TYPE_imx21 is not set
# CONFIG_PLATFORM_TYPE_imx35 is not set
# CONFIG_PLATFORM_TYPE_imx51 is not set
# CONFIG_PLATFORM_TYPE_imx53 is not set
# CONFIG_PLATFORM_TYPE_imx6 is not set
# CONFIG_PLATFORM_TYPE_integrator is not set
# CONFIG_PLATFORM_TYPE_kirkwood is not set
# CONFIG_PLATFORM_TYPE_omap3_am33xx is not set
# CONFIG_PLATFORM_TYPE_omap3evm is not set
# CONFIG_PLATFORM_TYPE_pandaboard is not set
# CONFIG_PLATFORM_TYPE_rpi_a is not set
CONFIG_PLATFORM_TYPE_rpi_b=y
# CONFIG_PLATFORM_TYPE_rv is not set
# CONFIG_PLATFORM_TYPE_rv_pbx is not set
# CONFIG_PLATFORM_TYPE_rv_vexpress_a15 is not set
# CONFIG_PLATFORM_TYPE_rv_vexpress is not set
# CONFIG_PLATFORM_TYPE_tegra2 is not set
# CONFIG_PLATFORM_TYPE_tegra3 is not set
# CONFIG_PLATFORM_TYPE_custom is not set
CONFIG_PLATFORM_TYPE="rpi_b"
# CONFIG_USE_DROPS_STDDIR is not set
# CONFIG_USE_DICE is not set
CONFIG_DROPS_STDDIR="/path/to/l4re"
CONFIG_DROPS_INSTDIR="/path/to/l4re"
CONFIG_BID_COLORED_PHASES=y
#
# Building
#
CONFIG_YACC="yacc"
CONFIG_LEX="flex"
CONFIG_CTAGS="ctags"
CONFIG_ETAGS="etags"
CONFIG_HAVE_LDSO=y
CONFIG_INT_CPP_NAME_SWITCH=y
CONFIG_INT_LD_NAME_SWITCH=y
# CONFIG_BID_STRIP_PROGS is not set
# CONFIG_BID_GCC_OMIT_FP is not set
# CONFIG_BID_GENERATE_MAPFILE is not set
# CONFIG_BID_BUILD_DOC is not set
# CONFIG_RELEASE_MODE is not set
CONFIG_MAKECONFS_ADD=""

View File

@ -0,0 +1,6 @@
#
# Configuration for L4 build system (for kernel-bindings, sigma0, bootstrap).
#
L4_CONFIG = $(call select_from_repositories,config/rpi.user)
include $(REP_DIR)/lib/mk/arm/platform.inc

View File

@ -22,6 +22,10 @@ ifeq ($(filter-out $(SPECS),arm_v7a),)
L4_BUILD_ARCH := arm_armv7a
endif
ifeq ($(filter-out $(SPECS),arm_v6),)
L4_BUILD_ARCH := arm_armv6
endif
ifeq ($(L4_BUILD_ARCH),)
all: l4_build_arch_undefined
$(VERBOSE)$(ECHO) "Error: L4_BUILD_ARCH undefined, architecture not supported"

View File

@ -0,0 +1,4 @@
SPECS += foc_arm platform_rpi
include $(call select_from_repositories,mk/spec-platform_rpi.mk)
include $(call select_from_repositories,mk/spec-foc_arm.mk)

View File

@ -0,0 +1,5 @@
REQUIRES += foc_rpi
LD_TEXT_ADDR ?= 0x800000
include $(REP_DIR)/src/core/arm/target.inc

View File

@ -0,0 +1,5 @@
REQUIRES = platform_rpi
FIASCO_DIR := $(call select_from_ports,foc)/src/kernel/foc/kernel/fiasco
KERNEL_CONFIG = $(REP_DIR)/config/rpi.kernel
-include $(PRG_DIR)/../target.inc

View File

@ -0,0 +1,8 @@
REPOSITORIES = $(GENODE_DIR)/repos/base-foc
##
## Kernel-specific run tool configuration
##
RUN_OPT = --include boot_dir/foc \
--include power_on/qemu --include log/qemu

View File

@ -45,6 +45,7 @@ usage:
@echo " 'foc_vea9x4'"
@echo " 'foc_panda'"
@echo " 'foc_arndale'"
@echo " 'foc_rpi'"
@echo " 'sel4_x86_32'"
@echo " 'lx_hybrid_x86'"
@echo
@ -144,7 +145,7 @@ $(BUILD_DIR)/Makefile:
#
# Add 'ports-foc' repository to Fiasco.OC build directory
#
ifeq ($(filter-out foc_x86_32 foc_imx53 foc_pbxa9 foc_vea9x4 foc_panda foc_arndale,$(PLATFORM)),)
ifeq ($(filter-out foc_x86_32 foc_imx53 foc_pbxa9 foc_vea9x4 foc_panda foc_arndale foc_rpi,$(PLATFORM)),)
$(BUILD_DIR)/etc/build.conf::
@cat $(BUILD_CONF).ports-foc >> $@
endif
@ -160,7 +161,7 @@ endif
#
# Add ARM drivers repositories to ARM build directories
#
ifeq ($(filter-out foc_panda foc_arndale hw_panda hw_arndale hw_odroid_xu foc_imx53,$(PLATFORM)),)
ifeq ($(filter-out foc_panda foc_arndale hw_panda hw_arndale hw_odroid_xu foc_imx53 foc_rpi,$(PLATFORM)),)
$(BUILD_DIR)/etc/build.conf::
@cat $(BUILD_CONF).drivers_arm >> $@
endif
@ -213,6 +214,9 @@ foc_imx53::
foc_arndale::
@echo "SPECS = genode foc_arndale" > $(BUILD_DIR)/etc/specs.conf
foc_rpi::
@echo "SPECS = genode foc_rpi" > $(BUILD_DIR)/etc/specs.conf
#
# On all other platforms, the performance counter is assumed to be active by
# default. On HW, its activation is done by an optional core lib. To be

View File

@ -93,6 +93,7 @@ proc bin_dir { } {
if {[have_spec x86_32]} { return "[l4_dir]/bin/x86_586" }
if {[have_spec x86_64]} { return "[l4_dir]/bin/amd64_K8" }
if {[have_spec arm_v7a]} { return "[l4_dir]/bin/arm_armv7a" }
if {[have_spec arm_v6]} { return "[l4_dir]/bin/arm_armv6" }
puts stderr "Error: Cannot determine bin directory"
exit 1