_CBA Method is not returning 64 bit


Pankaj Bansal
 

Hi Ard et. al,

I am trying to pass the base address of PCI Config space using _CBA method in PCI ACPI table.
as per https://elixir.bootlin.com/linux/latest/source/Documentation/PCI/acpi-info.rst#L181 this method is capable of returning 64-bit address.

what I am seeing is that https://github.com/acpica/acpica itself truncates the 64 bit number to 32 bit for this method.

e.g.:

in source Dsdt.asl :

Method (_CBA, 0, NotSerialized) {
Return (0x123456789abcdef0);
}

after compilation
iasl -d Dsdt.aml

in decompiled Dsdt.dsl

Method (_CBA, 0, NotSerialized) // _CBA: Configuration Base Address
{
Return (0x9ABCDEF0)
}

Is the method that I am using to return 64 bit address is incorrect ?
why this strange behavior ?

Regards,
Pankaj Bansal