The Kernel pci_read_bases in drivers/pci/probe.c. has problem when size if bigger than 4G.
It will first check the 32 bit SPACE_ADDRESS, and pci_size will return 0, So it will skip that resource. And the pre-set values is ignored.
And later, it will try to allocate the value. It will fail.
I will produce one patch for you.
YH
-----Original Message----- From: linuxbios-bounces@linuxbios.org [mailto:linuxbios-bounces@linuxbios.org] On Behalf Of Lu, Yinghai Sent: Friday, November 03, 2006 11:46 AM To: myles@mouselemur.cs.byu.edu; LinuxBIOS Subject: Re: [LinuxBIOS] Disabled device help
Boot log?
In LinuxBIOS, there is CONFIG_PCI_64BIT_PREF_MEM, did you try to enable it in you MB Options.lb
In the kernel, there is pci_assign_unassigned_resources that try to allocate resource for some devices, and it could cause problem because Opteron could bave multi ht chain, Aka peer root bus, and every root bus need to have its own ioport_resource, and iomem_resource. But that only happen when BIOS is not allocating resource correctly. And LinuxBIOS does a good job, and every device have be handled properly.
In case, you have werid pci devices, you still can use pci_quirks in kernel to do some fix up.
YH
-----Original Message----- From: linuxbios-bounces@linuxbios.org [mailto:linuxbios-bounces@linuxbios.org] On Behalf Of Myles Watson Sent: Friday, November 03, 2006 11:02 AM To: 'LinuxBIOS' Subject: [LinuxBIOS] Disabled device help
My large device gets disabled somewhere in LinuxBIOS or the kernel. This is the encouraging line from LinuxBIOS telling me that the registers are indeed set correctly.
PCI: 05:01.0 18 <- [8000000000 - bfffffffff] prefmem64
Unfortunately, Linux sees something different and fails to allocate this region because it sees it at 00000080-000000bf and that conflicts with other things.
Does anyone have a pointer to where I should look for this problem? Has anyone else had problems with devices larger than 4GB?
Thanks, Myles