[PATCH V3 19/21] pci, acpi: Support for ACPI based generic PCI host controller init

Tomasz Nowicki tn at semihalf.com
Mon Jan 18 02:34:31 PST 2016


On 18.01.2016 10:25, liudongdong (C) wrote:
> I see here is different from V2 patch,
> in V2 patch,  0x0000022004000000 is cpu addr.
> but in V3 patch, 0x0000022004000000 is pci addr.
> which one is right ?

You are right, I look back at v2 and see bug there. But v3 fixes it, for 
MEM & IO we always need to calculate this way:
CPU address defined as: cpu_addr = res->start + entry->offset;
PCI address: pci_addr = res->start;

>
> 0x0000022004000000  is the value of AddressMinimum.
> AddressMinimum evaluates to a 64-bit integer that specifies the lowest
> possible base address of the Memory range
> QWordMemory ( // 64-bit BAR Windows
>      ResourceProducer, PosDecode,
>      MinFixed, MaxFixed,
>      Cacheable, ReadWrite,
>      0x000000000000000, // Granularity
>      0x0000022004000000, // Min Base Address
>      0x000002200fffffff, // Max Base Address
>      0x0000021ff9000000, // Translate
>      0x000000000c000000 // Length
> )

For your case:
cpu_addr = 0x0000022004000000 + 0x0000021ff9000000:
pci_addr = 0x0000022004000000;

Regards,
Tomasz



More information about the linux-arm-kernel mailing list