[Barrelfish-users] New Barrelfish Release
Simon Gerber
simon.gerber at inf.ethz.ch
Wed Nov 9 10:45:51 CET 2016
Dear all,
We are pleased to announce a new release of the Barrelfish OS. Along with
various bug fixes, this release includes a new framework for interrupt
routing, improvements to the ARMv8 code, a new RPC framework based on tokens
that should fix longstanding issues with RPCs in multi-threaded domains, a
large amount of refactoring in the ARMv7 CPU driver along with support for
some more ARMv7 platforms, and a new per-domain CSpace layout.
The RPC work also removed support for arbitrary-length arrays in Flounder. Now
arrays have to have a maximum length specified in the Flounder interface
definition.
The ARMv7 refactoring has simplified the code for the CPU driver significantly
and we now support both Cortex A9 and A15. We support TI OMAP 4460, Xilinx
Zynq 7000, ARM qemu emulating the Versatile Express board and the Zynq 7000,
and ARM's FVP models for Cortex A9 in single- and multi-core configuration.
The new CSpace layout does away with the guarded capability tables and
introduces a fixed two-level layout with a dynamically-sized first level table
(initially 16kB, 256 slots), and fixed-size 16kB, 256 slot second level
tables.
Additionally, a set of changes which make Ubuntu 16.04.x LTS the supported
build platform have been merged. The currently supported versions of the most
important compilers and tools are:
* GCC 5.4.0 (for x86_64, armv7 and armv8)
* GHC 7.10.3
* binutils 2.26.1
As always, you can get the latest version by cloning or pulling from our
git repository [1].
Cheers,
-- Simon
[1] git://git.barrelfish.org/git/barrelfish
---
Adam Turowski (34):
Checking in malloc/free for double frees. Debug printf can now be called from any context.
Variable renamings, fixing event_mutex locking and thread_unblock_one.
Multi-threaded waitsets, tokens added to IPC messages.
Flounder support for tokens in messages, removing dynamic allocation of variable arrays, adding maximum size of variable arrays, event channels for messages, multi-threaded RPC's, new RPC calling convention.
Adding maximum size to variable arrays in flounder definitions. Converting one TArray to normal arguments.
Adjustments of IPC to match new convention (static buffers). (Flounder) Fixing a token passing in 32-bit architectures.
flounder: changing pointers into arrays of variable arrays in RPC functions
ramfsd: applying new RPC server convention
New conditional dispatcher disabling function.
tests: multithreaded waitset test
mt-waitset,flounder: adding mutexes to LMP
mt-waitset,flounder: not perfect fix of the cap transfer issue via UMP
mt-waitset: fixing the token generator which under special circumstances could generate token 0 (which is bad)
flounder: removing monitor header file dependency from UMP
monitor: fixing reordering of LMP messages during UMP cap transfer
harness: adding multithreaded waitset test
malloc: extra information about the function that attempted to free not-malloced region
kaluga: removing free call of not malloced region
flounder: checking if LMP receive function can actually receive a message
Adding some initializations
mt-waitset: adding masking of channels so a thread won't handle two messages at the same time
netd: setting a proper size of ARP response
network: removing unnecessary event processing
network: replacing the continuation manager with simple queues e1000: small performance tweaks
arm: fixing LMP delivering
flounder: fixing a LMP cap transfer when a cap is empty
network: increasing a size of temporary queues
e1000: adding a call of test_instr_periodic to an interrupt handler
network: fixing network tests
harness: adding bridge_bios option to gruyere
David Cock (87):
Preliminary ARM Foundation Model port.
Semihosted syscalls for the ARM FM port
Allow tools to specify tree-relative include paths
WIP on a tool to build multiboot images for ARM Foundation
New tool builds a multiboot image for Foundation Model booting.
Correctness tests for generated MBI images
Switch ARMv8 CPU driver back to relocatable (PIE)
Move kernel break to 48 bits (0xffff000000000000)
Load the CPU driver ELF by hand.
Shim to perform cache & MMU initialisation
FM boot image loads the shim
Squashed bug in image size accounting
Custom shim link script
Separately generate load addresses for the debugger
A more meaningul name for the FM boot tools
A platform for ARM FVP
Boot debug for BF in DS-5
GCC complained about an uninitialised variable: it wasn't.
Fixed a translation table bugs - boots at EL3
Only map RAM regions on boot
Boots to arch_init(), with MMU fully configured.
Ditch FDT, and map kernel device memory.
Corrected UART address.
Use -mgeneral-regs-only to fully disable FP code in the CPU driver.o
ARMv7: Made some improvements to usbboot.
Build stripped binaries, with debug symbols in name.debug
ARMv7: Updated DS-5 FVP debug scripts.
ARMv7: Removed old menu.lst files.
ARMv7: usbboot can now handle arbitrary entry points.
OMAP44xx: DS-5 debug scripts for the Pandaboard.
ARMv7: Place non-boot cores into WFE on entry
ARMv7: Generate GDB scripts
ZYNQ: Added QEMU harness definition
OMAP44xx: Bumped Pandaboard clock to 600MHz.
OMAP44xx: Added memory map entry for voltage control
ARMv7: Implement rtdsc() and time() at user level.
Stripped compiler-rt down to what we actually use.
Waitsets: Various *_disabled functions were calling thread_self()
ARMv7: Rewrote serial drivers on ARM.
ARMv7: Console now works on Pandabord and Zynq
Zynq7: Added empty kaluga platform.
ARMv7: Added arch-specific platform info.
ARMv7: Add SKB records for ARMv7 cores in Kaluga.
ARMv7: Use TPIDRPRW to hold the kernel GOT base.
ARMv7: Changes to support coreboot on ARM
ARMv7: Boots again following coreboot rewrite.
ELF: Use the shstrndx to find section names.
ARMv7: CPU driver relocations done.
ARMv7: Coreboot makes it into the APP CPU driver.
ARMv7: Find and pass the GOT base to the APP core.
ARMv7: Coreboot makes it inside the CPU driver.
ARMv7: Pass the correct boot record address to the APP core
ARMv7: Always load SP via the GOT.
ARMv7: Include core ID in kernel messages.
ARMv7: Zero CPU driver memory in coreboot
ARMv7: Disable all PC-relative data relocations.
ARMv7: Clone CPU driver cmdline correctly.
ARMv7: Use bytes, not bits for URPC frame.
serial: retabbed serial_pl011.c
ARM: Report number of SPIs correctly on boot.
ARMv7: Route IRQs to the CPU that enables them.
ARMv7: Add cpu_boot.S for A15
ARMv7: All cores now come up on boot.
ARMv7: Factored boot protocol out of plat_vexpress
ARMv7: Manual coreboot works on Pandaboard
ARMv7: Updated pandaboard debug scripts
ARMv7: Set all mappings to inner-shareable.
ARMv7: Boot all cores on the Pandaboard
ARMv7: Removed unused dependences from CPU drivers.
ARMv7: Coreboot paramaters through the SKB
ARMv7: Renamed SKB files to remove FVP reference.
ARMv7: Single-core A15 now uses SKB
ARMv7: 4 core A15 in QEMU
ARMv7: Added coreboot for Zynq7000 - doesn't work yet.
ARMv7: Added new FVP boot targets.
ARMv7: A15/A17 FVPs. Don't quite work yet.
ARMv7: FVP A15 starts in secure mode, so use the right timer IRQ.
ARMv7: DS-5 script for A15 FVP.
ARMv7: FVP_A5x1 (A9 image) & FVP_A7x1 (A15 image).
ARMv7: Identify A5 on boot.
ARMv7: bit.LITTLE boot target
ARMv7: Don't autoboot cores on big.LITTLE - it's broken for now.
ARMv7: Don't spawn cores on Zynq7000 - it's broken.
Merge branch 'arm_coreboot'
ARMv7: Use --export-dynamic in kernel link.
Gerd Zellweger (3):
Initial import of block device refactoring.
Re-added accidentially removed files.
Fix missing include in python test.
Lukas Humbel (97):
T211: Workaround for the coreboot test hang-ups.
T211: Try another workaround for the coreboot test hang-ups.
IRQ: Add new interrupt routing skb program.
IRQ: Added an index to (VTd) dmar skb facts
IRQ: Working on controller instantiation
IRQ: make it possible to route non-null cpu
IRQ: added predicate to instantiate msi/msi-x controllers
IRQ: Added some interface definitions and stubs.
IRQ: Start implementing interrupt routing service
IRQ: Working on the interrupt routing service
IRQ: Use kaluga to start interrupt controllers
IRQ: Kaluga, react on octopus events and start ctrl driver
IRQ: Kaluga: put int ctrl startup in own file
IRQ: Also adding pci link devices to octopus
IRQ: working on interrupt route service
IRQ: cleanup
IRQ: int controller service done, one client for pcilnk done
IRQ: use uint64_t everywhere for int numbers, renamed controller
IRQ: Int route server cleanup
IRQ: Add int_arg parameter to kalugas driver start
IRQ: Removed debug statements
IRQ: Refactor into int_route_client library, add legacy int range
IRQ: Kaluga start driver with IRQ caps.
IRQ: Better debug output
IRQ: Better Debug output
IRQ: inlined last in irq_routing_new
IRQ: Interrupt controller for link devices working
IRQ: Renamed int_controller to pcilnk_controller
IRQ: Adding ioapic controller stubs
IRQ: add ioapic controller.
IRQ: Activate PCI interrupts
IRQ: cleanup
IRQ: Add priorioty to device_db. Additional device_db for kaluga
IRQ: Start serial from kaluga
IRQ: serial driver uses IRQ cap
IRQ: Fixing the merge with restructured ACPI
IRQ: Rebase fixup for new flounder interface
Fix compiler warnings in ramfsd
IRQ: Better error messages for Kaluga
ARMv8: Build fixes
IRQ: Adapt the serial driver for new interface from kaluga
IRQ: start serial_pc16550d binary
IRQ: Fixes for armv7/pandaboard
IRQ: armv8 fixes
IRQ: Remove debug prints
IRQ: Better compatibility with existing drivers
Merge branch 'irq'
IRQ: Fix interrupts handled by ACPI
Use serial_kernel as default module
SKB: Fix crash when skb buffers are full
Kaluga: Do not panic on skb error
IRQ: use swizzle for PCI interrupts, fix devdb entry
SKB: Better error output for skb clients
SKB: Workaround to generate fact listing
SKB: Better debug output
IRQ: Instantiate pci link controller earlier
IRQ: Make irqtest generate correct menu.lst
Start ahcitest from kaluga
Added comments in acpi_interrupts_arch.
T282: Fix serial on sbrinz: IRQ now uses always coreid
T283: Fix irqtest on tomme
Kaluga: Print message for each driver startup
T283: Fix for irqtest on gruyere.
Make irqtest more tolerant
T283: Device Ids for sbrinz1 added.
IRQ: Fix timer test. lpc_timer is now started by Kaluga
IRQ: Int route service: corrected use of continuations
Trying to fix vmkit test.
Kaluga x86 startup: Be tolerant when module is not found
Scalebench: Add git metadata (rev/branch/patch) in log dir
Harness: Write menu.lst to output directory
Harness: Fix for tests without get_modules.
Add tests for cap transfer
Harness: Fix panda_local machine
Harness: Don't fail on utf-8 encoding
Fix webserver test by putting everything on core 0
Make sure network domains are started by Kaluga.
Added idc test to harness
Revert changes to test.if to make everything compile again
Harness: Flush console after test has finished
Harness: Disable read after finish as it breaks some tests
Extended RPC+cap test
RPC cap test: more output
irqtest: Fix for crashes on pci_lnk's add_mapping
IRQ: Added tags to irq_routing_new
IRQ: Add range to IRQSrc cap
IRQ: Allow retyping of IRQSrc capability
T308: Add e1000e irqtest stub. Add support for e1000e in QEMU
T308: Added e1000e mackerel and device driver stub
IRQ: Merge irqtest into driver e1000n driver
T308: Improve support for Intel 82574 gbe network cards
IRQ: Make irqtest work on real hardware
Fix TimerTest on machines with two cores
Added missing e1000 device id
Make debug_my_cspace work with new CSpace layout
T319: Fix irqtest
Moritz Hoffmann (129):
hake: Add definition for Ubuntu's native aarch64 toolchain (16.04)
armv8/foundation: jump to arch_init in upper half of memory
kernel/tmas: add initial files based on foundation
hake: add Linaro aarch64 16_02 toolchain
kernel: TMAS cpu driver definition
caps: Add VNode_AARCH64_l0 and VNode_AARCH64_l0_Mapping capabilities.
multiboot2: Change ARMv8 loading to multiboot2.
paging ARMv8: rename to VMSAv8_64 as per documentation. Unify page table handling.
armv8/paging: convert caps_copy_to_vnode if/else to lookup table.
kernel/armv8 (startup): refactor module loading and caps creation
armv8/pmap: Adapt to changed paging defines.
armv8/tmas: tmas-specific files. Needs to be refactored into generic ARMv8 code.
armv8/startup_arch: No need to context switch after building page tables.
armv8/offsets: Increase PA size. Fix memory offset.
armv8/sysregs: Add support for more system registers: esr_el1, sctlr_el2, par_el1
armv8/sysreg: Change sysreg_write_ttbcr parameter type to 64 bit.
TMAS: Add as platform.
capabilities TRACE_PMEM update capability list
aarch64: Use VNode_AARCH64_l0 as initial page table level.
aarch64: Add option to pass stack pointer to arch_init.
aarch64: Correct pmap and vspace layout attributes to 4k, 48b VA.
aarch64: Hagfish now correctly relocates the binary, only need to relocate the stack and multiboot pointers.
capabilities: Correct VNode_AARCH64_l0 cap creation.
aarch64: Remove duplicate debug syscall implementations from arch-specific code.
TMAS: Build mem_serv and monitor.
aarch64/tmas: No PIT available yet, disable initialization.
kernel/aarch64: Enable caching for EL0 and set paging bits correctly.
mem_serv: aarch64 address space contants corrected.
kernel/armv8: Print debug before incrementing pointer.
kernel/armv8: Support reading L0 entries.
kernel./armv8: Dummy implementation for DEBUG_HARDWARE_TIMER_READ and DEBUG_HARDWARE_TIMER_HERTZ_READ
platforms: Update TMAS definition.
Incremental updates to make Barrelfish work on TMAS with recent ARM changes.
Kaluga: Initialize on TMAS similarly to x86.
devices/acpi_ec_mem: ARM has ACPI but communicates using memory instead of an IO port.
kernel/tmas: quirks to avoid relocating already relocated device addresses.
acpi, pci: Compile on ARMv8.
arm/gic: Add missing includes (stddef, stdint)
drivers/serial: Rename gem5 driver to serial_gem5. Include serial_tmas.
capabilities: Fix type_is_mappable for AARCH64_l0.
kernel/tmas: Correctly create caps for all memory minos kernel allocated memory.
Kernel/tmas: Implement basic kernel command line decoding.
Kernel/tmas: Enable booting in EL1.
acpi: Fix x86/x86_64 #if.
Kernel/tmas: Minor cleanup platform.c (Comments only)
Kernel/tmas: Correct command line parsing. Hopefully.
Skb: char signedness depends on architecture.
kernel/aarch64: Replace rdtsc by dummy.
barrelfish/aarch64: Implement sys_debug functions.
lib/crt/aarch64: Remove kludges as we have own libgcc.
skb: Build regular SKB on armv8.
pci: Compile on armv8.
eclipseclp: Implement basic rounding control for aarch64.
posixcompat/time: Use rdtsc.
megaraid: Compile on armv8 to satisfy dependencies.
serial/tmas: remove briken pl011 implementation and replace by dummy.
skb_simple: Do not compile on armv8.
hake/armv8: Do not fix text and data segment addresses.
Squashed 'lib/acpica/' content from commit 34ccd43
Merge commit 'cbcc2995fb41db00f4dbee79451f0e56f06c261a' as 'lib/acpica'
lib/acpica: Barrelfish integration
acpi: Switch to new libacpica
acpi: Delete old libacpica.
Finish merge with current master.
hake, platforms: include armv8_qemu menu list, build platform correctly.
Merge branch 'acpica'
barrelfish_kpi: Add new ACPI_TABLE region type.
acpi: Add missing files for x86 to Hakefile.
kernel/armv8/tmas: Poor man's relocation of uart base. Needs to be improved.
acpi: Ignore PCI devices without _ADR. Should look at _HID instead.
acpi: SRAT processing; use provided length and add case for ARM GIC.
armv8: Do not invalidate D and I cache on context switch. This needs to be revised.
kernel/armv8: Remove debug print.
kernel/armv8: Remove unused code. Create caps for gaps in mmap.
kernel/armv8: Do not create iocap on ARMv8.
mm: Fix mm_debug_print for null arguments and handle NodeType_Dummy.
init, pci: IO_CAP doesn't exist on ARMv8. Do not try to access it.
acpica: Include acgcc.h on barrelfish.
bench/ahci: Add braces to if to fix code ambiguity. Wasn't really a bug. but hey...
pcre: Add #ifdef SUPPORT_UCP to resolve unused variable warnings.
net_device_manager: Fix invalid (and always true) comparison.
bulk_transfer: Improve code style.
T291: Implement offset in mapping capabilities.
T291: add implementation for armv7/8
Revert "libgmp: remove dependency to libbarrelfish"
gmp: use provided config.status instead of running configure
T260: Implement
Multihop: Replace tab by spaces. Space-only change to silence Haskell warnings.
acpi: Correct get_handle implementation.
kernel/armv8: Set page table bits correctly to handle uncached memory.
kernel/paging: Correct compile_vaddr for AARCH64.
kernel/armv8: fix is_root_pt to return true when type is L0.
T306: extend Hamlet to parse abstract cap definitions and let other caps inherit from them.
T306: Change cap definitions to use inheritance mechanism.
T306: Rename mapping.frame to mapping.cap
Removed unused cap type Notify_RCK.
T306: Refine capability inheritance by allowing inheriting capabilities to extend super types.
T306: Rename defined cap constants. Introduce CNode abstract type, let ARM_l1{/2} inherit from VNode.
Use generated OBJSIZE_* constants instead of hard-coded values.
Fix to avoid freeing not-malloc'ed memory in multihop test.
Kernel/capabilities: Remove redundant size check from check_caps_create_arguments.
spantest/exit: For printf formatting.
hake/X86_64: add -Wno-frame-address to default flags.
libbarrelfish/threads: Provide thread_set_status to set return status of a thread
libbarrelfish/init: Correctly set thread status on libc exit. Fixes T194
Revert "libbarrelfish/init: Correctly set thread status on libc exit. Fixes T194"
kernel/capabilities: Use correct base field in sprint_cap for DevFrame
usb_manager/omap44xx: Initialize USB controller
kaluga/omap44xx: Provide correct set of caps to usb_manager
kaluga/device_cap: Use frame_identify instead of direct invocation
kaluga/omap44xx: Fix memory leak when spawning drivers
usbboot: Increase waiting time to 1s, was .25ms
kaluga/startup: Do not wait for ACPI on armv7
usb_manager/omap44xx: Use barrelfish_usleep for delays
menu.lst for Pandaboard: Enable usb_manager, usb_keyboard by default
Restructure USB library to use callbacks instead of waiting.
usb: do not call free on not malloc'ed data.
usb: Improved error handling. Actually send error code to connected clients
lib/barrelfish: Fix T318 by ensuring the slab is never empty
T229: refactor pmap lookup function to take result struct
Merge branch 'armv8-syscall' (early part)
waitset: remove waitset_poll_cycles as it is not being used anymore
pmap: T229 rename struct pmap_mapping_info fields to not start with 'ret'
Reto Achermann (113):
[libpci] adding to ARMv8 build architecture
[Kernel] Removing start_aps.c from Hakefile list, as this file does not exist
[Kernel/ARMv8] fixing includes to match refactored names
[Kernel/ARMv8] making KERNEL_OFFSET explicit ULL.
[Kernel/ARMv8] making sure call to arch_init is in high memory.
[armv8] making PCI compile by adding missing debug syscall
[ARMv8] adding functions to read and write current stack pointer
[ARMv8] make sure stack is relocated to high addresses
[ARMv8] remove debug syscall duplication introduced in 0eb4d9a478cbaf489153af8c10067d70c85c0
[ARMv8] adding comments stating assumptions on state upon start
[ACPI] fixing compilation errors with updated library
[ACPI] adding cases for the new interrupt types
[ACPI] making ACPI architecture specific
[ACPI] whitespace changes in acpi_main.
[ACPI] adding function to set the root table pointer
[ACPI] separating main for ARM and x86
[ARMv8] adding defines for address space sizes in bits
[ARMv8] adding locations of the ACPI tables to bootinfo structure
[ARMv8] temporarly disable memory region coalescing in create_phys_caps
[ACPI] disabling debug output
[ACPI] [ARMv8] adding support of processor discovery
Adding hagfish location to ARMv8 debug qemu target
Merge of missing commits from origin/acpia branch into origin/master
[harness] adding HAGFISH_LOCATION to the site config
harness: adding 'hagfish_location' to the default config for tests
tools/qemu-wrapper: adding $SMP parameter and debug invokation for ARMv8
Revert "T211: Update fof to work with new Monad behaviour of GHC 7.10"
ARMv8: reading CBAR register correctly
Hake: Cleanup of menu.lst.armv8_qemu.
ARMv8: adding PCI domain to the build target of ARMv8 QEMU
Fixing misnomer in Cortex A15 GIC memory map.
ARMv8: adding GIC memory maps for Cortex A53, A57 and A72
libbarrelfish: handling polling of waitset on aarch64
ARMv8: Enabling access to counters from userspace.
ARMv8: implementation of rdtsc() and rdtscp() equivalentis
Introduction of hw_records headers.
kaluga: adding wrapper to allow cpu type specific corectrl lookup
acpi: fixing mistyped variable
acpi: separating interrupt setup into ARM and X86, use of hw_records.h
kaluga: making booting of cores less x86-focused
libbarrelfish/libmm: using PRIuGENSIZE in print statements
kernel/kpi: using PRIuGENSIZE in print statements
kernel: passing alloc_phys_aligned on 32-bit
coreboot: using hw_records in list cpu
coreboot: using PRIuGENSIZE in print statements
cpuboot: restructuring Hakefile
libcrt/arm: removing defined function 'raise' in assembly file
EclipseCLP: adding workaround to allow it compile on ARMv7
armv7: do not fix address of data region in linker.
skb: do not use full vfs for SKB.
skb/armv7: enabling full SKB for ARMv7
libbarrelfish/armv7: adding missing debug syscall.
libbarrelfish/armv7: increasing the PMAP reserved meta size to 4MB
ARMv7: adding generic modules to build targets on ARMv7
hake: adding generic modules to menu.lst files for ARMv7
harness: adding skb ramfs to the menu.lst for the tests.
acpi_client: removing include from public header
acpi: adding functionality to lookup a device handle and to evaluate integer on it.
coreboot: fixing build after moving acpi rpc include
fish: add missing include to unbreak build
ramfsd: fixing compiler warning that sizeof(name) returns sizeof(char*)
flounder: allowing that the full number of declared bytes can be sent.
armv7: fix syscall to get the ticks per ms.
removing oldc from source, using newlib in tools/elver.
hake: adding system compiler for k1om.
K1OM: updating toolchain to MPSS SDK 3.7.1
hake: replacing tabs with spaces in config template
hake: replacing tab with spaces to squash compiler warning
acpia: enable ACPI_MISALIGNMENT_NOT_SUPPORTED flag for ARMv8
ARMv8: passing stack parameter correctly to vminit
hwrecords: do not use hex printing in processor record
ARMv8: disable alignment checking to allow unaligned accesses
ARMv8: enabling access to performance monitor from userspace
ARMv8: simplify multiboot2 find header
ARMv8: making Barrelfish boot on the X-Gene
acpi: fixing typo in printf statememt, adding more debug statements
ARMv8: don't define PREFER_SIZE_OVER_SPEED as compiler flag
flounder: replace tabs with spaces to squash haskell warnings
armv8: renaming menu.lst using the a57v suffix
qemu/armv8: adding clarifications and tabs->spaces
getopt: adding support for long
arm: renaming kludges to gdb_arch and separaring common part
kernel: stdlib - adding wrapper tu support long long integer parsing
armv8: moving of efi boot code into arm directory
nkm: adding type for ARMv8
armv8: adding arch_info struct for armv8
armv8: renaming wrongly named hash-define
armv8/apm88xxxx: removing directory and moving functionality to plat_* files.
armv8: introducing platformfiles for A57 and generic ARM virtual machine (qemu)
armv8: using arm generic misc.c
armv8/hake: using new command line parameter format
armv8: update linker script to reflect changes in efi-boot
armv8: adding function to find cmdline from multiboot
armv8: pass over startup_arch + additionts to init.h and platform.h
kernel: Adding proper target for a57v cpu
fixup! flounder: replace tabs with spaces to squash haskell warnings
armv8: replacing tabs with spaces
armv8: adding general purpose registers to the documentation
armv8: fixing wrong assert on capability invocations (T300)
armv8: properly passing syscall arguments to the kernel. (T300)
armv8: fixing bugs in the syscall handlers to match invocations (T300)
armv8: fix vroot for ARMv8 which is L0 not L1
armv8: simplifying exception handling by passing the cause to the handler function (T300)
armv8: pmap fixes to make barrelfish boot further, still needs more work. (T303)
armv8: adding missing platform stubs for mustang
armv8: removing tmas/paging and merge with armv8/paging.c
armv8: adding explicit notion of caller-save and callee save registers
armv8: adding dependencies to the platform hakefile renaming platforms
armv8: removing GEM5 platform
armv8: correcting GIC addresses on APM88xxxxx
armv8: making sections correct in efiboot
armv8: removing GEM8 CPU
omap44xx: use right define for the MMCS driver
Simon Gerber (224):
T211: Update hake to work under GHC 7.10
T211: Update fof to work with new Monad behaviour of GHC 7.10
T211: x86_32: change ldFlags to put .init_array at given address (instead of .data.rel.ro)
T211: harness: update import path for fdpexpect, has moved into pexpect package
T211: Switch to Ubuntu-provided aarch64 gcc-5. Compiles. Not tested.
T211: Remove tabs in hake sources
T211: Change TreeDB to use Typeable instead of Typeable1 (as per GHC warning)
T211: Force GCC to save r0,r1,r2 in functions that call another function with __attribute__((naked))
T211: harness: fix fdpexpect import
T248: harness: Always explicitly send \n in coreboot tests
T249: harness: fix force_write() for ETH machines
T211: Update fof to work with new Monad behaviour of GHC 7.10
libbarrelfish: cleanup debug_print_cap format strings
T264: Add L1 and L2 CNode cap types
T264: Implement check_caps_create_arguments for L1/L2 CNodes
T264: Implement caps_create() for L1/L2 CNodes.
T264: Add NYI handler for L1/L2 CNode invocations
T264: Allow caps_lookup_slot() to recurse into L1 CNode and move check that L2 is only created in L1 CNode to proper spot
T264: Add simple creation tests for L1/L2 CNodes
CSpace: fix RootCN reserved slots
T258: Implement 2 level CSpace slot allocator on GPT cnodes
T258: Add printfs for caps_lookup_slot recursing more than once
T258: caps_lookup_slot: suppress multiple recursion warning messages for system domains
T258: Remove unnecessary extra multi_slot_alloc in memserv
T258: caps_lookup_slot: ignore acpi when checking recursion depth
T258: Implement preallocating slot allocator for 2 level cspace
T258: mem_serv uses 2 level preallocating slot allocator
T258: Rewrite basecn slot allocator to conform to 2 level cspace
T258: clean up #defines for L2 CNode
T258: implement cnode_create_l2()
T258: acpi: conform to two level cspace layout
T258: rewrite domain creation to stay inside two level cspace layout
T258: Remove whitelist of domains that can violate two-level cspace layout
T258: libspawndomain: fix segment cnode and page cnode creation to work in two-level cspace
x86_64: pmap: add DEBUG_ERR for all levels of page table creation/retrieval
T258: Cleanup kernel virtual to ELF address translation
T258: arm: libspawndomain: fix segment cnode creation for two-level cspace
T268: Mint inherit cnode into root cnode so we can copy caps into new process's cspace
T258: fish: only create master inherit cnode once
T258: arm: kernel: add missing file
T258: kernel: add missing debug.h file
x86_64: kernel: remove all tabs from entry.S and reindent with 4 spaces
T258, T264, T270: Implement two-level cspace layout using L1/L2 CNode objects.
libbarrelfish: move simple capability invocations into arch-independent header file
monitor: move simple monitor invocations into arch-independent header
Create wrapper for invoke_frame_identify
invocations: fix argument mess for invoke_cnode_create
kernel,x86_64: move handle_map to where it should be in the file
kernel: fix argument names in lmp_deliver()
T272: armv7: implement two-level cspace layout
Always use frame_identify() instead of raw invocation
T273: x86_64: distributed capability operations updated to new cspace layout
T258: x86_64: change dispatcher_setup_guest, trace_setup and perfcounter_activate to use new cap lookup functions
T258: fix sys_yield to use new capability lookup function
T258: x86: fix ipi_register_notification to use new capability lookup
T273: monitor: cleanup variable and argument names for cspace level
monitor: remove unnecessary log2ceil and 2^ for span_domain_request()
libbarrelfish: terminal: remove unnecessary debug_printf
T273: fix monitor_retype and adjust arguments in direct retype
T273: x86_64: monitor invocation handlers: rename vbits to level for cspace level arguments
T273: armv7: monitor invocation handlers: rename bits to level for cspace level arguments
T258: Fix missing return statements in default cases in caddr.h
T258: Fix range_slot_alloc() to properly report out of slots
T258: Fix libmm to refill it's slot allocator if refill function provided
acpi: Make sure usr/acpi fails noisly even with assertions disabled
errors: Remove unused error value
T258: Fix domain spanning dispatcher creation
T273: pass correct root cnode for distributed capability operations
T258: usr/acpi: Do not try to create L2 CNode with 2048 slots
T266: Resizing root cnode enabled for libmm slot allocator
T258: Remove commented out move to root code for lmp endpoints
T266: Refactor rootcn resizing and use it in two-level slot allocator
T266: add test for resizing root cnode and fix minor issues in two-level slot allocator
T258: remove stale comments and commented out code and rename retype tests
T266: root cnode resize test: only do a cap_copy() for every 256th slot
libbarrelfish: rename variable to not shadow free()
libbarrelfish: rename variable to not shadow free_slots()
harness: Kill console lockprocess if wait() hangs for more than 5 seconds
kernel: x86,k1om: #define START_KERNEL_PHYS as alias for {X86_64,K1OM}_START_KERNEL_PHYS
T258: Xeon Phi: provide proper argument cnode when spawning xeon phi coreboot and fix init of range slot allocator
T258: Provide slot allocator refilling in xeon phi sysmem manager and kaluga device cap manager
T266: harness: fix root cnode resizing harness test class name
T191: reduce verbosity in caps_retype()
T191: harness: add quiet mode to retype test and use it in harness.capops_retype_multi
T275: Add test for distributed capability retype
T274: Fix remote retype
T275: T266: platforms/Hakefile: Add test_remote_retype and test_rootcn_resize
monitor: capops: capsend: add DEBUG_CAPOPS(__FUNCTION__) to all functions
T274: monitor: capops/retype: add DEBUG_CAPOPS() statements to trace control flow for remote retype
T275: Refactor distributed retype test into framework for all distops and retype parts
T258: Make sure that invoke_vnode_identify() can only be called on caps with root = CPTR_ROOTCN
T275: Add test for delete of distributed capabilities
T275: Add distributed revoke test
T275: distops_retype test: fix printf for unexpected retype result
T273: armv7: Fix monitor invocations for capability retype and creation
T276: Fix monitor retype check to check on owning core when request is forwarded
T276: Fix monitor revoke check to check for overlapping descendants instead of any descendants
T275: Refactor distops tests and fix bug in delete test
T275: fix delete test
monitor/capops: add more DEBUG_CAPOPS() in delete_trylock_cont
T276: armv7: Add new monitor invocation for retypeability check
monitor/capops: add more DEBUG_CAPOPS() statements in delete code
T275: delete test: do not panic out for delete under test
kernel: caps_delete_foreigns: check for copies in predecessors as well as sucessors of given cte
T258: Implement two_level_slot_alloc_init{,_raw} and use in vmkitmon
T258: fix invoke_dispatcher() assertions to work for making guest domain runnable
T258: Add call stack to cnode_create()
T258: arrakismon: use two-level slot allocator as multi slot allocator
T258: libbarrelfish: Remove commented-out debugging code in cap_retype
T258: two_level_slot_alloc_init{,_raw}: Remove unnecessary local `nslots`.
T258: armv7: fix call stack in cnode_create()
harness: update interactive tests to work with new serial drivers
monitor/ram_alloc: unnecessary debug_printfs and commented-out code in mem_free_handler()
harness: armv7 machines: deduplicate code and grab mmap menu.lst entries from <src>/hake/menu.lst.armv7_<plat>
harness: vmkit: add correct serial driver module
cpuboot: arm: spawn_xcore_monitor: return LIB_ERR_NOT_IMPLEMENTED after assert()
harness: armv7 simulators: grab cpu driver command line args from hake/menu.lst.armv7_<plat>
harness: armv7_gem5: up test timeout to 25 minutes
T258: Delete GPT cspace functionality and rename new functions
T258: mem_serv_dist: fix get_more_ram() call
T274: armv8: update cspace invocations
Merge branch 'caps_next'
T274: armv8: update monitor invocations and cleanup changes
T266: armv7: add kernel-side handlers for cnode resizing
armv8: QEMU ARMv8 compiles
libspawndomain: fix typo
kernel: armv7: zynq7: add arm/debug.c to hake rule
monitor: capops: delete: fix case where we delete last owned copy after doing full remote delete
T275: fix printfs in distops delete test
monitor: capops/delete: properly check slot_free() return value
T258: kaluga: use cnode_create_l2()
T275: platforms/Hakefile: add delete and revoke distops tests
T258: caps_lookup_slot: return SYS_ERR_CNODE_NOT_FOUND when encountering null cnode cap during lookup
IRQ: kaluga: pass driver_argument pointer to default_start_function for network card drivers
Fix kernel struct dispatcher_shared_arm include in exceptions.h
Fix harness to properly strip terminal color control codes
harness: factor out line cleaning and use in process_output()
harness: Improve exception output in xml reports and put interactive test output where the rest of harness expects it
Store BSP KCB in octopus as KCB 0 and update coreboot test to account for existence of KCB 0
T243: capability types and kernel code now accurately reflects ARMv7 12/8/12 bit virtual address split
T243: Fix vnode_objsize() to return 1024 for ARM_l2 vnodes
T243: Fix armv7 paging code and caps_retype() to properly create ARMv7 vnodes
T243: Fix armv7 pmap code to work with new vnodes
harness: armv7 simulator machines: fix to work with existingbuild argument
harness: armv7 machines: fix pandaboard to work with existing build dir option
armv7: kernel: monitor_delete_last: fix argument unmarshalling
harness: unbreak armv7 simulators when not using existing build directory
harness: armv7 qemu: fix image creation calls to work with non-existing builds
Remove CONFIG_NEWLIB #define and all uses
Update weever to build against newlib headers
k1om: libbarrelfish: Fix disp_try_disable
skb interface: up size of run output string to 64kB
harness: memtest_multicore: add a single multiboot module for memtest and specify all cores as range
acpi: osglue: implement AcpiOsStall() using barrelfish_usleep()
harness: retype_test: fix multicore retype test to only put binary in multiboot once
harness: output processing: handle cases where we do not find grub output in raw log
T258: refactor creation of new cspaces to make it cleaner
K1OM toolchain update: harness: fix path for MPSS
weever: update flags for new k1om gcc
Move canonical definitions of MIN/MAX macros to bitmacros.h, remove duplicated definitions in lib and usr
octopus: Use flounder definitions to specify size of result buffer
octopus: add octopus flounder interface to parser library, as we need message length definitions
harness: Fix PassFailMultiResult.reason and add summary output about passed/failed tests at end of run
harness: Add new build type "test" (no debug symbols, assertions enabled) and set as default
harness: exit test on assertion failure
harness: refactor qemu x86_64 machines to allow easy creation of differently sized x86_64 qemu multicore configurations
harness: start cleaning up default_bootmodules()
harness: webserver tests: let Kaluga start e1000n, NGD_mng, and netd
harness: Handle assertion failure case for compiler-rt tests which default to pass
harness: Fix git extra info for detached HEAD state
T284: Change flounder to use provided slots when in RPC and call lmp_chan_alloc_recv_slot() otherwise
T284: Fix logic for when to fail when no new recv slot provided
T284: T285: Store RPC recv slots in thread struct
harness: fix core ranges for memtest_multicore and retype_multi.
T284: Fix thread_{get,set}_recv_slot()
T284: Fix a couple bits of PCI client code where we were missing slot_alloc() for caps returned by RPCs
T284: make kernel message on occupied destination slot for LMP debug(SUBSYS_DISPATCH, ...)
T284: reduce number of queue slots for receive capslots to 4 and remove magic constants
T288: Remove references to DEFAULT_CNODE_BITS and derived values.
T289: Refactor slot allocator code to allow slot_alloc_root() to resize L1 cnode
kaluga: delete kaluga's copy of inherit cnode after boot driver has been spawned
octopus client: return trigger id to caller in oct_trigger_existing_and_watch()
kaluga: start_cpu: inheritcn_delete: remove trigger once it is called
Merge branch 'toolchain1604'.
Update README to reflect new tools
harness: fix armv7 machines to work with coreboot enabled platforms
T291: create_mapping_cap:Properly check that offsets into mapped frames are <= 4TB.
T291: kernel: include bitmacros.h in kernel.h
vnode_map: add test with pte_count larger than fits in source Frame
armv7: paging: proper check if `pte_count` pages fit inside source frame starting at `offset`
harness: Add test for vnode_map() with too many ptes requested
nkmtest: make arm version compile and only check fault type on x86
kernel: arm: fix modify_flags invocation
kernel: dump_ptables: armv7: print rw flags for small pages
libbarrelfish: arm pmap: fix flag passing in modify_flags
nkm tests: x86-64 invalid mappings: fix case where we cannot allocate 1GB frame
harness: Exit test when we encounter a line starting with "Aborted"
if/monitor.if: multihop_message: increase payload buffer size to 2048
harness: compiler-rt: comment out known-to-fail test cases
harness: simulator tests: gracefully handle EOF on read from sub-process when telnet socket is closed due to simulator exiting
harness: httperf test: fail when webserver crashes after starting
harness: fix error inclusion in junit report generation
harness: fix broken super() in webserver test
harness: Fix webserver test to not choke when test log missing
harness: mt_waitset test: increase test timeout by factor 2, properly implement process_data()
[libbarrelfish] Properly check for error in case slab_alloc fails.
harness: fix gem5 machine to use correct boot image, and fix kernel command line parsing.
T309: harness: Fix initialization of "real" pandaboard machines and add missing method
T310: capops: Replace num_monitors_online() with num_monitors_ready_for_capops()
monitor: capops: Remove no-longer-needed capops/magic.[ch]
harness: put in basic functionality for testing multicore ARMv7
harness: xeon_phi_boot test: make sure that we see xeon_phi.(\d+).ready `nphi` times for test to succeed.
kernel: cap_delete: properly insert simple caps that need return slot into delete list
harness: panda_local: remove picocom lock after killing process
libbarrelfish: two_level_alloc: Unlock mutex when we error out early.
flounder: Free popped receive slot if we did not use it
T321: kernel: non power-of-2 sized capabilities remove need for aligning memory.
delete tracked .orig file
T322: multihoptest: Clean up page table cap late to avoid deleting receiver's copy
T322: defer pagetable cap deletion to receive handler
T321: k1om: fix creating RAM caps
T318: vspace_pinned_alloc: fix case where we call back into vspace_pinned_alloc() from memobj->fill while refilling
Simon Peter (1):
usbboot can now auto-detect revisions 1 to 3 of the Pandaboard ES.
Timothy Roscoe (1):
Added module dependencies for x86_64 qemu boot targets. Removed old x86_32 boot targets.
More information about the Barrelfish-users
mailing list