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