[PATCH] arm64: dts: marvell: armada-37xx: Remap IO space to bus address 0x0

Gregory CLEMENT gregory.clement at bootlin.com
Mon Feb 28 08:42:03 PST 2022



> Hello Pali,
>
>> Remap PCI I/O space to the bus address 0x0 in the Armada 37xx
>> device-tree in order to support legacy I/O port based cards which have
>> hardcoded I/O ports in low address space.
>>
>> Some legacy PCI I/O based cards do not support 32-bit I/O addressing.
>>
>> Since commit 64f160e19e92 ("PCI: aardvark: Configure PCIe resources from
>> 'ranges' DT property") this driver can work with I/O windows which
>> have
>
> Should we add a "Fixes: 64f160e19e92 ("PCI: aardvark: Configure PCIe
> resources from 'ranges' DT property")" tag ?

Waiting for your confirmation I tried to applied it but it failed.

Did you base this patch on v5.17-rc1 ?

Gregory

>
> Gregory
>
>> a different address for CPU than for PCI bus (unless there is some
>> conflict with other A37xx mapping), without needing additional support
>> for this in the firmware.
>>
>> Note that DDR on A37xx is mapped to bus address 0x0 and that mapping of
>> I/O space can be set to address 0x0 too because MEM space and I/O space
>> are separate and so they do not conflict.
>>
>> Signed-off-by: Pali Rohár <pali at kernel.org>
>> Reported-by: Arnd Bergmann <arnd at arndb.de>
>> ---
>>  arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts | 2 +-
>>  arch/arm64/boot/dts/marvell/armada-37xx.dtsi           | 2 +-
>>  2 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
>> index 6581092c2c90..7d1b9153a901 100644
>> --- a/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
>> +++ b/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
>> @@ -163,7 +163,7 @@
>>  	 */
>>  	#address-cells = <3>;
>>  	#size-cells = <2>;
>> -	ranges = <0x81000000 0 0xe8000000   0 0xe8000000   0 0x01000000   /* Port 0 IO */
>> +	ranges = <0x81000000 0 0x00000000   0 0xe8000000   0 0x01000000   /* Port 0 IO */
>>  		  0x82000000 0 0xe9000000   0 0xe9000000   0 0x07000000>; /* Port 0 MEM */
>>  
>>  	/* enabled by U-Boot if PCIe module is present */
>> diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
>> index 549c3f7c5b27..a099b7787429 100644
>> --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
>> +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
>> @@ -515,7 +515,7 @@
>>  			 * (totaling 127 MiB) for MEM.
>>  			 */
>>  			ranges = <0x82000000 0 0xe8000000   0 0xe8000000   0 0x07f00000   /* Port 0 MEM */
>> -				  0x81000000 0 0xeff00000   0 0xeff00000   0 0x00100000>; /* Port 0 IO*/
>> +				  0x81000000 0 0x00000000   0 0xeff00000   0 0x00100000>; /* Port 0 IO */
>>  			interrupt-map-mask = <0 0 0 7>;
>>  			interrupt-map = <0 0 0 1 &pcie_intc 0>,
>>  					<0 0 0 2 &pcie_intc 1>,
>> -- 
>> 2.20.1
>>
>
> -- 
> Gregory Clement, Bootlin
> Embedded Linux and Kernel engineering
> http://bootlin.com
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

-- 
Gregory Clement, Bootlin
Embedded Linux and Kernel engineering
http://bootlin.com



More information about the linux-arm-kernel mailing list