lkml.org 
[lkml]   [2022]   [Feb]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] arm64: dts: marvell: armada-37xx: Remap IO space to bus address 0x0
    Date
    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
    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@kernel.org>
    Reported-by: Arnd Bergmann <arnd@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
    \
     
     \ /
      Last update: 2022-02-18 22:27    [W:4.363 / U:0.324 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site