[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

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

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].

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