[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[MirageOS-devel] Mini-OS on ARM status

Hi guys,

A quick status update on this work:

- Output to the regular console now works (before, it could only
output to the emergency console, which requires Xen to be compiled in
debug mode).

- I added a simple fault handler that dumps all registers if it gets
an error (data abort, prefetch abort, undefined instruction, etc).
That makes debugging easier.

- It now gets the RAM start and size from the FDT passed in by the
hypervisor (before, it hard-coded the values). This means that the
full amount of memory assigned to the guest is available to malloc. I
also fixed a bug in malloc that was corrupting memory (it was
calculating offsets into its free map incorrectly). It now mallocs as
many blocks as possible on start-up, fills them with known values and
then tests them all (this is how I found the bug).

- The GIC (interrupt controller) addresses are now read from the FDT
instead of being hard-coded, and interrupts now work. Before, it would
hang as soon as interrupts were enabled.

There's currently no virtual memory support (if the memory gets
fragmented, malloc may fail, even if there are enough pages available
in total).

My next steps are to check that the rest of it is working and then try
enabling libc. It might also be interesting to look at debugger
support (e.g. getting gdbsx working), though I have no idea how hard
that would be.

Dr Thomas Leonard        http://0install.net/
GPG: 9242 9807 C985 3C07 44A6  8B9A AE07 8280 59A5 3CC1
GPG: DA98 25AE CAD0 8975 7CDA  BD8E 0713 3F96 CA74 D8BA

MirageOS-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.