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

Re: [MirageOS-devel] Mirage ARM port



On 29 Apr 2014, at 14:17, Goswin von Brederlow <goswin-v-b@xxxxxx> wrote:

> On Thu, Apr 10, 2014 at 04:39:49PM +0100, Andy Ray wrote:
>> Hi,
>> 
>> I've been discussing the ARM port of Mirage with Anil recently and
>> would like to get involved helping to bring that up.
>> 
>> Initially it would be to target a Raspberry Pi (finally something I
>> can use it for!) but eventually I'm interested in getting it running
>> on an Altera Cyclone V Soc with dual-core ARM Cortex-A9s.
>> 
>> I understand there are 2 approaches - using a FreeBSD kernel module or
>> building up from scratch with a mini OS and implementing some device
>> drivers.  I'm easy either way.
>> 
>> I've never used a BSD but I have hacked a realtime linux OS onto an
>> ARM Soc before so I know there be dragons ahead...
>> 
>> Cheers,
>> Andy
> 
> A while back I started writing an exokernel to run ocaml barebone on
> the Raspberry Pi. I have ocaml running and multi-threading 95% done.
> For my approach I mapped interrupts to signals so I can use an
> unmodified ocamlopt for RPi to generate a binary blob and link that
> with the exo kernel (just a few files to initialize the hardware and
> glue to ocaml).
> 
> I would be verry interested in porting mirage. But mirage needs Xen
> and the Raspberry Pi can't run Xen. So quite a bit of driver glue will
> be needed. That's why I started with just plain ocaml.

Starting with OCaml is definitely the right thing to do here.  A minor
correction though: only the Xen backend in Mirage requires Xen :-)
You should be able to reuse large portions of everything above the
tuntap layer (for networking), such as the TCP/IP stack.  It would
help with future compatibility if you use some of the same libraries
for IO handling, such as Io_page (which is a thin page-aligned wrapper
above Cstruct+Bigarray).

The reasoning behind the FreeBSD/kernel approach is to give us a nice
cocoon in which to leverage existing device drivers and slowly move
our way down the stack, while retaining the ability to benchmark CPU
and memory usage against the existing (mature and optimized) FreeBSD
drivers.

I've just got FreeBSD/rPi userspace up and running and it seems nice
and stable, which is encouraging (aside from the lack of binary packages,
so I'm leaving it compiling OCaml and its dependencies for the next
day or so).

> I'm going to hold a talk about ocaml barebone on the RPi end of next
> week so I have till then finish and release something. I will post the
> url when I do.

Sounds great, I really look forward to this!

-anil

_______________________________________________
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®.