[U-Boot] [RESEND PATCHv4 2/9] armv8: lx2160a: add MMU table entries for PCIe
Bin Meng
bmeng.cn at gmail.com
Mon Apr 1 03:22:04 UTC 2019
On Mon, Mar 25, 2019 at 10:24 AM Z.q. Hou <zhiqiang.hou at nxp.com> wrote:
>
> From: Hou Zhiqiang <Zhiqiang.Hou at nxp.com>
>
> The lx2160a have up to 6 PCIe controllers and have different
> address and size of PCIe region.
>
> Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou at nxp.com>
> ---
> V4:
> - No change
>
> arch/arm/cpu/armv8/fsl-layerscape/cpu.c | 12 ++++++++++++
> arch/arm/include/asm/arch-fsl-layerscape/cpu.h | 2 ++
> .../include/asm/arch-fsl-layerscape/immap_lsch3.h | 14 +++++++++++++-
> 3 files changed, 27 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> index 978d46b32f..2805e5f6f2 100644
> --- a/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> +++ b/arch/arm/cpu/armv8/fsl-layerscape/cpu.c
> @@ -257,6 +257,18 @@ static struct mm_region final_map[] = {
> PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
> PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
> },
> +#endif
> +#ifdef CONFIG_ARCH_LX2160A
> + { SYS_PCIE5_PHYS_ADDR, SYS_PCIE5_PHYS_ADDR,
> + SYS_PCIE5_PHYS_SIZE,
> + PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
> + PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
> + },
> + { SYS_PCIE6_PHYS_ADDR, SYS_PCIE6_PHYS_ADDR,
> + SYS_PCIE6_PHYS_SIZE,
> + PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
> + PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
> + },
> #endif
> { CONFIG_SYS_FSL_WRIOP1_BASE, CONFIG_SYS_FSL_WRIOP1_BASE,
> CONFIG_SYS_FSL_WRIOP1_SIZE,
> diff --git a/arch/arm/include/asm/arch-fsl-layerscape/cpu.h b/arch/arm/include/asm/arch-fsl-layerscape/cpu.h
> index 89124cdb0e..bdeb62576c 100644
> --- a/arch/arm/include/asm/arch-fsl-layerscape/cpu.h
> +++ b/arch/arm/include/asm/arch-fsl-layerscape/cpu.h
> @@ -44,6 +44,8 @@
> #define CONFIG_SYS_PCIE2_PHYS_SIZE 0x800000000
> #define CONFIG_SYS_PCIE3_PHYS_SIZE 0x800000000
> #define CONFIG_SYS_PCIE4_PHYS_SIZE 0x800000000
> +#define SYS_PCIE5_PHYS_SIZE 0x800000000
> +#define SYS_PCIE6_PHYS_SIZE 0x800000000
Why are these macros not CONFIG_ prefixed?
> #endif
> #define CONFIG_SYS_FSL_WRIOP1_BASE 0x4300000000
> #define CONFIG_SYS_FSL_WRIOP1_SIZE 0x100000000
> diff --git a/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h b/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h
> index 9fab88ab2f..c9aa0cad71 100644
> --- a/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h
> +++ b/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h
> @@ -167,7 +167,19 @@
> #define CONFIG_SYS_PCIE2_ADDR (CONFIG_SYS_IMMR + 0x2500000)
> #define CONFIG_SYS_PCIE3_ADDR (CONFIG_SYS_IMMR + 0x2600000)
> #define CONFIG_SYS_PCIE4_ADDR (CONFIG_SYS_IMMR + 0x2700000)
> -#ifdef CONFIG_ARCH_LS1088A
> +#ifdef CONFIG_ARCH_LX2160A
> +#define SYS_PCIE5_ADDR (CONFIG_SYS_IMMR + 0x2800000)
> +#define SYS_PCIE6_ADDR (CONFIG_SYS_IMMR + 0x2900000)
ditto.
> +#endif
> +
> +#ifdef CONFIG_ARCH_LX2160A
> +#define CONFIG_SYS_PCIE1_PHYS_ADDR 0x8000000000ULL
> +#define CONFIG_SYS_PCIE2_PHYS_ADDR 0x8800000000ULL
> +#define CONFIG_SYS_PCIE3_PHYS_ADDR 0x9000000000ULL
> +#define CONFIG_SYS_PCIE4_PHYS_ADDR 0x9800000000ULL
> +#define SYS_PCIE5_PHYS_ADDR 0xa000000000ULL
> +#define SYS_PCIE6_PHYS_ADDR 0xa800000000ULL
> +#elif CONFIG_ARCH_LS1088A
> #define CONFIG_SYS_PCIE1_PHYS_ADDR 0x2000000000ULL
> #define CONFIG_SYS_PCIE2_PHYS_ADDR 0x2800000000ULL
> #define CONFIG_SYS_PCIE3_PHYS_ADDR 0x3000000000ULL
> --
Regards,
Bin
More information about the U-Boot
mailing list