Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Dec 2010 04:58:14 +0800 (SGT)
From:      Darmawan Salihun <darmawan_salihun@yahoo.com>
To:        freebsd-questions@freebsd.org
Subject:   PCI IDE Controller Base Address Register setting
Message-ID:  <413394.37578.qm@web76812.mail.sg1.yahoo.com>

next in thread | raw e-mail | index | archive | help
Hi, 

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":

1F0h-1F7h 
3F6h 
170h-177h
FFF0h-FFFFh

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)?

TIA, 

Darmawan

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. 




      



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?413394.37578.qm>