On 06.05.2013, at 22:57, Hervé Poussineau wrote: > Alexander Graf a écrit : >> On 05/03/2013 07:57 AM, Hervé Poussineau wrote: >>> Alexander Graf a écrit : >>>> >>>> Am 02.05.2013 um 22:08 schrieb Hervé Poussineau <hpous...@reactos.org>: >>>> >>>>> Non-contiguous I/O is not implemented. >>>>> >>>>> There is also somewhere a bug in the memory controller, which means >>>>> that some real firmwares may not detect the correct amount of memory. >>>>> This can be bypassed by adding '-m 1G' on the command line. >>>>> >>>>> Add x-auto-conf property, to automatically configure the memory >>>>> controller at startup. This will be required by OpenBIOS, which >>>>> doesn't know how to do it. >>>> >>>> Why not teach it? I'd prefer to see that logic in firmware. >>> >>> Me too, but I'm not confident enough in my capabilities to do it. >> Huh? Why not? Most of the device initialization code in OpenBIOS happens in >> C, so you don't even have to touch Forth code :). >>> Autoconfiguration is only in one place of the code, so I think it can be >>> removed easily once OpenBIOS has this logic. >> I'd prefer if we could come up with a clean model from the start. It really >> shouldn't be hard at all. > > I thought that for all other usages of OpenBIOS in QEMU, RAM was supposed to > be available as soon as machine was powered on. > > However, I checked OpenBIOS code: > One of the first things done in arch/ppc/qemu/start.S is to copy the > exception vectors. So, I should add code before it to detect memory > controller, detect ram size and configure memory controller?
You could just try to poke fw_cfg and ask it for the machine model. Based on that you can do all the initialization hardcoded. > It seems quite a bit of code. > Do you have an example of how to do it for another memory controller, so I > can adapt the code? Unfortunately not, no. Alex