Hello qemu-developers,
I know this is probably not the right place for these questions, but I have been having a hard time getting feedback on any of the other forums and mailing lists. Starting with the fact that in the last couple of days I haven't been able to access the QEMU Users Forum. Whenever I click on the
http://qemu-forum.ipi.fi/ link, I get the following error page:
General Error
SQL ERROR [ mysql4 ]
Lost connection to MySQL server during query [2013]
An sql error occurred while fetching this page. Please contact an administrator if this problem persists.
So, who should I contact? It says an administrator, but it doesn't provide an e-mail address.
Anyway, going to my developing questions... let me provide with some background first:
(This was already sent in a previous e-mail that got zero responses :-( )
I am starting my Master's Thesis related to the field of Hardware/Software co-simulation design.
Currently,
we have a System-Level-Design-Language called SpecC, similar to SystemC, that can be
used for both: Simulating a system and generating the proper embedded
software and RTL information (for future synthesis). Simulation is
performed in different levels starting from the purely abstract
Functional level, going down to the RTL/IIS level.
The embedded software generation is done by using the gnu gcc
compiler collection. And the the IIS simulation has done so far by
interfacing to the SWARM ISS.
So, I had started looking at QEMU source code looking for the best way to integrate our Simulator and QEMU. The main idea is the following:
Create a SpecC behaviour that wraps the QEMU CPU emulation and the CPU interfaces with the rest of the modeled hardware (in SpecC). Therefore, the "wrapper" should detect the QEMU Core bus and data accesses so that it can transmit them to the other SpecC behaviors. Besides, and this is the part that I am less sure about, it should monitor and/or signal cpu/external interrupts.
Finally, it should advance the simulation clock according to the QEMU Core behavior (cache misses, memory accesses, interrupts, etc).
So, with all the above being said, here are some of my questions that I was hoping some of you could give me some insight:
1) Per my understandind, I have three different options for interfacing with QEMU:
a) Change the vl.c code (and probably other source files) in qemu.
b) Use the qemu monitor (Although I believe it doesn't provide the level of details that I would be needing, right?)
c) Use some sort of qemu PCI or HBA interface (Again, I believe this wouldn't achieve all the functionalities that I require)
Any recommendations regarding the best strategy on integrating both environments?
2)
_world]
And here are the details on my CodeSourcer Lite cross-compiler:
5) So, QEMU performs Dynamic Code translation in blocks, if I would like to look for memory/data accesses and interrupts signaling and detection which area of the source code should I look at?
tcg_cpu_exec() inside vl.c ?
or cpu-exec.c ?