[coreboot] pci_read_config8 crash in mainboard.c

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Wed Mar 4 00:36:16 CET 2009


On 03.03.2009 23:33, Carl-Daniel Hailfinger wrote:
> On 03.03.2009 23:29, Carl-Daniel Hailfinger wrote:
>   
>> On 03.03.2009 19:22, Marc Jones wrote:
>>   
>>     
>>> I think I see the problem. The mainboard.c code is called during the
>>> chip_operations enable_dev stage very early before the static tree is
>>> setup with the device function pointers. The reason for this is to do
>>> chip device setup before the devices are scanned. For example the
>>> device may need to be enabled in the southbridge before it will be
>>> found in the normal scan or it may need to be hidden etc.
>>>
>>> If you look at static.c you will see that the .ops = 0 for all the
>>> devices. That field gets updated in set_pci_ops() (or other device ops
>>> setup functions) which happens later in the device scan, after the
>>> chip enable_dev.
>>>
>>> That is why we need to use the direct access pci functions and not the
>>> static tree pointer functions. I think that the fix is to add a
>>> comment explaining why you need to use the direct access functions at
>>> in the enable_dev function.
>>>
>>> I hope that was clear. It is a bit easier to understand in V3 where
>>> the stages/phases are numbered.
>>>   
>>>     
>>>       
>> Thanks. I still want to work around this.
>>
>> Ward, can you please revert src/mainboard/amd/dbm690t/mainboard.c and
>> try this?
>>   
>>     
>
> Index: src/mainboard/amd/dbm690t/mainboard.c
> ===================================================================
> --- src/mainboard/amd/dbm690t/mainboard.c	(Revision 3967)
> +++ src/mainboard/amd/dbm690t/mainboard.c	(Arbeitskopie)
>   

Ward managed to boot his M2A-VM with this patch.
Thanks for your patience, Ward!
Boot log is here:
http://ward.vandewege.net/coreboot/m2a-vm/m2a-vm-with-fix-printk-format-warning-patch5.log


Separate patches will follow.

Regards,
Carl-Daniel

-- 
http://www.hailfinger.org/





More information about the coreboot mailing list