From efe3b8af74ffc8127fbbd9e2cf5e21e9a5a608f7 Mon Sep 17 00:00:00 2001 From: Stefan Kalkowski Date: Tue, 11 Sep 2012 13:49:30 +0200 Subject: [PATCH] L4Linux: update to recent version (svn rev. 25) --- ports-foc/Makefile | 5 +- ports-foc/config/linux_config.arm | 224 +++++++--- ports-foc/config/linux_config.x86_32 | 250 ++++++++--- ports-foc/include/l4/re/env.h | 2 +- ports-foc/patches/l4lx_genode.patch | 423 +++++++++---------- ports-foc/patches/tcp_mem.patch | 19 - ports-foc/run/l4linux.run | 14 +- ports-foc/src/drivers/genode_net.c | 1 + ports-foc/src/lib/l4lx/include/l4lx_irq.h | 2 + ports-foc/src/lib/l4lx/include/l4lx_thread.h | 19 +- ports-foc/src/lib/l4lx/include/vcpu.h | 32 +- ports-foc/src/lib/l4lx/l4_log.cc | 2 +- ports-foc/src/lib/l4lx/l4_re_env.cc | 2 +- ports-foc/src/lib/l4lx/l4lx_irq.cc | 49 +-- ports-foc/src/lib/l4lx/l4lx_thread.cc | 30 +- 15 files changed, 654 insertions(+), 420 deletions(-) delete mode 100644 ports-foc/patches/tcp_mem.patch diff --git a/ports-foc/Makefile b/ports-foc/Makefile index f8cddfea7a..7537126553 100644 --- a/ports-foc/Makefile +++ b/ports-foc/Makefile @@ -8,8 +8,8 @@ VERBOSE ?= @ ECHO = @echo TARGET ?= l4linux -PATCH-l4linux = $(addprefix patches/,l4lx_genode.patch icmp_align.patch tcp_mem.patch) -REV-l4linux = 23 +PATCH-l4linux = $(addprefix patches/,l4lx_genode.patch icmp_align.patch) +REV-l4linux = 25 REPO-l4linux = http://svn.tudos.org/repos/oc/l4linux/trunk PATCH-l4android = patches/l4android_genode.patch @@ -95,6 +95,7 @@ clean: clean-$(TARGET) clean-l4linux: $(REAL_CONTRIB_DIR)/$(TARGET) $(VERBOSE)svn revert -R $(REAL_CONTRIB_DIR)/l4linux $(VERBOSE)svn stat $(REAL_CONTRIB_DIR)/l4linux | sed -e 's/? //' | xargs rm -f + $(VERBOSE)svn up -r $(REV-l4linux) -N $(REAL_CONTRIB_DIR)/l4linux clean-l4android: $(REAL_CONTRIB_DIR)/$(TARGET) $(VERBOSE)cd $(REAL_CONTRIB_DIR)/l4android; git checkout -f diff --git a/ports-foc/config/linux_config.arm b/ports-foc/config/linux_config.arm index 159a5ae94f..55e1bdeafd 100644 --- a/ports-foc/config/linux_config.arm +++ b/ports-foc/config/linux_config.arm @@ -1,6 +1,6 @@ # -# Automatically generated make config: don't edit -# Linux/l4 3.0.0-l4 Kernel Configuration +# Automatically generated file; DO NOT EDIT. +# Linux/l4 3.5.0-l4 Kernel Configuration # # @@ -14,6 +14,8 @@ CONFIG_L4_ARCH_ARM=y CONFIG_L4_VMLINUZ_SUFFIX=".arm" CONFIG_HZ=100 CONFIG_PHYSICAL_START=0x0 +CONFIG_L4_PLATFORM_GENERIC=y +# CONFIG_L4_PLATFORM_REALVIEW is not set # # Features @@ -33,6 +35,8 @@ CONFIG_PHYSICAL_START=0x0 # CONFIG_L4_NET_L4SHM is not set # CONFIG_L4_SERIAL is not set # CONFIG_L4_SERIAL_SHM is not set +CONFIG_SCREEN_GENODE=y +CONFIG_SERIAL_GENODE=y # # Debugging options @@ -48,6 +52,7 @@ CONFIG_L4_DEBUG_REGISTER_NAMES=y CONFIG_L4_MEMSIZE=32 CONFIG_L4_TAMED=y CONFIG_L4_VCPU=y +# CONFIG_L4_DMAPOOL is not set # # Priority configuration @@ -61,32 +66,26 @@ CONFIG_L4_PRIO_L4FB_REFRESH=7 CONFIG_L4_PRIO_L4ANKH=7 CONFIG_L4_CONFIG_CHECKS=y # CONFIG_L4_SAMPLE_MODULE is not set -CONFIG_SCREEN_GENODE=y -CONFIG_SERIAL_GENODE=y +CONFIG_L4_CLK_NOOP=y # # # CONFIG_ARM=y +CONFIG_MIGHT_HAVE_PCI=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y -# CONFIG_ARCH_USES_GETTIMEOFFSET is not set -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y -CONFIG_KTIME_SCALAR=y CONFIG_HAVE_PROC_CPU=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_GENERIC_IRQ_PROBE=y CONFIG_RWSEM_GENERIC_SPINLOCK=y -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_ZONE_DMA=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_VECTORS_BASE=0xbffff000 # CONFIG_ARM_PATCH_PHYS_VIRT is not set +CONFIG_NEED_MACH_MEMORY_H=y +CONFIG_GENERIC_BUG=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_HAVE_IRQ_WORK=y @@ -100,9 +99,11 @@ CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y CONFIG_KERNEL_GZIP=y # CONFIG_KERNEL_LZMA is not set +# CONFIG_KERNEL_XZ is not set # CONFIG_KERNEL_LZO is not set CONFIG_DEFAULT_HOSTNAME="l4box" CONFIG_SWAP=y @@ -120,22 +121,33 @@ CONFIG_HAVE_GENERIC_HARDIRQS=y # IRQ subsystem # CONFIG_GENERIC_HARDIRQS=y -CONFIG_HAVE_SPARSE_IRQ=y +CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y -# CONFIG_SPARSE_IRQ is not set +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_KTIME_SCALAR=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y + +# +# Timers subsystem +# +# CONFIG_NO_HZ is not set +# CONFIG_HIGH_RES_TIMERS is not set # # RCU Subsystem # CONFIG_TREE_RCU=y # CONFIG_PREEMPT_RCU is not set -# CONFIG_RCU_TRACE is not set CONFIG_RCU_FANOUT=32 +CONFIG_RCU_FANOUT_LEAF=16 # CONFIG_RCU_FANOUT_EXACT is not set # CONFIG_TREE_RCU_TRACE is not set # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=15 # CONFIG_CGROUPS is not set +# CONFIG_CHECKPOINT_RESTORE is not set # CONFIG_NAMESPACES is not set # CONFIG_SCHED_AUTOGROUP is not set CONFIG_SYSFS_DEPRECATED=y @@ -176,7 +188,6 @@ CONFIG_PERF_USE_VMALLOC=y # Kernel Performance Events And Counters # # CONFIG_PERF_EVENTS is not set -# CONFIG_PERF_COUNTERS is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_COMPAT_BRK=y CONFIG_SLAB=y @@ -185,12 +196,18 @@ CONFIG_SLAB=y # CONFIG_PROFILING is not set CONFIG_HAVE_OPROFILE=y # CONFIG_KPROBES is not set +# CONFIG_JUMP_LABEL is not set CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_CLK=y CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y # # GCOV-based kernel profiling @@ -208,8 +225,15 @@ CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBDAF=y # CONFIG_BLK_DEV_BSG is not set +# CONFIG_BLK_DEV_BSGLIB is not set # CONFIG_BLK_DEV_INTEGRITY is not set +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y + # # IO Schedulers # @@ -226,7 +250,6 @@ CONFIG_DEFAULT_IOSCHED="cfq" # CONFIG_INLINE_SPIN_LOCK_BH is not set # CONFIG_INLINE_SPIN_LOCK_IRQ is not set # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set -CONFIG_INLINE_SPIN_UNLOCK=y # CONFIG_INLINE_SPIN_UNLOCK_BH is not set CONFIG_INLINE_SPIN_UNLOCK_IRQ=y # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set @@ -262,9 +285,11 @@ CONFIG_MMU=y # CONFIG_ARCH_AT91 is not set CONFIG_ARCH_L4=y # CONFIG_ARCH_BCMRING is not set +# CONFIG_ARCH_HIGHBANK is not set # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CNS3XXX is not set # CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_PRIMA2 is not set # CONFIG_ARCH_EBSA110 is not set # CONFIG_ARCH_EP93XX is not set # CONFIG_ARCH_FOOTBRIDGE is not set @@ -275,34 +300,30 @@ CONFIG_ARCH_L4=y # CONFIG_ARCH_IOP13XX is not set # CONFIG_ARCH_IOP32X is not set # CONFIG_ARCH_IOP33X is not set -# CONFIG_ARCH_IXP23XX is not set -# CONFIG_ARCH_IXP2000 is not set # CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_DOVE is not set # CONFIG_ARCH_KIRKWOOD is not set -# CONFIG_ARCH_LOKI is not set # CONFIG_ARCH_LPC32XX is not set # CONFIG_ARCH_MV78XX0 is not set # CONFIG_ARCH_ORION5X is not set # CONFIG_ARCH_MMP is not set # CONFIG_ARCH_KS8695 is not set # CONFIG_ARCH_W90X900 is not set -# CONFIG_ARCH_NUC93X is not set # CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_PICOXCELL is not set # CONFIG_ARCH_PNX4008 is not set # CONFIG_ARCH_PXA is not set # CONFIG_ARCH_MSM is not set # CONFIG_ARCH_SHMOBILE is not set # CONFIG_ARCH_RPC is not set # CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_S3C24XX is not set # CONFIG_ARCH_S3C64XX is not set # CONFIG_ARCH_S5P64X0 is not set # CONFIG_ARCH_S5PC100 is not set # CONFIG_ARCH_S5PV210 is not set -# CONFIG_ARCH_EXYNOS4 is not set +# CONFIG_ARCH_EXYNOS is not set # CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_TCC_926 is not set # CONFIG_ARCH_U300 is not set # CONFIG_ARCH_U8500 is not set # CONFIG_ARCH_NOMADIK is not set @@ -310,15 +331,12 @@ CONFIG_ARCH_L4=y # CONFIG_ARCH_OMAP is not set # CONFIG_PLAT_SPEAR is not set # CONFIG_ARCH_VT8500 is not set +# CONFIG_ARCH_ZYNQ is not set CONFIG_MACH_L4=y # CONFIG_L4_ARM_BUILD_FOR_V5 is not set # CONFIG_L4_ARM_BUILD_FOR_V6K is not set CONFIG_L4_ARM_BUILD_FOR_V7=y -# -# System MMU -# - # # Processor Type # @@ -338,14 +356,20 @@ CONFIG_CPU_CP15_MMU=y # # Processor Features # +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set CONFIG_ARM_THUMB=y # CONFIG_ARM_THUMBEE is not set # CONFIG_SWP_EMULATE is not set # CONFIG_CPU_ICACHE_DISABLE is not set # CONFIG_CPU_DCACHE_DISABLE is not set # CONFIG_CPU_BPREDICT_DISABLE is not set -CONFIG_ARM_L1_CACHE_SHIFT=5 +CONFIG_MIGHT_HAVE_CACHE_L2X0=y +# CONFIG_CACHE_L2X0 is not set +CONFIG_ARM_L1_CACHE_SHIFT_6=y +CONFIG_ARM_L1_CACHE_SHIFT=6 CONFIG_ARM_DMA_MEM_BUFFERABLE=y +CONFIG_ARM_NR_BANKS=8 CONFIG_CPU_HAS_PMU=y # CONFIG_ARM_ERRATA_430973 is not set # CONFIG_ARM_ERRATA_458693 is not set @@ -357,12 +381,13 @@ CONFIG_CPU_HAS_PMU=y # CONFIG_ARM_ERRATA_751472 is not set # CONFIG_ARM_ERRATA_754322 is not set # CONFIG_ARM_ERRATA_754327 is not set -CONFIG_DMABOUNCE=y +# CONFIG_ARM_ERRATA_764369 is not set # # Bus support # CONFIG_ARM_AMBA=y +# CONFIG_PCI is not set # CONFIG_PCI_SYSCALL is not set # CONFIG_ARCH_SUPPORTS_MSI is not set # CONFIG_PCCARD is not set @@ -370,12 +395,12 @@ CONFIG_ARM_AMBA=y # # Kernel Features # -# CONFIG_NO_HZ is not set -# CONFIG_HIGH_RES_TIMERS is not set -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_HAVE_SMP=y CONFIG_SMP=y CONFIG_SMP_ON_UP=y +# CONFIG_ARM_CPU_TOPOLOGY is not set CONFIG_HAVE_ARM_SCU=y +# CONFIG_ARM_ARCH_TIMER is not set CONFIG_VMSPLIT_3G=y # CONFIG_VMSPLIT_2G is not set # CONFIG_VMSPLIT_1G is not set @@ -383,6 +408,7 @@ CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_NR_CPUS=4 CONFIG_HOTPLUG_CPU=y # CONFIG_LOCAL_TIMERS is not set +CONFIG_ARCH_NR_GPIO=0 CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set @@ -402,12 +428,13 @@ CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 # CONFIG_COMPACTION is not set # CONFIG_PHYS_ADDR_T_64BIT is not set -CONFIG_ZONE_DMA_FLAG=1 -CONFIG_BOUNCE=y +CONFIG_ZONE_DMA_FLAG=0 CONFIG_VIRT_TO_BUS=y # CONFIG_KSM is not set CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_CROSS_MEMORY_ATTACH=y # CONFIG_CLEANCACHE is not set +# CONFIG_FRONTSWAP is not set CONFIG_FORCE_MAX_ZONEORDER=11 CONFIG_ALIGNMENT_TRAP=y # CONFIG_UACCESS_WITH_MEMCPY is not set @@ -449,6 +476,7 @@ CONFIG_VFPv3=y # Userspace binary formats # CONFIG_BINFMT_ELF=y +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set CONFIG_HAVE_AOUT=y # CONFIG_BINFMT_AOUT is not set @@ -461,11 +489,16 @@ CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y +# CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_WAKELOCKS is not set # CONFIG_PM_RUNTIME is not set CONFIG_PM=y # CONFIG_PM_DEBUG is not set # CONFIG_APM_EMULATION is not set +CONFIG_PM_CLK=y +CONFIG_CPU_PM=y CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARM_CPU_SUSPEND=y CONFIG_NET=y # @@ -473,6 +506,7 @@ CONFIG_NET=y # CONFIG_PACKET=y CONFIG_UNIX=y +# CONFIG_UNIX_DIAG is not set CONFIG_XFRM=y # CONFIG_XFRM_USER is not set # CONFIG_XFRM_SUB_POLICY is not set @@ -501,6 +535,7 @@ CONFIG_INET_XFRM_MODE_BEET=y # CONFIG_INET_LRO is not set CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y +# CONFIG_INET_UDP_DIAG is not set # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_CUBIC=y CONFIG_DEFAULT_TCP_CONG="cubic" @@ -523,16 +558,18 @@ CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set -# CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set # CONFIG_IEEE802154 is not set # CONFIG_NET_SCHED is not set # CONFIG_DCB is not set # CONFIG_BATMAN_ADV is not set +# CONFIG_OPENVSWITCH is not set CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y +CONFIG_BQL=y +# CONFIG_BPF_JIT is not set # # Network testing @@ -549,6 +586,8 @@ CONFIG_XPS=y # CONFIG_NET_9P is not set # CONFIG_CAIF is not set # CONFIG_CEPH_LIB is not set +# CONFIG_NFC is not set +CONFIG_HAVE_BPF_JIT=y # # Device Drivers @@ -567,6 +606,9 @@ CONFIG_EXTRA_FIRMWARE="" # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set +# CONFIG_GENERIC_CPU_DEVICES is not set +# CONFIG_DMA_SHARED_BUFFER is not set +# CONFIG_CMA is not set # CONFIG_CONNECTOR is not set # CONFIG_MTD is not set # CONFIG_PARPORT is not set @@ -585,9 +627,12 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set # CONFIG_BLK_DEV_RBD is not set + +# +# Misc devices +# # CONFIG_SENSORS_LIS3LV02D is not set -CONFIG_MISC_DEVICES=y -# CONFIG_INTEL_MID_PTI is not set +# CONFIG_ATMEL_PWM is not set # CONFIG_ENCLOSURE_SERVICES is not set # CONFIG_C2PORT is not set @@ -599,8 +644,10 @@ CONFIG_MISC_DEVICES=y # # Texas Instruments shared transport line discipline # -CONFIG_HAVE_IDE=y -# CONFIG_IDE is not set + +# +# Altera FPGA firmware download module +# # # SCSI device support @@ -614,7 +661,6 @@ CONFIG_SCSI_MOD=y # CONFIG_MD is not set # CONFIG_NETDEVICES is not set # CONFIG_ISDN is not set -# CONFIG_PHONE is not set # # Input device support @@ -623,6 +669,7 @@ CONFIG_INPUT=y # CONFIG_INPUT_FF_MEMLESS is not set # CONFIG_INPUT_POLLDEV is not set # CONFIG_INPUT_SPARSEKMAP is not set +# CONFIG_INPUT_MATRIXKMAP is not set # # Userland interfaces @@ -657,6 +704,7 @@ CONFIG_INPUT_EVDEV=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y # CONFIG_VT_HW_CONSOLE_BINDING is not set CONFIG_UNIX98_PTYS=y @@ -689,12 +737,13 @@ CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_IPMI_HANDLER is not set CONFIG_HW_RANDOM=m # CONFIG_HW_RANDOM_TIMERIOMEM is not set +# CONFIG_HW_RANDOM_ATMEL is not set # CONFIG_R3964 is not set # CONFIG_RAW_DRIVER is not set # CONFIG_TCG_TPM is not set -# CONFIG_RAMOOPS is not set # CONFIG_I2C is not set # CONFIG_SPI is not set +# CONFIG_HSI is not set # # PPS support @@ -712,6 +761,7 @@ CONFIG_HW_RANDOM=m # # Enable Device Drivers -> PPS to see the PTP clock options. # +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y # CONFIG_W1 is not set # CONFIG_POWER_SUPPLY is not set # CONFIG_HWMON is not set @@ -729,7 +779,10 @@ CONFIG_BCMA_POSSIBLE=y # Broadcom specific AMBA # # CONFIG_BCMA is not set -CONFIG_MFD_SUPPORT=y + +# +# Multifunction device drivers +# # CONFIG_MFD_CORE is not set # CONFIG_MFD_SM501 is not set # CONFIG_HTC_PASIC3 is not set @@ -774,13 +827,10 @@ CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_VIRTUAL is not set # CONFIG_FB_METRONOME is not set # CONFIG_FB_BROADSHEET is not set +# CONFIG_FB_AUO_K190X is not set +# CONFIG_EXYNOS_VIDEO is not set # CONFIG_BACKLIGHT_LCD_SUPPORT is not set -# -# Display device support -# -# CONFIG_DISPLAY_SUPPORT is not set - # # Console display driver support # @@ -796,19 +846,24 @@ CONFIG_LOGO_LINUX_MONO=y CONFIG_LOGO_LINUX_VGA16=y CONFIG_LOGO_LINUX_CLUT224=y # CONFIG_SOUND is not set -CONFIG_HID_SUPPORT=y + +# +# HID support +# CONFIG_HID=y # CONFIG_HIDRAW is not set -# CONFIG_HID_PID is not set +# CONFIG_HID_GENERIC is not set # # Special HID drivers # +# CONFIG_USB_ARCH_HAS_OHCI is not set +# CONFIG_USB_ARCH_HAS_EHCI is not set +# CONFIG_USB_ARCH_HAS_XHCI is not set # CONFIG_USB_SUPPORT is not set # CONFIG_MMC is not set # CONFIG_MEMSTICK is not set # CONFIG_NEW_LEDS is not set -# CONFIG_NFC_DEVICES is not set # CONFIG_ACCESSIBILITY is not set CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y @@ -854,9 +909,37 @@ CONFIG_RTC_INTF_DEV=y # CONFIG_DMADEVICES is not set # CONFIG_AUXDISPLAY is not set # CONFIG_UIO is not set + +# +# Virtio drivers +# +# CONFIG_VIRTIO_BALLOON is not set +# CONFIG_VIRTIO_MMIO is not set + +# +# Microsoft Hyper-V guest support +# # CONFIG_STAGING is not set CONFIG_CLKDEV_LOOKUP=y +# +# Hardware Spinlock drivers +# +# CONFIG_IOMMU_SUPPORT is not set + +# +# Remoteproc drivers (EXPERIMENTAL) +# + +# +# Rpmsg drivers (EXPERIMENTAL) +# +# CONFIG_VIRT_DRIVERS is not set +# CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +# CONFIG_MEMORY is not set +# CONFIG_IIO is not set + # # File systems # @@ -932,6 +1015,7 @@ CONFIG_CRAMFS=y # CONFIG_OMFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set # CONFIG_ROMFS_FS is not set # CONFIG_PSTORE is not set # CONFIG_SYSV_FS is not set @@ -944,12 +1028,6 @@ CONFIG_NETWORK_FILESYSTEMS=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set - -# -# Partition Types -# -# CONFIG_PARTITION_ADVANCED is not set -CONFIG_MSDOS_PARTITION=y CONFIG_NLS=y CONFIG_NLS_DEFAULT="iso8859-1" CONFIG_NLS_CODEPAGE_437=y @@ -989,6 +1067,17 @@ CONFIG_NLS_ISO8859_1=y # CONFIG_NLS_ISO8859_15 is not set # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_MAC_ROMAN is not set +# CONFIG_NLS_MAC_CELTIC is not set +# CONFIG_NLS_MAC_CENTEURO is not set +# CONFIG_NLS_MAC_CROATIAN is not set +# CONFIG_NLS_MAC_CYRILLIC is not set +# CONFIG_NLS_MAC_GAELIC is not set +# CONFIG_NLS_MAC_GREEK is not set +# CONFIG_NLS_MAC_ICELAND is not set +# CONFIG_NLS_MAC_INUIT is not set +# CONFIG_NLS_MAC_ROMANIAN is not set +# CONFIG_NLS_MAC_TURKISH is not set # CONFIG_NLS_UTF8 is not set # @@ -1001,6 +1090,7 @@ CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=1024 CONFIG_MAGIC_SYSRQ=y # CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_READABLE_ASM is not set # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_DEBUG_FS is not set # CONFIG_HEADERS_CHECK is not set @@ -1009,6 +1099,8 @@ CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set # CONFIG_LOCKUP_DETECTOR is not set # CONFIG_HARDLOCKUP_DETECTOR is not set +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_DETECT_HUNG_TASK=y CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set @@ -1027,7 +1119,7 @@ CONFIG_DEBUG_MUTEXES=y # CONFIG_PROVE_LOCKING is not set # CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_KOBJECT is not set @@ -1046,13 +1138,14 @@ CONFIG_FRAME_POINTER=y # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_RCU_TORTURE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=60 +# CONFIG_RCU_CPU_STALL_INFO is not set +# CONFIG_RCU_TRACE is not set # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # CONFIG_DEBUG_PER_CPU_MAPS is not set # CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set # CONFIG_FAULT_INJECTION is not set -CONFIG_SYSCTL_SYSCALL_CHECK=y # CONFIG_DEBUG_PAGEALLOC is not set CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y @@ -1070,6 +1163,7 @@ CONFIG_BRANCH_PROFILE_NONE=y # CONFIG_PROFILE_ALL_BRANCHES is not set # CONFIG_STACK_TRACER is not set # CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_PROBE_EVENTS is not set # CONFIG_DMA_API_DEBUG is not set # CONFIG_ATOMIC64_SELFTEST is not set # CONFIG_SAMPLES is not set @@ -1098,6 +1192,7 @@ CONFIG_CRYPTO=y # # CONFIG_CRYPTO_MANAGER is not set # CONFIG_CRYPTO_MANAGER2 is not set +# CONFIG_CRYPTO_USER is not set # CONFIG_CRYPTO_GF128MUL is not set # CONFIG_CRYPTO_NULL is not set # CONFIG_CRYPTO_PCRYPT is not set @@ -1187,13 +1282,21 @@ CONFIG_CRYPTO_HW=y # Library routines # CONFIG_BITREVERSE=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IO=y # CONFIG_CRC_CCITT is not set # CONFIG_CRC16 is not set # CONFIG_CRC_T10DIF is not set # CONFIG_CRC_ITU_T is not set CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set # CONFIG_CRC7 is not set # CONFIG_LIBCRC32C is not set +# CONFIG_CRC8 is not set CONFIG_ZLIB_INFLATE=y # CONFIG_XZ_DEC is not set # CONFIG_XZ_DEC_BCJ is not set @@ -1203,5 +1306,8 @@ CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CPU_RMAP=y +CONFIG_DQL=y CONFIG_NLATTR=y # CONFIG_AVERAGE is not set +# CONFIG_CORDIC is not set +# CONFIG_DDR is not set diff --git a/ports-foc/config/linux_config.x86_32 b/ports-foc/config/linux_config.x86_32 index 560856c617..0ec7a7cef5 100644 --- a/ports-foc/config/linux_config.x86_32 +++ b/ports-foc/config/linux_config.x86_32 @@ -1,6 +1,6 @@ # -# Automatically generated make config: don't edit -# Linux/l4 3.0.0-l4 Kernel Configuration +# Automatically generated file; DO NOT EDIT. +# Linux/l4 3.5.0-l4 Kernel Configuration # # @@ -34,6 +34,8 @@ CONFIG_PHYSICAL_START=0x100000 # CONFIG_L4_NET_L4SHM is not set # CONFIG_L4_SERIAL is not set # CONFIG_L4_SERIAL_SHM is not set +CONFIG_SCREEN_GENODE=y +CONFIG_SERIAL_GENODE=y # # Debugging options @@ -62,8 +64,6 @@ CONFIG_L4_PRIO_L4FB_REFRESH=7 CONFIG_L4_PRIO_L4ANKH=7 CONFIG_L4_CONFIG_CHECKS=y # CONFIG_L4_SAMPLE_MODULE is not set -CONFIG_SCREEN_GENODE=y -CONFIG_SERIAL_GENODE=y # # @@ -75,38 +75,29 @@ CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf32-i386" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" -CONFIG_GENERIC_CMOS_UPDATE=y -CONFIG_CLOCKSOURCE_WATCHDOG=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y -CONFIG_ZONE_DMA=y # CONFIG_NEED_DMA_MAP_STATE is not set CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y -CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y # CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y -CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y -# CONFIG_GENERIC_TIME_VSYSCALL is not set CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_DEFAULT_IDLE=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_CPU_AUTOPROBE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y -# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ZONE_DMA32 is not set -CONFIG_ARCH_POPULATES_NODE_MAP=y # CONFIG_AUDIT_ARCH is not set CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y @@ -114,11 +105,12 @@ CONFIG_X86_32_SMP=y CONFIG_X86_HT=y CONFIG_X86_32_LAZY_GS=y CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" -CONFIG_KTIME_SCALAR=y CONFIG_ARCH_CPU_PROBE_RELEASE=y +CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_HAVE_IRQ_WORK=y CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_EXTABLE_SORT=y # # General setup @@ -154,26 +146,39 @@ CONFIG_HAVE_GENERIC_HARDIRQS=y # IRQ subsystem # CONFIG_GENERIC_HARDIRQS=y -CONFIG_HAVE_SPARSE_IRQ=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_PENDING_IRQ=y CONFIG_IRQ_FORCED_THREADING=y -# CONFIG_SPARSE_IRQ is not set +CONFIG_SPARSE_IRQ=y +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_KTIME_SCALAR=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y +CONFIG_GENERIC_CMOS_UPDATE=y + +# +# Timers subsystem +# +# CONFIG_NO_HZ is not set +# CONFIG_HIGH_RES_TIMERS is not set # # RCU Subsystem # CONFIG_TREE_RCU=y # CONFIG_PREEMPT_RCU is not set -# CONFIG_RCU_TRACE is not set CONFIG_RCU_FANOUT=32 +CONFIG_RCU_FANOUT_LEAF=16 # CONFIG_RCU_FANOUT_EXACT is not set # CONFIG_TREE_RCU_TRACE is not set # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=17 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # CONFIG_CGROUPS is not set +# CONFIG_CHECKPOINT_RESTORE is not set # CONFIG_NAMESPACES is not set # CONFIG_SCHED_AUTOGROUP is not set CONFIG_SYSFS_DEPRECATED=y @@ -199,6 +204,7 @@ CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y # CONFIG_PCSPKR_PLATFORM is not set +CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y @@ -214,7 +220,6 @@ CONFIG_HAVE_PERF_EVENTS=y # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y -# CONFIG_PERF_COUNTERS is not set # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_COMPAT_BRK=y @@ -223,6 +228,7 @@ CONFIG_SLAB=y # CONFIG_SLOB is not set # CONFIG_PROFILING is not set CONFIG_HAVE_OPROFILE=y +CONFIG_OPROFILE_NMI_TIMER=y # CONFIG_KPROBES is not set # CONFIG_JUMP_LABEL is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y @@ -232,7 +238,9 @@ CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_HW_BREAKPOINT=y @@ -240,6 +248,11 @@ CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP_FILTER=y # # GCOV-based kernel profiling @@ -258,8 +271,15 @@ CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y # CONFIG_LBDAF is not set CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y # CONFIG_BLK_DEV_INTEGRITY is not set +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y + # # IO Schedulers # @@ -276,7 +296,6 @@ CONFIG_DEFAULT_IOSCHED="cfq" # CONFIG_INLINE_SPIN_LOCK_BH is not set # CONFIG_INLINE_SPIN_LOCK_IRQ is not set # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set -CONFIG_INLINE_SPIN_UNLOCK=y # CONFIG_INLINE_SPIN_UNLOCK_BH is not set CONFIG_INLINE_SPIN_UNLOCK_IRQ=y # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set @@ -304,13 +323,12 @@ CONFIG_MUTEX_SPIN_ON_OWNER=y # # Processor type and features # -# CONFIG_NO_HZ is not set -# CONFIG_HIGH_RES_TIMERS is not set -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_ZONE_DMA=y CONFIG_SMP=y CONFIG_X86_MPPARSE=y # CONFIG_X86_BIGSMP is not set CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_WANT_INTEL_MID is not set # CONFIG_X86_RDC321X is not set # CONFIG_X86_32_NON_STANDARD is not set # CONFIG_X86_32_IRIS is not set @@ -346,7 +364,6 @@ CONFIG_M686=y # CONFIG_X86_GENERIC is not set CONFIG_X86_INTERNODE_CACHE_SHIFT=5 CONFIG_X86_CMPXCHG=y -CONFIG_CMPXCHG_LOCAL=y CONFIG_X86_L1_CACHE_SHIFT=5 CONFIG_X86_XADD=y CONFIG_X86_PPRO_FENCE=y @@ -370,7 +387,6 @@ CONFIG_CPU_SUP_UMC_32=y # CONFIG_HPET_TIMER is not set # CONFIG_DMI is not set # CONFIG_IOMMU_HELPER is not set -# CONFIG_IOMMU_API is not set CONFIG_NR_CPUS=8 # CONFIG_SCHED_SMT is not set CONFIG_SCHED_MC=y @@ -412,6 +428,8 @@ CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPARSEMEM_STATIC=y CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MEMBLOCK_NODE_MAP=y +CONFIG_ARCH_DISCARD_MEMBLOCK=y CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 # CONFIG_COMPACTION is not set @@ -422,11 +440,14 @@ CONFIG_VIRT_TO_BUS=y # CONFIG_KSM is not set CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 # CONFIG_TRANSPARENT_HUGEPAGE is not set +CONFIG_CROSS_MEMORY_ATTACH=y # CONFIG_CLEANCACHE is not set +# CONFIG_FRONTSWAP is not set # CONFIG_X86_CHECK_BIOS_CORRUPTION is not set CONFIG_X86_RESERVE_LOW=64 # CONFIG_MATH_EMULATION is not set # CONFIG_MTRR is not set +# CONFIG_ARCH_RANDOM is not set CONFIG_SECCOMP=y # CONFIG_CC_STACKPROTECTOR is not set # CONFIG_HZ_100 is not set @@ -462,15 +483,17 @@ CONFIG_COMPAT_VDSO=y # CONFIG_ARCH_SUPPORTS_MSI is not set CONFIG_ISA_DMA_API=y # CONFIG_ISA is not set -# CONFIG_MCA is not set # CONFIG_SCx200 is not set # CONFIG_OLPC is not set +# CONFIG_ALIX is not set +# CONFIG_NET5501 is not set # CONFIG_PCCARD is not set # # Executable file formats / Emulations # CONFIG_BINFMT_ELF=y +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set CONFIG_HAVE_AOUT=y CONFIG_BINFMT_AOUT=y @@ -484,7 +507,9 @@ CONFIG_NET=y # CONFIG_PACKET=y CONFIG_UNIX=y +# CONFIG_UNIX_DIAG is not set CONFIG_XFRM=y +CONFIG_XFRM_ALGO=y # CONFIG_XFRM_USER is not set # CONFIG_XFRM_SUB_POLICY is not set # CONFIG_XFRM_MIGRATE is not set @@ -510,6 +535,7 @@ CONFIG_INET=y # CONFIG_INET_LRO is not set CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y +# CONFIG_INET_UDP_DIAG is not set # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_CUBIC=y CONFIG_DEFAULT_TCP_CONG="cubic" @@ -532,16 +558,17 @@ CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set -# CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set # CONFIG_IEEE802154 is not set # CONFIG_NET_SCHED is not set # CONFIG_DCB is not set # CONFIG_BATMAN_ADV is not set +# CONFIG_OPENVSWITCH is not set CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y +CONFIG_BQL=y # # Network testing @@ -558,6 +585,7 @@ CONFIG_XPS=y # CONFIG_NET_9P is not set # CONFIG_CAIF is not set # CONFIG_CEPH_LIB is not set +# CONFIG_NFC is not set # # Device Drivers @@ -577,13 +605,53 @@ CONFIG_EXTRA_FIRMWARE="" # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set +# CONFIG_GENERIC_CPU_DEVICES is not set +# CONFIG_DMA_SHARED_BUFFER is not set +# CONFIG_CMA is not set CONFIG_CONNECTOR=y CONFIG_PROC_EVENTS=y # CONFIG_MTD is not set # CONFIG_PARPORT is not set # CONFIG_BLK_DEV is not set + +# +# Misc devices +# # CONFIG_SENSORS_LIS3LV02D is not set -# CONFIG_MISC_DEVICES is not set +# CONFIG_AD525X_DPOT is not set +# CONFIG_ICS932S401 is not set +# CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1780 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set +# CONFIG_DS1682 is not set +# CONFIG_VMWARE_BALLOON is not set +# CONFIG_BMP085_I2C is not set +# CONFIG_USB_SWITCH_FSA9480 is not set +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +# CONFIG_EEPROM_AT24 is not set +# CONFIG_EEPROM_LEGACY is not set +# CONFIG_EEPROM_MAX6875 is not set +# CONFIG_EEPROM_93CX6 is not set + +# +# Texas Instruments shared transport line discipline +# +# CONFIG_SENSORS_LIS3_I2C is not set + +# +# Altera FPGA firmware download module +# +# CONFIG_ALTERA_STAPL is not set CONFIG_HAVE_IDE=y # CONFIG_IDE is not set @@ -647,7 +715,6 @@ CONFIG_SCSI_OSD_DPRINT_SENSE=1 # CONFIG_MACINTOSH_DRIVERS is not set # CONFIG_NETDEVICES is not set # CONFIG_ISDN is not set -# CONFIG_PHONE is not set # # Input device support @@ -656,6 +723,7 @@ CONFIG_INPUT=y # CONFIG_INPUT_FF_MEMLESS is not set # CONFIG_INPUT_POLLDEV is not set # CONFIG_INPUT_SPARSEKMAP is not set +# CONFIG_INPUT_MATRIXKMAP is not set # # Userland interfaces @@ -735,7 +803,6 @@ CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_HANGCHECK_TIMER is not set # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set -# CONFIG_RAMOOPS is not set CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y # CONFIG_I2C_COMPAT is not set @@ -778,6 +845,7 @@ CONFIG_I2C_STUB=m # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_SPI is not set +# CONFIG_HSI is not set # # PPS support @@ -816,7 +884,42 @@ CONFIG_BCMA_POSSIBLE=y # Broadcom specific AMBA # # CONFIG_BCMA is not set -# CONFIG_MFD_SUPPORT is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_CORE is not set +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_MFD_LM3533 is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65217 is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_TWL6040_CORE is not set +# CONFIG_MFD_STMPE is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +# CONFIG_MFD_S5M_CORE is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_WL1273_CORE is not set +# CONFIG_MFD_TPS65090 is not set +# CONFIG_MFD_RC5T583 is not set +# CONFIG_MFD_PALMAS is not set # CONFIG_REGULATOR is not set # CONFIG_MEDIA_SUPPORT is not set @@ -859,13 +962,10 @@ CONFIG_FB_TILEBLITTING=y # CONFIG_FB_VIRTUAL is not set # CONFIG_FB_METRONOME is not set # CONFIG_FB_BROADSHEET is not set +# CONFIG_FB_AUO_K190X is not set +# CONFIG_EXYNOS_VIDEO is not set # CONFIG_BACKLIGHT_LCD_SUPPORT is not set -# -# Display device support -# -# CONFIG_DISPLAY_SUPPORT is not set - # # Console display driver support # @@ -882,7 +982,14 @@ CONFIG_LOGO_LINUX_MONO=y CONFIG_LOGO_LINUX_VGA16=y CONFIG_LOGO_LINUX_CLUT224=y # CONFIG_SOUND is not set -# CONFIG_HID_SUPPORT is not set + +# +# HID support +# +# CONFIG_HID is not set +# CONFIG_USB_ARCH_HAS_OHCI is not set +# CONFIG_USB_ARCH_HAS_EHCI is not set +# CONFIG_USB_ARCH_HAS_XHCI is not set # CONFIG_USB_SUPPORT is not set # CONFIG_MMC is not set # CONFIG_MEMSTICK is not set @@ -893,13 +1000,15 @@ CONFIG_LEDS_CLASS=y # LED drivers # # CONFIG_LEDS_LM3530 is not set -CONFIG_LEDS_ALIX2=m CONFIG_LEDS_PCA9532=m CONFIG_LEDS_LP3944=m # CONFIG_LEDS_LP5521 is not set # CONFIG_LEDS_LP5523 is not set CONFIG_LEDS_PCA955X=m +# CONFIG_LEDS_PCA9633 is not set CONFIG_LEDS_BD2802=m +# CONFIG_LEDS_TCA6507 is not set +# CONFIG_LEDS_OT200 is not set CONFIG_LEDS_TRIGGERS=y # @@ -913,7 +1022,7 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m # # iptables trigger is under Netfilter config (LED target) # -# CONFIG_NFC_DEVICES is not set +# CONFIG_LEDS_TRIGGER_TRANSIENT is not set # CONFIG_ACCESSIBILITY is not set # CONFIG_EDAC is not set CONFIG_RTC_LIB=y @@ -981,9 +1090,39 @@ CONFIG_RTC_INTF_DEV=y # CONFIG_DMADEVICES is not set # CONFIG_AUXDISPLAY is not set # CONFIG_UIO is not set + +# +# Virtio drivers +# +# CONFIG_VIRTIO_BALLOON is not set +# CONFIG_VIRTIO_MMIO is not set + +# +# Microsoft Hyper-V guest support +# # CONFIG_STAGING is not set # CONFIG_X86_PLATFORM_DEVICES is not set + +# +# Hardware Spinlock drivers +# CONFIG_CLKSRC_I8253=y +CONFIG_CLKEVT_I8253=y +CONFIG_CLKBLD_I8253=y +# CONFIG_IOMMU_SUPPORT is not set + +# +# Remoteproc drivers (EXPERIMENTAL) +# + +# +# Rpmsg drivers (EXPERIMENTAL) +# +# CONFIG_VIRT_DRIVERS is not set +# CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +# CONFIG_MEMORY is not set +# CONFIG_IIO is not set # # Firmware Drivers @@ -993,12 +1132,12 @@ CONFIG_FIRMWARE_MEMMAP=y # CONFIG_DELL_RBU is not set # CONFIG_DCDBAS is not set # CONFIG_ISCSI_IBFT_FIND is not set -# CONFIG_SIGMA is not set # CONFIG_GOOGLE_FIRMWARE is not set # # File systems # +CONFIG_DCACHE_WORD_ACCESS=y CONFIG_EXT2_FS=y # CONFIG_EXT2_FS_XATTR is not set # CONFIG_EXT2_FS_XIP is not set @@ -1056,12 +1195,6 @@ CONFIG_TMPFS_XATTR=y # CONFIG_CONFIGFS_FS is not set # CONFIG_MISC_FILESYSTEMS is not set # CONFIG_NETWORK_FILESYSTEMS is not set - -# -# Partition Types -# -# CONFIG_PARTITION_ADVANCED is not set -CONFIG_MSDOS_PARTITION=y # CONFIG_NLS is not set # @@ -1075,6 +1208,7 @@ CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 CONFIG_FRAME_WARN=1024 CONFIG_MAGIC_SYSRQ=y # CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_READABLE_ASM is not set CONFIG_UNUSED_SYMBOLS=y CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set @@ -1083,6 +1217,8 @@ CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set # CONFIG_LOCKUP_DETECTOR is not set # CONFIG_HARDLOCKUP_DETECTOR is not set +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_DETECT_HUNG_TASK=y CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set @@ -1101,7 +1237,7 @@ CONFIG_TIMER_STATS=y # CONFIG_PROVE_LOCKING is not set # CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set CONFIG_STACKTRACE=y # CONFIG_DEBUG_STACK_USAGE is not set @@ -1123,6 +1259,8 @@ CONFIG_FRAME_POINTER=y # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_RCU_TORTURE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=60 +# CONFIG_RCU_CPU_STALL_INFO is not set +# CONFIG_RCU_TRACE is not set # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set @@ -1131,7 +1269,6 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60 # CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set # CONFIG_FAULT_INJECTION is not set CONFIG_LATENCYTOP=y -CONFIG_SYSCTL_SYSCALL_CHECK=y # CONFIG_DEBUG_PAGEALLOC is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_HAVE_FUNCTION_TRACER=y @@ -1178,6 +1315,7 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=1 # CONFIG_CPA_DEBUG is not set CONFIG_OPTIMIZE_INLINING=y # CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set +# CONFIG_DEBUG_NMI_SELFTEST is not set # # Security options @@ -1207,6 +1345,7 @@ CONFIG_CRYPTO_PCOMP=m CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y +# CONFIG_CRYPTO_USER is not set CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=m CONFIG_CRYPTO_NULL=m @@ -1269,6 +1408,7 @@ CONFIG_CRYPTO_AES_586=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_COMMON=m CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m @@ -1279,6 +1419,7 @@ CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20_586=m CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_SERPENT=m +# CONFIG_CRYPTO_SERPENT_SSE2_586 is not set CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m @@ -1305,7 +1446,6 @@ CONFIG_HAVE_KVM=y CONFIG_VIRTUALIZATION=y # CONFIG_VHOST_NET is not set # CONFIG_LGUEST is not set -# CONFIG_VIRTIO_BALLOON is not set # CONFIG_BINARY_PRINTF is not set # @@ -1313,13 +1453,22 @@ CONFIG_VIRTUALIZATION=y # CONFIG_BITREVERSE=y CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_IO=y CONFIG_CRC_CCITT=y CONFIG_CRC16=y CONFIG_CRC_T10DIF=y CONFIG_CRC_ITU_T=y CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set CONFIG_CRC7=y CONFIG_LIBCRC32C=y +# CONFIG_CRC8 is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=m CONFIG_LZO_COMPRESS=m @@ -1331,5 +1480,8 @@ CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CPU_RMAP=y +CONFIG_DQL=y CONFIG_NLATTR=y # CONFIG_AVERAGE is not set +# CONFIG_CORDIC is not set +# CONFIG_DDR is not set diff --git a/ports-foc/include/l4/re/env.h b/ports-foc/include/l4/re/env.h index 7f53627d01..94c767e9a6 100644 --- a/ports-foc/include/l4/re/env.h +++ b/ports-foc/include/l4/re/env.h @@ -42,7 +42,7 @@ typedef struct l4re_env_t l4_addr_t first_free_utcb; } l4re_env_t; -L4_CV l4re_env_cap_entry_t const * l4re_get_env_cap_l(char const *name, +L4_CV l4re_env_cap_entry_t const * l4re_env_get_cap_l(char const *name, unsigned l, l4re_env_t const *e); diff --git a/ports-foc/patches/l4lx_genode.patch b/ports-foc/patches/l4lx_genode.patch index 79f636a925..988163f05d 100644 --- a/ports-foc/patches/l4lx_genode.patch +++ b/ports-foc/patches/l4lx_genode.patch @@ -1,8 +1,33 @@ +Index: arch/l4/Kconfig +=================================================================== +--- arch/l4/Kconfig (revision 25) ++++ arch/l4/Kconfig (working copy) +@@ -235,6 +235,20 @@ + help + Support for (virtual) TPMs provided by the L4 service STPM of TUD:OS. + ++config SCREEN_GENODE ++ bool ++ select FB_CFB_FILLRECT ++ select FB_CFB_COPYAREA ++ select FB_CFB_IMAGEBLIT ++ default y ++ ++config SERIAL_GENODE ++ bool ++ default y ++ select SERIAL_CORE ++ select SERIAL_CORE_CONSOLE ++ ++ + endmenu # stub drivers + + menu "Debugging options" Index: arch/l4/kernel/dispatch.c =================================================================== ---- arch/l4/kernel/dispatch.c (revision 23) +--- arch/l4/kernel/dispatch.c (revision 25) +++ arch/l4/kernel/dispatch.c (working copy) -@@ -274,7 +274,7 @@ +@@ -271,7 +271,7 @@ return 0; if (l4_msgtag_is_page_fault(tag)) { @@ -11,7 +36,7 @@ Index: arch/l4/kernel/dispatch.c /* No exception IPC, it's a page fault, but shouldn't happen */ goto out_fail; } -@@ -694,7 +694,7 @@ +@@ -695,7 +695,7 @@ enter_kdebug("non hybrid in idle?!"); } else { if (unlikely(l4x_handle_async_event(label, utcb, tag))) @@ -20,24 +45,11 @@ Index: arch/l4/kernel/dispatch.c } } } -Index: arch/l4/kernel/arch-arm/dispatch.c -=================================================================== ---- arch/l4/kernel/arch-arm/dispatch.c (revision 23) -+++ arch/l4/kernel/arch-arm/dispatch.c (working copy) -@@ -66,7 +66,7 @@ - }; - - --#if 1 -+#if 0 - #define TBUF_LOG_IDLE(x) TBUF_DO_IT(x) - #define TBUF_LOG_WAKEUP_IDLE(x) TBUF_DO_IT(x) - #define TBUF_LOG_USER_PF(x) TBUF_DO_IT(x) Index: arch/l4/kernel/arch-arm/vmlinux.lds.S =================================================================== ---- arch/l4/kernel/arch-arm/vmlinux.lds.S (revision 23) +--- arch/l4/kernel/arch-arm/vmlinux.lds.S (revision 25) +++ arch/l4/kernel/arch-arm/vmlinux.lds.S (working copy) -@@ -36,6 +36,12 @@ +@@ -47,6 +47,12 @@ jiffies = jiffies_64 + 4; #endif @@ -49,13 +61,19 @@ Index: arch/l4/kernel/arch-arm/vmlinux.lds.S + SECTIONS { - #ifdef CONFIG_XIP_KERNEL -@@ -46,6 +52,19 @@ + /* +@@ -82,14 +88,32 @@ + } - .init : { /* Init code and data */ - _stext = .; -+ _prog_img_beg = .; + #ifdef CONFIG_XIP_KERNEL +- . = XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR); ++ . = XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR) - 4096; + #else +- . = PAGE_OFFSET + TEXT_OFFSET; ++ . = PAGE_OFFSET + TEXT_OFFSET - 4096; + #endif + ++ .parent : { + /* + * Leave space for parent capability parameters at start of data + * section. The protection domain creator is reponsible for storing @@ -66,39 +84,28 @@ Index: arch/l4/kernel/arch-arm/vmlinux.lds.S + LONG(0xffffffff); + _parent_cap_local_name = .; + LONG(0xffffffff); -+ - _sinittext = .; - HEAD_TEXT - INIT_TEXT -@@ -80,7 +99,7 @@ - INIT_DATA - ARM_EXIT_KEEP(EXIT_DATA) - #endif -- } + } : rw - - PERCPU_SECTION(32) - -@@ -126,6 +145,7 @@ ++ ++ . = ALIGN(4096); ++ + .head.text : { ++ _prog_img_beg = .; + _text = .; + HEAD_TEXT + } ++ + .text : { /* Real text segment */ + _stext = .; /* Text and read-only data */ + __exception_text_start = .; +@@ -104,6 +128,7 @@ #ifdef CONFIG_MMU *(.fixup) #endif + *(.text.*) /* put all Genode .text entries in here */ *(.gnu.warning) - *(.rodata) - *(.rodata.*) -@@ -134,8 +154,9 @@ - . = ALIGN(4); - *(.got) /* Global offset table */ - ARM_CPU_KEEP(PROC_INFO) -- } - -+ } : rw -+ - RO_DATA(PAGE_SIZE) - - #ifdef CONFIG_ARM_UNWIND -@@ -155,6 +176,42 @@ + *(.glue_7) + *(.glue_7t) +@@ -136,6 +161,42 @@ } #endif @@ -140,8 +147,8 @@ Index: arch/l4/kernel/arch-arm/vmlinux.lds.S + _etext = .; /* End of text and rodata section */ - #ifdef CONFIG_XIP_KERNEL -@@ -204,8 +261,10 @@ + #ifndef CONFIG_XIP_KERNEL +@@ -240,8 +301,10 @@ DATA_DATA CONSTRUCTORS @@ -153,7 +160,7 @@ Index: arch/l4/kernel/arch-arm/vmlinux.lds.S _edata_loc = __data_loc + SIZEOF(.data); #ifdef CONFIG_HAVE_TCM -@@ -267,10 +326,20 @@ +@@ -303,10 +366,20 @@ NOTES @@ -174,12 +181,12 @@ Index: arch/l4/kernel/arch-arm/vmlinux.lds.S + _prog_img_end = .; _end = .; - /* L4: Add NOTES so that .note.gnu.build-id is caught, because we do + STABS_DEBUG Index: arch/l4/kernel/arch-arm/traps.c =================================================================== ---- arch/l4/kernel/arch-arm/traps.c (revision 23) +--- arch/l4/kernel/arch-arm/traps.c (revision 25) +++ arch/l4/kernel/arch-arm/traps.c (working copy) -@@ -66,6 +66,7 @@ +@@ -68,6 +68,7 @@ dump_mem("", "Exception stack", frame + 4, frame + 4 + sizeof(struct pt_regs)); } @@ -187,7 +194,7 @@ Index: arch/l4/kernel/arch-arm/traps.c #ifndef CONFIG_ARM_UNWIND /* * Stack pointers should always be within the kernels view of -@@ -81,6 +82,7 @@ +@@ -83,6 +84,7 @@ return 0; } #endif @@ -195,7 +202,7 @@ Index: arch/l4/kernel/arch-arm/traps.c /* * Dump out the contents of some memory nicely... -@@ -170,6 +172,7 @@ +@@ -172,6 +174,7 @@ #else static void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk) { @@ -203,7 +210,7 @@ Index: arch/l4/kernel/arch-arm/traps.c unsigned int fp, mode; int ok = 1; -@@ -201,6 +204,7 @@ +@@ -203,6 +206,7 @@ if (ok) c_backtrace(fp, mode); @@ -213,9 +220,9 @@ Index: arch/l4/kernel/arch-arm/traps.c Index: arch/l4/kernel/arch-x86/x86_init.c =================================================================== ---- arch/l4/kernel/arch-x86/x86_init.c (revision 23) +--- arch/l4/kernel/arch-x86/x86_init.c (revision 25) +++ arch/l4/kernel/arch-x86/x86_init.c (working copy) -@@ -38,7 +38,7 @@ +@@ -42,7 +42,7 @@ struct x86_init_ops x86_init __initdata = { .resources = { @@ -226,7 +233,7 @@ Index: arch/l4/kernel/arch-x86/x86_init.c }, Index: arch/l4/kernel/arch-x86/vmlinux.lds.S =================================================================== ---- arch/l4/kernel/arch-x86/vmlinux.lds.S (revision 23) +--- arch/l4/kernel/arch-x86/vmlinux.lds.S (revision 25) +++ arch/l4/kernel/arch-x86/vmlinux.lds.S (working copy) @@ -33,7 +33,7 @@ @@ -237,29 +244,25 @@ Index: arch/l4/kernel/arch-x86/vmlinux.lds.S jiffies = jiffies_64; #else OUTPUT_ARCH(i386:x86-64) -@@ -67,17 +67,10 @@ - +@@ -68,15 +68,8 @@ #endif --PHDRS { + PHDRS { - text PT_LOAD FLAGS(5); /* R_E */ - data PT_LOAD FLAGS(6); /* RW_ */ -#ifdef CONFIG_X86_64 -- user PT_LOAD FLAGS(5); /* R_E */ -#ifdef CONFIG_SMP - percpu PT_LOAD FLAGS(6); /* RW_ */ -#endif - init PT_LOAD FLAGS(7); /* RWE */ -#endif - note PT_NOTE FLAGS(0); /* ___ */ -+PHDRS -+{ + ro PT_LOAD; + rw PT_LOAD; } SECTIONS -@@ -97,6 +90,29 @@ +@@ -96,6 +89,29 @@ /*_stext = .;*/ .text : AT(ADDR(.text) - LOAD_OFFSET) { _text = .; @@ -289,7 +292,7 @@ Index: arch/l4/kernel/arch-x86/vmlinux.lds.S /* bootstrapping code */ HEAD_TEXT #ifdef CONFIG_X86_32 -@@ -112,19 +128,55 @@ +@@ -111,19 +127,55 @@ ENTRY_TEXT IRQENTRY_TEXT *(.fixup) @@ -348,7 +351,7 @@ Index: arch/l4/kernel/arch-x86/vmlinux.lds.S X64_ALIGN_DEBUG_RODATA_BEGIN RO_DATA(PAGE_SIZE) X64_ALIGN_DEBUG_RODATA_END -@@ -152,10 +204,34 @@ +@@ -151,10 +203,34 @@ /* rarely changed data like cpu maps */ READ_MOSTLY_DATA(INTERNODE_CACHE_BYTES) @@ -383,8 +386,8 @@ Index: arch/l4/kernel/arch-x86/vmlinux.lds.S + #ifdef CONFIG_X86_64 - #ifdef CONFIG_L4 -@@ -331,10 +407,6 @@ + . = ALIGN(PAGE_SIZE); +@@ -273,10 +349,6 @@ EXIT_DATA } @@ -395,7 +398,7 @@ Index: arch/l4/kernel/arch-x86/vmlinux.lds.S . = ALIGN(PAGE_SIZE); /* freed after init ends here */ -@@ -342,18 +414,6 @@ +@@ -284,18 +356,6 @@ __init_end = .; } @@ -414,7 +417,7 @@ Index: arch/l4/kernel/arch-x86/vmlinux.lds.S #ifdef CONFIG_X86_64 .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { NOSAVE_DATA -@@ -366,6 +426,7 @@ +@@ -308,6 +368,7 @@ __bss_start = .; *(.bss..page_aligned) *(.bss) @@ -422,7 +425,7 @@ Index: arch/l4/kernel/arch-x86/vmlinux.lds.S . = ALIGN(PAGE_SIZE); __bss_stop = .; } -@@ -378,6 +439,7 @@ +@@ -320,6 +381,7 @@ __brk_limit = .; } @@ -430,9 +433,48 @@ Index: arch/l4/kernel/arch-x86/vmlinux.lds.S _end = .; STABS_DEBUG +Index: arch/l4/kernel/timer.c +=================================================================== +--- arch/l4/kernel/timer.c (revision 25) ++++ arch/l4/kernel/timer.c (working copy) +@@ -225,12 +225,16 @@ + return -ENOMEM; + } + ++#if 0 + r = L4XV_FN_i(l4_error(l4_factory_create_irq(l4re_env()->factory, + timer_irq_cap))); + if (r) { + printk(KERN_ERR "l4timer: Failed to create irq: %d\n", r); + goto out1; + } ++#else ++ l4lx_thread_alloc_irq(timer_irq_cap); ++#endif + + if ((irq = l4x_register_irq(timer_irq_cap)) < 0) { + r = -ENOMEM; +@@ -238,6 +242,7 @@ + } + + printk("l4timer: Using IRQ%d\n", irq); ++ LOG_printf("l4timer: Using IRQ%d\n", irq); + + setup_irq(irq, &l4timer_irq); + +@@ -279,7 +284,9 @@ + l4x_unregister_irq(irq); + out2: + L4XV_FN_v(l4re_util_cap_release(timer_irq_cap)); ++#if 0 + out1: ++#endif + l4x_cap_free(timer_irq_cap); + return r; + } Index: arch/l4/kernel/head.S =================================================================== ---- arch/l4/kernel/head.S (revision 23) +--- arch/l4/kernel/head.S (revision 25) +++ arch/l4/kernel/head.S (working copy) @@ -53,6 +53,7 @@ .previous @@ -455,9 +497,9 @@ Index: arch/l4/kernel/head.S ENTRY(swapper_pg_dir) Index: arch/l4/kernel/main.c =================================================================== ---- arch/l4/kernel/main.c (revision 23) +--- arch/l4/kernel/main.c (revision 25) +++ arch/l4/kernel/main.c (working copy) -@@ -305,7 +305,7 @@ +@@ -280,7 +280,7 @@ } #endif @@ -466,10 +508,10 @@ Index: arch/l4/kernel/main.c if (strstr(cmdline, "console=ttyLv")) { LOG_printf("Console output set to ttyLvx but driver not compiled in.\n"); enter_kdebug("L4 serial driver not enabled"); -@@ -363,6 +363,26 @@ - } +@@ -381,6 +381,26 @@ } + +static spinlock_t migrate_lock; + +void l4x_irq_save(unsigned long flags) { local_irq_save(flags); } @@ -493,34 +535,30 @@ Index: arch/l4/kernel/main.c unsigned long l4x_virt_to_phys(volatile void * address) { int i; -@@ -375,14 +395,14 @@ - + l4x_phys_virt_addrs[i].phys; - } - -- l4x_virt_to_phys_show(); -+// l4x_virt_to_phys_show(); - /* Whitelist: */ +@@ -405,10 +425,10 @@ /* Debugging check: don't miss a translation, can give nasty * DMA problems */ - l4x_printf("%s: Could not translate virt. address %p\n", + LOG_printf("%s: Could not translate virt. address %p\n", __func__, address); +- l4x_virt_to_phys_show(); - WARN_ON(1); -+// WARN_ON(1); ++ //l4x_virt_to_phys_show(); ++ //WARN_ON(1); return __pa(address); } -@@ -414,7 +434,7 @@ +@@ -439,7 +459,7 @@ /* Debugging check: don't miss a translation, can give nasty * DMA problems */ - l4x_printf("%s: Could not translate phys. address 0x%lx\n", + LOG_printf("%s: Could not translate phys. address 0x%lx\n", __func__, address); + l4x_virt_to_phys_show(); WARN_ON(1); - -@@ -532,7 +552,7 @@ +@@ -558,7 +578,7 @@ r = l4re_ns_query_srv(entry->cap, n + 1, *cap); if (r) { @@ -529,7 +567,7 @@ Index: arch/l4/kernel/main.c name, l4sys_errtostr(r), r); L4XV_U(f); return -ENOENT; -@@ -713,6 +733,7 @@ +@@ -742,6 +762,7 @@ = sizeof(at_exit_functions) / sizeof(at_exit_functions[0]); static int __current_exititem; @@ -537,7 +575,7 @@ Index: arch/l4/kernel/main.c static struct cxa_atexit_item *__next_atexit(void) { if (__current_exititem >= at_exit_nr_of_functions) { -@@ -721,21 +742,10 @@ +@@ -750,21 +771,10 @@ } return &at_exit_functions[__current_exititem++]; } @@ -560,8 +598,8 @@ Index: arch/l4/kernel/main.c - void __cxa_finalize(void *dso_handle) { - register int i = __current_exititem; -@@ -790,10 +800,20 @@ + const int verbose = 0; +@@ -819,10 +829,20 @@ } static int l4x_forward_pf(l4_umword_t addr, l4_umword_t pc, int extra_write) { @@ -582,7 +620,7 @@ Index: arch/l4/kernel/main.c do { l4_msg_regs_t *mr = l4_utcb_mr_u(u); mr->mr[0] = addr | (extra_write ? 2 : 0); -@@ -815,6 +835,7 @@ +@@ -844,6 +864,7 @@ // unresolvable page fault, we're supposed to trigger an // exception return 0; @@ -590,16 +628,7 @@ Index: arch/l4/kernel/main.c return 1; } -@@ -1054,7 +1075,7 @@ - addr = (l4_addr_t)p_in_addr; - size = 1; - if (l4re_rm_find(&addr, &size, &off, &flags, &ds)) { -- LOG_printf("Cannot anything at %p?!", p_in_addr); -+ LOG_printf("Cannot anything at %p\n?!", p_in_addr); - l4re_rm_show_lists(); - enter_kdebug("l4re_rm_find failed"); - return; -@@ -1254,7 +1275,7 @@ +@@ -1283,7 +1304,7 @@ 0, "Main memory"); /* Reserve some part of the virtual address space for vmalloc */ @@ -608,7 +637,7 @@ Index: arch/l4/kernel/main.c if (l4re_rm_reserve_area(&l4x_vmalloc_memory_start, #ifdef CONFIG_X86_32 __VMALLOC_RESERVE, -@@ -1381,6 +1402,10 @@ +@@ -1416,6 +1437,10 @@ static void l4x_create_ugate(l4_cap_idx_t forthread, unsigned cpu) { @@ -618,8 +647,8 @@ Index: arch/l4/kernel/main.c +#if 0 l4_msgtag_t r; - l4x_user_gate[cpu] = l4x_cap_alloc(); -@@ -1401,6 +1426,7 @@ + l4x_user_gate[cpu] = l4x_cap_alloc_noctx(); +@@ -1436,6 +1461,7 @@ l4_debugger_set_object_name(l4x_user_gate[cpu], n); #endif } @@ -627,7 +656,7 @@ Index: arch/l4/kernel/main.c } #ifdef CONFIG_HOTPLUG_CPU -@@ -1607,11 +1633,15 @@ +@@ -1641,11 +1667,15 @@ l4x_exit_l4linux(); } @@ -643,18 +672,20 @@ Index: arch/l4/kernel/main.c #ifdef CONFIG_L4_DEBUG_REGISTER_NAMES l4_debugger_set_object_name(c, s); -@@ -1890,8 +1920,10 @@ +@@ -1906,8 +1936,12 @@ static int l4x_cpu_virt_phys_map_init(const char *boot_command_line) { +#ifdef CONFIG_SMP l4_umword_t max_cpus = 1; ++#if 0 l4_sched_cpu_set_t cs = l4_sched_cpu_set(0, 0, 0); ++#endif +#endif unsigned i; #ifdef CONFIG_SMP -@@ -1907,9 +1939,10 @@ +@@ -1923,9 +1957,10 @@ } } @@ -666,7 +697,7 @@ Index: arch/l4/kernel/main.c if ((p = strstr(boot_command_line, "l4x_cpus_map="))) { // l4x_cpus_map=0,1,2,3,4,... // the list specifies the physical CPU for each -@@ -1931,10 +1964,12 @@ +@@ -1947,10 +1982,12 @@ LOG_printf("ERROR: Error parsing l4x_cpus_map option\n"); return 1; } @@ -679,7 +710,7 @@ Index: arch/l4/kernel/main.c l4x_cpu_physmap[l4x_nr_cpus].phys_id = pcpu; for (i = 0; i < l4x_nr_cpus; ++i) overbooking |= -@@ -1958,12 +1993,16 @@ +@@ -1974,12 +2011,16 @@ l4x_nr_cpus = v; } @@ -696,7 +727,7 @@ Index: arch/l4/kernel/main.c if (l4_error(l4_scheduler_info(l4re_env()->scheduler, &max_cpus, &cs)) == L4_EOK) { -@@ -1973,6 +2012,8 @@ +@@ -1989,6 +2030,8 @@ l4x_cpu_physmap[0].phys_id = p; } #endif @@ -705,7 +736,7 @@ Index: arch/l4/kernel/main.c LOG_printf("CPU mapping (l:p)[%d]: ", l4x_nr_cpus); for (i = 0; i < l4x_nr_cpus; i++) -@@ -2018,6 +2059,7 @@ +@@ -2034,6 +2077,7 @@ printk("panic: going to sleep forever, bye\n"); L4XV_L(f); LOG_printf("panic: going to sleep forever, bye\n"); @@ -713,16 +744,16 @@ Index: arch/l4/kernel/main.c l4_sleep_forever(); return 0; } -@@ -2298,7 +2340,7 @@ - } +@@ -2302,7 +2346,7 @@ + LOG_printf("Device scan done.\n"); } -int __init_refok L4_CV main(int argc, char **argv) +int __init_refok L4_CV linux_main(int argc, char **argv) { l4lx_thread_t main_id; - extern char _end[]; -@@ -2410,10 +2452,13 @@ + struct l4lx_thread_start_info_t si; +@@ -2414,10 +2458,13 @@ l4x_start_thread_id = l4re_env()->main_thread; @@ -736,7 +767,7 @@ Index: arch/l4/kernel/main.c #ifndef CONFIG_L4_VCPU #ifdef CONFIG_L4_TAMED -@@ -3180,6 +3225,10 @@ +@@ -3223,6 +3270,10 @@ /* Not resolvable: Ooops */ LOG_printf("Non-resolvable page fault at %lx, ip %lx.\n", pfa, ip); // will trigger an oops in caller @@ -747,7 +778,7 @@ Index: arch/l4/kernel/main.c return 0; } -@@ -3560,7 +3609,9 @@ +@@ -3419,7 +3470,9 @@ void exit(int code) { __cxa_finalize(0); @@ -757,33 +788,9 @@ Index: arch/l4/kernel/main.c LOG_printf("Still alive, going zombie???\n"); l4_sleep_forever(); } -Index: arch/l4/Kconfig -=================================================================== ---- arch/l4/Kconfig (revision 23) -+++ arch/l4/Kconfig (working copy) -@@ -394,7 +394,19 @@ - config L4_USE_L4SHMC - bool - -+config SCREEN_GENODE -+ bool -+ select FB_CFB_FILLRECT -+ select FB_CFB_COPYAREA -+ select FB_CFB_IMAGEBLIT -+ default y - -+config SERIAL_GENODE -+ bool -+ default y -+ select SERIAL_CORE -+ select SERIAL_CORE_CONSOLE -+ - # some delimiter (for .config) - comment "" - source "arch/l4/Kconfig.arch" Index: arch/l4/include/asm/generic/l4lib.h =================================================================== ---- arch/l4/include/asm/generic/l4lib.h (revision 23) +--- arch/l4/include/asm/generic/l4lib.h (revision 25) +++ arch/l4/include/asm/generic/l4lib.h (working copy) @@ -3,6 +3,7 @@ @@ -804,9 +811,9 @@ Index: arch/l4/include/asm/generic/l4lib.h #endif /* __INCLUDE__ASM_L4__GENERIC__L4LIB_H__ */ Index: arch/l4/include/asm/l4lxapi/thread.h =================================================================== ---- arch/l4/include/asm/l4lxapi/thread.h (revision 23) +--- arch/l4/include/asm/l4lxapi/thread.h (revision 25) +++ arch/l4/include/asm/l4lxapi/thread.h (working copy) -@@ -24,6 +24,8 @@ +@@ -32,6 +32,8 @@ */ void l4lx_thread_init(void); @@ -817,7 +824,7 @@ Index: arch/l4/include/asm/l4lxapi/thread.h * \ingroup thread Index: arch/l4/boot/Makefile =================================================================== ---- arch/l4/boot/Makefile (revision 23) +--- arch/l4/boot/Makefile (revision 25) +++ arch/l4/boot/Makefile (working copy) @@ -10,7 +10,7 @@ $(call if_changed,objcopy) @@ -841,9 +848,9 @@ Index: arch/l4/boot/Makefile -Wall -fno-strict-aliasing -O2 -pipe \ Index: arch/l4/lib/pte.c =================================================================== ---- arch/l4/lib/pte.c (revision 23) +--- arch/l4/lib/pte.c (revision 25) +++ arch/l4/lib/pte.c (working copy) -@@ -19,7 +19,10 @@ +@@ -18,7 +18,10 @@ #include #include #include @@ -854,7 +861,7 @@ Index: arch/l4/lib/pte.c static void l4x_flush_page(struct mm_struct *mm, unsigned long address, unsigned long vaddr, -@@ -78,7 +81,7 @@ +@@ -77,7 +80,7 @@ if (mm && !l4_is_invalid_cap(mm->context.task)) { L4XV_V(f); if (!mm->context.task) @@ -863,7 +870,7 @@ Index: arch/l4/lib/pte.c /* Direct flush in the child, use virtual address in the * child address space */ L4XV_L(f); -@@ -94,10 +97,11 @@ +@@ -93,10 +96,11 @@ tag = l4_task_unmap(L4RE_THIS_TASK_CAP, l4_fpage(address & PAGE_MASK, size, flush_rights), L4_FP_OTHER_SPACES); @@ -878,11 +885,11 @@ Index: arch/l4/lib/pte.c #ifdef ARCH_arm Index: arch/l4/Makefile =================================================================== ---- arch/l4/Makefile (revision 23) +--- arch/l4/Makefile (revision 25) +++ arch/l4/Makefile (working copy) -@@ -170,6 +170,12 @@ - # prevent gcc from generating any FP code by mistake +@@ -163,6 +163,12 @@ KBUILD_CFLAGS += $(call cc-option,-mno-sse -mno-mmx -mno-sse2 -mno-3dnow,) + KBUILD_CFLAGS += $(call cc-option,-mno-avx,) +# +# Prevent the gcc from linking Linux memmove into compiler-generated @@ -893,7 +900,7 @@ Index: arch/l4/Makefile endif ifeq ($(BASEARCH),arm) -@@ -252,6 +258,8 @@ +@@ -243,6 +249,8 @@ endif @@ -902,7 +909,7 @@ Index: arch/l4/Makefile # ----------------------------------------------- -@@ -274,14 +282,15 @@ +@@ -265,14 +273,15 @@ L4LX_E_L-$(CONFIG_L4_TCG_STPM) += stpm-client L4LX_E_L-$(CONFIG_L4_FERRET) += ferret @@ -915,15 +922,15 @@ Index: arch/l4/Makefile +# -I$(L4OBJ)/include/$(L4_MK_API) \ +# -I$(L4OBJ)/include - head-y := arch/l4/kernel/head.o arch/l4/kernel/init_task.o + head-y := arch/l4/kernel/head.o -libs-y += arch/l4/lib/arch-$(BASEARCH)/ \ +libs-y += arch/l4/lib/arch-$(BASEARCH)/ -+# \ ++#\ arch/l4/l4lxlib/generic/ \ arch/l4/l4lxlib/$(BASEENV)/ -@@ -299,7 +308,7 @@ +@@ -291,7 +300,7 @@ core-y += arch/l4/ @@ -932,31 +939,30 @@ Index: arch/l4/Makefile L4_REQUIRED_MODS := libc_be_minimal_log_io \ libc_minimal libc_minimal_l4re \ -@@ -315,15 +324,16 @@ +@@ -307,15 +316,17 @@ $(error Aborting.) endif --libs-y += -Bstatic $(L4_LIBDIRS) -ll4sys -ll4sys-direct +-libs-y += -Bstatic $(L4_LIBDIRS) -ll4sys -ll4sys-direct -lgcc-l4 ++libs-y += -Bstatic $(L4_LIBDIRS) ++#-ll4sys -ll4sys-direct -lgcc-l4 +libs-y += $(GENODE_LIBS) export L4INC L4_REQUIRED_MODS -LDFLAGS_vmlinux = \ - --defsym __L4_KIP_ADDR__=$(L4_BID_KIP_ADDR) \ -- --defsym __l4sys_invoke_direct=$(L4_BID_KIP_ADDR)+$(L4_BID_KIP_OFFS_SYS_INVOKE) \ -- --defsym __l4sys_debugger_direct=$(L4_BID_KIP_ADDR)+$(L4_BID_KIP_OFFS_SYS_DEBUGGER) +LDFLAGS_vmlinux = -nostdlib +# --defsym __L4_KIP_ADDR__=$(L4_BID_KIP_ADDR) \ -+ -nostdlib -+#--defsym __l4sys_invoke_direct=$(L4_BID_KIP_ADDR)+$(L4_BID_KIP_OFFS_SYS_INVOKE) \ -+ --defsym __l4sys_debugger_direct=$(L4_BID_KIP_ADDR)+$(L4_BID_KIP_OFFS_SYS_DEBUGGER) \ + --defsym __l4sys_invoke_direct=$(L4_BID_KIP_ADDR)+$(L4_BID_KIP_OFFS_SYS_INVOKE) \ + --defsym __l4sys_debugger_direct=$(L4_BID_KIP_ADDR)+$(L4_BID_KIP_OFFS_SYS_DEBUGGER) -KBUILD_CPPFLAGS += -Iarch/l4/include/asm/l4-arch \ +KBUILD_CPPFLAGS += $(GENODE_INCLUDES) -Iarch/l4/include/asm/l4-arch \ - -I$(src)/arch/$(LINSRCARCH)/include \ - -Iarch/l4/include/asm/$(LINSRCARCH)-arch \ - -Iarch/l4/include/asm/orig-arch \ -@@ -342,6 +352,8 @@ - KBUILD_CPPFLAGS += -DTEXT_OFFSET=0x0100000 + -Iarch/$(LINSRCARCH)/include/generated \ + $(if $(PLATFORMNAME),-I$(src)/arch/l4/include/asm/mach-$(LINSRCARCH)/$(PLATFORMNAME)) \ + $(if $(PLATFORMNAME),-I$(src)/arch/l4/include/asm/plat-$(LINSRCARCH)/$(PLATFORMNAME)) \ +@@ -337,6 +348,8 @@ + KBUILD_CPPFLAGS += -DTEXT_OFFSET=0x01000000 endif +drivers-y += arch/l4/drivers/ @@ -964,7 +970,7 @@ Index: arch/l4/Makefile all: lImage boot := arch/l4/boot -@@ -350,11 +362,11 @@ +@@ -345,11 +358,11 @@ $(Q)$(MAKE) $(build)=$(boot) $@ check_for_l4defs: @@ -983,7 +989,7 @@ Index: arch/l4/Makefile $(Q)$(MAKE) $(build)=arch/l4/server Index: drivers/tty/serial/l4ser.c =================================================================== ---- drivers/tty/serial/l4ser.c (revision 23) +--- drivers/tty/serial/l4ser.c (revision 25) +++ drivers/tty/serial/l4ser.c (working copy) @@ -22,10 +22,12 @@ #include @@ -998,33 +1004,30 @@ Index: drivers/tty/serial/l4ser.c #include #include #include -@@ -128,7 +130,10 @@ +@@ -118,7 +120,7 @@ + int c; if (port->x_char) { - L4XV_L(f); -+#if 0 - l4_vcon_write(l4port->vcon_cap, &port->x_char, 1); -+#endif -+ LOG_printf("%c", port->x_char); - L4XV_U(f); +- L4XV_FN_v(l4_vcon_write(l4port->vcon_cap, &port->x_char, 1)); ++ L4XV_FN_v(l4_vcon_write(LOG_printf("%c", port->x_char)); port->icount.tx++; port->x_char = 0; -@@ -140,7 +145,14 @@ + return; +@@ -128,7 +130,12 @@ + c = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE); if (c > L4_VCON_WRITE_SIZE) c = L4_VCON_WRITE_SIZE; - L4XV_L(f); -+#if 0 - l4_vcon_write(l4port->vcon_cap, &xmit->buf[xmit->tail], c); -+#endif +- L4XV_FN_v(l4_vcon_write(l4port->vcon_cap, &xmit->buf[xmit->tail], c)); ++ L4XV_L(f); + char *ptr = (char*)&xmit->buf[xmit->tail], old = ptr[c]; + ptr[c] = 0; + LOG_printf("%s", ptr); + ptr[c] = old; -+ - L4XV_U(f); ++ L4XV_U(f); xmit->tail = (xmit->tail + c) & (UART_XMIT_SIZE - 1); port->icount.tx += c; -@@ -260,7 +272,7 @@ + } +@@ -247,7 +254,7 @@ if (l4ser_port[num].inited) return 0; l4ser_port[num].inited = 1; @@ -1033,47 +1036,33 @@ Index: drivers/tty/serial/l4ser.c if ((r = l4x_re_resolve_name(name, &l4ser_port[num].vcon_cap))) { if (num == 0) l4ser_port[num].vcon_cap = l4re_env()->log; -@@ -301,11 +313,13 @@ - L4XV_U(f); - return -EIO; - } -- -+#endif +@@ -285,7 +292,7 @@ vcon_attr.i_flags = 0; vcon_attr.o_flags = 0; vcon_attr.l_flags = 0; -+#if 0 - l4_vcon_set_attr(l4ser_port[num].vcon_cap, &vcon_attr); -+#endif - L4XV_U(f); +- L4XV_FN_v(l4_vcon_set_attr(l4ser_port[num].vcon_cap, &vcon_attr)); ++// L4XV_FN_v(l4_vcon_set_attr(l4ser_port[num].vcon_cap, &vcon_attr)); l4ser_port[num].port.uartclk = 3686400; -@@ -349,7 +363,14 @@ + l4ser_port[num].port.ops = &l4ser_pops; +@@ -326,7 +333,13 @@ + unsigned c = count; if (c > L4_VCON_WRITE_SIZE) c = L4_VCON_WRITE_SIZE; - L4XV_L(f); -+#if 0 - l4_vcon_write(l4ser_port[co->index].vcon_cap, s, c); -+#endif +- L4XV_FN_v(l4_vcon_write(l4ser_port[co->index].vcon_cap, s, c)); ++ L4XV_L(f); + char *ptr = (char*)s, old = ptr[c]; + ptr[c] = 0; + LOG_printf("%s", ptr); + ptr[c] = old; + - L4XV_U(f); ++ L4XV_U(f); count -= c; } while (count); -@@ -396,6 +417,7 @@ - int ret, i; - - printk(KERN_INFO "L4 serial driver\n"); -+ LOG_printf("L4 serial driver\n"); - - if (l4ser_init_port(0, PORT0_NAME)) - return -ENODEV; + } Index: include/asm-generic/vmlinux.lds.h =================================================================== ---- include/asm-generic/vmlinux.lds.h (revision 23) +--- include/asm-generic/vmlinux.lds.h (revision 25) +++ include/asm-generic/vmlinux.lds.h (working copy) @@ -371,6 +371,7 @@ VMLINUX_SYMBOL(__start___modver) = .; \ diff --git a/ports-foc/patches/tcp_mem.patch b/ports-foc/patches/tcp_mem.patch deleted file mode 100644 index f17e48d998..0000000000 --- a/ports-foc/patches/tcp_mem.patch +++ /dev/null @@ -1,19 +0,0 @@ -Index: net/ipv4/tcp.c -=================================================================== ---- net/ipv4/tcp.c (revision 23) -+++ net/ipv4/tcp.c (working copy) -@@ -3285,8 +3285,13 @@ - - /* Set per-socket limits to no more than 1/128 the pressure threshold */ - limit = ((unsigned long)sysctl_tcp_mem[1]) << (PAGE_SHIFT - 7); -- max_share = min(4UL*1024*1024, limit); - -+ /* -+ * Adjust limit so it performs well on systems with little memory. If -+ * this causes errors increase L4Linux main memory -+ */ -+ max_share = min(4UL*1024*1024, limit < 768U * 1024 ? 768U * 1024 : limit); -+ - sysctl_tcp_wmem[0] = SK_MEM_QUANTUM; - sysctl_tcp_wmem[1] = 16*1024; - sysctl_tcp_wmem[2] = max(64*1024, max_share); diff --git a/ports-foc/run/l4linux.run b/ports-foc/run/l4linux.run index 68e0e8145f..31d05a187e 100644 --- a/ports-foc/run/l4linux.run +++ b/ports-foc/run/l4linux.run @@ -89,7 +89,17 @@ append_if [have_spec lan9118] config { append config { - +} + +append_if [have_spec x86] config { + +} + +append_if [have_spec arm] config { + +} + +append config { } @@ -122,9 +132,9 @@ build_boot_image [join $boot_modules " "] # Qemu # append qemu_args " -m 128 -nographic " -append qemu_args " -smp 2,cores=2 " append qemu_args " -serial unix:/tmp/qemu-pipe,server,nowait " append qemu_args " -serial mon:stdio " +append_if [have_spec x86] qemu_args " -smp 2,cores=2 " append_if [have_spec x86] qemu_args " -net nic,model=e1000 -net user " append_if [have_spec lan9118] qemu_args " -net nic,model=lan9118 -net user " diff --git a/ports-foc/src/drivers/genode_net.c b/ports-foc/src/drivers/genode_net.c index c319d62918..b0d8719966 100644 --- a/ports-foc/src/drivers/genode_net.c +++ b/ports-foc/src/drivers/genode_net.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include diff --git a/ports-foc/src/lib/l4lx/include/l4lx_irq.h b/ports-foc/src/lib/l4lx/include/l4lx_irq.h index eca0f85493..ac5cbfb22e 100644 --- a/ports-foc/src/lib/l4lx/include/l4lx_irq.h +++ b/ports-foc/src/lib/l4lx/include/l4lx_irq.h @@ -30,9 +30,11 @@ struct l4x_irq_desc_private { struct irq_data { unsigned int irq; + unsigned long hwirq; unsigned int node; unsigned int state_use_accessors; struct irq_chip *chip; + struct irq_domain *domain; void *handler_data; void *chip_data; }; diff --git a/ports-foc/src/lib/l4lx/include/l4lx_thread.h b/ports-foc/src/lib/l4lx/include/l4lx_thread.h index 4addfd454e..ee5715beb3 100644 --- a/ports-foc/src/lib/l4lx/include/l4lx_thread.h +++ b/ports-foc/src/lib/l4lx/include/l4lx_thread.h @@ -24,6 +24,11 @@ namespace Fiasco { typedef Fiasco::l4_utcb_t *l4lx_thread_t; +struct l4lx_thread_start_info_t { + Fiasco::l4_cap_idx_t l4cap; + Fiasco::l4_umword_t ip, sp; +}; + #ifdef __cplusplus extern "C" { #endif @@ -33,12 +38,14 @@ FASTCALL Fiasco::l4_cap_idx_t l4x_cpu_thread_get_cap(int cpu); FASTCALL void l4lx_thread_init(void); FASTCALL void l4lx_thread_alloc_irq(Fiasco::l4_cap_idx_t c); FASTCALL l4lx_thread_t l4lx_thread_create(L4_CV void (*thread_func)(void *data), - unsigned cpu_nr, - void *stack_pointer, - void *stack_data, unsigned stack_data_size, - int prio, - Fiasco::l4_vcpu_state_t **vcpu_state, - const char *name); + unsigned cpu_nr, + void *stack_pointer, + void *stack_data, unsigned stack_data_size, + Fiasco::l4_cap_idx_t l4cap, int prio, + Fiasco::l4_vcpu_state_t **vcpu_state, + const char *name, + struct l4lx_thread_start_info_t *deferstart); +FASTCALL int l4lx_thread_start(struct l4lx_thread_start_info_t *startinfo); FASTCALL int l4lx_thread_is_valid(l4lx_thread_t t); FASTCALL Fiasco::l4_cap_idx_t l4lx_thread_get_cap(l4lx_thread_t t); FASTCALL void l4lx_thread_pager_change(Fiasco::l4_cap_idx_t thread, diff --git a/ports-foc/src/lib/l4lx/include/vcpu.h b/ports-foc/src/lib/l4lx/include/vcpu.h index 89f6c47f22..d31ee951bc 100644 --- a/ports-foc/src/lib/l4lx/include/vcpu.h +++ b/ports-foc/src/lib/l4lx/include/vcpu.h @@ -36,9 +36,10 @@ namespace L4lx { private: void (*_func)(void *data); - void *_data; + unsigned long _data; Genode::addr_t _vcpu_state; Timer::Connection _timer; + unsigned _cpu_nr; static void _startup() { @@ -50,23 +51,23 @@ namespace L4lx { protected: void entry() { - _func(_data); + _func(&_data); Genode::sleep_forever(); } public: - Vcpu(const char *name, + Vcpu(const char *str, void (*func)(void *data), - void *data, + unsigned long *data, Genode::size_t stack_size, - Genode::addr_t vcpu_state) - : Genode::Thread_base(name, stack_size), + Genode::addr_t vcpu_state, + unsigned cpu_nr) + : Genode::Thread_base(str, stack_size), _func(func), - _data(data), - _vcpu_state(vcpu_state) { start(); } - - void start() + _data(data ? *data : 0), + _vcpu_state(vcpu_state), + _cpu_nr(cpu_nr) { using namespace Genode; using namespace Fiasco; @@ -94,6 +95,11 @@ namespace L4lx { l4_utcb_tcr_u(state.utcb)->user[UTCB_TCR_BADGE] = (unsigned long) i; l4_utcb_tcr_u(state.utcb)->user[UTCB_TCR_THREAD_OBJ] = (addr_t)this; l4_utcb_tcr_u(state.utcb)->user[0] = state.kcap; /* L4X_UTCB_TCR_ID */ + } + + void start() + { + using namespace Genode; /* register initial IP and SP at core */ addr_t stack = (addr_t)&_context->stack[-4]; @@ -102,8 +108,14 @@ namespace L4lx { if (_vcpu_state) vcpu_connection()->enable_vcpu(_thread_cap, _vcpu_state); + + set_affinity(_cpu_nr); } + Genode::addr_t sp() { + return ((Genode::addr_t)&_context->stack[-4]) & ~0xf; } + Genode::addr_t ip() { return (Genode::addr_t)_startup; } + Fiasco::l4_utcb_t *utcb() { return _context->utcb; }; Timer::Connection* timer() { return &_timer; } diff --git a/ports-foc/src/lib/l4lx/l4_log.cc b/ports-foc/src/lib/l4lx/l4_log.cc index 4d21a1296b..a02e2f4d65 100644 --- a/ports-foc/src/lib/l4lx/l4_log.cc +++ b/ports-foc/src/lib/l4lx/l4_log.cc @@ -33,7 +33,7 @@ extern "C" { void LOG_vprintf(const char *format, va_list list) { - PWRN("%s: Not implemented yet!", __func__); + Genode::vprintf(format, list); } diff --git a/ports-foc/src/lib/l4lx/l4_re_env.cc b/ports-foc/src/lib/l4lx/l4_re_env.cc index b614d23d6e..aa22b31f99 100644 --- a/ports-foc/src/lib/l4lx/l4_re_env.cc +++ b/ports-foc/src/lib/l4lx/l4_re_env.cc @@ -33,7 +33,7 @@ extern void* l4lx_kinfo; extern "C" { - l4re_env_cap_entry_t const * l4re_get_env_cap_l(char const *name, + l4re_env_cap_entry_t const * l4re_env_get_cap_l(char const *name, unsigned l, l4re_env_t const *e) { diff --git a/ports-foc/src/lib/l4lx/l4lx_irq.cc b/ports-foc/src/lib/l4lx/l4lx_irq.cc index 08a2db1d65..b5265b8ade 100644 --- a/ports-foc/src/lib/l4lx/l4lx_irq.cc +++ b/ports-foc/src/lib/l4lx/l4lx_irq.cc @@ -38,51 +38,6 @@ unsigned int l4lx_irq_max = l4x_nr_irqs(); extern l4_kernel_info_t *l4lx_kinfo; -void timer_irq_thread(void *data) -{ - l4_timeout_t to; - l4_kernel_clock_t pint; - l4_utcb_t *u = l4_utcb(); - struct l4x_irq_desc_private *p = - (struct l4x_irq_desc_private*) irq_get_chip_data(TIMER_IRQ); - - pint = l4lx_kinfo->clock; - for (;;) { - pint += 1000000 / l4x_hz(); - - if (pint > l4lx_kinfo->clock) { - l4_rcv_timeout(l4_timeout_abs_u(pint, 1, u), &to); - l4_ipc_receive(L4_INVALID_CAP, u, to); - } - - if (l4_error(l4_irq_trigger(p->irq_cap)) != -1) - PWRN("IRQ timer trigger failed\n"); - } -} - - -static unsigned int startup_timer(struct l4x_irq_desc_private *p) -{ - char name[15]; - int cpu = 0;//smp_processor_id(); - - unsigned long flags = 0; - l4x_irq_save(flags); - - Genode::snprintf(name, sizeof(name), "timer.i%d", TIMER_IRQ); - - static Genode::Native_capability timer_cap = L4lx::vcpu_connection()->alloc_irq(); - p->irq_cap = timer_cap.dst(); - p->cpu = 0; - - l4lx_thread_create(timer_irq_thread, cpu, 0, 0, 0, 0, 0, name); - l4x_irq_save(flags); - - l4lx_irq_dev_enable(irq_get_irq_data(TIMER_IRQ)); - return 1; -} - - extern "C" { FASTCALL l4_cap_idx_t l4x_have_irqcap(int irqnum); @@ -107,9 +62,6 @@ unsigned int l4lx_irq_dev_startup(struct irq_data *data) if (DEBUG) PDBG("irq=%d", irq); - if (irq == TIMER_IRQ) - return startup_timer(p); - /* First test whether a capability has been registered with * this IRQ number */ p->irq_cap = l4x_have_irqcap(irq); @@ -117,6 +69,7 @@ unsigned int l4lx_irq_dev_startup(struct irq_data *data) PERR("Invalid irq cap!"); return 0; } + l4lx_irq_dev_enable(data); return 1; } diff --git a/ports-foc/src/lib/l4lx/l4lx_thread.cc b/ports-foc/src/lib/l4lx/l4lx_thread.cc index aadebffa95..bc0a625cd7 100644 --- a/ports-foc/src/lib/l4lx/l4lx_thread.cc +++ b/ports-foc/src/lib/l4lx/l4lx_thread.cc @@ -103,9 +103,10 @@ l4lx_thread_t l4lx_thread_create(L4_CV void (*thread_func)(void *data), unsigned cpu_nr, void *stack_pointer, void *stack_data, unsigned stack_data_size, - int prio, + l4_cap_idx_t l4cap, int prio, l4_vcpu_state_t **vcpu_state, - const char *name) + const char *name, + struct l4lx_thread_start_info_t *deferstart) { using namespace L4lx; @@ -125,15 +126,34 @@ l4lx_thread_t l4lx_thread_create(L4_CV void (*thread_func)(void *data), } Vcpu *vc = new (Genode::env()->heap()) Vcpu(name, thread_func, - stack_data, 1024 * 64, - (Genode::addr_t)addr); + (unsigned long*)stack_data, 1024 * 64, + (Genode::addr_t)addr, + l4x_cpu_physmap_get_id(cpu_nr)); vcpus[thread_id(vc->utcb())] = vc; - vc->set_affinity(l4x_cpu_physmap_get_id(cpu_nr)); + + if (!deferstart) + vc->start(); + else { + deferstart->l4cap = (l4_cap_idx_t) vc; + deferstart->sp = (l4_umword_t)vc->sp(); + deferstart->ip = (l4_umword_t)vc->ip(); + } + return vc->utcb(); } +int l4lx_thread_start(struct l4lx_thread_start_info_t *startinfo) +{ + if (DEBUG) + PDBG("ip=%lx sp=%lx", startinfo->ip, startinfo->sp); + L4lx::Vcpu *vc = (L4lx::Vcpu*) startinfo->l4cap; + vc->start(); + return 0; +} + + void l4lx_thread_pager_change(l4_cap_idx_t thread, l4_cap_idx_t pager) { if (DEBUG)