[Barrelfish-users] Barrelfish running on Bochs emulator

Zeus Gómez Marmolejo zeus.gomez at bsc.es
Wed Feb 1 20:38:49 CET 2012

Hi all,

I've successfully booted Barrelfish on Bochs PC emulator with 1, 2 and 4
cores SMP emulation.

I had to do a fix in the Barrelfish code, regarding the IOAPIC index
register. According to the Intel datasheet, the IOAPIC (
http://www.intel.com/design/chipsets/datashts/290566.htm ) index register
has to be accessed only in 32-bit words (page 8). The Bochs code has an
assert preventing 8-bit access to the register. So the line to be modified
is in the file devices/lpc_ioapic.dev:

register ind rw addr(base, 0x0) "Index" type(uint32);

I send the patch. It seems to work in QEMU and in a real machine too.

Being able to run Barrelfish inside Bochs has several advantages.

1. Its execution is deterministic so if you find an error you can always
reproduce it in each execution in the same way. QEMU is indeterministic. I
was even discussing this in the QEMU mailing list and there is currently no
solution to this problem.

2. It has an embedded debugger and you can do physical address debugging,
the gdb stub in QEMU doesn't support.


Zeus Gómez Marmolejo
Barcelona Supercomputing Center
PhD student
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20120201/4b210e71/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: lpc_ioapic_idx32.patch
Type: text/x-patch
Size: 402 bytes
Desc: not available
Url : https://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20120201/4b210e71/attachment.bin 

More information about the Barrelfish-users mailing list