Failure to get past a PCI bridge

Josef Moellers josef.moellers at ts.fujitsu.com
Tue Jun 9 08:15:47 UTC 2009


John Baldwin wrote:
> On Monday 08 June 2009 4:09:11 am Josef Moellers wrote:
>   
>> 'morning,
>>
>> John Baldwin wrote:
>>     
>>> On Friday 05 June 2009 10:51:44 am Josef Moellers wrote:
>>>   
>>>       
>>>> Hello,
>>>>
>>>> Thanks for the help!
>>>>
>>>> John Baldwin wrote:
>>>>     
>>>>         
>>>>> On Friday 05 June 2009 5:17:25 am Josef Moellers wrote:
>>>>>   
>>>>>       
>>>>>           
>>>>>> Difficult, since I can't boot properly.
>>>>>> However, I have managed to get the dsdt using a SuSE Linux and have run 
>>>>>> that through acpidump -d on a 7.2 running on a XEN virtual machine. 
>>>>>> Here's the result.
>>>>>>     
>>>>>>         
>>>>>>             
>>>>> Hmm, your BIOS is certainly hosed.  First, it does have separate 
>>>>>           
> processor
>   
>>>>> objects:
>>>>>       
>>>>>           
>>>> [...]
>>>>
>>>> I'll show this to our BIOS people. When I talked to them before, they 
>>>> claimed that everything were OK, since the OSes we support do come up 
>>>> properly.
>>>>     
>>>>         
>>> I think your BIOS is actually ok, sorry my e-mail was a bit of a stream of 
>>> conciousness.
>>>   
>>>       
>> That's what my colleague confirmed ;-)
>> However, being the nice guy that he is, he provided me with a 
>> preliminary extra special test version (he was on the brink of going on 
>> holiday!), which presents the bridges in their numerical order (0, 1, 2, 
>> 0xfe, 0xff). With that BIOS, I finally got access to the keyboard and 
>> RAID controller and all and I'm installing FBSD as I'm writing this.
>>
>> So, maybe the algorithm shouldn't be "if we find a bridge with number 0 
>> which is not the first one, give it another number" shouldn't this be 
>> "if we find *a* *second* bridge with number 0, give it another number"?
>>     
>
> Yes, that's bascially what my patch does.
>   
I promise to do my best to read mails in the future ;-)
Yes, you're obviously right. Shame on me.
>   
>>> Ah, if you have a working machine where you can build a kernel, you can 
>>>       
> build 
>   
>>> an new CD using an existing ISO as a template.  Simply build a GENERIC 
>>>       
> kernel 
>   
>>> and install it into some DESTDIR=/foo and mount the ISO image using 
>>>       
> mdconfig 
>   
>>> to /dist.  Then do something like 'mkisofs -o new.iso -r -J -b 
>>> boot/cdboot -no-emul-boot -x /dist/boot/kernel /dist /foo'.  If that 
>>> complains about duplicate 'boot/kernel' then you may need to copy all 
>>> of /dist/boot to /foo/boot, install the new kernel into /foo, and 
>>> use '-x /dist/boot /dist /foo'.
>>>
>>> Also, if this machine supports PXE boot at all, that can be a way to boot 
>>>       
> a 
>   
>>> test kernel as well.
>>>       
>> Maybe that's what we'll have to do after all.
>>     
>
> Ok, let me know if it works.  Thanks.
Yepp! Works like a charm. I had been able to boot the original kernel 
with the modified BIOS and apply your patch.
Then I rebooted with that kernel (on the modified BIOS, i.e. the one 
with the 0 254 255 bus numbers) and it booted OK. Then I flashed the 
BIOS back to a release version (i.e. one with 255 254 0 bus numbers) and 
the patched kernel booted OK and the non-patched kernel (kernel.old) 
crashed because it did not find its root FS.

BTW As I understand it, the 254 and 255 busses are on-chip Nehalem 
busses which provide access to certain chip registers.

Will this make its way into a future release? 8.0?

Josef

-- 
These are my personal views and not those of Fujitsu Technology Solutions!
Josef Möllers (Pinguinpfleger bei FTS)
	If failure had no penalty success would not be a prize (T.  Pratchett)
Company Details: http://de.ts.fujitsu.com/imprint.html



More information about the freebsd-acpi mailing list