Fiasco.OC: update to recent version (svn rev. 40)

This commit is contained in:
Stefan Kalkowski 2012-09-05 14:28:37 +02:00 committed by Norman Feske
parent 6259fcf736
commit 1e87ef627b
25 changed files with 235 additions and 204 deletions

View File

@ -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 \

View File

@ -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

View File

@ -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=""

View File

@ -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

View File

@ -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=""

View File

@ -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

View File

@ -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=""

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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()

View File

@ -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;

View File

@ -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 @@
}
}

View File

@ -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

View File

@ -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 */};
};

View File

@ -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 },
};
// ------------------------------------------------------------------------

View File

@ -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 { } }

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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