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


Reply via email to