Subject: Re: pci in arch/powerpc vs arch/ppc

From: "Alexandros Kostopoulos" <[email-masked]>
Date: Tue, 07 Aug 2007 12:06:46 +0300

Except from some macros arch/powerpc/include/asm/io.h / mpc8260_pci9.h, I  
can seem to find anywhere the code regarding PCI Erratum 9. The defined  
macros(in io.h) for read/write are sufficient as a workaround for PCI9?  
Who does DMA and register initialization for this (it used to be done in  
arch/ppc/syslib/m8260_pci_erratum9.c in arc/ppc). Maybe u-boot or the  
bootwrapper?

Another question regarding resource allocation: when  
alloc_resource(pci_32.c), called from pcibios_allocate_resources(), during  
pcibios init, attempts to allocate resources using request_resource(), the  
request fails. This seems to happen because the previously scanned PCI  
devices request resources in the form, e.g. 00000- 0000f (i.e. starting  
 from zero), and this should be mapped somewhere else in cpu mem space. My  
question (in order to find my bug) is, who performs this mapping, from PCI  
space to CPU space, the kernel (and if yes, where?) or the host bridge (in  
which case, I've probably failed to configure it properly).

Thank you

On Sat, 04 Aug 2007 19:39:58 +0300, Kumar Gala <[email-masked]>  
wrote:

>
> On Aug 3, 2007, at 3:10 PM, Scott Wood wrote:
>
>> On Fri, Aug 03, 2007 at 05:58:56PM +0300, Alexandros Kostopoulos wrote:
>>> Hi all,
>>> in the old arch/ppc tree, there was a function called  
>>> pq2ads_setup_pci()
>>> that set up PCI regs for 8272xx, in m82xx_pci.c. I was wandering, where
>>> are these registers configured now in arch/powerpc? I can't seem to  
>>> find
>>> these code now.
>>
>> It's done by the firmware or the bootwrapper.
>
>>> Also, I can see that now bus 0, dev 0 (which I think represents the  
>>> host
>>> bridge, right?) is now excluded using pq2_pci_exclude_device, but it
>>> wasn't in older code. Why is that?
>>
>> The older code probably either excluded all host bridges by class, or
>> just lived with the error message that gets printed on boot.
>
> This will change in 2.6.24.  I've fixed the reason we excluded the host  
> bridges on Freescale host bridges.
>
> - k