[U-Boot] PCIE_MEM_BUS for Freescale SoC

York Sun yorksun at freescale.com
Sat Nov 21 23:55:32 CET 2015


Roy,

Do you remember the reason why we use different virtual memory address from pci
bus address with 36-bit? For example

include/configs/P1022DS.h-496-#define CONFIG_SYS_PCIE1_MEM_VIRT 0xc0000000
include/configs/P1022DS.h-497-#ifdef CONFIG_PHYS_64BIT
include/configs/P1022DS.h:498:#define CONFIG_SYS_PCIE1_MEM_BUS  0xe0000000
include/configs/P1022DS.h-499-#define CONFIG_SYS_PCIE1_MEM_PHYS 0xc40000000ull
include/configs/P1022DS.h-500-#else
include/configs/P1022DS.h:501:#define CONFIG_SYS_PCIE1_MEM_BUS  0xc0000000
include/configs/P1022DS.h-502-#define CONFIG_SYS_PCIE1_MEM_PHYS 0xc0000000
include/configs/P1022DS.h-503-#endif

As far as I can tell, the following is the mapping

TLB: MEM_VIRT=>MEM_PHYS
PCI: MEM_BUS=>MEM_PHYS
LAW: MEM_PHYS=>pcie interface

Being different for MEM_VIRT and MEM_BUS cause confusion. When I run "pci
header" command to show the BARs, I expect I can use "md" to access the BAR
address. That's not the case if MEM_BUS is different from MEM_VIRT.

I forget why we did this for 36-bit addressing. The MEM_VIRT is the same as
MEM_BUS for 32-bit addressing. And why do we use the same MEM_BUS address for
all PCIe hose? I know they are not conflicting, but is it necessary?

Let me know if you have any concerns. Otherwise I will change all platforms to
use consistent addresses.

York


More information about the U-Boot mailing list