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

Re: [MirageOS-devel] Mini-OS on ARM status



Fantastic progress!  This should be enough to let me take a shot at
getting OCaml on there while you're away.  Have a good break...

-anil

On 28 Apr 2014, at 17:23, Thomas Leonard <talex5@xxxxxxxxx> wrote:

> Hi guys,
> 
> I'm on holiday for the next three days. Here's the current status:
> 
> - The shutdown thread now works. Before, it incorrectly detected a
> shutdown attempt immediately, but didn't shutdown. Now it waits
> correctly and then shuts down the VM using a hypercall.
> 
> - The monotonic timer now works (using the ARM Generic Timer).
> 
> - block_domain now works (using the Virtual Count register and WFI),
> allowing it to sleep while waiting for events.
> 
> - The grant table is now initialised (this seems to work quite
> differently on ARM).
> 
> - Non-aligned memory access is now allowed (for lwIP).
> 
> With these patches, lwIP can be used and you can ping the VM (you need
> to hard-code an IP address in daytime.c too). The above changes have
> now been merged into KarimAllah's repository.
> 
> You can now also compile with CONFIG_TEST=y to run the test app (on my
> devel branch). This was failing before because it didn't handle
> threads exiting, but I've adjusted the code to call thread_exit
> automatically if a thread's main function returns.
> 
> With this, it will print out a message once a second:
> 
> T(s=1 us=1859)
> T(s=2 us=2072)
> T(s=3 us=2276)
> ...
> 
> 
> On 22 April 2014 18:40, Thomas Leonard <talex5@xxxxxxxxx> wrote:
>> 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
> 
> 
> 
> -- 
> 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
> MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
> http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


 


Rackspace

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