diff --git a/repos/base-foc/config/arndale.kernel b/repos/base-foc/config/arndale.kernel
index d6078d24a..acd99f05a 100644
--- a/repos/base-foc/config/arndale.kernel
+++ b/repos/base-foc/config/arndale.kernel
@@ -2,6 +2,11 @@
# Automatically generated file; DO NOT EDIT.
# Fiasco configuration
#
+CONFIG_HAS_FPU_OPTION=y
+CONFIG_HAS_VIRT_OBJ_SPACE_OPTION=y
+CONFIG_HAS_SERIAL_OPTION=y
+CONFIG_HAS_MP_OPTION=y
+CONFIG_HAS_CPU_VIRT=y
#
# Target configuration
@@ -9,37 +14,50 @@
# CONFIG_IA32 is not set
# CONFIG_AMD64 is not set
CONFIG_ARM=y
+# CONFIG_MIPS is not set
+# CONFIG_PF_ARMADA38X is not set
+# CONFIG_PF_BCM2835 is not set
+CONFIG_PF_EXYNOS=y
# CONFIG_PF_IMX is not set
+# CONFIG_PF_INTEGRATOR is not set
+# CONFIG_PF_KIRKWOOD is not set
+# CONFIG_PF_LS1021A is not set
+# CONFIG_PF_OMAP is not set
# CONFIG_PF_REALVIEW is not set
# CONFIG_PF_S3C2410 is not set
-# CONFIG_PF_TEGRA is not set
-# CONFIG_PF_OMAP is not set
# CONFIG_PF_SA1100 is not set
+# CONFIG_PF_SUNXI is not set
+# CONFIG_PF_TEGRA is not set
# CONFIG_PF_XSCALE is not set
-CONFIG_PF_EXYNOS=y
-# CONFIG_PF_KIRKWOOD is not set
-# CONFIG_PF_INTEGRATOR is not set
-# CONFIG_PF_BCM2835 is not set
+# CONFIG_PF_ZYNQ is not set
CONFIG_BSP_NAME="exynos"
+CONFIG_CAN_ARM_CPU_CORTEX_A15=y
+CONFIG_ARM_V7=y
+CONFIG_ARM_V6PLUS=y
CONFIG_PF_EXYNOS5=y
+CONFIG_CPU_SUSPEND=y
CONFIG_PF_EXYNOS_PKG_IDS=""
# CONFIG_PF_EXYNOS4_4210 is not set
# CONFIG_PF_EXYNOS4_4412 is not set
CONFIG_PF_EXYNOS5_5250=y
+# CONFIG_PF_EXYNOS5_5410 is not set
+CONFIG_PF_EXYNOS_UART_NATIVE=y
CONFIG_PF_EXYNOS_UART_NR=2
CONFIG_PF_EXYNOS_TIMER_MCT=y
# CONFIG_PF_EXYNOS_TIMER_PWM is not set
+# CONFIG_PF_EXYNOS_TIMER_GEN is not set
CONFIG_ABI_VF=y
-CONFIG_PF_ARM_MP_CAPABLE=y
-CONFIG_CAN_ARM_CPU_CORTEX_A15=y
CONFIG_ARM_CORTEX_A15=y
+# CONFIG_CPU_VIRT is not set
+CONFIG_FPU=y
+CONFIG_HAVE_ARM_SECMONIF_NONE=y
+CONFIG_HAVE_ARM_SECMONIF_MC=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_ARM_ENABLE_SWP is not set
# CONFIG_ARM_LPAE is not set
-CONFIG_FPU=y
CONFIG_ARM_CPU_ERRATA=y
#
@@ -47,6 +65,7 @@ CONFIG_ARM_CPU_ERRATA=y
#
CONFIG_MP=y
CONFIG_MP_MAX_CPUS=4
+# CONFIG_CONTEXT_8K is not set
CONFIG_CONTEXT_4K=y
# CONFIG_FINE_GRAINED_CPUTIME is not set
CONFIG_SCHED_FIXED_PRIO=y
@@ -63,14 +82,17 @@ CONFIG_INLINE=y
CONFIG_SERIAL=y
CONFIG_JDB=y
# CONFIG_JDB_LOGGING is not set
-CONFIG_JDB_DISASM=y
-CONFIG_JDB_GZIP=y
-# CONFIG_VMEM_ALLOC_TEST is not set
-# CONFIG_DEBUG_KERNEL_PAGE_FAULTS is not set
+# CONFIG_JDB_ACCOUNTING is not set
# CONFIG_WARN_NONE is not set
CONFIG_WARN_WARNING=y
# CONFIG_WARN_ANY is not set
+#
+# ARM debugging options
+#
+# CONFIG_VMEM_ALLOC_TEST is not set
+# CONFIG_DEBUG_KERNEL_PAGE_FAULTS is not set
+
#
# Compiling
#
@@ -83,8 +105,6 @@ CONFIG_LABEL=""
# CONFIG_EXPERIMENTAL is not set
CONFIG_PERF_CNT=y
CONFIG_BIT32=y
-CONFIG_ARM_V7=y
-CONFIG_ARM_V6PLUS=y
CONFIG_WARN_LEVEL=1
CONFIG_XARCH="arm"
CONFIG_ABI="vf"
diff --git a/repos/base-foc/config/arndale.user b/repos/base-foc/config/arndale.user
index 06f2ccd28..731480c5e 100644
--- a/repos/base-foc/config/arndale.user
+++ b/repos/base-foc/config/arndale.user
@@ -2,15 +2,16 @@
# Automatically generated file; DO NOT EDIT.
# L4Re Configuration
#
-# CONFIG_BUILD_ARCH_x86 is not set
+CONFIG_ARCH_ENABLE_STACK_PROTECTOR=y
# CONFIG_BUILD_ARCH_amd64 is not set
CONFIG_BUILD_ARCH_arm=y
+# CONFIG_BUILD_ARCH_mips is not set
# CONFIG_BUILD_ARCH_ppc32 is not set
# CONFIG_BUILD_ARCH_sparc is not set
+# CONFIG_BUILD_ARCH_x86 is not set
CONFIG_BUILD_ARCH="arm"
CONFIG_BUILD_ABI_l4f=y
CONFIG_BUILD_ABI="l4f"
-CONFIG_CPU="armv7a"
# CONFIG_CPU_ARM_ARMV4 is not set
# CONFIG_CPU_ARM_ARMV4T is not set
# CONFIG_CPU_ARM_ARMV5 is not set
@@ -20,30 +21,37 @@ CONFIG_CPU="armv7a"
# CONFIG_CPU_ARM_ARMV6T2 is not set
# CONFIG_CPU_ARM_ARMV6ZK is not set
CONFIG_CPU_ARM_ARMV7A=y
-# CONFIG_CPU_ARM_ARMV7R is not set
+CONFIG_CPU="armv7a"
CONFIG_CPU_ARMV6KPLUS=y
CONFIG_CPU_ARMV6PLUS=y
-# CONFIG_PLATFORM_TYPE_imx53 is not set
-# CONFIG_PLATFORM_TYPE_imx35 is not set
-# CONFIG_PLATFORM_TYPE_rv_pbx is not set
-CONFIG_PLATFORM_TYPE_exynos5=y
-# CONFIG_PLATFORM_TYPE_rv is not set
-# CONFIG_PLATFORM_TYPE_kirkwood is not set
-# CONFIG_PLATFORM_TYPE_pandaboard is not set
-# CONFIG_PLATFORM_TYPE_tegra3 is not set
-# CONFIG_PLATFORM_TYPE_tegra2 is not set
-# CONFIG_PLATFORM_TYPE_imx6 is not set
-# CONFIG_PLATFORM_TYPE_exynos4 is not set
-# CONFIG_PLATFORM_TYPE_omap3_am33xx is not set
-# CONFIG_PLATFORM_TYPE_rpi_b is not set
-# CONFIG_PLATFORM_TYPE_rv_vexpress_a15 is not set
-# CONFIG_PLATFORM_TYPE_imx51 is not set
-# CONFIG_PLATFORM_TYPE_omap3evm is not set
+# CONFIG_PLATFORM_TYPE_armada38x is not set
# CONFIG_PLATFORM_TYPE_beagleboard is not set
+# CONFIG_PLATFORM_TYPE_cubieboard2 is not set
+# CONFIG_PLATFORM_TYPE_exynos4 is not set
+CONFIG_PLATFORM_TYPE_exynos5=y
# CONFIG_PLATFORM_TYPE_imx21 is not set
-# CONFIG_PLATFORM_TYPE_rv_vexpress is not set
-# CONFIG_PLATFORM_TYPE_rpi_a is not set
+# CONFIG_PLATFORM_TYPE_imx28 is not set
+# CONFIG_PLATFORM_TYPE_imx35 is not set
+# CONFIG_PLATFORM_TYPE_imx51 is not set
+# CONFIG_PLATFORM_TYPE_imx6 is not set
+# CONFIG_PLATFORM_TYPE_imx6ul is not set
# CONFIG_PLATFORM_TYPE_integrator is not set
+# CONFIG_PLATFORM_TYPE_kirkwood is not set
+# CONFIG_PLATFORM_TYPE_ls1021atwr is not set
+# CONFIG_PLATFORM_TYPE_omap3_am33xx is not set
+# CONFIG_PLATFORM_TYPE_omap3evm is not set
+# CONFIG_PLATFORM_TYPE_omap5 is not set
+# CONFIG_PLATFORM_TYPE_pandaboard is not set
+# CONFIG_PLATFORM_TYPE_parallella is not set
+# CONFIG_PLATFORM_TYPE_rpi_a is not set
+# CONFIG_PLATFORM_TYPE_rpi_b is not set
+# 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_zedboard is not set
# CONFIG_PLATFORM_TYPE_custom is not set
CONFIG_PLATFORM_TYPE="exynos5"
# CONFIG_USE_DROPS_STDDIR is not set
@@ -64,7 +72,9 @@ 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_GCC_ENABLE_STACK_PROTECTOR=y
+# CONFIG_BID_GCC_STACK_PROTECTOR_ALL is not set
+CONFIG_BID_GCC_STACK_PROTECTOR=y
# CONFIG_BID_BUILD_DOC is not set
# CONFIG_RELEASE_MODE is not set
CONFIG_MAKECONFS_ADD=""
diff --git a/repos/base-foc/config/odroid_x2.kernel b/repos/base-foc/config/odroid_x2.kernel
index e1694391e..08532500d 100644
--- a/repos/base-foc/config/odroid_x2.kernel
+++ b/repos/base-foc/config/odroid_x2.kernel
@@ -2,6 +2,10 @@
# Automatically generated file; DO NOT EDIT.
# Fiasco configuration
#
+CONFIG_HAS_FPU_OPTION=y
+CONFIG_HAS_VIRT_OBJ_SPACE_OPTION=y
+CONFIG_HAS_SERIAL_OPTION=y
+CONFIG_HAS_MP_OPTION=y
#
# Target configuration
@@ -9,41 +13,53 @@
# CONFIG_IA32 is not set
# CONFIG_AMD64 is not set
CONFIG_ARM=y
-# CONFIG_PF_TEGRA is not set
-# CONFIG_PF_REALVIEW is not set
+# CONFIG_MIPS is not set
+# CONFIG_PF_ARMADA38X is not set
# CONFIG_PF_BCM2835 is not set
-# CONFIG_PF_IMX is not set
-# CONFIG_PF_S3C2410 is not set
-# CONFIG_PF_SA1100 is not set
CONFIG_PF_EXYNOS=y
+# CONFIG_PF_IMX is not set
# CONFIG_PF_INTEGRATOR is not set
# CONFIG_PF_KIRKWOOD is not set
+# CONFIG_PF_LS1021A is not set
# CONFIG_PF_OMAP is not set
+# CONFIG_PF_REALVIEW is not set
+# CONFIG_PF_S3C2410 is not set
+# CONFIG_PF_SA1100 is not set
+# CONFIG_PF_SUNXI is not set
+# CONFIG_PF_TEGRA is not set
# CONFIG_PF_XSCALE is not set
+# CONFIG_PF_ZYNQ is not set
CONFIG_BSP_NAME="exynos"
+CONFIG_CAN_ARM_CPU_CORTEX_A9=y
+CONFIG_CAN_ARM_CACHE_L2CXX0=y
+CONFIG_ARM_V7=y
+CONFIG_ARM_V6PLUS=y
CONFIG_PF_EXYNOS4=y
+CONFIG_CPU_SUSPEND=y
CONFIG_PF_EXYNOS_PKG_IDS=""
# CONFIG_PF_EXYNOS4_4210 is not set
CONFIG_PF_EXYNOS4_4412=y
# CONFIG_PF_EXYNOS5_5250 is not set
+# CONFIG_PF_EXYNOS5_5410 is not set
+CONFIG_PF_EXYNOS_UART_NATIVE=y
CONFIG_PF_EXYNOS_UART_NR=1
CONFIG_PF_EXYNOS_TIMER_MCT=y
# CONFIG_PF_EXYNOS_TIMER_MP is not set
# CONFIG_PF_EXYNOS_TIMER_PWM is not set
CONFIG_PF_EXYNOS_EXTGIC=y
CONFIG_ABI_VF=y
-CONFIG_PF_ARM_MP_CAPABLE=y
-CONFIG_CAN_ARM_CPU_CORTEX_A9=y
-CONFIG_CAN_ARM_CACHE_L2CXX0=y
CONFIG_ARM_CORTEX_A9=y
+CONFIG_FPU=y
+CONFIG_HAVE_ARM_SECMONIF_NONE=y
+CONFIG_HAVE_ARM_SECMONIF_MC=y
# CONFIG_ARM_ALIGNMENT_CHECK is not set
# CONFIG_ARM_EM_STD is not set
CONFIG_ARM_EM_NS=y
# CONFIG_ARM_EM_TZ is not set
+# CONFIG_ARM_SECMONIF_NONE is not set
CONFIG_ARM_SECMONIF_MC=y
-# CONFIG_ARM_ENABLE_SWP is not set
CONFIG_ARM_CACHE_L2CXX0=y
-CONFIG_FPU=y
+# CONFIG_ARM_ENABLE_SWP is not set
# CONFIG_ARM_CPU_ERRATA is not set
#
@@ -51,6 +67,7 @@ CONFIG_FPU=y
#
CONFIG_MP=y
CONFIG_MP_MAX_CPUS=4
+# CONFIG_CONTEXT_8K is not set
CONFIG_CONTEXT_4K=y
# CONFIG_FINE_GRAINED_CPUTIME is not set
CONFIG_SCHED_FIXED_PRIO=y
@@ -67,14 +84,17 @@ CONFIG_NO_FRAME_PTR=y
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_JDB_ACCOUNTING is not set
# CONFIG_WARN_NONE is not set
CONFIG_WARN_WARNING=y
# CONFIG_WARN_ANY is not set
+#
+# ARM debugging options
+#
+# CONFIG_VMEM_ALLOC_TEST is not set
+# CONFIG_DEBUG_KERNEL_PAGE_FAULTS is not set
+
#
# Compiling
#
@@ -87,8 +107,6 @@ CONFIG_LABEL=""
# CONFIG_EXPERIMENTAL is not set
CONFIG_PERF_CNT=y
CONFIG_BIT32=y
-CONFIG_ARM_V7=y
-CONFIG_ARM_V6PLUS=y
CONFIG_WARN_LEVEL=1
CONFIG_XARCH="arm"
CONFIG_ABI="vf"
diff --git a/repos/base-foc/config/odroid_x2.user b/repos/base-foc/config/odroid_x2.user
index 794be0941..0c9efd801 100644
--- a/repos/base-foc/config/odroid_x2.user
+++ b/repos/base-foc/config/odroid_x2.user
@@ -2,15 +2,16 @@
# Automatically generated file; DO NOT EDIT.
# L4Re Configuration
#
-# CONFIG_BUILD_ARCH_x86 is not set
+CONFIG_ARCH_ENABLE_STACK_PROTECTOR=y
# CONFIG_BUILD_ARCH_amd64 is not set
CONFIG_BUILD_ARCH_arm=y
+# CONFIG_BUILD_ARCH_mips is not set
# CONFIG_BUILD_ARCH_ppc32 is not set
# CONFIG_BUILD_ARCH_sparc is not set
+# CONFIG_BUILD_ARCH_x86 is not set
CONFIG_BUILD_ARCH="arm"
CONFIG_BUILD_ABI_l4f=y
CONFIG_BUILD_ABI="l4f"
-CONFIG_CPU="armv7a"
# CONFIG_CPU_ARM_ARMV4 is not set
# CONFIG_CPU_ARM_ARMV4T is not set
# CONFIG_CPU_ARM_ARMV5 is not set
@@ -20,30 +21,37 @@ CONFIG_CPU="armv7a"
# CONFIG_CPU_ARM_ARMV6T2 is not set
# CONFIG_CPU_ARM_ARMV6ZK is not set
CONFIG_CPU_ARM_ARMV7A=y
-# CONFIG_CPU_ARM_ARMV7R is not set
+CONFIG_CPU="armv7a"
CONFIG_CPU_ARMV6KPLUS=y
CONFIG_CPU_ARMV6PLUS=y
-CONFIG_PLATFORM_TYPE_exynos4=y
-# CONFIG_PLATFORM_TYPE_imx6 is not set
-# CONFIG_PLATFORM_TYPE_imx35 is not set
-# CONFIG_PLATFORM_TYPE_rv_pbx is not set
-# CONFIG_PLATFORM_TYPE_exynos5 is not set
-# CONFIG_PLATFORM_TYPE_rv is not set
-# CONFIG_PLATFORM_TYPE_kirkwood is not set
-# CONFIG_PLATFORM_TYPE_pandaboard is not set
-# CONFIG_PLATFORM_TYPE_tegra3 is not set
-# CONFIG_PLATFORM_TYPE_tegra2 is not set
-# CONFIG_PLATFORM_TYPE_omap3_am33xx is not set
-# CONFIG_PLATFORM_TYPE_rpi_b is not set
-# CONFIG_PLATFORM_TYPE_rv_vexpress_a15 is not set
-# CONFIG_PLATFORM_TYPE_imx51 is not set
-# CONFIG_PLATFORM_TYPE_omap3evm is not set
+# CONFIG_PLATFORM_TYPE_armada38x is not set
# CONFIG_PLATFORM_TYPE_beagleboard is not set
+# CONFIG_PLATFORM_TYPE_cubieboard2 is not set
+CONFIG_PLATFORM_TYPE_exynos4=y
+# CONFIG_PLATFORM_TYPE_exynos5 is not set
# CONFIG_PLATFORM_TYPE_imx21 is not set
-# CONFIG_PLATFORM_TYPE_rv_vexpress is not set
-# CONFIG_PLATFORM_TYPE_imx53 is not set
-# CONFIG_PLATFORM_TYPE_rpi_a is not set
+# CONFIG_PLATFORM_TYPE_imx28 is not set
+# CONFIG_PLATFORM_TYPE_imx35 is not set
+# CONFIG_PLATFORM_TYPE_imx51 is not set
+# CONFIG_PLATFORM_TYPE_imx6 is not set
+# CONFIG_PLATFORM_TYPE_imx6ul is not set
# CONFIG_PLATFORM_TYPE_integrator is not set
+# CONFIG_PLATFORM_TYPE_kirkwood is not set
+# CONFIG_PLATFORM_TYPE_ls1021atwr is not set
+# CONFIG_PLATFORM_TYPE_omap3_am33xx is not set
+# CONFIG_PLATFORM_TYPE_omap3evm is not set
+# CONFIG_PLATFORM_TYPE_omap5 is not set
+# CONFIG_PLATFORM_TYPE_pandaboard is not set
+# CONFIG_PLATFORM_TYPE_parallella is not set
+# CONFIG_PLATFORM_TYPE_rpi_a is not set
+# CONFIG_PLATFORM_TYPE_rpi_b is not set
+# 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_zedboard is not set
# CONFIG_PLATFORM_TYPE_custom is not set
CONFIG_PLATFORM_TYPE="exynos4"
# CONFIG_USE_DROPS_STDDIR is not set
@@ -64,7 +72,9 @@ 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_GCC_ENABLE_STACK_PROTECTOR=y
+# CONFIG_BID_GCC_STACK_PROTECTOR_ALL is not set
+CONFIG_BID_GCC_STACK_PROTECTOR=y
# CONFIG_BID_BUILD_DOC is not set
# CONFIG_RELEASE_MODE is not set
CONFIG_MAKECONFS_ADD=""
diff --git a/repos/base-foc/config/panda.kernel b/repos/base-foc/config/panda.kernel
index e430efbfe..d60f567af 100644
--- a/repos/base-foc/config/panda.kernel
+++ b/repos/base-foc/config/panda.kernel
@@ -2,6 +2,10 @@
# Automatically generated file; DO NOT EDIT.
# Fiasco configuration
#
+CONFIG_HAS_FPU_OPTION=y
+CONFIG_HAS_VIRT_OBJ_SPACE_OPTION=y
+CONFIG_HAS_SERIAL_OPTION=y
+CONFIG_HAS_MP_OPTION=y
#
# Target configuration
@@ -9,34 +13,41 @@
# CONFIG_IA32 is not set
# CONFIG_AMD64 is not set
CONFIG_ARM=y
+# CONFIG_MIPS is not set
+# CONFIG_PF_ARMADA38X is not set
+# CONFIG_PF_BCM2835 is not set
+# CONFIG_PF_EXYNOS is not set
# CONFIG_PF_IMX is not set
+# CONFIG_PF_INTEGRATOR is not set
+# CONFIG_PF_KIRKWOOD is not set
+# CONFIG_PF_LS1021A is not set
+CONFIG_PF_OMAP=y
# CONFIG_PF_REALVIEW is not set
# CONFIG_PF_S3C2410 is not set
-# CONFIG_PF_TEGRA is not set
-CONFIG_PF_OMAP=y
# CONFIG_PF_SA1100 is not set
+# CONFIG_PF_SUNXI is not set
+# CONFIG_PF_TEGRA is not set
# CONFIG_PF_XSCALE is not set
-# CONFIG_PF_EXYNOS is not set
-# CONFIG_PF_KIRKWOOD is not set
-# CONFIG_PF_INTEGRATOR is not set
-# CONFIG_PF_BCM2835 is not set
+# CONFIG_PF_ZYNQ is not set
CONFIG_BSP_NAME="omap"
+CONFIG_CAN_ARM_CPU_CORTEX_A9=y
+CONFIG_CAN_ARM_CACHE_L2CXX0=y
+CONFIG_ARM_V7=y
+CONFIG_ARM_V6PLUS=y
# CONFIG_PF_OMAP3_OMAP35XEVM is not set
# CONFIG_PF_OMAP3_BEAGLEBOARD is not set
# CONFIG_PF_OMAP3_AM33XX is not set
CONFIG_PF_OMAP4_PANDABOARD=y
+# CONFIG_PF_OMAP5_5432EVM is not set
CONFIG_ABI_VF=y
-CONFIG_PF_ARM_MP_CAPABLE=y
-CONFIG_CAN_ARM_CPU_CORTEX_A9=y
-CONFIG_CAN_ARM_CACHE_L2CXX0=y
CONFIG_ARM_CORTEX_A9=y
+CONFIG_FPU=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_ARM_ENABLE_SWP is not set
CONFIG_ARM_CACHE_L2CXX0=y
-CONFIG_FPU=y
+# CONFIG_ARM_ENABLE_SWP is not set
# CONFIG_ARM_CPU_ERRATA is not set
#
@@ -44,6 +55,7 @@ CONFIG_FPU=y
#
CONFIG_MP=y
CONFIG_MP_MAX_CPUS=4
+# CONFIG_CONTEXT_8K is not set
CONFIG_CONTEXT_4K=y
# CONFIG_FINE_GRAINED_CPUTIME is not set
CONFIG_SCHED_FIXED_PRIO=y
@@ -63,14 +75,17 @@ CONFIG_INLINE=y
CONFIG_SERIAL=y
CONFIG_JDB=y
CONFIG_JDB_LOGGING=y
-# 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_JDB_ACCOUNTING is not set
# CONFIG_WARN_NONE is not set
CONFIG_WARN_WARNING=y
# CONFIG_WARN_ANY is not set
+#
+# ARM debugging options
+#
+# CONFIG_VMEM_ALLOC_TEST is not set
+# CONFIG_DEBUG_KERNEL_PAGE_FAULTS is not set
+
#
# Compiling
#
@@ -83,8 +98,6 @@ CONFIG_LABEL=""
CONFIG_EXPERIMENTAL=y
CONFIG_PERF_CNT=y
CONFIG_BIT32=y
-CONFIG_ARM_V7=y
-CONFIG_ARM_V6PLUS=y
CONFIG_WARN_LEVEL=1
CONFIG_XARCH="arm"
CONFIG_ABI="vf"
diff --git a/repos/base-foc/config/panda.user b/repos/base-foc/config/panda.user
index 331fa8020..be26fdf1d 100644
--- a/repos/base-foc/config/panda.user
+++ b/repos/base-foc/config/panda.user
@@ -2,15 +2,16 @@
# Automatically generated file; DO NOT EDIT.
# L4Re Configuration
#
-# CONFIG_BUILD_ARCH_x86 is not set
+CONFIG_ARCH_ENABLE_STACK_PROTECTOR=y
# CONFIG_BUILD_ARCH_amd64 is not set
CONFIG_BUILD_ARCH_arm=y
+# CONFIG_BUILD_ARCH_mips is not set
# CONFIG_BUILD_ARCH_ppc32 is not set
# CONFIG_BUILD_ARCH_sparc is not set
+# CONFIG_BUILD_ARCH_x86 is not set
CONFIG_BUILD_ARCH="arm"
CONFIG_BUILD_ABI_l4f=y
CONFIG_BUILD_ABI="l4f"
-CONFIG_CPU="armv7a"
# CONFIG_CPU_ARM_ARMV4 is not set
# CONFIG_CPU_ARM_ARMV4T is not set
# CONFIG_CPU_ARM_ARMV5 is not set
@@ -20,30 +21,37 @@ CONFIG_CPU="armv7a"
# CONFIG_CPU_ARM_ARMV6T2 is not set
# CONFIG_CPU_ARM_ARMV6ZK is not set
CONFIG_CPU_ARM_ARMV7A=y
-# CONFIG_CPU_ARM_ARMV7R is not set
+CONFIG_CPU="armv7a"
CONFIG_CPU_ARMV6KPLUS=y
CONFIG_CPU_ARMV6PLUS=y
-# CONFIG_PLATFORM_TYPE_imx53 is not set
-# CONFIG_PLATFORM_TYPE_imx35 is not set
-# CONFIG_PLATFORM_TYPE_rv_pbx is not set
-# CONFIG_PLATFORM_TYPE_exynos5 is not set
-# CONFIG_PLATFORM_TYPE_rv is not set
-# CONFIG_PLATFORM_TYPE_kirkwood is not set
-CONFIG_PLATFORM_TYPE_pandaboard=y
-# CONFIG_PLATFORM_TYPE_tegra3 is not set
-# CONFIG_PLATFORM_TYPE_tegra2 is not set
-# CONFIG_PLATFORM_TYPE_imx6 is not set
-# CONFIG_PLATFORM_TYPE_exynos4 is not set
-# CONFIG_PLATFORM_TYPE_omap3_am33xx is not set
-# CONFIG_PLATFORM_TYPE_rpi_b is not set
-# CONFIG_PLATFORM_TYPE_rv_vexpress_a15 is not set
-# CONFIG_PLATFORM_TYPE_imx51 is not set
-# CONFIG_PLATFORM_TYPE_omap3evm is not set
+# CONFIG_PLATFORM_TYPE_armada38x is not set
# CONFIG_PLATFORM_TYPE_beagleboard is not set
+# CONFIG_PLATFORM_TYPE_cubieboard2 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_rv_vexpress is not set
-# CONFIG_PLATFORM_TYPE_rpi_a is not set
+# CONFIG_PLATFORM_TYPE_imx28 is not set
+# CONFIG_PLATFORM_TYPE_imx35 is not set
+# CONFIG_PLATFORM_TYPE_imx51 is not set
+# CONFIG_PLATFORM_TYPE_imx6 is not set
+# CONFIG_PLATFORM_TYPE_imx6ul is not set
# CONFIG_PLATFORM_TYPE_integrator is not set
+# CONFIG_PLATFORM_TYPE_kirkwood is not set
+# CONFIG_PLATFORM_TYPE_ls1021atwr is not set
+# CONFIG_PLATFORM_TYPE_omap3_am33xx is not set
+# CONFIG_PLATFORM_TYPE_omap3evm is not set
+# CONFIG_PLATFORM_TYPE_omap5 is not set
+CONFIG_PLATFORM_TYPE_pandaboard=y
+# CONFIG_PLATFORM_TYPE_parallella is not set
+# CONFIG_PLATFORM_TYPE_rpi_a is not set
+# CONFIG_PLATFORM_TYPE_rpi_b is not set
+# 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_zedboard is not set
# CONFIG_PLATFORM_TYPE_custom is not set
CONFIG_PLATFORM_TYPE="pandaboard"
# CONFIG_USE_DROPS_STDDIR is not set
@@ -64,7 +72,7 @@ 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_GCC_ENABLE_STACK_PROTECTOR is not set
# CONFIG_BID_BUILD_DOC is not set
# CONFIG_RELEASE_MODE is not set
CONFIG_MAKECONFS_ADD=""
diff --git a/repos/base-foc/config/pbxa9.kernel b/repos/base-foc/config/pbxa9.kernel
index 398931d0b..63a9f3fdd 100644
--- a/repos/base-foc/config/pbxa9.kernel
+++ b/repos/base-foc/config/pbxa9.kernel
@@ -2,6 +2,10 @@
# Automatically generated file; DO NOT EDIT.
# Fiasco configuration
#
+CONFIG_HAS_FPU_OPTION=y
+CONFIG_HAS_VIRT_OBJ_SPACE_OPTION=y
+CONFIG_HAS_SERIAL_OPTION=y
+CONFIG_HAS_MP_OPTION=y
#
# Target configuration
@@ -9,18 +13,27 @@
# CONFIG_IA32 is not set
# CONFIG_AMD64 is not set
CONFIG_ARM=y
+# CONFIG_MIPS is not set
+# CONFIG_PF_ARMADA38X is not set
+# CONFIG_PF_BCM2835 is not set
+# CONFIG_PF_EXYNOS is not set
# CONFIG_PF_IMX is not set
+# CONFIG_PF_INTEGRATOR is not set
+# CONFIG_PF_KIRKWOOD is not set
+# CONFIG_PF_LS1021A is not set
+# CONFIG_PF_OMAP is not set
CONFIG_PF_REALVIEW=y
# CONFIG_PF_S3C2410 is not set
-# CONFIG_PF_TEGRA is not set
-# CONFIG_PF_OMAP is not set
# CONFIG_PF_SA1100 is not set
+# CONFIG_PF_SUNXI is not set
+# CONFIG_PF_TEGRA is not set
# CONFIG_PF_XSCALE is not set
-# CONFIG_PF_EXYNOS is not set
-# CONFIG_PF_KIRKWOOD is not set
-# CONFIG_PF_INTEGRATOR is not set
-# CONFIG_PF_BCM2835 is not set
+# CONFIG_PF_ZYNQ is not set
CONFIG_BSP_NAME="realview"
+CONFIG_CAN_ARM_CPU_CORTEX_A9=y
+CONFIG_CAN_ARM_CACHE_L2CXX0=y
+CONFIG_ARM_V7=y
+CONFIG_ARM_V6PLUS=y
# CONFIG_PF_REALVIEW_EB is not set
# CONFIG_PF_REALVIEW_PB11MP is not set
CONFIG_PF_REALVIEW_PBX=y
@@ -30,23 +43,21 @@ CONFIG_PF_REALVIEW_PBX=y
CONFIG_PF_REALVIEW_RAM_PHYS_BASE_0x7=y
CONFIG_PF_REALVIEW_RAM_PHYS_BASE=0x70000000
CONFIG_ABI_VF=y
-CONFIG_PF_ARM_MP_CAPABLE=y
-CONFIG_CAN_ARM_CPU_CORTEX_A9=y
-CONFIG_CAN_ARM_CACHE_L2CXX0=y
CONFIG_ARM_CORTEX_A9=y
+CONFIG_FPU=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_ARM_CACHE_L2CXX0=y
# CONFIG_ARM_ENABLE_SWP is not set
-# CONFIG_ARM_CACHE_L2CXX0 is not set
-CONFIG_FPU=y
CONFIG_ARM_CPU_ERRATA=y
#
# Kernel options
#
# CONFIG_MP is not set
+# CONFIG_CONTEXT_8K is not set
CONFIG_CONTEXT_4K=y
# CONFIG_FINE_GRAINED_CPUTIME is not set
CONFIG_SCHED_FIXED_PRIO=y
@@ -63,14 +74,17 @@ CONFIG_NO_FRAME_PTR=y
CONFIG_SERIAL=y
CONFIG_JDB=y
CONFIG_JDB_LOGGING=y
-CONFIG_JDB_DISASM=y
-# CONFIG_JDB_GZIP is not set
-# CONFIG_VMEM_ALLOC_TEST is not set
-# CONFIG_DEBUG_KERNEL_PAGE_FAULTS is not set
+# CONFIG_JDB_ACCOUNTING is not set
# CONFIG_WARN_NONE is not set
CONFIG_WARN_WARNING=y
# CONFIG_WARN_ANY is not set
+#
+# ARM debugging options
+#
+# CONFIG_VMEM_ALLOC_TEST is not set
+# CONFIG_DEBUG_KERNEL_PAGE_FAULTS is not set
+
#
# Compiling
#
@@ -83,8 +97,6 @@ CONFIG_LABEL=""
# CONFIG_EXPERIMENTAL is not set
CONFIG_PERF_CNT=y
CONFIG_BIT32=y
-CONFIG_ARM_V7=y
-CONFIG_ARM_V6PLUS=y
CONFIG_WARN_LEVEL=1
CONFIG_XARCH="arm"
CONFIG_ABI="vf"
diff --git a/repos/base-foc/config/pbxa9.user b/repos/base-foc/config/pbxa9.user
index f0d52d935..0b0f686c2 100644
--- a/repos/base-foc/config/pbxa9.user
+++ b/repos/base-foc/config/pbxa9.user
@@ -2,15 +2,16 @@
# Automatically generated file; DO NOT EDIT.
# L4Re Configuration
#
-# CONFIG_BUILD_ARCH_x86 is not set
+CONFIG_ARCH_ENABLE_STACK_PROTECTOR=y
# CONFIG_BUILD_ARCH_amd64 is not set
CONFIG_BUILD_ARCH_arm=y
+# CONFIG_BUILD_ARCH_mips is not set
# CONFIG_BUILD_ARCH_ppc32 is not set
# CONFIG_BUILD_ARCH_sparc is not set
+# CONFIG_BUILD_ARCH_x86 is not set
CONFIG_BUILD_ARCH="arm"
CONFIG_BUILD_ABI_l4f=y
CONFIG_BUILD_ABI="l4f"
-CONFIG_CPU="armv7a"
# CONFIG_CPU_ARM_ARMV4 is not set
# CONFIG_CPU_ARM_ARMV4T is not set
# CONFIG_CPU_ARM_ARMV5 is not set
@@ -20,30 +21,37 @@ CONFIG_CPU="armv7a"
# CONFIG_CPU_ARM_ARMV6T2 is not set
# CONFIG_CPU_ARM_ARMV6ZK is not set
CONFIG_CPU_ARM_ARMV7A=y
-# CONFIG_CPU_ARM_ARMV7R is not set
+CONFIG_CPU="armv7a"
CONFIG_CPU_ARMV6KPLUS=y
CONFIG_CPU_ARMV6PLUS=y
-# CONFIG_PLATFORM_TYPE_imx53 is not set
-# CONFIG_PLATFORM_TYPE_imx35 is not set
-CONFIG_PLATFORM_TYPE_rv_pbx=y
-# CONFIG_PLATFORM_TYPE_exynos5 is not set
-# CONFIG_PLATFORM_TYPE_rv is not set
-# CONFIG_PLATFORM_TYPE_kirkwood is not set
-# CONFIG_PLATFORM_TYPE_pandaboard is not set
-# CONFIG_PLATFORM_TYPE_tegra3 is not set
-# CONFIG_PLATFORM_TYPE_tegra2 is not set
-# CONFIG_PLATFORM_TYPE_imx6 is not set
-# CONFIG_PLATFORM_TYPE_exynos4 is not set
-# CONFIG_PLATFORM_TYPE_omap3_am33xx is not set
-# CONFIG_PLATFORM_TYPE_rpi_b is not set
-# CONFIG_PLATFORM_TYPE_rv_vexpress_a15 is not set
-# CONFIG_PLATFORM_TYPE_imx51 is not set
-# CONFIG_PLATFORM_TYPE_omap3evm is not set
+# CONFIG_PLATFORM_TYPE_armada38x is not set
# CONFIG_PLATFORM_TYPE_beagleboard is not set
+# CONFIG_PLATFORM_TYPE_cubieboard2 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_rv_vexpress is not set
-# CONFIG_PLATFORM_TYPE_rpi_a is not set
+# CONFIG_PLATFORM_TYPE_imx28 is not set
+# CONFIG_PLATFORM_TYPE_imx35 is not set
+# CONFIG_PLATFORM_TYPE_imx51 is not set
+# CONFIG_PLATFORM_TYPE_imx6 is not set
+# CONFIG_PLATFORM_TYPE_imx6ul is not set
# CONFIG_PLATFORM_TYPE_integrator is not set
+# CONFIG_PLATFORM_TYPE_kirkwood is not set
+# CONFIG_PLATFORM_TYPE_ls1021atwr is not set
+# CONFIG_PLATFORM_TYPE_omap3_am33xx is not set
+# CONFIG_PLATFORM_TYPE_omap3evm is not set
+# CONFIG_PLATFORM_TYPE_omap5 is not set
+# CONFIG_PLATFORM_TYPE_pandaboard is not set
+# CONFIG_PLATFORM_TYPE_parallella is not set
+# CONFIG_PLATFORM_TYPE_rpi_a is not set
+# CONFIG_PLATFORM_TYPE_rpi_b is not set
+# CONFIG_PLATFORM_TYPE_rv is not set
+CONFIG_PLATFORM_TYPE_rv_pbx=y
+# 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_zedboard is not set
# CONFIG_PLATFORM_TYPE_custom is not set
CONFIG_PLATFORM_TYPE="rv_pbx"
# CONFIG_USE_DROPS_STDDIR is not set
@@ -64,7 +72,7 @@ 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_GCC_ENABLE_STACK_PROTECTOR is not set
# CONFIG_BID_BUILD_DOC is not set
# CONFIG_RELEASE_MODE is not set
CONFIG_MAKECONFS_ADD=""
diff --git a/repos/base-foc/config/rpi.kernel b/repos/base-foc/config/rpi.kernel
index 3e8b639b6..57c9e8935 100644
--- a/repos/base-foc/config/rpi.kernel
+++ b/repos/base-foc/config/rpi.kernel
@@ -2,6 +2,9 @@
# Automatically generated file; DO NOT EDIT.
# Fiasco configuration
#
+CONFIG_HAS_FPU_OPTION=y
+CONFIG_HAS_VIRT_OBJ_SPACE_OPTION=y
+CONFIG_HAS_SERIAL_OPTION=y
#
# Target configuration
@@ -9,35 +12,44 @@
# 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_MIPS is not set
+# CONFIG_PF_ARMADA38X is not set
CONFIG_PF_BCM2835=y
+# CONFIG_PF_EXYNOS is not set
+# CONFIG_PF_IMX is not set
+# CONFIG_PF_INTEGRATOR is not set
+# CONFIG_PF_KIRKWOOD is not set
+# CONFIG_PF_LS1021A is not set
+# CONFIG_PF_OMAP is not set
+# CONFIG_PF_REALVIEW is not set
+# CONFIG_PF_S3C2410 is not set
+# CONFIG_PF_SA1100 is not set
+# CONFIG_PF_SUNXI is not set
+# CONFIG_PF_TEGRA is not set
+# CONFIG_PF_XSCALE is not set
+# CONFIG_PF_ZYNQ is not set
CONFIG_BSP_NAME="bcm2835"
-CONFIG_ABI_VF=y
CONFIG_CAN_ARM_CPU_1176=y
+CONFIG_ARM_V6=y
+CONFIG_ARM_V6PLUS=y
+CONFIG_ABI_VF=y
CONFIG_ARM_1176=y
+# CONFIG_FPU is not set
# 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_8K is not set
CONFIG_CONTEXT_4K=y
# CONFIG_FINE_GRAINED_CPUTIME is not set
CONFIG_SCHED_FIXED_PRIO=y
+CONFIG_VIRT_OBJ_SPACE=y
#
# Debugging
@@ -50,14 +62,17 @@ CONFIG_NO_FRAME_PTR=y
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_JDB_ACCOUNTING is not set
# CONFIG_WARN_NONE is not set
CONFIG_WARN_WARNING=y
# CONFIG_WARN_ANY is not set
+#
+# ARM debugging options
+#
+# CONFIG_VMEM_ALLOC_TEST is not set
+# CONFIG_DEBUG_KERNEL_PAGE_FAULTS is not set
+
#
# Compiling
#
@@ -70,8 +85,6 @@ 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"
\ No newline at end of file
+CONFIG_ABI="vf"
diff --git a/repos/base-foc/config/rpi.user b/repos/base-foc/config/rpi.user
index 1e34ef21a..b7d321172 100644
--- a/repos/base-foc/config/rpi.user
+++ b/repos/base-foc/config/rpi.user
@@ -2,15 +2,16 @@
# Automatically generated file; DO NOT EDIT.
# L4Re Configuration
#
-# CONFIG_BUILD_ARCH_x86 is not set
+CONFIG_ARCH_ENABLE_STACK_PROTECTOR=y
# CONFIG_BUILD_ARCH_amd64 is not set
CONFIG_BUILD_ARCH_arm=y
+# CONFIG_BUILD_ARCH_mips is not set
# CONFIG_BUILD_ARCH_ppc32 is not set
# CONFIG_BUILD_ARCH_sparc is not set
+# CONFIG_BUILD_ARCH_x86 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
@@ -20,21 +21,27 @@ 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="armv6"
CONFIG_CPU_ARMV6PLUS=y
+# CONFIG_PLATFORM_TYPE_armada38x is not set
# CONFIG_PLATFORM_TYPE_beagleboard is not set
+# CONFIG_PLATFORM_TYPE_cubieboard2 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_imx28 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_imx6ul is not set
# CONFIG_PLATFORM_TYPE_integrator is not set
# CONFIG_PLATFORM_TYPE_kirkwood is not set
+# CONFIG_PLATFORM_TYPE_ls1021atwr is not set
# CONFIG_PLATFORM_TYPE_omap3_am33xx is not set
# CONFIG_PLATFORM_TYPE_omap3evm is not set
+# CONFIG_PLATFORM_TYPE_omap5 is not set
# CONFIG_PLATFORM_TYPE_pandaboard is not set
+# CONFIG_PLATFORM_TYPE_parallella is not set
# CONFIG_PLATFORM_TYPE_rpi_a is not set
CONFIG_PLATFORM_TYPE_rpi_b=y
# CONFIG_PLATFORM_TYPE_rv is not set
@@ -43,6 +50,7 @@ CONFIG_PLATFORM_TYPE_rpi_b=y
# 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_zedboard is not set
# CONFIG_PLATFORM_TYPE_custom is not set
CONFIG_PLATFORM_TYPE="rpi_b"
# CONFIG_USE_DROPS_STDDIR is not set
@@ -63,7 +71,9 @@ 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_GCC_ENABLE_STACK_PROTECTOR=y
+# CONFIG_BID_GCC_STACK_PROTECTOR_ALL is not set
+CONFIG_BID_GCC_STACK_PROTECTOR=y
# CONFIG_BID_BUILD_DOC is not set
# CONFIG_RELEASE_MODE is not set
CONFIG_MAKECONFS_ADD=""
diff --git a/repos/base-foc/config/x86_32.kernel b/repos/base-foc/config/x86_32.kernel
index 06e742800..3a40e76e9 100644
--- a/repos/base-foc/config/x86_32.kernel
+++ b/repos/base-foc/config/x86_32.kernel
@@ -2,6 +2,14 @@
# Automatically generated file; DO NOT EDIT.
# Fiasco configuration
#
+CONFIG_HAS_VIRT_OBJ_SPACE_OPTION=y
+CONFIG_HAS_SERIAL_OPTION=y
+CONFIG_HAS_WATCHDOG_OPTION=y
+CONFIG_HAS_JDB_DISASM_OPTION=y
+CONFIG_HAS_JDB_GZIP_OPTION=y
+CONFIG_HAS_IOMMU_OPTION=y
+CONFIG_HAS_MP_OPTION=y
+CONFIG_HAS_CPU_VIRT=y
#
# Target configuration
@@ -9,6 +17,7 @@
CONFIG_IA32=y
# CONFIG_AMD64 is not set
# CONFIG_ARM is not set
+# CONFIG_MIPS is not set
CONFIG_PF_PC=y
# CONFIG_PF_UX is not set
CONFIG_ABI_VF=y
@@ -20,6 +29,7 @@ CONFIG_IA32_586=y
# CONFIG_IA32_P4 is not set
# CONFIG_IA32_PM is not set
# CONFIG_IA32_CORE2 is not set
+# CONFIG_IA32_CORE_I is not set
# CONFIG_IA32_ATOM is not set
# CONFIG_IA32_K6 is not set
# CONFIG_IA32_K7 is not set
@@ -35,10 +45,12 @@ CONFIG_REGPARM3=y
#
CONFIG_MP=y
CONFIG_MP_MAX_CPUS=4
+# CONFIG_CONTEXT_8K is not set
CONFIG_CONTEXT_4K=y
# CONFIG_SYNC_TSC is not set
# CONFIG_FINE_GRAINED_CPUTIME is not set
CONFIG_SCHED_FIXED_PRIO=y
+# CONFIG_IOMMU is not set
CONFIG_VIRT_OBJ_SPACE=y
#
@@ -46,7 +58,7 @@ CONFIG_VIRT_OBJ_SPACE=y
#
CONFIG_INLINE=y
# CONFIG_NDEBUG is not set
-CONFIG_NO_FRAME_PTR=y
+# CONFIG_NO_FRAME_PTR is not set
# CONFIG_STACK_DEPTH is not set
# CONFIG_LIST_ALLOC_SANITY is not set
# CONFIG_BEFORE_IRET_SANITY is not set
@@ -60,7 +72,6 @@ CONFIG_JDB_GZIP=y
# CONFIG_JDB_ACCOUNTING is not set
# CONFIG_JDB_MISC is not set
CONFIG_POWERSAVE_GETCHAR=y
-CONFIG_USER_SINGLE_STEP=y
# CONFIG_WARN_NONE is not set
CONFIG_WARN_WARNING=y
# CONFIG_WARN_ANY is not set
diff --git a/repos/base-foc/config/x86_32.user b/repos/base-foc/config/x86_32.user
index 472d9f696..39d762565 100644
--- a/repos/base-foc/config/x86_32.user
+++ b/repos/base-foc/config/x86_32.user
@@ -2,14 +2,17 @@
# Automatically generated file; DO NOT EDIT.
# L4Re Configuration
#
-CONFIG_BUILD_ARCH_x86=y
+CONFIG_ARCH_ENABLE_STACK_PROTECTOR=y
# CONFIG_BUILD_ARCH_amd64 is not set
# CONFIG_BUILD_ARCH_arm is not set
+# CONFIG_BUILD_ARCH_mips is not set
# CONFIG_BUILD_ARCH_ppc32 is not set
# CONFIG_BUILD_ARCH_sparc is not set
+CONFIG_BUILD_ARCH_x86=y
CONFIG_BUILD_ARCH="x86"
CONFIG_BUILD_ABI_l4f=y
CONFIG_BUILD_ABI="l4f"
+CONFIG_CPU="586"
CONFIG_CPU_X86_586=y
# CONFIG_CPU_X86_PENTIUM is not set
# CONFIG_CPU_X86_PENTIUMMMX is not set
@@ -28,8 +31,6 @@ CONFIG_CPU_X86_586=y
# CONFIG_CPU_X86_K8 is not set
# CONFIG_CPU_X86_K10 is not set
# CONFIG_CPU_X86_OPTERON is not set
-CONFIG_CPU="586"
-# CONFIG_PLATFORM_TYPE_imx53 is not set
CONFIG_PLATFORM_TYPE_pc=y
# CONFIG_PLATFORM_TYPE_custom is not set
CONFIG_PLATFORM_TYPE="pc"
@@ -51,7 +52,7 @@ 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_GCC_ENABLE_STACK_PROTECTOR is not set
# CONFIG_BID_BUILD_DOC is not set
# CONFIG_RELEASE_MODE is not set
CONFIG_MAKECONFS_ADD=""
diff --git a/repos/base-foc/config/x86_64.kernel b/repos/base-foc/config/x86_64.kernel
index d85a5204c..07159da20 100644
--- a/repos/base-foc/config/x86_64.kernel
+++ b/repos/base-foc/config/x86_64.kernel
@@ -2,6 +2,14 @@
# Automatically generated file; DO NOT EDIT.
# Fiasco configuration
#
+CONFIG_HAS_VIRT_OBJ_SPACE_OPTION=y
+CONFIG_HAS_SERIAL_OPTION=y
+CONFIG_HAS_WATCHDOG_OPTION=y
+CONFIG_HAS_JDB_DISASM_OPTION=y
+CONFIG_HAS_JDB_GZIP_OPTION=y
+CONFIG_HAS_IOMMU_OPTION=y
+CONFIG_HAS_MP_OPTION=y
+CONFIG_HAS_CPU_VIRT=y
#
# Target configuration
@@ -9,10 +17,12 @@
# CONFIG_IA32 is not set
CONFIG_AMD64=y
# CONFIG_ARM is not set
+# CONFIG_MIPS is not set
CONFIG_PF_PC=y
CONFIG_ABI_VF=y
-CONFIG_AMD64_K8=y
+# CONFIG_AMD64_K8 is not set
# CONFIG_AMD64_CORE2 is not set
+CONFIG_AMD64_CORE_I=y
# CONFIG_AMD64_ATOM is not set
# CONFIG_AMD64_K10 is not set
# CONFIG_CPU_VIRT is not set
@@ -24,11 +34,13 @@ CONFIG_SCHED_APIC=y
#
CONFIG_MP=y
CONFIG_MP_MAX_CPUS=4
-CONFIG_CONTEXT_4K=y
+CONFIG_CONTEXT_8K=y
+# CONFIG_SYNC_TSC is not set
# CONFIG_FINE_GRAINED_CPUTIME is not set
CONFIG_SCHED_FIXED_PRIO=y
# CONFIG_SCHED_WFQ is not set
# CONFIG_SCHED_FP_WFQ is not set
+# CONFIG_IOMMU is not set
# CONFIG_DISABLE_VIRT_OBJ_SPACE is not set
CONFIG_VIRT_OBJ_SPACE=y
@@ -48,6 +60,7 @@ CONFIG_JDB=y
CONFIG_JDB_LOGGING=y
CONFIG_JDB_DISASM=y
CONFIG_JDB_GZIP=y
+# CONFIG_JDB_ACCOUNTING is not set
CONFIG_JDB_MISC=y
CONFIG_POWERSAVE_GETCHAR=y
# CONFIG_WARN_NONE is not set
@@ -68,5 +81,5 @@ CONFIG_PERF_CNT=y
CONFIG_BIT64=y
CONFIG_WARN_LEVEL=1
CONFIG_XARCH="amd64"
-CONFIG_IA32_TARGET="AMD Opteron"
+CONFIG_IA32_TARGET="Intel Core-i"
CONFIG_ABI="vf"
diff --git a/repos/base-foc/config/x86_64.user b/repos/base-foc/config/x86_64.user
index 2d52587e6..62d149d80 100644
--- a/repos/base-foc/config/x86_64.user
+++ b/repos/base-foc/config/x86_64.user
@@ -2,19 +2,20 @@
# Automatically generated file; DO NOT EDIT.
# L4Re Configuration
#
-# CONFIG_BUILD_ARCH_x86 is not set
+CONFIG_ARCH_ENABLE_STACK_PROTECTOR=y
CONFIG_BUILD_ARCH_amd64=y
# CONFIG_BUILD_ARCH_arm is not set
+# CONFIG_BUILD_ARCH_mips is not set
# CONFIG_BUILD_ARCH_ppc32 is not set
# CONFIG_BUILD_ARCH_sparc is not set
+# CONFIG_BUILD_ARCH_x86 is not set
CONFIG_BUILD_ARCH="amd64"
CONFIG_BUILD_ABI_l4f=y
CONFIG_BUILD_ABI="l4f"
+CONFIG_CPU="K8"
CONFIG_CPU_X86_K8=y
# CONFIG_CPU_X86_K10 is not set
# CONFIG_CPU_X86_OPTERON is not set
-CONFIG_CPU="K8"
-# CONFIG_PLATFORM_TYPE_imx53 is not set
CONFIG_PLATFORM_TYPE_pc=y
# CONFIG_PLATFORM_TYPE_custom is not set
CONFIG_PLATFORM_TYPE="pc"
@@ -36,7 +37,9 @@ 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_GCC_ENABLE_STACK_PROTECTOR=y
+# CONFIG_BID_GCC_STACK_PROTECTOR_ALL is not set
+CONFIG_BID_GCC_STACK_PROTECTOR=y
# CONFIG_BID_BUILD_DOC is not set
# CONFIG_RELEASE_MODE is not set
CONFIG_MAKECONFS_ADD=""
diff --git a/repos/base-foc/include/foc/native_capability.h b/repos/base-foc/include/foc/native_capability.h
index 49f7b3454..d07994f84 100644
--- a/repos/base-foc/include/foc/native_capability.h
+++ b/repos/base-foc/include/foc/native_capability.h
@@ -29,13 +29,14 @@ namespace Fiasco {
TASK_CAP = L4_BASE_TASK_CAP, /* use the same task cap selector
like L4Re for compatibility in
L4Linux */
+ DEBUG_CAP = L4_BASE_DEBUGGER_CAP,
/*
* To not clash with other L4Re cap selector constants (e.g.: L4Linux)
- * leave the following selectors (2-7) empty
+ * leave the following selectors (2-8) empty
*/
- PARENT_CAP = 0x8UL << L4_CAP_SHIFT, /* cap to parent session */
+ PARENT_CAP = 0xbUL << L4_CAP_SHIFT, /* cap to parent session */
/*
* Each thread has a designated slot in the core controlled cap
@@ -43,7 +44,7 @@ namespace Fiasco {
* its irq capability (for locks), and the capability to its pager
* gate are stored
*/
- THREAD_AREA_BASE = 0x9UL << L4_CAP_SHIFT, /* offset to thread area */
+ THREAD_AREA_BASE = 0xcUL << L4_CAP_SHIFT, /* offset to thread area */
THREAD_AREA_SLOT = 0x3UL << L4_CAP_SHIFT, /* size of one thread slot */
THREAD_GATE_CAP = 0, /* offset to the ipc gate
cap selector in the slot */
diff --git a/repos/base-foc/lib/mk/kernel-foc.inc b/repos/base-foc/lib/mk/kernel-foc.inc
index 097686636..976c8b211 100644
--- a/repos/base-foc/lib/mk/kernel-foc.inc
+++ b/repos/base-foc/lib/mk/kernel-foc.inc
@@ -9,14 +9,14 @@ unexport KERNEL
$(FOC_BUILD_DIR):
$(VERBOSE_MK) set -o pipefail; \
- $(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
+ $(MAKE) CROSS_COMPILE="$(CROSS_DEV_PREFIX)" \
$(VERBOSE_DIR) -C $(FOC_SRC) BUILDDIR=$@ \
$(KERNEL_BUILD_OUTPUT_FILTER)
$(VERBOSE)cp $(KERNEL_CONFIG) $@/globalconfig.out
$(FOC): $(FOC_BUILD_DIR)
$(VERBOSE_MK) set -o pipefail; \
- $(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
+ $(MAKE) CROSS_COMPILE="$(CROSS_DEV_PREFIX)" \
CC="$(CC)" CXX="$(CXX)" \
$(VERBOSE_DIR) -C $(FOC_BUILD_DIR) \
$(KERNEL_BUILD_OUTPUT_FILTER)
@@ -31,11 +31,13 @@ $(FOC): $(FOC_BUILD_DIR)
LIBS += syscall-foc
-PKGS := uclibc-headers \
- uclibc-minimal \
- l4util \
- cxx \
- sigma0 \
+PKGS := l4re-core/crtn \
+ l4re-core/uclibc-headers \
+ l4re-core/l4util \
+ l4re-core/cxx \
+ l4re-core/uclibc-minimal \
+ l4re-core/libstdc++-headers \
+ l4re-core/sigma0 \
drivers-frst/include drivers-frst/of drivers-frst/uart \
bootstrap
diff --git a/repos/base-foc/lib/mk/l4_pkg.inc b/repos/base-foc/lib/mk/l4_pkg.inc
index 3d07c0bc5..9987572ce 100644
--- a/repos/base-foc/lib/mk/l4_pkg.inc
+++ b/repos/base-foc/lib/mk/l4_pkg.inc
@@ -28,7 +28,7 @@ ifeq ($(L4_BUILD_ARCH),)
$(error L4_BUILD_ARCH undefined, architecture not supported)
endif
-L4_BUILD_OPT = SYSTEM_TARGET=$(CROSS_DEV_PREFIX)
+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))
diff --git a/repos/base-foc/lib/mk/spec/arm/syscall-foc.inc b/repos/base-foc/lib/mk/spec/arm/syscall-foc.inc
index a61491387..ee0595511 100644
--- a/repos/base-foc/lib/mk/spec/arm/syscall-foc.inc
+++ b/repos/base-foc/lib/mk/spec/arm/syscall-foc.inc
@@ -10,9 +10,9 @@ SRC_C += utcb.c
SRC_S += atomic_ops_s.S
utcb.c:
- $(VERBOSE)ln -sf $(L4_BUILD_DIR)/source/pkg/l4sys/lib/src/utcb.c
+ $(VERBOSE)ln -sf $(L4_BUILD_DIR)/source/pkg/l4re-core/l4sys/lib/src/utcb.c
atomic_ops_s.S:
- $(VERBOSE)ln -sf $(L4_BUILD_DIR)/source/pkg/l4sys/lib/src/ARCH-arm/atomic_ops_s.S
+ $(VERBOSE)ln -sf $(L4_BUILD_DIR)/source/pkg/l4re-core/l4sys/lib/src/ARCH-arm/atomic_ops_s.S
utcb.c atomic_ops_s.S: $(PKG_TAGS)
diff --git a/repos/base-foc/lib/mk/spec/x86/syscall-foc.inc b/repos/base-foc/lib/mk/spec/x86/syscall-foc.inc
index 935d5cf2f..947fa616f 100644
--- a/repos/base-foc/lib/mk/spec/x86/syscall-foc.inc
+++ b/repos/base-foc/lib/mk/spec/x86/syscall-foc.inc
@@ -4,9 +4,9 @@ SRC_S += syscalls_direct.S
include $(REP_DIR)/lib/mk/syscall-foc.inc
utcb.c:
- $(VERBOSE)ln -sf $(L4_BUILD_DIR)/source/pkg/l4sys/lib/src/utcb.c
+ $(VERBOSE)ln -sf $(L4_BUILD_DIR)/source/pkg/l4re-core/l4sys/lib/src/utcb.c
syscalls_direct.S:
- $(VERBOSE)ln -sf $(L4_BUILD_DIR)/source/pkg/l4sys/lib/src/ARCH-x86/syscalls_direct.S
+ $(VERBOSE)ln -sf $(L4_BUILD_DIR)/source/pkg/l4re-core/l4sys/lib/src/ARCH-x86/syscalls_direct.S
utcb.c syscalls_direct.S: $(PKG_TAGS)
diff --git a/repos/base-foc/lib/mk/syscall-foc.inc b/repos/base-foc/lib/mk/syscall-foc.inc
index 669dfb154..ead497fdd 100644
--- a/repos/base-foc/lib/mk/syscall-foc.inc
+++ b/repos/base-foc/lib/mk/syscall-foc.inc
@@ -39,15 +39,14 @@ $(L4_BUILD_DIR)/.kconfig:
$(VERBOSE_MK) set -o pipefail; \
MAKEFLAGS= $(MAKE) $(VERBOSE_DIR) -C $(L4_SRC_DIR)/l4 \
B=$(L4_BUILD_DIR) DROPSCONF_DEFCONFIG="$(L4_CONFIG)" \
- VERBOSE="$(VERBOSE)" SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
+ VERBOSE="$(VERBOSE)" CROSS_COMPILE="$(CROSS_DEV_PREFIX)" \
2>&1 | sed "s/^/ [l4build] /"
-PKGS := ldscripts \
- libgcc-pure \
- l4sys \
- libgcc \
- libsigma0 \
- libvcpu/include
+PKGS := l4re-core/ldscripts \
+ l4re-core/libgcc-pure \
+ l4re-core/l4sys \
+ l4re-core/libgcc \
+ l4re-core/libsigma0
include $(REP_DIR)/lib/mk/l4_pkg.inc
diff --git a/repos/base-foc/ports/foc.hash b/repos/base-foc/ports/foc.hash
index d5bcb4790..18f82b9c5 100644
--- a/repos/base-foc/ports/foc.hash
+++ b/repos/base-foc/ports/foc.hash
@@ -1 +1 @@
-e5e855ddfbdb87d4c2b64acacccd5f7a451395ea
+db44371239ad6769073fae0a3f2bd0ff107c399d
diff --git a/repos/base-foc/ports/foc.port b/repos/base-foc/ports/foc.port
index a2fd7b40a..27d04c94a 100644
--- a/repos/base-foc/ports/foc.port
+++ b/repos/base-foc/ports/foc.port
@@ -1,6 +1,6 @@
LICENSE := GPLv2
VERSION := git
DOWNLOADS := foc.git
-URL(foc) := http://github.com/cproc/foc.git
-REV(foc) := f201220aa686083d10805a91343b67629b62fe30
+URL(foc) := https://github.com/skalk/foc.git
+REV(foc) := c60f50987cdb2eb645caa63ab497f4f955256548
DIR(foc) := src/kernel/foc
diff --git a/repos/base-foc/src/core/include/platform_pd.h b/repos/base-foc/src/core/include/platform_pd.h
index 3328ae5f1..05eb69f9a 100644
--- a/repos/base-foc/src/core/include/platform_pd.h
+++ b/repos/base-foc/src/core/include/platform_pd.h
@@ -57,6 +57,7 @@ namespace Genode {
Cap_mapping _task;
Cap_mapping _parent;
+ Cap_mapping _debug;
Platform_thread *_threads[THREAD_MAX];
public:
diff --git a/repos/base-foc/src/core/include/util.h b/repos/base-foc/src/core/include/util.h
index b8c5f4f03..95dc98e43 100644
--- a/repos/base-foc/src/core/include/util.h
+++ b/repos/base-foc/src/core/include/util.h
@@ -19,6 +19,7 @@
/* Genode includes */
#include
+#include
#include
#include
@@ -28,27 +29,16 @@
/* Fiasco includes */
namespace Fiasco {
#include
-#include
#include
}
namespace Genode {
- inline void log_event(const char *s)
- {
- Fiasco::fiasco_tbuf_log(s);
- }
-
- inline void log_event(const char *s, unsigned v1, unsigned v2, unsigned v3)
- {
- Fiasco::fiasco_tbuf_log_3val(s, v1, v2, v3);
- }
-
inline void panic(const char *s)
{
- using namespace Fiasco;
- outstring(s);
- enter_kdebug("> panic <");
+ raw(s);
+ raw("> panic <");
+ while (1) ;
}
inline void touch_ro(const void *addr, unsigned size)
@@ -75,25 +65,10 @@ namespace Genode {
touch_read_write(bptr);
}
- inline addr_t trunc_page(addr_t addr)
- {
- using namespace Fiasco;
- return l4_trunc_page(addr);
- }
+ inline addr_t trunc_page(addr_t addr) { return Fiasco::l4_trunc_page(addr); }
+ inline addr_t round_page(addr_t addr) { return Fiasco::l4_round_page(addr); }
- inline addr_t round_page(addr_t addr)
- {
- using namespace Fiasco;
- return l4_round_page(addr);
- }
-
- inline addr_t round_superpage(addr_t addr)
- {
- using namespace Fiasco;
- return (addr + L4_SUPERPAGESIZE-1) & L4_SUPERPAGEMASK;
- }
-
- constexpr size_t get_super_page_size() { return L4_SUPERPAGESIZE; }
+ constexpr size_t get_super_page_size() { return L4_SUPERPAGESIZE; }
constexpr size_t get_super_page_size_log2() { return L4_LOG2_SUPERPAGESIZE; }
inline addr_t map_src_addr(addr_t core_local_addr, addr_t phys_addr) {
diff --git a/repos/base-foc/src/core/irq_session_component.cc b/repos/base-foc/src/core/irq_session_component.cc
index a55f22a45..2694e944a 100644
--- a/repos/base-foc/src/core/irq_session_component.cc
+++ b/repos/base-foc/src/core/irq_session_component.cc
@@ -86,48 +86,48 @@ bool Genode::Irq_object::associate(unsigned irq, bool msi,
Irq_session::Trigger trigger,
Irq_session::Polarity polarity)
{
- if (msi)
- /*
- * Local APIC address, See Intel x86 Spec - Section MSI 10.11.
- *
- * XXX local Apic ID encoding missing - address is constructed
- * assuming that local APIC id of boot CPU is 0 XXX
- */
- _msi_addr = 0xfee00000UL;
+ using namespace Fiasco;
_irq = irq;
_trigger = trigger;
_polarity = polarity;
- using namespace Fiasco;
+ if (msi) irq |= L4_ICU_FLAG_MSI;
+ else
+ /* set interrupt mode */
+ Platform::setup_irq_mode(irq, _trigger, _polarity);
+
if (l4_error(l4_factory_create_irq(L4_BASE_FACTORY_CAP, _capability()))) {
error("l4_factory_create_irq failed!");
return false;
}
-
- unsigned long gsi = _irq;
- if (_msi_addr)
- gsi |= L4_ICU_FLAG_MSI;
-
- if (l4_error(l4_icu_bind(L4_BASE_ICU_CAP, gsi, _capability()))) {
+ if (l4_error(l4_icu_bind(L4_BASE_ICU_CAP, irq, _capability()))) {
error("Binding IRQ ", _irq, " to the ICU failed");
return false;
}
- if (!_msi_addr)
- /* set interrupt mode */
- Platform::setup_irq_mode(gsi, _trigger, _polarity);
-
if (l4_error(l4_irq_attach(_capability(), reinterpret_cast(this),
Interrupt_handler::handler_cap()))) {
error("cannot attach to IRQ ", _irq);
return false;
}
- if (_msi_addr && l4_error(l4_icu_msi_info(L4_BASE_ICU_CAP, gsi,
- &_msi_data))) {
- error("cannot get MSI info");
- return false;
+ if (msi) {
+ /**
+ * src_id represents bit 64-84 of the Interrupt Remap Table Entry Format
+ * for Remapped Interrupts, reference section 9.10 of the
+ * Intel ® Virtualization Technology for Directed I/O
+ * Architecture Specification
+ */
+ unsigned src_id = 0x0;
+ Fiasco::l4_icu_msi_info_t info = l4_icu_msi_info_t();
+ if (l4_error(l4_icu_msi_info(L4_BASE_ICU_CAP, irq,
+ src_id, &info))) {
+ error("cannot get MSI info");
+ return false;
+ }
+ _msi_addr = info.msi_addr;
+ _msi_data = info.msi_data;
}
return true;
@@ -161,14 +161,13 @@ Genode::Irq_object::~Irq_object()
using namespace Fiasco;
- unsigned long gsi = _irq;
- if (_msi_addr)
- gsi |= L4_ICU_FLAG_MSI;
+ unsigned long irq = _irq;
+ if (_msi_addr) irq |= L4_ICU_FLAG_MSI;
if (l4_error(l4_irq_detach(_capability())))
error("cannot detach IRQ");
- if (l4_error(l4_icu_unbind(L4_BASE_ICU_CAP, gsi, _capability())))
+ if (l4_error(l4_icu_unbind(L4_BASE_ICU_CAP, irq, _capability())))
error("cannot unbind IRQ");
cap_map()->remove(_cap);
@@ -182,27 +181,24 @@ Genode::Irq_object::~Irq_object()
Irq_session_component::Irq_session_component(Range_allocator *irq_alloc,
const char *args)
-:
- _irq_number(~0U), _irq_alloc(irq_alloc)
+: _irq_number(Arg_string::find_arg(args, "irq_number").long_value(-1)),
+ _irq_alloc(irq_alloc)
{
- Irq_args const irq_args(args);
-
long msi = Arg_string::find_arg(args, "device_config_phys").long_value(0);
if (msi) {
- if (msi_alloc.get(irq_args.irq_number(), 1)) {
- error("unavailable MSI ", irq_args.irq_number(), " requested");
+ if (msi_alloc.get(_irq_number, 1)) {
+ error("unavailable MSI ", _irq_number, " requested");
throw Service_denied();
}
- msi_alloc.set(irq_args.irq_number(), 1);
+ msi_alloc.set(_irq_number, 1);
} else {
- if (!irq_alloc || irq_alloc->alloc_addr(1, irq_args.irq_number()).error()) {
- error("unavailable IRQ ", irq_args.irq_number(), " requested");
+ if (!irq_alloc || irq_alloc->alloc_addr(1, _irq_number).error()) {
+ error("unavailable IRQ ", _irq_number, " requested");
throw Service_denied();
}
}
- _irq_number = irq_args.irq_number();
-
+ Irq_args const irq_args(args);
_irq_object.associate(_irq_number, msi, irq_args.trigger(),
irq_args.polarity());
}
@@ -233,7 +229,7 @@ void Irq_session_component::sigh(Genode::Signal_context_capability cap)
Genode::Irq_session::Info Irq_session_component::info()
{
- if (!_irq_object.msi_address() || !_irq_object.msi_value())
+ if (!_irq_object.msi_address())
return { .type = Genode::Irq_session::Info::Type::INVALID };
return {
diff --git a/repos/base-foc/src/core/platform_pd.cc b/repos/base-foc/src/core/platform_pd.cc
index e8f44fac2..9f4268c9a 100644
--- a/repos/base-foc/src/core/platform_pd.cc
+++ b/repos/base-foc/src/core/platform_pd.cc
@@ -69,8 +69,10 @@ bool Platform_pd::bind_thread(Platform_thread *thread)
thread->_irq.remote = cap_offset + THREAD_IRQ_CAP;
/* if it's no core-thread we have to map parent and pager gate cap */
- if (!thread->core_thread())
+ if (!thread->core_thread()) {
_task.map(_task.local.data()->kcap());
+ _debug.map(_task.local.data()->kcap());
+ }
/* inform thread about binding */
thread->bind(this);
@@ -105,6 +107,13 @@ void Platform_pd::assign_parent(Native_capability parent)
}
+static Core_cap_index & debug_cap()
+{
+ unsigned long id = platform_specific()->cap_id_alloc()->alloc();
+ static Cap_index * idx = cap_map()->insert(id, DEBUG_CAP);
+ return *reinterpret_cast(idx);
+}
+
Platform_pd::Platform_pd(Core_cap_index* i)
: _task(Native_capability(*i), TASK_CAP)
{
@@ -114,7 +123,7 @@ Platform_pd::Platform_pd(Core_cap_index* i)
Platform_pd::Platform_pd(Allocator *, char const *)
-: _task(true, TASK_CAP)
+: _task(true, TASK_CAP), _debug(debug_cap(), DEBUG_CAP)
{
for (unsigned i = 0; i < THREAD_MAX; i++)
_threads[i] = (Platform_thread*) 0;
diff --git a/repos/base-foc/src/include/base/internal/foc_assert.h b/repos/base-foc/src/include/base/internal/foc_assert.h
index 1f4c422a8..66232ecaa 100644
--- a/repos/base-foc/src/include/base/internal/foc_assert.h
+++ b/repos/base-foc/src/include/base/internal/foc_assert.h
@@ -17,7 +17,6 @@
/* Genode includes */
#include
-/* Fiasco includes */
namespace Fiasco {
#include
}
@@ -25,7 +24,7 @@ namespace Fiasco {
#define ASSERT(e, s) \
do { if (!(e)) { \
Genode::raw("assertion failed: ", s, " at ", __FILE__, ":", __LINE__); \
- enter_kdebug("ASSERT"); \
+ Fiasco::enter_kdebug("ASSERT"); \
} \
} while(0)
diff --git a/repos/base-foc/src/include/base/internal/lock_helper.h b/repos/base-foc/src/include/base/internal/lock_helper.h
index 44f223a03..95698358f 100644
--- a/repos/base-foc/src/include/base/internal/lock_helper.h
+++ b/repos/base-foc/src/include/base/internal/lock_helper.h
@@ -27,7 +27,6 @@
/* Fiasco.OC includes */
namespace Fiasco {
-#include
#include
#include
}
diff --git a/repos/base-foc/src/include/base/internal/raw_write_string.h b/repos/base-foc/src/include/base/internal/raw_write_string.h
index 4283bb7dd..10ed8b21c 100644
--- a/repos/base-foc/src/include/base/internal/raw_write_string.h
+++ b/repos/base-foc/src/include/base/internal/raw_write_string.h
@@ -14,18 +14,13 @@
#ifndef _INCLUDE__BASE__INTERNAL__RAW_WRITE_STRING_H_
#define _INCLUDE__BASE__INTERNAL__RAW_WRITE_STRING_H_
-/* Fiasco includes */
-namespace Fiasco {
-#include
-}
+#include
+#include "foc_assert.h"
namespace Genode {
- void raw_write_string(char const *str)
- {
- using namespace Fiasco;
- outstring(const_cast(str));
- }
+ void raw_write_string(char const *str) {
+ Fiasco::outstring(const_cast(str)); }
}
#endif /* _INCLUDE__BASE__INTERNAL__RAW_WRITE_STRING_H_ */
diff --git a/repos/base-foc/src/lib/base/cap_map.cc b/repos/base-foc/src/lib/base/cap_map.cc
index 57423b0d3..00fc54179 100644
--- a/repos/base-foc/src/lib/base/cap_map.cc
+++ b/repos/base-foc/src/lib/base/cap_map.cc
@@ -21,6 +21,33 @@
/* kernel includes */
#include
+/**
+ * We had to change the sematic of l4_task_cap_equal to return whether two
+ * capabilities point to the same kernel object instead of whether both
+ * capabilities are equal with respect to thier rights. To easily check after
+ * a Fiasco.OC upgrade whether the sematic of the kernel patch still matches
+ * our expectations below macro can be used.
+ */
+#ifdef TEST_KERN_CAP_EQUAL
+namespace Fiasco {
+#include
+}
+inline bool CHECK_CAP_EQUAL(bool equal, Genode::addr_t cap1,
+ Genode::addr_t cap2)
+{
+ unsigned long id1 = Fiasco::l4_debugger_global_id(cap1),
+ id2 = Fiasco::l4_debugger_global_id(cap2);
+ ASSERT(((id1 == id2) == equal), "CAPS NOT EQUAL!!!");
+ return equal;
+}
+#else
+inline bool CHECK_CAP_EQUAL(bool equal, Genode::addr_t,
+ Genode::addr_t)
+{
+ return equal;
+}
+#endif /* TEST_KERN_CAP_EQUAL */
+
/***********************
** Cap_index class **
@@ -136,7 +163,7 @@ Genode::Cap_index* Genode::Capability_map::insert_map(int id, addr_t kcap)
/* if we own the capability already check whether it's the same */
if (i) {
l4_msgtag_t tag = l4_task_cap_equal(L4_BASE_TASK_CAP, i->kcap(), kcap);
- if (!l4_msgtag_label(tag)) {
+ if (!CHECK_CAP_EQUAL(l4_msgtag_label(tag), i->kcap(), kcap)) {
/*
* they aren't equal, possibly an already revoked cap,
* otherwise it's a fake capability and we return an invalid one
diff --git a/repos/base-foc/src/lib/base/ipc.cc b/repos/base-foc/src/lib/base/ipc.cc
index 4666120b0..5f240e1d8 100644
--- a/repos/base-foc/src/lib/base/ipc.cc
+++ b/repos/base-foc/src/lib/base/ipc.cc
@@ -40,7 +40,6 @@ namespace Fiasco {
#include
#include
#include
-#include
}
using namespace Genode;
@@ -51,23 +50,14 @@ using namespace Fiasco;
** Utilities **
***************/
-enum Debug { DEBUG_MSG = 1, HALT_ON_ERROR = 0 };
+enum Debug { DEBUG_MSG = 1 };
static inline bool ipc_error(l4_msgtag_t tag, bool print)
{
int ipc_error = l4_ipc_error(tag, l4_utcb());
- if (ipc_error) {
- if (print) {
- outstring("Ipc error: ");
- outhex32(ipc_error);
- outstring(" occurred!\n");
- }
- if (HALT_ON_ERROR)
- enter_kdebug("Ipc error");
- return true;
- }
- return false;
+ if (ipc_error && print) raw("Ipc error: ", ipc_error, " occurred!");
+ return ipc_error;
}
@@ -111,7 +101,7 @@ static unsigned long extract_msg_from_utcb(l4_msgtag_t tag,
num_msg_words -= 2;
if (num_caps > 0 && num_msg_words < num_caps) {
- outstring("unexpected end of message, capability info missing\n");
+ raw("unexpected end of message, capability info missing");
return 0;
}
@@ -137,7 +127,7 @@ static unsigned long extract_msg_from_utcb(l4_msgtag_t tag,
/* received a delegated capability */
if (sel_idx == num_cap_sel) {
- outstring("missing capability selector in message\n");
+ raw("missing capability selector in message");
break;
}
@@ -150,7 +140,7 @@ static unsigned long extract_msg_from_utcb(l4_msgtag_t tag,
/* the remainder of the message contains the regular data payload */
if ((num_msg_words)*sizeof(l4_mword_t) > rcv_msg.capacity()) {
if (DEBUG_MSG)
- outstring("receive message buffer too small\n");
+ raw("receive message buffer too small");
num_msg_words = rcv_msg.capacity()/sizeof(l4_mword_t);
}
@@ -229,7 +219,7 @@ static l4_msgtag_t copy_msgbuf_to_utcb(Msgbuf_base &snd_msg,
unsigned const num_msg_words = 2 + num_caps + num_data_words;
if (num_msg_words > L4_UTCB_GENERIC_DATA_SIZE) {
- outstring("receive message buffer too small\n");
+ raw("receive message buffer too small");
throw Ipc_error();
}
@@ -361,7 +351,7 @@ Genode::Rpc_request Genode::ipc_reply_wait(Reply_capability const &last_caller,
/* ignore request if we detect a forged badge */
if (!badge_matches_label(badge, label)) {
- outstring("badge does not match label, ignoring request\n");
+ raw("badge does not match label, ignoring request");
continue;
}
diff --git a/repos/base-foc/src/lib/base/signal_source_client.cc b/repos/base-foc/src/lib/base/signal_source_client.cc
index ce0d5eea3..e91e700b6 100644
--- a/repos/base-foc/src/lib/base/signal_source_client.cc
+++ b/repos/base-foc/src/lib/base/signal_source_client.cc
@@ -15,6 +15,7 @@
/* Genode includes */
#include
#include
+#include
#include
/* base-internal includes */
@@ -22,6 +23,8 @@
#include
/* Fiasco includes */
+#include
+
namespace Fiasco {
#include
}
@@ -38,8 +41,9 @@ Signal_source_client::Signal_source_client(Capability cap)
/* request mapping of semaphore capability selector */
_sem = call();
- l4_msgtag_t tag = l4_irq_attach(_sem.data()->kcap(), 0,
- Thread::myself()->native_thread().kcap);
+ Foc_native_cpu_client cpu_client(env_deprecated()->cpu_session()->native_cpu());
+ Native_capability thread_cap = cpu_client.native_cap(Thread::myself()->cap());
+ l4_msgtag_t tag = l4_irq_attach(_sem.data()->kcap(), 0, thread_cap.data()->kcap());
if (l4_error(tag))
Genode::raw("l4_irq_attach failed with ", l4_error(tag));
}
diff --git a/tool/run/boot_dir/foc b/tool/run/boot_dir/foc
index 38be9ca4c..d40a0cefb 100644
--- a/tool/run/boot_dir/foc
+++ b/tool/run/boot_dir/foc
@@ -166,7 +166,7 @@ proc run_boot_dir_arm { binaries } {
set gen_img_cmd "make -C [l4_build_dir]/source O=[l4_build_dir] E=genode "
append gen_img_cmd "MODULES_LIST=[pwd]/[run_dir]/modules.list "
append gen_img_cmd "MODULE_SEARCH_PATH=[pwd]/[run_dir]:[pwd]:[l4_build_dir] "
- append gen_img_cmd "SYSTEM_TARGET=[cross_dev_prefix] elfimage"
+ append gen_img_cmd "CROSS_COMPILE=[cross_dev_prefix] elfimage"
set pid [eval "spawn sh -c \"$gen_img_cmd\""]
expect { eof { } }