[PATCH V7 02/17] SPEAr13xx: Add PCIe host controller base driver support.

pratyush pratyush.anand at st.com
Wed Apr 13 08:25:25 EDT 2011


Hello Rob,

...

>> SPEAr13xx family contains Synopsys designware PCIe version 3.30a. This
>> patch adds support for this PCIe module for spear platform.
>>
> 
> Sorry for the late response.
> 
> Other vendors are likely to have the same IP, but none of the code here
> is written to be common. In light of recent discussions this would be a
> good candidate to avoid future duplication.
> 
> It doesn't appear that pcie.c contains much SPEAr specific code. The few
> defines and structs that are could be passed in. Some comments below.
> 

Yes, this driver is for an PCIe host which uses Synopsys IP. But 
SPEAr specific wrapper has been used heavily in the code.
Synopsis provides some signal which can be interfaced to registers
for CPU access. This interface can be different for different vendor.
All the application registers are SPEAr specific representation
and may not be same for other vendor.
So all accesses for app_reg in the code may not be similar in other 
implementation. 

...


>> +struct pcie_port {
> 
> 3 other structs with the same name and similar fields already exist:
> 
> arch/arm/mach-kirkwood/pcie.c:27:struct pcie_port {
> arch/arm/mach-dove/pcie.c:23:struct pcie_port {
> arch/arm/mach-mv78xx0/pcie.c:19:struct pcie_port {
> 
>> +     u8                      port;
>> +     u8                      root_bus_nr;
>> +     void __iomem            *base;
>> +     void __iomem            *app_base;
>> +     void __iomem            *va_app_base;
>> +     void __iomem            *va_dbi_base;


like dbi interface. May not be needed in all implementation
of the same synposis IP.

>> +     void __iomem            *va_cfg0_base;
>> +     void __iomem            *va_cfg1_base;
>> +     spinlock_t              conf_lock;
>> +     char                    mem_space_name[16];
>> +     char                    io_space_name[16];
>> +     struct resource         res[2];
>> +     struct pcie_port_info   config;
>> +};
>> +

...

Regards
Pratyush



More information about the linux-arm-kernel mailing list