PCI IDE Controller Base Address Register setting

Darmawan Salihun darmawan_salihun at yahoo.com
Sun Dec 26 21:24:57 UTC 2010


I'm trying to install FreeBSD 8.0 on AMD Geode LX800 (CS5536 "southbridge"). However, it cannot detect the IDE controller (in the CS5536) correctly. It says something similar to this: 
"IDE controller not present"

I did lspci in Linux (BackTrack 3) 
and I saw that the IDE controller Base Address Registers (BARs) 
are all disabled (only contains zeros), 
except for one of them (BAR4). 
BAR4 decodes 16-bytes I/O ports (FFF0h-FFFFh). 
The decoded ports "seems" to conform to the PCI IDE specification 
for "native-PCI IDE controller" (relocatable within the 
16-bit I/O address space). 

I did "cat /proc/ioports" and I found that 
the following I/O port address ranges decoded correctly 
to the IDE controller in the CS5536 "southbridge":


My question: 
Does FreeBSD require the IDE controller BARs 
to be programmed to also decode 
legacy I/O ports ranges (1F0h-1F7h,3F6h and 170h-177h)? 

What if those ranges are not programmed into the BARs 
of the IDE controller? 
Would the IDE controller be considered 
not present (disabled)?



PS: I'm working on the BIOS for this particular system 
    but I have yet to be able to program the BARs to the 
    aforementioned legacy I/O port ranges. 
    This system is very peculiar because the PCI subsystem 
    is virtualized. 


More information about the freebsd-questions mailing list