Thank you for this answer. I have still difficulties to understand how the bootstrapping steps are simulated within M5. I checked the system.cc of the sparc achitecture and I see it loads a reset and a bootloader binary in ROM.
And then I get lost between all the "startup", "wakeup" or "activate" methods of the cpu, system or threadcontext class. I can't precisely find how the RESET is simulated and handled by the CPU and how (or where ?) it fetches the instructions placed at reset_address (which I believe is ROM_base in SPARC system). Thank you again for your support ----- Original Message ----- From: "Gabe Black" <[email protected]> To: "M5 users mailing list" <[email protected]> Sent: Wednesday, July 21, 2010 8:18:26 PM GMT +01:00 Amsterdam / Berlin / Bern / Rome / Stockholm / Vienna Subject: Re: [m5-users] Simulating software with ARM_SE françois-xavier morel wrote: > Thank you for your answer. > > but the problem is that I can't really change of compiler. > I am using m5sim to precisely simulate the executable obtained with this > compiler (arm-elf-gcc v.4.2.2). I checked and it supports the EABI. > > After some research I made today, I think the problem is more than the target > code is not meant to run on Linux but rather on bare metal. > Does that mean I will have to deal with the Full System implementation ARM_FS > (which does not yet exist) ? > If that's true, then yes. > I'm still confused with the steps made by m5sim at the beginning of the > simulation and in particular the loading of the executable specified as > 'workload' of the cpu in the pyhton config file. Is this the write way to > specify the software I want to run on the CPU ? Is there an hidden bootloader > somewhere ? Does the SE mode boot a Linux and then launch the 'workload' as > a standard process ? > In SE mode, the workload parameter specifies what program to load and run on that CPU. It must be a user level program, and M5 loads it into simulated memory itself before it starts executing it. In FS mode there are a few different ways of starting execution. Either M5 loads the kernel into memory itself and starts executing it, or it starts like an actual machine would with a CPU reset and goes through all the bootstrapping steps. SPARC_FS is the only ISA that starts all the way from the beginning as far as I'm aware. Gabe _______________________________________________ m5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/m5-users _______________________________________________ m5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
