On Fri, Dec 5, 2008 at 3:08 PM, Marc Jones marcj303@gmail.com wrote:
On Wed, Dec 3, 2008 at 11:43 AM, Myles Watson mylesgw@gmail.com wrote:
A question before the code:
- Can anyone enumerate all the fixed resources that should be included
in
QEMU? Currently I have:
- DRAM (first 640K and 0xc0000-TOP-768K) Is this necessary?
- I/O first 0x400 in southbridge
- VGA 0xa0000-0xc0000
- APIC at 0xfec00000 and 0xfee00000
- ROM at 0xfff80000
This looks normal. You could put the first 0x1000 in the SB IMO.
I changed it, thanks.
Side note: Only the lowest and highest fixed addresses matter in my code. The others get ignored. I think it's too much pain to try to interleave them to use the space between 0xfee00000 and 0xfff80000, for example.
This is probably ok for a normal system. There is a problem with this if a device is already setup and should be treated as fixed but if that is the case it should be seup in the dts....
/* Initialize constraints to maximum size. */ limits.pref.base = 0; limits.pref.limit = 0xfffffffffffffffULL; limits.io.base = 0; limits.io.limit = 0xfffffffffffffffULL; limits.mem.base = 0; limits.mem.limit = 0xfffffffffffffffULL;
The limit for memory and prefetch should be the same since they are in the same address space. For mem.base I assume it gets set from TOM (for K8) somehow?
The problem comes when they are not in the same address space. I need to be able to allocate prefetchable memory above 4G. The way the code works now, you only get separate address spaces if the domain asks for it. Otherwise they end up in the same space.
Thanks, Myles