summaryrefslogtreecommitdiffstats
path: root/drivers/pci/pci-aardvark.c
diff options
context:
space:
mode:
authorPali Rohár <pali@kernel.org>2021-05-26 17:59:38 +0200
committerStefan Roese <sr@denx.de>2021-06-04 11:32:41 +0200
commit4a82fca8e330157081fc132a591ebd99ba02ee33 (patch)
tree2031cb71fb2253651b5ef8132932c48a19709c94 /drivers/pci/pci-aardvark.c
parent46b679e3ec344c4cf9e1c18409bcfe822ca7ff01 (diff)
downloadu-boot-4a82fca8e330157081fc132a591ebd99ba02ee33.tar.gz
u-boot-4a82fca8e330157081fc132a591ebd99ba02ee33.tar.xz
u-boot-4a82fca8e330157081fc132a591ebd99ba02ee33.zip
arm: a37xx: pci: Fix a3700_fdt_fix_pcie_regions() function
Current version of this function uses a lot of incorrect assumptions about the `ranges` DT property: * parent(#address-cells) == 2 * #size-cells == 2 * number of entries == 2 * address size of first entry == 0x1000000 * second child address entry == base + 0x1000000 Trying to increase PCIe MEM space to more than 16 MiB leads to an overlap with PCIe IO space, and trying to define additional MEM space (as a third entry in the `ranges` DT property) causes U-Boot to crash when booting the kernel. ## Flattened Device Tree blob at 04f00000 Booting using the fdt blob at 0x4f00000 Loading Device Tree to 000000001fb01000, end 000000001fb08f12 ... OK ERROR: board-specific fdt fixup failed: <unknown error> - must RESET the board to recover. Fix a3700_fdt_fix_pcie_regions() to properly parse and update all addresses in the `ranges` property according to https://elinux.org/Device_Tree_Usage#PCI_Address_Translation Now it is possible to increase PCIe MEM space from 16 MiB to maximal value of 127 MiB. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Marek Behún <marek.behun@nic.cz> Fixes: cb2ddb291ee6 ("arm64: mvebu: a37xx: add device-tree fixer for PCIe regions") Reviewed-by: Stefan Roese <sr@denx.de>
Diffstat (limited to 'drivers/pci/pci-aardvark.c')
0 files changed, 0 insertions, 0 deletions