From 1e87ef627be48a38259a88b014ce77a55b77ba20 Mon Sep 17 00:00:00 2001 From: Stefan Kalkowski Date: Wed, 5 Sep 2012 14:28:37 +0200 Subject: [PATCH] Fiasco.OC: update to recent version (svn rev. 40) --- base-foc/Makefile | 4 +- base-foc/config/panda.kernel | 26 +++--- base-foc/config/panda.user | 35 ++++---- base-foc/config/pbxa9.kernel | 14 ++-- base-foc/config/{rva9.user => pbxa9.user} | 36 ++++----- base-foc/config/vea9x4.kernel | 14 ++-- base-foc/config/vea9x4.user | 62 +++++++++++++++ base-foc/config/x86_32.kernel | 14 ++-- base-foc/config/x86_64.kernel | 9 +-- base-foc/lib/mk/platform.inc | 2 + base-foc/lib/mk/platform_pbxa9/platform.mk | 2 +- base-foc/lib/mk/platform_vea9x4/platform.mk | 2 +- .../patches/crtn_arm_binutils_2.21.1.patch | 21 ----- base-foc/patches/foc_arm_errata.patch | 42 ++++++++++ base-foc/patches/foc_caps_equal.patch | 12 +-- base-foc/patches/foc_single_step_x86.patch | 79 ++++++++----------- base-foc/patches/gendep.patch | 13 --- base-foc/patches/timer_arm.patch | 20 ----- base-foc/patches/vexpress_detection.patch | 13 --- base-foc/run/env | 10 +-- base-foc/src/bootstrap/target.mk | 2 +- base-foc/src/core/pbxa9/target.mk | 2 + base-foc/src/core/target.inc | 2 +- base-foc/src/core/vea9x4/target.mk | 2 + base-foc/src/kernel/panda/target.mk | 1 + 25 files changed, 235 insertions(+), 204 deletions(-) rename base-foc/config/{rva9.user => pbxa9.user} (63%) create mode 100644 base-foc/config/vea9x4.user delete mode 100644 base-foc/patches/crtn_arm_binutils_2.21.1.patch create mode 100644 base-foc/patches/foc_arm_errata.patch delete mode 100644 base-foc/patches/gendep.patch delete mode 100644 base-foc/patches/timer_arm.patch delete mode 100644 base-foc/patches/vexpress_detection.patch diff --git a/base-foc/Makefile b/base-foc/Makefile index 3f5b9bd5b..af04c5e45 100644 --- a/base-foc/Makefile +++ b/base-foc/Makefile @@ -7,7 +7,7 @@ VERBOSE ?= @ ECHO = @echo SVN_URI = http://svn.tudos.org/repos/oc/tudos/trunk -SVN_REV = 38 +SVN_REV = 40 CONTRIB_DIR = contrib PATCHES = $(shell find patches -name *.patch) @@ -23,6 +23,8 @@ SVN_TARGETS = tools/preprocess \ l4/pkg/l4sys \ l4/pkg/l4util \ l4/pkg/ldscripts \ + l4/pkg/libgcc-pure \ + l4/pkg/libgcc \ l4/pkg/libsigma0 \ l4/pkg/sigma0 \ l4/pkg/uclibc-headers \ diff --git a/base-foc/config/panda.kernel b/base-foc/config/panda.kernel index 0cb9291b9..a7e1a59fc 100644 --- a/base-foc/config/panda.kernel +++ b/base-foc/config/panda.kernel @@ -1,5 +1,5 @@ # -# Automatically generated make config: don't edit +# Automatically generated file; DO NOT EDIT. # Fiasco configuration # @@ -9,46 +9,53 @@ # 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_REALVIEW is not set # CONFIG_PF_S3C2410 is not set # CONFIG_PF_TEGRA2 is not set CONFIG_PF_OMAP=y -# CONFIG_PF_SA1100 is not set # CONFIG_PF_XSCALE is not set +# CONFIG_PF_SA1100 is not set # CONFIG_PF_KIRKWOOD is not set # CONFIG_PF_INTEGRATOR is not set CONFIG_BSP_NAME="omap3" -# CONFIG_PF_OMAP3_EVM is not set +# 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_ABI_VF=y CONFIG_PF_ARM_MP_CAPABLE=y CONFIG_CAN_ARM_CPU_CORTEX_A9=y CONFIG_ARM_CORTEX_A9=y # CONFIG_ARM_ALIGNMENT_CHECK is not set -# CONFIG_ARM_CA9_ENABLE_SWP is not set +# CONFIG_ARM_TZ is not set +CONFIG_ARM_CA9_ENABLE_SWP=y CONFIG_FPU=y # # Kernel options # +CONFIG_MP=y +CONFIG_MP_MAX_CPUS=4 CONFIG_CONTEXT_4K=y # 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_DISABLE_VIRT_OBJ_SPACE is not set # # Debugging # -# CONFIG_INLINE is not set +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_SERIAL=y CONFIG_JDB=y CONFIG_JDB_LOGGING=y -CONFIG_JDB_DISASM=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 @@ -63,10 +70,9 @@ CONFIG_CC="gcc" CONFIG_CXX="g++" CONFIG_HOST_CC="gcc" CONFIG_HOST_CXX="g++" -# CONFIG_VERBOSE is not set # CONFIG_MAINTAINER_MODE is not set CONFIG_LABEL="" -# CONFIG_EXPERIMENTAL is not set +CONFIG_EXPERIMENTAL=y CONFIG_PERF_CNT=y CONFIG_BIT32=y CONFIG_ARM_V7=y diff --git a/base-foc/config/panda.user b/base-foc/config/panda.user index 28fe89486..2e737f887 100644 --- a/base-foc/config/panda.user +++ b/base-foc/config/panda.user @@ -1,5 +1,5 @@ # -# Automatically generated make config: don't edit +# Automatically generated file; DO NOT EDIT. # L4Re Configuration # # CONFIG_BUILD_ARCH_x86 is not set @@ -23,22 +23,21 @@ CONFIG_CPU_ARM_ARMV7A=y # CONFIG_CPU_ARM_ARMV7R is not set CONFIG_CPU_ARMV6KPLUS=y CONFIG_CPU_ARMV6PLUS=y - -# -# Platform -# -# CONFIG_PLATFORM_ARM_integrator is not set -# CONFIG_PLATFORM_ARM_rv is not set -# CONFIG_PLATFORM_ARM_imx21 is not set -# CONFIG_PLATFORM_ARM_imx51 is not set -# CONFIG_PLATFORM_ARM_omap3evm is not set -# CONFIG_PLATFORM_ARM_beagleboard is not set -CONFIG_PLATFORM_ARM_pandaboard=y -# CONFIG_PLATFORM_ARM_tegra2 is not set -# CONFIG_PLATFORM_ARM_custom is not set -CONFIG_ARM_PLATFORM_TYPE="pandaboard" -CONFIG_RAM_BASE=0x80000000 -CONFIG_RAM_SIZE_MB=512 +# CONFIG_PLATFORM_TYPE_beagleboard 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_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=y +# CONFIG_PLATFORM_TYPE_rv is not set +# CONFIG_PLATFORM_TYPE_rv_pbx is not set +# CONFIG_PLATFORM_TYPE_rv_vexpress is not set +# CONFIG_PLATFORM_TYPE_tegra2 is not set +# CONFIG_PLATFORM_TYPE_custom is not set +CONFIG_PLATFORM_TYPE="pandaboard" # CONFIG_USE_DROPS_STDDIR is not set # CONFIG_USE_DICE is not set CONFIG_DROPS_STDDIR="/path/to/l4re" @@ -60,4 +59,4 @@ CONFIG_INT_LD_NAME_SWITCH=y # CONFIG_BID_GENERATE_MAPFILE is not set # CONFIG_BID_BUILD_DOC is not set # CONFIG_RELEASE_MODE is not set -CONFIG_LABEL="" +CONFIG_MAKECONFS_ADD="" diff --git a/base-foc/config/pbxa9.kernel b/base-foc/config/pbxa9.kernel index 7568ff534..cdf27c38c 100644 --- a/base-foc/config/pbxa9.kernel +++ b/base-foc/config/pbxa9.kernel @@ -1,5 +1,5 @@ # -# Automatically generated make config: don't edit +# Automatically generated file; DO NOT EDIT. # Fiasco configuration # @@ -23,10 +23,10 @@ CONFIG_BSP_NAME="realview" # CONFIG_PF_REALVIEW_PB11MP is not set CONFIG_PF_REALVIEW_PBX=y # CONFIG_PF_REALVIEW_VEXPRESS is not set -CONFIG_PF_REALVIEW_RAM_PHYS_BASE_0x0=y +# CONFIG_PF_REALVIEW_RAM_PHYS_BASE_0x0 is not set # CONFIG_PF_REALVIEW_RAM_PHYS_BASE_0x2 is not set -# CONFIG_PF_REALVIEW_RAM_PHYS_BASE_0x7 is not set -CONFIG_PF_REALVIEW_RAM_PHYS_BASE=0x0 +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 @@ -34,12 +34,13 @@ CONFIG_CAN_ARM_CACHE_L2CXX0=y CONFIG_ARM_CORTEX_A9=y # CONFIG_ARM_ALIGNMENT_CHECK is not set # CONFIG_ARM_CA9_ENABLE_SWP is not set -CONFIG_ARM_CACHE_L2CXX0=y +# CONFIG_ARM_CACHE_L2CXX0 is not set CONFIG_FPU=y # # Kernel options # +# CONFIG_MP is not set CONFIG_CONTEXT_4K=y # CONFIG_FINE_GRAINED_CPUTIME is not set CONFIG_SCHED_FIXED_PRIO=y @@ -47,7 +48,7 @@ CONFIG_SCHED_FIXED_PRIO=y # # Debugging # -# CONFIG_INLINE is not set +CONFIG_INLINE=y # CONFIG_NDEBUG is not set CONFIG_NO_FRAME_PTR=y # CONFIG_STACK_DEPTH is not set @@ -70,7 +71,6 @@ CONFIG_CC="gcc" CONFIG_CXX="g++" CONFIG_HOST_CC="gcc" CONFIG_HOST_CXX="g++" -# CONFIG_VERBOSE is not set # CONFIG_MAINTAINER_MODE is not set CONFIG_LABEL="" # CONFIG_EXPERIMENTAL is not set diff --git a/base-foc/config/rva9.user b/base-foc/config/pbxa9.user similarity index 63% rename from base-foc/config/rva9.user rename to base-foc/config/pbxa9.user index 73704f9b2..26a7536f6 100644 --- a/base-foc/config/rva9.user +++ b/base-foc/config/pbxa9.user @@ -1,7 +1,6 @@ # -# Automatically generated make config: don't edit +# Automatically generated file; DO NOT EDIT. # L4Re Configuration -# Thu Jul 14 16:26:37 2011 # # CONFIG_BUILD_ARCH_x86 is not set # CONFIG_BUILD_ARCH_amd64 is not set @@ -24,22 +23,21 @@ CONFIG_CPU_ARM_ARMV7A=y # CONFIG_CPU_ARM_ARMV7R is not set CONFIG_CPU_ARMV6KPLUS=y CONFIG_CPU_ARMV6PLUS=y - -# -# Platform -# -# CONFIG_PLATFORM_ARM_integrator is not set -CONFIG_PLATFORM_ARM_rv=y -# CONFIG_PLATFORM_ARM_imx21 is not set -# CONFIG_PLATFORM_ARM_imx51 is not set -# CONFIG_PLATFORM_ARM_omap3evm is not set -# CONFIG_PLATFORM_ARM_beagleboard is not set -# CONFIG_PLATFORM_ARM_pandaboard is not set -# CONFIG_PLATFORM_ARM_tegra2 is not set -# CONFIG_PLATFORM_ARM_custom is not set -CONFIG_ARM_PLATFORM_TYPE="rv" -CONFIG_RAM_BASE=0x0 -CONFIG_RAM_SIZE_MB=256 +# CONFIG_PLATFORM_TYPE_beagleboard 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_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_rv is not set +CONFIG_PLATFORM_TYPE_rv_pbx=y +# CONFIG_PLATFORM_TYPE_rv_vexpress is not set +# CONFIG_PLATFORM_TYPE_tegra2 is not set +# CONFIG_PLATFORM_TYPE_custom is not set +CONFIG_PLATFORM_TYPE="rv_pbx" # CONFIG_USE_DROPS_STDDIR is not set # CONFIG_USE_DICE is not set CONFIG_DROPS_STDDIR="/path/to/l4re" @@ -61,4 +59,4 @@ CONFIG_INT_LD_NAME_SWITCH=y # CONFIG_BID_GENERATE_MAPFILE is not set # CONFIG_BID_BUILD_DOC is not set # CONFIG_RELEASE_MODE is not set -CONFIG_LABEL="" +CONFIG_MAKECONFS_ADD="" diff --git a/base-foc/config/vea9x4.kernel b/base-foc/config/vea9x4.kernel index 630a9ab8b..c81dcaadb 100644 --- a/base-foc/config/vea9x4.kernel +++ b/base-foc/config/vea9x4.kernel @@ -1,5 +1,5 @@ # -# Automatically generated make config: don't edit +# Automatically generated file; DO NOT EDIT. # Fiasco configuration # @@ -23,9 +23,9 @@ CONFIG_BSP_NAME="realview" # CONFIG_PF_REALVIEW_PB11MP is not set # CONFIG_PF_REALVIEW_PBX is not set CONFIG_PF_REALVIEW_VEXPRESS=y -CONFIG_PF_REALVIEW_RAM_PHYS_BASE_0x0=y -# CONFIG_PF_REALVIEW_RAM_PHYS_BASE_0x6 is not set -CONFIG_PF_REALVIEW_RAM_PHYS_BASE=0x0 +# CONFIG_PF_REALVIEW_RAM_PHYS_BASE_0x0 is not set +CONFIG_PF_REALVIEW_RAM_PHYS_BASE_0x6=y +CONFIG_PF_REALVIEW_RAM_PHYS_BASE=0x60000000 CONFIG_ABI_VF=y CONFIG_PF_ARM_MP_CAPABLE=y CONFIG_CAN_ARM_CPU_CORTEX_A9=y @@ -38,7 +38,8 @@ CONFIG_FPU=y # # Kernel options # -# CONFIG_MP is not set +CONFIG_MP=y +CONFIG_MP_MAX_CPUS=4 CONFIG_CONTEXT_4K=y # CONFIG_FINE_GRAINED_CPUTIME is not set CONFIG_SCHED_FIXED_PRIO=y @@ -49,7 +50,7 @@ CONFIG_SCHED_FIXED_PRIO=y # # Debugging # -# CONFIG_INLINE is not set +CONFIG_INLINE=y # CONFIG_NDEBUG is not set CONFIG_NO_FRAME_PTR=y # CONFIG_STACK_DEPTH is not set @@ -72,7 +73,6 @@ CONFIG_CC="gcc" CONFIG_CXX="g++" CONFIG_HOST_CC="gcc" CONFIG_HOST_CXX="g++" -# CONFIG_VERBOSE is not set # CONFIG_MAINTAINER_MODE is not set CONFIG_LABEL="" CONFIG_EXPERIMENTAL=y diff --git a/base-foc/config/vea9x4.user b/base-foc/config/vea9x4.user new file mode 100644 index 000000000..e42a5ea1d --- /dev/null +++ b/base-foc/config/vea9x4.user @@ -0,0 +1,62 @@ +# +# 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="armv7a" +# 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 is not set +# 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_ARMV6KPLUS=y +CONFIG_CPU_ARMV6PLUS=y +# CONFIG_PLATFORM_TYPE_beagleboard 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_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_rv is not set +# CONFIG_PLATFORM_TYPE_rv_pbx is not set +CONFIG_PLATFORM_TYPE_rv_vexpress=y +# CONFIG_PLATFORM_TYPE_tegra2 is not set +# CONFIG_PLATFORM_TYPE_custom is not set +CONFIG_PLATFORM_TYPE="rv_vexpress" +# 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="" diff --git a/base-foc/config/x86_32.kernel b/base-foc/config/x86_32.kernel index 36f9c530e..78a4ad605 100644 --- a/base-foc/config/x86_32.kernel +++ b/base-foc/config/x86_32.kernel @@ -1,7 +1,6 @@ # -# Automatically generated make config: don't edit +# Automatically generated file; DO NOT EDIT. # Fiasco configuration -# Wed Sep 14 14:33:24 2011 # # @@ -27,18 +26,17 @@ CONFIG_IA32_586=y # CONFIG_IA32_K8 is not set # CONFIG_IA32_K10 is not set # CONFIG_CPU_VIRT is not set -CONFIG_SCHED_PIT=y -# CONFIG_SCHED_RTC is not set -# CONFIG_SCHED_APIC is not set +CONFIG_SCHED_APIC=y # CONFIG_WORKAROUND_AMD_FPU_LEAK is not set CONFIG_REGPARM3=y # # Kernel options # +CONFIG_MP=y +CONFIG_MP_MAX_CPUS=4 CONFIG_CONTEXT_4K=y CONFIG_IO_PROT=y -# CONFIG_IO_PROT_IOPL_3 is not set # CONFIG_SYNC_TSC is not set # CONFIG_FINE_GRAINED_CPUTIME is not set CONFIG_SCHED_FIXED_PRIO=y @@ -48,9 +46,8 @@ CONFIG_SCHED_FIXED_PRIO=y # CONFIG_INLINE=y # CONFIG_NDEBUG is not set -# CONFIG_NO_FRAME_PTR is not set +CONFIG_NO_FRAME_PTR=y # CONFIG_STACK_DEPTH is not set -# CONFIG_ALLOW_RO_TEXT is not set # CONFIG_LIST_ALLOC_SANITY is not set # CONFIG_BEFORE_IRET_SANITY is not set # CONFIG_IRQ_SPINNER is not set @@ -75,7 +72,6 @@ CONFIG_CC="gcc" CONFIG_CXX="g++" CONFIG_HOST_CC="gcc" CONFIG_HOST_CXX="g++" -# CONFIG_VERBOSE is not set # CONFIG_MAINTAINER_MODE is not set CONFIG_LABEL="" # CONFIG_EXPERIMENTAL is not set diff --git a/base-foc/config/x86_64.kernel b/base-foc/config/x86_64.kernel index 76a2390fc..cacf887a1 100644 --- a/base-foc/config/x86_64.kernel +++ b/base-foc/config/x86_64.kernel @@ -1,5 +1,5 @@ # -# Automatically generated make config: don't edit +# Automatically generated file; DO NOT EDIT. # Fiasco configuration # @@ -19,15 +19,14 @@ CONFIG_AMD64_K8=y # CONFIG_SCHED_PIT is not set # CONFIG_SCHED_RTC is not set CONFIG_SCHED_APIC=y -# CONFIG_SCHED_HPET is not set # CONFIG_WORKAROUND_AMD_FPU_LEAK is not set # # Kernel options # +# CONFIG_MP is not set CONFIG_CONTEXT_4K=y -CONFIG_IO_PROT=y -# CONFIG_IO_PROT_IOPL_3 is not set +# CONFIG_IO_PROT is not set # CONFIG_FINE_GRAINED_CPUTIME is not set CONFIG_SCHED_FIXED_PRIO=y @@ -38,7 +37,6 @@ CONFIG_INLINE=y # CONFIG_NDEBUG is not set CONFIG_NO_FRAME_PTR=y CONFIG_STACK_DEPTH=y -# CONFIG_ALLOW_RO_TEXT is not set # CONFIG_LIST_ALLOC_SANITY is not set # CONFIG_BEFORE_IRET_SANITY is not set # CONFIG_IRQ_SPINNER is not set @@ -61,7 +59,6 @@ CONFIG_CC="gcc" CONFIG_CXX="g++" CONFIG_HOST_CC="gcc" CONFIG_HOST_CXX="g++" -# CONFIG_VERBOSE is not set # CONFIG_MAINTAINER_MODE is not set CONFIG_LABEL="" # CONFIG_EXPERIMENTAL is not set diff --git a/base-foc/lib/mk/platform.inc b/base-foc/lib/mk/platform.inc index c2309db08..9c5da6e1f 100644 --- a/base-foc/lib/mk/platform.inc +++ b/base-foc/lib/mk/platform.inc @@ -56,7 +56,9 @@ $(BUILD_BASE_DIR)/l4/.kconfig: $(REP_DIR)/contrib VERBOSE="$(VERBOSE)" SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" PKGS = ldscripts \ + libgcc-pure \ l4sys \ + libgcc \ libsigma0 \ libvcpu/include diff --git a/base-foc/lib/mk/platform_pbxa9/platform.mk b/base-foc/lib/mk/platform_pbxa9/platform.mk index 067f34694..0b2f5e7af 100644 --- a/base-foc/lib/mk/platform_pbxa9/platform.mk +++ b/base-foc/lib/mk/platform_pbxa9/platform.mk @@ -1,6 +1,6 @@ # # Configuration for L4 build system (for kernel-bindings, sigma0, bootstrap). # -L4_CONFIG = $(call select_from_repositories,config/rva9.user) +L4_CONFIG = $(call select_from_repositories,config/pbxa9.user) include $(REP_DIR)/lib/mk/arm/platform.inc diff --git a/base-foc/lib/mk/platform_vea9x4/platform.mk b/base-foc/lib/mk/platform_vea9x4/platform.mk index 067f34694..69df29dad 100644 --- a/base-foc/lib/mk/platform_vea9x4/platform.mk +++ b/base-foc/lib/mk/platform_vea9x4/platform.mk @@ -1,6 +1,6 @@ # # Configuration for L4 build system (for kernel-bindings, sigma0, bootstrap). # -L4_CONFIG = $(call select_from_repositories,config/rva9.user) +L4_CONFIG = $(call select_from_repositories,config/vea9x4.user) include $(REP_DIR)/lib/mk/arm/platform.inc diff --git a/base-foc/patches/crtn_arm_binutils_2.21.1.patch b/base-foc/patches/crtn_arm_binutils_2.21.1.patch deleted file mode 100644 index a32d341c7..000000000 --- a/base-foc/patches/crtn_arm_binutils_2.21.1.patch +++ /dev/null @@ -1,21 +0,0 @@ -Index: uclibc/lib/contrib/uclibc/libc/sysdeps/linux/arm/crtn.S -=================================================================== ---- l4/pkg/uclibc/lib/contrib/uclibc/libc/sysdeps/linux/arm/crtn.S (revision 36) -+++ l4/pkg/uclibc/lib/contrib/uclibc/libc/sysdeps/linux/arm/crtn.S (working copy) -@@ -16,6 +16,7 @@ - #else - .align 2 - .arm -+ .L1: - ldmdb fp, {r4, r5, r6, r7, r8, r9, sl, fp, sp, pc} - #endif - .size .L1, .-.L1 -@@ -32,6 +33,7 @@ - #else - .align 2 - .arm -+ .L2: - ldmdb fp, {r4, r5, r6, r7, r8, r9, sl, fp, sp, pc} - #endif - .size .L2,.-.L2 - diff --git a/base-foc/patches/foc_arm_errata.patch b/base-foc/patches/foc_arm_errata.patch new file mode 100644 index 000000000..1112b6069 --- /dev/null +++ b/base-foc/patches/foc_arm_errata.patch @@ -0,0 +1,42 @@ +Index: kernel/fiasco/src/kern/arm/cpu-arm.cpp +=================================================================== +--- kernel/fiasco/src/kern/arm/cpu-arm.cpp (revision 40) ++++ kernel/fiasco/src/kern/arm/cpu-arm.cpp (working copy) +@@ -428,9 +428,15 @@ + void Cpu::init_errata_workarounds() {} + + //--------------------------------------------------------------------------- +-IMPLEMENTATION [arm && armv6plus]: ++IMPLEMENTATION [arm && armv6plus && omap4_pandaboard]: + + PRIVATE static inline ++void Cpu::init_errata_workarounds() {} ++ ++//--------------------------------------------------------------------------- ++IMPLEMENTATION [arm && armv6plus && !omap4_pandaboard]: ++ ++PRIVATE static inline + void + Cpu::set_actrl(Mword bit_mask) + { +@@ -494,8 +500,8 @@ + if (rev == 0x20 || rev == 0x21 || rev == 0x22) + set_c15_c0_1((1 << 12) | (1 << 22)); + +- // errata: 743622 +- if ((rev & 0xf0) == 0x20) ++ // errata: 743622 (r2p0 - r2p2) ++ if ((rev & 0xf0) == 0x20 && (rev & 0xf) < 0x3) + set_c15_c0_1(1 << 6); + + // errata: 751472 +@@ -505,6 +511,9 @@ + } + } + ++//--------------------------------------------------------------------------- ++IMPLEMENTATION [arm && armv6plus]: ++ + IMPLEMENT + void + Cpu::id_init() diff --git a/base-foc/patches/foc_caps_equal.patch b/base-foc/patches/foc_caps_equal.patch index 3ff01e056..b1ff1af0e 100644 --- a/base-foc/patches/foc_caps_equal.patch +++ b/base-foc/patches/foc_caps_equal.patch @@ -1,15 +1,15 @@ Index: kernel/fiasco/src/kern/task.cpp =================================================================== ---- kernel/fiasco/src/kern/task.cpp (revision 38) +--- kernel/fiasco/src/kern/task.cpp (revision 40) +++ kernel/fiasco/src/kern/task.cpp (working copy) -@@ -508,10 +508,12 @@ +@@ -488,10 +488,12 @@ if (obj_a.special() || obj_b.special()) return commit_result(obj_a.special_cap() == obj_b.special_cap()); -- Obj_space::Capability c_a = obj_space()->lookup(obj_a.cap()); -- Obj_space::Capability c_b = obj_space()->lookup(obj_b.cap()); -+ Kobject_iface* ki_a = obj_space()->lookup(obj_a.cap()).obj(); -+ Kobject_iface* ki_b = obj_space()->lookup(obj_b.cap()).obj(); +- Obj_space::Capability c_a = lookup(obj_a.cap()); +- Obj_space::Capability c_b = lookup(obj_b.cap()); ++ Kobject_iface* ki_a = lookup(obj_a.cap()).obj(); ++ Kobject_iface* ki_b = lookup(obj_b.cap()).obj(); + Address a_a = ki_a ? ki_a->kobject_start_addr() : 0; + Address a_b = ki_b ? ki_b->kobject_start_addr() : 0; diff --git a/base-foc/patches/foc_single_step_x86.patch b/base-foc/patches/foc_single_step_x86.patch index f7174b699..45d562ab7 100644 --- a/base-foc/patches/foc_single_step_x86.patch +++ b/base-foc/patches/foc_single_step_x86.patch @@ -1,8 +1,8 @@ Index: kernel/fiasco/src/Kconfig =================================================================== ---- kernel/fiasco/src/Kconfig (revision 38) +--- kernel/fiasco/src/Kconfig (revision 40) +++ kernel/fiasco/src/Kconfig (working copy) -@@ -694,6 +694,14 @@ +@@ -685,6 +685,14 @@ prevent some P4 processors from being overheated. This option requires a working timer IRQ to wakeup getchar periodically. @@ -19,11 +19,11 @@ Index: kernel/fiasco/src/Kconfig default WARN_WARNING Index: kernel/fiasco/src/kern/ia32/config-ia32.cpp =================================================================== ---- kernel/fiasco/src/kern/ia32/config-ia32.cpp (revision 38) +--- kernel/fiasco/src/kern/ia32/config-ia32.cpp (revision 40) +++ kernel/fiasco/src/kern/ia32/config-ia32.cpp (working copy) -@@ -98,6 +98,12 @@ - static const bool kinfo_timer_uses_rdtsc = false; - #endif +@@ -86,6 +86,12 @@ + // static const bool hlt_works_ok = false; + static bool hlt_works_ok; +#ifdef CONFIG_USER_SINGLE_STEP + static const bool user_single_step = true; @@ -31,12 +31,12 @@ Index: kernel/fiasco/src/kern/ia32/config-ia32.cpp + static const bool user_single_step = false; +#endif + - static const bool old_sigma0_adapter_hack = false; - // the default uart to use for serial console + static const unsigned default_console_uart = 1; + static const unsigned default_console_uart_baudrate = 115200; Index: kernel/fiasco/src/kern/ia32/32/entry-native.S =================================================================== ---- kernel/fiasco/src/kern/ia32/32/entry-native.S (revision 38) +--- kernel/fiasco/src/kern/ia32/32/entry-native.S (revision 40) +++ kernel/fiasco/src/kern/ia32/32/entry-native.S (working copy) @@ -46,6 +46,30 @@ jmp slowtraps @@ -69,9 +69,9 @@ Index: kernel/fiasco/src/kern/ia32/32/entry-native.S .p2align 4 .globl entry_vec01_debug entry_vec01_debug: -@@ -55,6 +79,15 @@ - cmpl $VAL__MEM_LAYOUT__TCBS_END, %esp - jbe 2f +@@ -59,6 +83,15 @@ + cmpl $entry_sys_fast_ipc_log, (%esp) + je 2f #endif + + /* test if trap was raised within kernel */ @@ -85,7 +85,7 @@ Index: kernel/fiasco/src/kern/ia32/32/entry-native.S 1: pushl $0 pushl $1 pusha -@@ -214,11 +247,17 @@ +@@ -227,11 +260,17 @@ .p2align(4) .global entry_sys_fast_ipc_c entry_sys_fast_ipc_c: @@ -105,18 +105,9 @@ Index: kernel/fiasco/src/kern/ia32/32/entry-native.S // that the thread is ex_regs'd before we leave with sysexit. Index: kernel/fiasco/src/kern/ia32/thread-ia32.cpp =================================================================== ---- kernel/fiasco/src/kern/ia32/thread-ia32.cpp (revision 38) +--- kernel/fiasco/src/kern/ia32/thread-ia32.cpp (revision 40) +++ kernel/fiasco/src/kern/ia32/thread-ia32.cpp (working copy) -@@ -196,12 +196,19 @@ - Address ip; - int from_user = ts->cs() & 3; - -+ //if (ts->_trapno != 3) -+ // LOG_MSG_3VAL(this, "trap", ts->_trapno, from_user, ts->ip()); -+ - if (EXPECT_FALSE(ts->_trapno == 0xee)) //debug IPI - { - Ipi::eoi(Ipi::Debug); +@@ -189,6 +189,10 @@ goto generic_debug; } @@ -127,7 +118,7 @@ Index: kernel/fiasco/src/kern/ia32/thread-ia32.cpp if (from_user && _space.user_mode()) { if (ts->_trapno == 14 && Kmem::is_io_bitmap_page_fault(ts->_cr2)) -@@ -521,7 +528,8 @@ +@@ -438,7 +442,8 @@ // thread (not alien) and it's a debug trap, // debug traps for aliens are always reflected as exception IPCs if (!(state() & Thread_alien) @@ -137,7 +128,7 @@ Index: kernel/fiasco/src/kern/ia32/thread-ia32.cpp return 0; // we do not handle this if (ts->_trapno == 3) -@@ -574,6 +582,11 @@ +@@ -491,6 +496,11 @@ } } @@ -147,12 +138,16 @@ Index: kernel/fiasco/src/kern/ia32/thread-ia32.cpp +{} + //---------------------------------------------------------------------------- - IMPLEMENTATION [ia32]: - -@@ -586,6 +599,16 @@ - _gs = _fs = Utcb_init::utcb_segment(); - } + IMPLEMENTATION [(ia32,amd64,ux) && !io]: +@@ -819,3 +829,16 @@ + int + Thread::call_nested_trap_handler(Trap_state *) + { return -1; } ++ ++//--------------------------------------------------------------------------- ++IMPLEMENTATION [ia32]: ++ +IMPLEMENT inline +void +Thread::user_single_step(bool enable) @@ -162,15 +157,11 @@ Index: kernel/fiasco/src/kern/ia32/thread-ia32.cpp + + regs()->flags(enable ? user_flags() | EFLAGS_TF : user_flags() & ~EFLAGS_TF); +} -+ - //---------------------------------------------------------------------------- - IMPLEMENTATION [amd64]: - Index: kernel/fiasco/src/kern/thread_object.cpp =================================================================== ---- kernel/fiasco/src/kern/thread_object.cpp (revision 38) +--- kernel/fiasco/src/kern/thread_object.cpp (revision 40) +++ kernel/fiasco/src/kern/thread_object.cpp (working copy) -@@ -524,6 +524,8 @@ +@@ -520,6 +520,8 @@ if (o_ip) *o_ip = user_ip(); if (o_flags) *o_flags = user_flags(); @@ -181,9 +172,9 @@ Index: kernel/fiasco/src/kern/thread_object.cpp if (!(ops & Exr_cancel) && (state() & Thread_in_exception)) Index: kernel/fiasco/src/kern/thread.cpp =================================================================== ---- kernel/fiasco/src/kern/thread.cpp (revision 38) +--- kernel/fiasco/src/kern/thread.cpp (revision 40) +++ kernel/fiasco/src/kern/thread.cpp (working copy) -@@ -70,6 +70,7 @@ +@@ -72,6 +72,7 @@ { Exr_cancel = 0x10000, Exr_trigger_exception = 0x20000, @@ -191,7 +182,7 @@ Index: kernel/fiasco/src/kern/thread.cpp }; enum Vcpu_ctl_flags -@@ -137,6 +138,8 @@ +@@ -139,6 +140,8 @@ inline Mword user_flags() const; @@ -202,9 +193,9 @@ Index: kernel/fiasco/src/kern/thread.cpp static void handle_remote_requests_irq() asm ("handle_remote_cpu_requests"); Index: kernel/fiasco/src/kern/arm/thread-arm.cpp =================================================================== ---- kernel/fiasco/src/kern/arm/thread-arm.cpp (revision 38) +--- kernel/fiasco/src/kern/arm/thread-arm.cpp (revision 40) +++ kernel/fiasco/src/kern/arm/thread-arm.cpp (working copy) -@@ -549,6 +549,10 @@ +@@ -590,6 +590,10 @@ return (v[insn >> 28] >> (psr >> 28)) & 1; } @@ -217,9 +208,9 @@ Index: kernel/fiasco/src/kern/arm/thread-arm.cpp Index: kernel/fiasco/src/kern/ppc32/thread-ppc32.cpp =================================================================== ---- kernel/fiasco/src/kern/ppc32/thread-ppc32.cpp (revision 38) +--- kernel/fiasco/src/kern/ppc32/thread-ppc32.cpp (revision 40) +++ kernel/fiasco/src/kern/ppc32/thread-ppc32.cpp (working copy) -@@ -307,6 +307,10 @@ +@@ -308,6 +308,10 @@ } } diff --git a/base-foc/patches/gendep.patch b/base-foc/patches/gendep.patch deleted file mode 100644 index d50c04017..000000000 --- a/base-foc/patches/gendep.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: l4/tool/gendep/Makefile -=================================================================== ---- l4/tool/gendep/Makefile (revision 38) -+++ l4/tool/gendep/Makefile (working copy) -@@ -23,7 +23,7 @@ - ifneq ($(filter linux freebsd,$(HOST_SYSTEM)),) - LIB := $(LIB32) $(LIB64) - LIBDL-linux := -ldl --cmd_link = $(HOST_CC) -m$(2) -shared -Wl,-soname,$(1) $(LIBDL-$(HOST_SYSTEM)) -o $(1) -+cmd_link = $(HOST_CC) -m$(2) -shared -Wl,--no-as-needed -Wl,-soname,$(1) $(LIBDL-$(HOST_SYSTEM)) -o $(1) - else - ifeq ($(HOST_SYSTEM),darwin) - LIB := $(OBJ_DIR)/libgendep.so diff --git a/base-foc/patches/timer_arm.patch b/base-foc/patches/timer_arm.patch deleted file mode 100644 index d922d48b7..000000000 --- a/base-foc/patches/timer_arm.patch +++ /dev/null @@ -1,20 +0,0 @@ -Index: kernel/fiasco/src/kern/arm/bsp/realview/timer-arm-mptimer-realview.cpp -=================================================================== ---- kernel/fiasco/src/kern/arm/bsp/realview/timer-arm-mptimer-realview.cpp (revision 38) -+++ kernel/fiasco/src/kern/arm/bsp/realview/timer-arm-mptimer-realview.cpp (working copy) -@@ -4,7 +4,7 @@ - EXTENSION class Timer - { - private: -- enum { Interval = 104999, /* assumed 210MHz */}; -+ enum { Interval = 209999, /* assumed 210MHz */}; - }; - - // -------------------------------------------------------------------------- -@@ -13,5 +13,5 @@ - EXTENSION class Timer - { - private: -- enum { Interval = 49999, }; -+ enum { Interval = 99999, /* assumed 100MHz */}; - }; diff --git a/base-foc/patches/vexpress_detection.patch b/base-foc/patches/vexpress_detection.patch deleted file mode 100644 index 02c3af74d..000000000 --- a/base-foc/patches/vexpress_detection.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: kernel/fiasco/src/kern/arm/bsp/realview/board_check-arm-realview.cpp -=================================================================== ---- kernel/fiasco/src/kern/arm/bsp/realview/board_check-arm-realview.cpp (revision 38) -+++ kernel/fiasco/src/kern/arm/bsp/realview/board_check-arm-realview.cpp (working copy) -@@ -46,7 +46,7 @@ - IMPLEMENTATION [arm && realview && realview_vexpress]: - - Board_check::id_pair Board_check::ids[] FIASCO_INITDATA = { -- { 0xffffff00, 0x1190f500 }, -+ { 0xcfffff00, 0x0190f500 }, - }; - - // ------------------------------------------------------------------------ diff --git a/base-foc/run/env b/base-foc/run/env index d2edff944..16b4e8b6c 100644 --- a/base-foc/run/env +++ b/base-foc/run/env @@ -175,12 +175,10 @@ proc build_boot_image_arm {binaries} { puts $fh "module genode/$binary" } } close $fh - set gen_img_cmd "cd [l4_dir]/source/pkg/bootstrap/server/src && " - append gen_img_cmd "make O=[l4_dir] E=genode " - append gen_img_cmd "BOOTSTRAP_DO_UIMAGE= BOOTSTRAP_DO_RAW_IMAGE= " - append gen_img_cmd "BOOTSTRAP_MODULES_LIST=[pwd]/[run_dir]/modules.list " - append gen_img_cmd "BOOTSTRAP_SEARCH_PATH=[pwd]/[run_dir]:[file dirname [fiasco]]:[l4_dir] " - append gen_img_cmd "SYSTEM_TARGET=[cross_dev_prefix]" + set gen_img_cmd "make -C [l4_dir]/source O=[l4_dir] E=genode " + append gen_img_cmd "MODULES_LIST=[pwd]/[run_dir]/modules.list " + append gen_img_cmd "MODULE_SEARCH_PATH=[pwd]/[run_dir]:[file dirname [fiasco]]:[l4_dir] " + append gen_img_cmd "SYSTEM_TARGET=[cross_dev_prefix] elfimage" set pid [eval "spawn sh -c \"$gen_img_cmd\""] expect { eof { } } diff --git a/base-foc/src/bootstrap/target.mk b/base-foc/src/bootstrap/target.mk index de8e348be..e98501b46 100644 --- a/base-foc/src/bootstrap/target.mk +++ b/base-foc/src/bootstrap/target.mk @@ -1,5 +1,5 @@ TARGET = bootstrap -PKGS = drivers-frst/of drivers-frst/uart bootstrap +PKGS = drivers-frst/include drivers-frst/of drivers-frst/uart bootstrap LIBS = l4re_support include $(REP_DIR)/mk/l4_pkg.mk diff --git a/base-foc/src/core/pbxa9/target.mk b/base-foc/src/core/pbxa9/target.mk index 9fa8ad6d5..e36656912 100644 --- a/base-foc/src/core/pbxa9/target.mk +++ b/base-foc/src/core/pbxa9/target.mk @@ -3,5 +3,7 @@ include $(PRG_DIR)/../target.inc REQUIRES += arm foc_pbxa9 SRC_CC += arm/platform_arm.cc +LD_TEXT_ADDR = 0x70490000 + vpath io_port_session_component.cc $(GEN_CORE_DIR)/arm diff --git a/base-foc/src/core/target.inc b/base-foc/src/core/target.inc index 7cb2b63e5..9b82b739d 100644 --- a/base-foc/src/core/target.inc +++ b/base-foc/src/core/target.inc @@ -2,7 +2,7 @@ TARGET = core REQUIRES = foc LIBS = cxx ipc heap core_printf process pager lock raw_signal raw_server -LD_TEXT_ADDR = 0x490000 +LD_TEXT_ADDR = 0x500000 GEN_CORE_DIR = $(BASE_DIR)/src/core diff --git a/base-foc/src/core/vea9x4/target.mk b/base-foc/src/core/vea9x4/target.mk index d065229e8..caec1ea90 100644 --- a/base-foc/src/core/vea9x4/target.mk +++ b/base-foc/src/core/vea9x4/target.mk @@ -3,5 +3,7 @@ include $(PRG_DIR)/../target.inc REQUIRES += arm foc_vea9x4 SRC_CC += arm/platform_arm.cc +LD_TEXT_ADDR = 0x60490000 + vpath io_port_session_component.cc $(GEN_CORE_DIR)/arm diff --git a/base-foc/src/kernel/panda/target.mk b/base-foc/src/kernel/panda/target.mk index 146e1f062..69e51b5bd 100644 --- a/base-foc/src/kernel/panda/target.mk +++ b/base-foc/src/kernel/panda/target.mk @@ -1,4 +1,5 @@ REQUIRES = platform_panda +FIASCO_DIR = $(REP_DIR)/contrib/kernel/fiasco KERNEL_CONFIG = $(REP_DIR)/config/panda.kernel -include $(PRG_DIR)/../target.inc