Hi Michael,

For my PhD I wrote a different ARM simulator (called SWARM) that was  
minimal enough to run uLinux - a micro controller linux  
implementation. It was a few years ago now, but as I recall I needed  
to emulate very little hardware. Particularly as uLinux does not use  
virtual memory, so no VMM hardware support was required.

I think in addition to the ARM ISA I implemented only a few other thing:

1) A simple interrupt controller based, if I remember correctly, on  
that of the ARM7TDMI, that other software devices in the simulator  
could drive.

2) A timer device that could generate interrupts - the OS will need  
this for things like process scheduling.

3) A simple UART for I/O, though I have to confess that for a lot of  
things I cheated and had some magic SWIs that would all into the  
simulator to do I/O

You can find SWARM and some documentation here:

http://www.cl.cam.ac.uk/~mwd24/phd/swarm.html

I don't suggest using it, but it should give you an idea of what the  
minimum you can get away with is. I suspect it no longer compiles as g 
++ has changed quite a bit since 2.95.x :)

-- Michael

On 11 May 2007, at 15:25, Michael Baer wrote:

> Hi Ralph,
>
> thanks for your answer! I'm really happy to receive such a quick  
> response.
>
> Yes, Pearcolator instruments a JVM to perform Dynamic Binary  
> Translation. For ARM, I translate the ARM instructions into a  
> stream of Pearcolator's intermediate instruction format and then,  
> those intermediate instructions are compiled to machine code for  
> the host platform. Currently, Pearcolator simulates a linux  
> environment by intercepting system calls and handling these, as if  
> the binary was running on linux.
>
> However, I would like to extend that research project so that  
> Pearcolator can also simulate enough hardware, to actually boot a  
> simple operating system instead of "only" intercepting the system  
> calls. Currently, I am simulating all ARM instructions, but no  
> additional hardware at all. Therefore, I was wondering what kind of  
> hardware I would actually have to simulate to get a basic linux  
> running - is simulating a memory mapped serial interface enough or  
> do I also need a DMA controller, HD controller or ...?
>
> The reason I was asking here is that you seem to be experts on  
> simulating hardware, considering arcem is able to emulate quite a  
> lot. I knew about QEMU, but until know I though they would also  
> only intercept the system calls - but according to your interesting  
> links, they also seem to be able to simulate a bit of hardware, too.
>
> On your homepage, you are also offering an ARMLinux ROM image  
> (http://arcem.sourceforge.net/linuxrom.zip). Do you know what kind  
> of hardware emulation is required to run this image?
>
> Bye,
> Michael
>
> -------- Original-Nachricht --------
> Datum: Fri, 11 May 2007 14:47:05 +0100
> Von: Ralph Corderoy <[EMAIL PROTECTED]>
> An: "Michael Baer" <[EMAIL PROTECTED]>
> CC: arcem-devel@lists.sourceforge.net
> Betreff: Re: Minimum hardware emulation needed to boot a OS on ARM?
>
>>
>> Hi Michael,
>>
>>> I am a student at the University of Manchester and as part of a
>>> project, I am extending the Java Dynamic Binary Translator  
>>> Pearcolator
>>> (pearcolator.sourceforge.net) to support the ARM instruction set.
>>> Sorry to start my first posting to your list with a question, but it
>>> would be really nice if any of you could give me a hint on the
>>> following topic:
>>>
>>> I am very impressed with the work that you have done on Arcem.  
>>> Though
>>> Pearcolator is not targetted to perform full system emulation, I  
>>> would
>>> really like to look into that topic a little bit. Therefore, I was
>>> wondering what the minimal necessary hardware emulation is to run an
>>> ARM-based operating system like ARMLinux or RiscOS. I am currently
>>> emulating ARM's Angel Debug Monitor SWI commands, but there's  
>>> probably
>>> much more hardware emulation is needed?
>>
>> RISC OS does need much more, and a lot of it these days isn't  
>> useful to
>> anything but RISC OS.  I'd recommend going for Linux/ARM or a BSD  
>> as I
>> believe these require a lot less hardware to be emulated in order  
>> to get
>> a kernel going talking to a "serial" console.
>>
>>> It would be really nice, if you could give me a hint about where to
>>> start emulating software, possibly just to get a console of some  
>>> kind
>>> running?
>>
>> I don't quite understand what pearcolator is.  Is it a framework for
>> writing a dynamic binary translator in?  And you're using it to  
>> take ARM
>> machine instructions, turn them into JVM instructions, and then run
>> them, emulating whatever surrounding system they expect?
>>
>> Have you looked a Qemu?  That may be a better thing to study than  
>> arcem.
>> In particular, see what cut-down minimal OSes they run.  Various  
>> people
>> have written about running ARM Linux on Qemu.
>>
>>     http://909ers.apl.washington.edu/~dushaw/ARM/
>>     http://nepotismia.com/linux/qemu/arm/
>>     http://www.aurel32.net/info/debian_arm_qemu.php
>>
>> Feel free to come back with other questions.  The people lurking  
>> on the
>> list cover quite a wide variety of areas.
>>
>> Cheers,
>>
>>
>> Ralph.
>
> -- 
> Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten
> Browser-Versionen downloaden: http://www.gmx.net/de/go/browser
>
> ---------------------------------------------------------------------- 
> ---
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> arcem-devel mailing list
> arcem-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/arcem-devel


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
arcem-devel mailing list
arcem-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/arcem-devel

Reply via email to