pci: mpc85xx: Support controller register physical address beyond 32-bit

devfdt_get_addr_index() returns fdt_addr_t which might be a 64-bit
physical address. Use map_physmem() to return the virtual address
that can be used by a 32-bit machine.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
This commit is contained in:
Bin Meng 2021-02-25 17:22:41 +08:00 committed by Priyanka Jain
parent 5a40f5c09d
commit 03ff970a1b

View File

@ -134,9 +134,8 @@ static int mpc85xx_pci_of_to_plat(struct udevice *dev)
addr = devfdt_get_addr_index(dev, 0);
if (addr == FDT_ADDR_T_NONE)
return -EINVAL;
priv->cfg_addr = (void __iomem *)addr;
addr += 4;
priv->cfg_data = (void __iomem *)addr;
priv->cfg_addr = (void __iomem *)map_physmem(addr, 0, MAP_NOCACHE);
priv->cfg_data = (void __iomem *)((ulong)priv->cfg_addr + 4);
return 0;
}