[LinuxBIOS] epia

Ben Hewson ben at hewson-venieri.com
Wed Dec 13 18:23:20 CET 2006


Segher Boessenkool wrote:
>> Also when it comes to enabling the IDE controller in compatibilty mode
>> (reg 0x42) the non working versions reports it contains 0xc9, the
>> working version reports the same register as 0.
>>     
>
> You need to set the prog-if field in the PCI config space
> for the controller to 0x8a, not 0x8f, before doing the BAR
> allocation to get legacy mode.  Did you do this?
>
>
> Segher
>
>
>   
I am not sure about the order of things, however according to the PCI
IDE controller document you pointed me to 0x8a is fine as bits 0 & 2 are
don't care.
Incidentally both working and non working version set the same values.

The biggest change that I can see is that 2 of the elements in the bus
structure have changed from unsigned char's to unsigned 16 bit types.
Also in all of the pci read/write functions, the where parameter has
changed from a char to an int. So my initial thoughts is that one of
these changes has had a nasty side effect someplace but I can't find
anything as yet.

Apart from those changes the code is mostly the same. Of course
something may be causing a condition #define to compile in something
different, although I can't see anything different in any of the config
files. I am only comparing files that I think are being used, so it is
possible that I am missing something.

Anyway I am going to add alot of debug prints to the pci read/write
functions in both working and non working versions and then do a file
compare to see if anything is different.

It is probably the sort of bug that is so obvious once you see it, but
look perfectly ok until then

Ben
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20061213/54f453c9/attachment.html>


More information about the coreboot mailing list