Simon Gerber [Mon, 4 Aug 2014 22:50:23 +0000]
Added command line arg for overriding default heap pagesize.
Also removed the vregion flags #define for the heap region as we can infer the
necessary flags from the alignment argument to morecore_init(). We now choose
the pagesize that matches the alignment or 4kB if no match found.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Mon, 4 Aug 2014 21:41:31 +0000]
Added Config.hs flag for morecore pagesize.
Conflicts:
lib/barrelfish/init.c
lib/barrelfish/morecore.c
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Sat, 26 Jul 2014 00:36:07 +0000]
Fixed morecore_reinit() to properly not remap when unnecessary.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Wed, 23 Jul 2014 01:00:58 +0000]
x86_64: pmap_map: Fixed size check to actually work for sizes >4GB.
Conflicts:
lib/barrelfish/target/x86_64/pmap_target.c
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Tue, 22 Jul 2014 01:05:57 +0000]
vspace_mmu_aware: fixed edge case in assertions.
Assertions didn't allow freeing the region starting at offset zero in the
vregion.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Fri, 18 Jul 2014 16:56:24 +0000]
Added remapping functionality for malloc.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Fri, 18 Jul 2014 00:44:55 +0000]
Added malloc test to check whether large page magic works.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Thu, 17 Jul 2014 21:40:05 +0000]
make mmu_aware vspace code support multiple page sizes.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Tue, 15 Jul 2014 01:51:37 +0000]
x86_64: cleaned up corner cases in pmap code.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Sat, 12 Jul 2014 00:37:04 +0000]
x86_64: pmap: removed support code for mixed-size mappings.
Mixed-size mappings (e.g. composing a mapping from 4k and 2M pages) don't work
on x86 unless the physical and virtual addresses have matching alignments (a
2M mapping needs both a 2M aligned virtual and physical address). Thus we
don't support this case in the default library OS.
The kernel doesn't care though and you can roll your own system where you
allocate physical memory that matches the alignment so that the first 2M
aligned virtual address lands on a 2M aligned physical address.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Sat, 12 Jul 2014 00:19:38 +0000]
x86_64: kernel: cleanup trailing spaces.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Fri, 11 Jul 2014 21:32:49 +0000]
Cleanup of unmap error handling and proper checks for slab refilling in map.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Fri, 11 Jul 2014 20:53:28 +0000]
Added unaligned mixed 4k/2M test in large page tests.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Tue, 8 Jul 2014 23:59:03 +0000]
newlib: libbarrelfish: properly hook up assert functionality.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Wed, 2 Jul 2014 21:00:16 +0000]
x86_64: pmap: cleanup and added some plumbing for mixed-size mappings.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Mon, 30 Jun 2014 18:51:04 +0000]
x86_64: cleaned up magic constant 9 (ptable_bits) in pmap code.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Mon, 30 Jun 2014 18:42:00 +0000]
Fixed VREGION_FLAGS_MASK.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Thu, 19 Jun 2014 00:22:57 +0000]
vspace/utils.c: cleaned up trailing spaces.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Thu, 19 Jun 2014 00:22:15 +0000]
x86_32: compiles with PAE enabled.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Wed, 18 Jun 2014 23:01:27 +0000]
x86_32: Added notice about CONFIG_PSE in large page test.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Wed, 18 Jun 2014 21:51:44 +0000]
x86_32: kernel: cleaned up large page mapping code.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Wed, 18 Jun 2014 21:47:11 +0000]
Added x86_32 version of large page test.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Wed, 18 Jun 2014 21:46:39 +0000]
properly zero newly allocated memobj and vregion.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Wed, 18 Jun 2014 21:44:14 +0000]
x86_32: kernel: added support for large pages to paging_dump_tables.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Wed, 18 Jun 2014 20:02:04 +0000]
Refactored pmap code for x86_{64,32}.
* factored out common code for vnode manipulation (see pmap_x86.{h,c})
* cleaned up x86_32 pmap implementation
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Wed, 18 Jun 2014 20:01:31 +0000]
Fixed paging_tlb_flush_range to compile on x86_32.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Wed, 18 Jun 2014 17:47:08 +0000]
Added large page test.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Tue, 17 Jun 2014 21:23:52 +0000]
x86_64: lazily clean up empty page tables when creating large / huge page mappings.
This enables reusing address ranges that held smaller mappings before when
creating mappings with large or huge pages. This is necessary as we never
clean up page tables and page directories when unmapping regardless of whether
there's valid entries left in them.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Tue, 17 Jun 2014 20:43:14 +0000]
x86_64: pmap do_map fine-grained debug output ctrl.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Tue, 17 Jun 2014 20:42:53 +0000]
x86_64: fix is_same_{pdir,pdpt,pml4} functions to properly identify ranges that span exactly one table.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Tue, 17 Jun 2014 00:41:14 +0000]
kernel: x86_64: updated paging_dump_tables to understand large/huge pages.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Tue, 17 Jun 2014 00:19:33 +0000]
x86_64: fixed unmap last leaf, added code to allow users to easily map large/huge pages.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Tue, 17 Jun 2014 00:17:01 +0000]
x86_64: fix page sizes to be derived from sizes in bits.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Mon, 16 Jun 2014 19:54:42 +0000]
x86_64: cleaned up and refactored pmap unmap code.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Mon, 16 Jun 2014 19:54:02 +0000]
x86_64: fixed selective tlb flushing page size choice.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Mon, 16 Jun 2014 18:38:45 +0000]
x86_64: cleanup of pmap do_map and supporting code.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Fri, 13 Jun 2014 23:07:21 +0000]
x86_64: Fixed typo in determine_addr_raw.
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Simon Gerber [Fri, 13 Jun 2014 21:45:54 +0000]
Kernel test that checks that we preserve page table hierarchy constraints
Signed-off-by: Simon Gerber <simon.gerber@hp.com>
Andreas Dillier [Mon, 2 Dec 2013 00:59:18 +0000]
Largepage Code, arm addition
Added arm/omap4460 files, just for completeness, it does not work yet.
Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>
Andreas Dillier [Sun, 1 Dec 2013 23:42:50 +0000]
Largepage repository
Fixing the issue with the repository not having a history
Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>
Andreas Dillier [Mon, 25 Nov 2013 01:45:29 +0000]
Added large page capabilities to the x86 architecture.
Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>
Stefan Kaestle [Thu, 22 May 2014 14:25:32 +0000]
adding a tag for release 2014-05-22
Kornilios Kourtis [Tue, 20 May 2014 11:35:42 +0000]
partially revert ARMv7 SVC commit
This partially reverts commit 'make ARMv7 cpu driver run in SVC mode'
(
0d0727072557f24bd66686e37dc8ddbda328cf15) because it does not boot on
GEM5.
Kornilios Kourtis [Tue, 20 May 2014 08:57:41 +0000]
armv7: use A9 timer functions only in pandaboard
These functions are only defined for pandaboard:
collect2: ld terminated with signal 11 [Segmentation fault]
./armv7/kernel/arch/armv7/syscall.o: In function `sys_syscall':
syscall.c:(.text+0x9ac): undefined reference to `gt_read_high'
syscall.c:(.text+0x9c0): undefined reference to `gt_read_low'
Guard them with an #if for now.
Gerd Zellweger [Mon, 19 May 2014 11:46:44 +0000]
Make vmkit test-case pass again.
vmkit linux execution stopped after:
[0:05:20] handle_vmexit_cpuid: CPUID: func
40000000, host reports: eax 0, ebx 0,
ecx 0, edx 0
[0:05:20] VMKit PCI host: reading register 2, opsize 1: 0
[0:05:20] VMKit PCI host: reading register 0, opsize 1: 0
[0:05:20] VMKit PCI host: reading register 0, opsize 1: 0
[0:05:20] VMKit PCI host: reading register 3, opsize 0: 0
[0:05:20] handle_vmexit_cpuid: CPUID: func
40000000, host reports: eax 0, ebx 0,
ecx 0, edx 0
[0:16:13] [Error: test timed out]
There seems to be a hard-coded assumption in there about the
PCI function of the NIC it uses for PCI pass-through?
I did not find it with a quick glance, but I'll need to have
another look as this will likely break again in the future.
Kornilios Kourtis [Mon, 12 May 2014 16:42:13 +0000]
Merge remote-tracking branch 'origin/master' into sdma-swicki
Gerd Zellweger [Mon, 12 May 2014 16:18:16 +0000]
Revert THC using GCC thread local storage.
As it turns out this is only really support on x86-64.
For x86-32 I need to add LDT support first.
This reverts commit
15237af3c7c5007ba74b452d961cf22a613b9b60.
This reverts commit
9cdc2018f4728271fde24fb9f59576b103c975a6.
Kornilios Kourtis [Mon, 12 May 2014 12:08:32 +0000]
Merge remote-tracking branch 'swicki/master'
Conflicts:
hake/menu.lst.pandaboard
include/arch/arm/omap44xx/device_registers.h
kernel/arch/arm/exec.c
usr/kaluga/main.c
usr/kaluga/omap_startup.c
Simon Gerber [Fri, 9 May 2014 11:57:21 +0000]
harness: Added burrata.
Gerd Zellweger [Wed, 7 May 2014 12:31:04 +0000]
Remove now empty function thc_set_pts_0.
Gerd Zellweger [Wed, 7 May 2014 12:23:34 +0000]
Add vacherin to scalebench. Cleanup old entries.
Gerd Zellweger [Wed, 7 May 2014 12:38:20 +0000]
Add support for I210 e1000 card to SKB.
Gerd Zellweger [Wed, 7 May 2014 12:54:31 +0000]
Fix E1000 debug print.
Gerd Zellweger [Sun, 27 Apr 2014 21:24:13 +0000]
Support for Intel I210 Ethernet card in e1000.
Makes networking work on our vacherin machine.
Right now this is another card type in e1000, however, it may be the same as
82576 card but at least, juding from the code we have for 82576 some of the
init code has to be different.
Also, change e1000 to select first card found instead of last, usually
first card has function 0x0 so we will choose the right one for machines
with only one cable. Better would probably be to try them all and see
where we get a link.
Gerd Zellweger [Wed, 7 May 2014 10:17:29 +0000]
Adding fixes to THC that make it work with threads.
Using GCC thread local storage for TLS state in BF.
See also https://lists.inf.ethz.ch/mailman/private/barrelfish/2012/002576.html
Gerd Zellweger [Sat, 5 Apr 2014 17:19:46 +0000]
Traceing: Export all event info in JSON
Before Pleco exported either DESC if set or NAME of event when
writing the JSON. This makes it awkward to write Javascript
programs to parse the trace in aquarium. Now we export both
with means we can always rely on event NAME in javascript.
Simon Gerber [Mon, 20 Jan 2014 14:54:51 +0000]
Fixed posixcompat_unpack_fds to not try to map an empty slot.
Gerd Zellweger [Thu, 14 Nov 2013 09:10:57 +0000]
Remove Beehive intermon messages.
Beehvive support was removed a long time ago.
Conflicts:
if/intermon.if
Simon Gerber [Tue, 6 May 2014 11:45:30 +0000]
kernel: enable mapping of up to 1TB of physical memory.
Simon Gerber [Tue, 6 May 2014 11:44:43 +0000]
x86_64: memserv: change MAXSIZEBITS to 48 to handle machines with large RAM.
Simon Gerber [Wed, 30 Apr 2014 11:14:33 +0000]
kernel: 4x size of supercn to handle larger amounts of RAM.
Simon Gerber [Wed, 30 Apr 2014 11:21:57 +0000]
paging: partially fixed unmap in floating page tables.
Gerd Zellweger [Tue, 15 Apr 2014 19:55:26 +0000]
Fix bug in octopus locking code.
Trigger and Return binding was switched when creating the trigger
struct which lead to trigger not being installed on server side.
Unfortunately this is not type checked :-(
Simon Gerber [Thu, 20 Mar 2014 16:09:54 +0000]
Revert "flounder: fixed UMP capability receive stub to properly call receive handler under all circumstances."
As it turns out this wasn't a bug at all, I just didn't understand how UMP
transfers multiple caps.
This reverts commit
git:
65b4f2e4e08ed0b126eb8be03ac5bea8a63dc1b6
hg:
f633ef1624182427285b9445d40e0c485fd51ffa
Simon Gerber [Mon, 17 Mar 2014 12:31:28 +0000]
flounder: fixed UMP capability receive stub to properly call receive handler under all circumstances.
Gerd Zellweger [Sat, 21 Dec 2013 15:07:24 +0000]
Assert that connect callback function is set.
You can run into this beeing a problem when playing around with the build and
not defining for example UMP in flounderBackends but not in interconnectDrivers.
Having ifdefs in a struct can lead to ugly bugs in that case :-(.
Gerd Zellweger [Wed, 12 Mar 2014 09:15:35 +0000]
Make everything compile for 32bit.
Fixes mostly printf specifiers all over the source tree.
Simon Gerber [Tue, 11 Mar 2014 15:28:30 +0000]
adding a tag for release 2014-03-11
Simon Gerber [Fri, 7 Mar 2014 15:31:42 +0000]
fixed missing perfcount_type in brie machine data.
Simon Gerber [Fri, 28 Feb 2014 14:11:20 +0000]
arm_molly: able to handle <=20 modules now.
Simon Gerber [Fri, 28 Feb 2014 13:46:17 +0000]
Added missing modules in PANDABOARD_MODULES.
Simon Gerber [Thu, 27 Feb 2014 10:18:36 +0000]
harness: added bits necessary for pandaboard buildtest.
Simon Gerber [Wed, 26 Feb 2014 09:49:04 +0000]
Fixed missing CPU_ARM5 in spawn_setup_vspace.
Simon Gerber [Wed, 26 Feb 2014 09:48:41 +0000]
xscale: define __ARM_ARCH_5__.
Simon Gerber [Wed, 26 Feb 2014 09:48:25 +0000]
armv5: Fixed wait_for_interrupt to work on qemu 0.14
Simon Gerber [Wed, 26 Feb 2014 09:47:24 +0000]
Removed offending utf-8 character in omap44xx_uart3 device file.
Simon Gerber [Tue, 25 Feb 2014 17:04:35 +0000]
omap44xx: Implemented serial driver.
Simon Gerber [Tue, 25 Feb 2014 17:02:02 +0000]
arm: added missing bits for ID cap creation.
Simon Gerber [Tue, 25 Feb 2014 16:59:30 +0000]
Split CPU_ARM into CPU_ARM5 and CPU_ARM7
Simon Gerber [Tue, 25 Feb 2014 16:57:07 +0000]
Fixed messed up function call ordering in set_with_idcap_handler in octopus service.
Simon Gerber [Tue, 25 Feb 2014 16:56:02 +0000]
Cleaned up omap44xx uart3 device file.
Simon Gerber [Mon, 24 Feb 2014 10:18:53 +0000]
Change fish_arm to new terminal API.
Simon Gerber [Tue, 18 Feb 2014 14:39:33 +0000]
Deduplicated armv7 paging code.
Simon Gerber [Fri, 7 Feb 2014 14:06:16 +0000]
Fixed generic tlb flushing code to use generic pte size define.
Sebastian Wicki [Wed, 5 Feb 2014 22:21:24 +0000]
cp15: use clean & invalidate instead of clean only
The current implementation of cp15_invalidate_d_cache() only cleans
the cache, which means that dirty cache lines are written back to
memory. However, cache lines which were modified in memory, for
example by a DMA engine, are not re-read.
This change uses the clean & invalidate operation, which means that
the cache lines are cleaned and invalidated: All dirty cache lines
are written back to memory, all other other cache lines are marked
as invalid until they are re-read from memory.
Wang Nan [Wed, 5 Feb 2014 21:36:50 +0000]
Make ARMv7 cpu driver run in SVC mode
From https://lists.inf.ethz.ch/pipermail/barrelfish-users/2013-July/001092.html
Sebastian Wicki [Tue, 4 Feb 2014 23:33:52 +0000]
Added benchmarks for the SDMA driver
The code /usr/bench/sdma_bench performs and measures multiple
transfer requests. It optionally spawns a number of worker in
order to simulate multiple clients and uses distributed
barriers to synchronize all these workers.
The benchmark in /usr/bench/bulk_sdma implements a simple bulk
transfer framework for test purposes. The different implementations
either perform the copy themselves in software, or offload them to
the SDMA driver.
Sebastian Wicki [Tue, 4 Feb 2014 23:11:20 +0000]
Added basic support for the Cortex A9 Global Timer
The Cortex A9 global timer is a 64-bit incrementing counter, which
is memory mapped in the private memory region. Thus, the code for
the timer is currently all in the CPU driver.
To read out the timer in userspace, two system calls are needed,
one for the lower and and one for the upper half of the counter.
The following helper function is provided to correctly read out
the timer value in two 32 bit reads as suggested in the ARM TRM:
errval_t sys_debug_hardware_global_timer_read(uint64_t *ret)
Sebastian Wicki [Tue, 4 Feb 2014 22:40:57 +0000]
Added tests for SDMA driver
Sebastian Wicki [Tue, 4 Feb 2014 22:19:00 +0000]
Added SDMA driver to kaluga
Sebastian Wicki [Tue, 4 Feb 2014 21:45:47 +0000]
Added SDMA driver for memory-to-memory transfers
This adds support for the OMAP4460 SDMA engine found on the Pandaboard.
The driver currently only supports memory-to-memory transfer. Those can
be requested through the Flounder interface described in if/omap_sdma.if.
Sebastian Wicki [Tue, 4 Feb 2014 21:34:13 +0000]
Cleaned up OMAP4460 SDMA Mackerel file
Changed to use regarrays for channels, instead of individual definitions,
added scatter-gather descriptors and fixed some minor typos.
Simon Gerber [Mon, 27 Jan 2014 17:06:21 +0000]
Flush affected TLB entries on modify_flags.
Simon Gerber [Wed, 22 Jan 2014 14:54:48 +0000]
Fixed libbarrelfish modify_flags code to do correct inside_region() calls.
Simon Gerber [Wed, 22 Jan 2014 14:46:43 +0000]
Added modify_flags test. Fixed missing local_phys_to_mem in kernel modify_flags.
Simon Gerber [Mon, 13 Jan 2014 17:20:58 +0000]
Fixed caps_copy_to_cte to insert new cap after minting.
Simon Gerber [Tue, 17 Dec 2013 14:57:47 +0000]
Fixed mdb_skew and mdb_split to properly update root node if necessary.
pravin@inf.ethz.ch [Sun, 22 Dec 2013 12:52:14 +0000]
Fixed minor error in function signature for compilation of eMAC driver for SCC.
pravin@inf.ethz.ch [Sat, 21 Dec 2013 01:04:21 +0000]
Fixed couple of minor typos in symbolic targets for arm
pravin@inf.ethz.ch [Fri, 20 Dec 2013 22:23:00 +0000]
reverted the code to support software filtering for chained incoming packets,
as that code was not working.