mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-01 08:59:33 +00:00
armv8:fsl-layerscape: Add support for Chassis 3.2
NXP layerscape architecture Chassis 3.2 builds upon chassis3 architecture with changes like DDR Memory map change, removal of IFC and support of upto 8 I2C controller. Patch add README.lsch3_2 and the above changes under macro CONFIG_NXP_LSCH3_2. Signed-off-by: Sriram Dash <sriram.dash@nxp.com> Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com> Reviewed-by: York Sun <york.sun@nxp.com>
This commit is contained in:
parent
db1e3df7ce
commit
d6fdec211f
5 changed files with 68 additions and 5 deletions
|
@ -180,6 +180,9 @@ config FSL_LSCH2
|
||||||
config FSL_LSCH3
|
config FSL_LSCH3
|
||||||
bool
|
bool
|
||||||
|
|
||||||
|
config NXP_LSCH3_2
|
||||||
|
bool
|
||||||
|
|
||||||
config FSL_MC_ENET
|
config FSL_MC_ENET
|
||||||
bool "Management Complex network"
|
bool "Management Complex network"
|
||||||
depends on ARCH_LS2080A || ARCH_LS1088A
|
depends on ARCH_LS2080A || ARCH_LS1088A
|
||||||
|
|
|
@ -120,6 +120,13 @@ static struct mm_region early_map[] = {
|
||||||
PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | PTE_BLOCK_PXN | PTE_BLOCK_UXN |
|
PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | PTE_BLOCK_PXN | PTE_BLOCK_UXN |
|
||||||
PTE_BLOCK_OUTER_SHARE | PTE_BLOCK_NS
|
PTE_BLOCK_OUTER_SHARE | PTE_BLOCK_NS
|
||||||
},
|
},
|
||||||
|
#ifdef CONFIG_SYS_FSL_DRAM_BASE3
|
||||||
|
{ CONFIG_SYS_FSL_DRAM_BASE3, CONFIG_SYS_FSL_DRAM_BASE3,
|
||||||
|
CONFIG_SYS_FSL_DRAM_SIZE3,
|
||||||
|
PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | PTE_BLOCK_PXN | PTE_BLOCK_UXN |
|
||||||
|
PTE_BLOCK_OUTER_SHARE | PTE_BLOCK_NS
|
||||||
|
},
|
||||||
|
#endif
|
||||||
#elif defined(CONFIG_FSL_LSCH2)
|
#elif defined(CONFIG_FSL_LSCH2)
|
||||||
{ CONFIG_SYS_FSL_CCSR_BASE, CONFIG_SYS_FSL_CCSR_BASE,
|
{ CONFIG_SYS_FSL_CCSR_BASE, CONFIG_SYS_FSL_CCSR_BASE,
|
||||||
CONFIG_SYS_FSL_CCSR_SIZE,
|
CONFIG_SYS_FSL_CCSR_SIZE,
|
||||||
|
@ -266,6 +273,13 @@ static struct mm_region final_map[] = {
|
||||||
PTE_BLOCK_MEMTYPE(MT_NORMAL) |
|
PTE_BLOCK_MEMTYPE(MT_NORMAL) |
|
||||||
PTE_BLOCK_OUTER_SHARE | PTE_BLOCK_NS
|
PTE_BLOCK_OUTER_SHARE | PTE_BLOCK_NS
|
||||||
},
|
},
|
||||||
|
#ifdef CONFIG_SYS_FSL_DRAM_BASE3
|
||||||
|
{ CONFIG_SYS_FSL_DRAM_BASE3, CONFIG_SYS_FSL_DRAM_BASE3,
|
||||||
|
CONFIG_SYS_FSL_DRAM_SIZE3,
|
||||||
|
PTE_BLOCK_MEMTYPE(MT_NORMAL) |
|
||||||
|
PTE_BLOCK_OUTER_SHARE | PTE_BLOCK_NS
|
||||||
|
},
|
||||||
|
#endif
|
||||||
#elif defined(CONFIG_FSL_LSCH2)
|
#elif defined(CONFIG_FSL_LSCH2)
|
||||||
{ CONFIG_SYS_FSL_BOOTROM_BASE, CONFIG_SYS_FSL_BOOTROM_BASE,
|
{ CONFIG_SYS_FSL_BOOTROM_BASE, CONFIG_SYS_FSL_BOOTROM_BASE,
|
||||||
CONFIG_SYS_FSL_BOOTROM_SIZE,
|
CONFIG_SYS_FSL_BOOTROM_SIZE,
|
||||||
|
@ -595,13 +609,13 @@ enum boot_src __get_boot_src(u32 porsr1)
|
||||||
{
|
{
|
||||||
enum boot_src src = BOOT_SOURCE_RESERVED;
|
enum boot_src src = BOOT_SOURCE_RESERVED;
|
||||||
u32 rcw_src = (porsr1 & RCW_SRC_MASK) >> RCW_SRC_BIT;
|
u32 rcw_src = (porsr1 & RCW_SRC_MASK) >> RCW_SRC_BIT;
|
||||||
#if !defined(CONFIG_FSL_LSCH3_2)
|
#if !defined(CONFIG_NXP_LSCH3_2)
|
||||||
u32 val;
|
u32 val;
|
||||||
#endif
|
#endif
|
||||||
debug("%s: rcw_src 0x%x\n", __func__, rcw_src);
|
debug("%s: rcw_src 0x%x\n", __func__, rcw_src);
|
||||||
|
|
||||||
#if defined(CONFIG_FSL_LSCH3)
|
#if defined(CONFIG_FSL_LSCH3)
|
||||||
#if defined(CONFIG_FSL_LSCH3_2)
|
#if defined(CONFIG_NXP_LSCH3_2)
|
||||||
switch (rcw_src) {
|
switch (rcw_src) {
|
||||||
case RCW_SRC_SDHC1_VAL:
|
case RCW_SRC_SDHC1_VAL:
|
||||||
src = BOOT_SOURCE_SD_MMC;
|
src = BOOT_SOURCE_SD_MMC;
|
||||||
|
|
27
arch/arm/cpu/armv8/fsl-layerscape/doc/README.lsch3_2
Normal file
27
arch/arm/cpu/armv8/fsl-layerscape/doc/README.lsch3_2
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
#
|
||||||
|
# Copyright 2018 NXP
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-2.0+
|
||||||
|
#
|
||||||
|
|
||||||
|
NXP LayerScape with Chassis Generation 3.2
|
||||||
|
|
||||||
|
This architecture supports NXP ARMv8 SoCs with Chassis generation 3.2
|
||||||
|
for example LX2160A.
|
||||||
|
|
||||||
|
This architecture is enhancement over Chassis Generation 3 with
|
||||||
|
few differences mentioned below
|
||||||
|
|
||||||
|
1)DDR Layout
|
||||||
|
============
|
||||||
|
Entire DDR region splits into three regions.
|
||||||
|
- Region 1 is at address 0x8000_0000 to 0xffff_ffff.
|
||||||
|
- Region 2 is at address 0x20_8000_0000 to 0x3f_ffff_ffff,
|
||||||
|
- Region 3 is at address 0x60_0000_0000 to the top of memory,
|
||||||
|
for example 140GB, 0x63_7fff_ffff.
|
||||||
|
|
||||||
|
All DDR memory is marked as cache-enabled.
|
||||||
|
|
||||||
|
2)IFC is removed
|
||||||
|
|
||||||
|
3)Number of I2C controllers increased to 8
|
|
@ -1,6 +1,6 @@
|
||||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||||
/*
|
/*
|
||||||
* Copyright 2017 NXP
|
* Copyright 2017-2018 NXP
|
||||||
* Copyright 2014-2015, Freescale Semiconductor
|
* Copyright 2014-2015, Freescale Semiconductor
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -12,15 +12,19 @@
|
||||||
#define CONFIG_SYS_FSL_CCSR_SIZE 0x10000000
|
#define CONFIG_SYS_FSL_CCSR_SIZE 0x10000000
|
||||||
#define CONFIG_SYS_FSL_QSPI_BASE1 0x20000000
|
#define CONFIG_SYS_FSL_QSPI_BASE1 0x20000000
|
||||||
#define CONFIG_SYS_FSL_QSPI_SIZE1 0x10000000
|
#define CONFIG_SYS_FSL_QSPI_SIZE1 0x10000000
|
||||||
|
#ifndef CONFIG_NXP_LSCH3_2
|
||||||
#define CONFIG_SYS_FSL_IFC_BASE1 0x30000000
|
#define CONFIG_SYS_FSL_IFC_BASE1 0x30000000
|
||||||
#define CONFIG_SYS_FSL_IFC_SIZE1 0x10000000
|
#define CONFIG_SYS_FSL_IFC_SIZE1 0x10000000
|
||||||
#define CONFIG_SYS_FSL_IFC_SIZE1_1 0x400000
|
#define CONFIG_SYS_FSL_IFC_SIZE1_1 0x400000
|
||||||
|
#endif
|
||||||
#define CONFIG_SYS_FSL_DRAM_BASE1 0x80000000
|
#define CONFIG_SYS_FSL_DRAM_BASE1 0x80000000
|
||||||
#define CONFIG_SYS_FSL_DRAM_SIZE1 0x80000000
|
#define CONFIG_SYS_FSL_DRAM_SIZE1 0x80000000
|
||||||
#define CONFIG_SYS_FSL_QSPI_BASE2 0x400000000
|
#define CONFIG_SYS_FSL_QSPI_BASE2 0x400000000
|
||||||
#define CONFIG_SYS_FSL_QSPI_SIZE2 0x100000000
|
#define CONFIG_SYS_FSL_QSPI_SIZE2 0x100000000
|
||||||
|
#ifndef CONFIG_NXP_LSCH3_2
|
||||||
#define CONFIG_SYS_FSL_IFC_BASE2 0x500000000
|
#define CONFIG_SYS_FSL_IFC_BASE2 0x500000000
|
||||||
#define CONFIG_SYS_FSL_IFC_SIZE2 0x100000000
|
#define CONFIG_SYS_FSL_IFC_SIZE2 0x100000000
|
||||||
|
#endif
|
||||||
#define CONFIG_SYS_FSL_DCSR_BASE 0x700000000
|
#define CONFIG_SYS_FSL_DCSR_BASE 0x700000000
|
||||||
#define CONFIG_SYS_FSL_DCSR_SIZE 0x40000000
|
#define CONFIG_SYS_FSL_DCSR_SIZE 0x40000000
|
||||||
#define CONFIG_SYS_FSL_MC_BASE 0x80c000000
|
#define CONFIG_SYS_FSL_MC_BASE 0x80c000000
|
||||||
|
@ -40,8 +44,15 @@
|
||||||
#define CONFIG_SYS_FSL_AIOP1_SIZE 0x100000000
|
#define CONFIG_SYS_FSL_AIOP1_SIZE 0x100000000
|
||||||
#define CONFIG_SYS_FSL_PEBUF_BASE 0x4c00000000
|
#define CONFIG_SYS_FSL_PEBUF_BASE 0x4c00000000
|
||||||
#define CONFIG_SYS_FSL_PEBUF_SIZE 0x400000000
|
#define CONFIG_SYS_FSL_PEBUF_SIZE 0x400000000
|
||||||
|
#ifdef CONFIG_NXP_LSCH3_2
|
||||||
|
#define CONFIG_SYS_FSL_DRAM_BASE2 0x2080000000
|
||||||
|
#define CONFIG_SYS_FSL_DRAM_SIZE2 0x1F80000000
|
||||||
|
#define CONFIG_SYS_FSL_DRAM_BASE3 0x6000000000
|
||||||
|
#define CONFIG_SYS_FSL_DRAM_SIZE3 0x2000000000
|
||||||
|
#else
|
||||||
#define CONFIG_SYS_FSL_DRAM_BASE2 0x8080000000
|
#define CONFIG_SYS_FSL_DRAM_BASE2 0x8080000000
|
||||||
#define CONFIG_SYS_FSL_DRAM_SIZE2 0x7F80000000
|
#define CONFIG_SYS_FSL_DRAM_SIZE2 0x7F80000000
|
||||||
|
#endif
|
||||||
#elif defined(CONFIG_FSL_LSCH2)
|
#elif defined(CONFIG_FSL_LSCH2)
|
||||||
#define CONFIG_SYS_FSL_BOOTROM_BASE 0x0
|
#define CONFIG_SYS_FSL_BOOTROM_BASE 0x0
|
||||||
#define CONFIG_SYS_FSL_BOOTROM_SIZE 0x1000000
|
#define CONFIG_SYS_FSL_BOOTROM_SIZE 0x1000000
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
/*
|
/*
|
||||||
* LayerScape Internal Memory Map
|
* LayerScape Internal Memory Map
|
||||||
*
|
*
|
||||||
* Copyright (C) 2017 NXP Semiconductors
|
* Copyright 2017-2018 NXP
|
||||||
* Copyright 2014 Freescale Semiconductor, Inc.
|
* Copyright 2014 Freescale Semiconductor, Inc.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -21,7 +21,9 @@
|
||||||
#define CONFIG_SYS_FSL_CH3_CLK_CTRL_ADDR (CONFIG_SYS_IMMR + 0x00370000)
|
#define CONFIG_SYS_FSL_CH3_CLK_CTRL_ADDR (CONFIG_SYS_IMMR + 0x00370000)
|
||||||
#define SYS_FSL_QSPI_ADDR (CONFIG_SYS_IMMR + 0x010c0000)
|
#define SYS_FSL_QSPI_ADDR (CONFIG_SYS_IMMR + 0x010c0000)
|
||||||
#define CONFIG_SYS_FSL_ESDHC_ADDR (CONFIG_SYS_IMMR + 0x01140000)
|
#define CONFIG_SYS_FSL_ESDHC_ADDR (CONFIG_SYS_IMMR + 0x01140000)
|
||||||
|
#ifndef CONFIG_NXP_LSCH3_2
|
||||||
#define CONFIG_SYS_IFC_ADDR (CONFIG_SYS_IMMR + 0x01240000)
|
#define CONFIG_SYS_IFC_ADDR (CONFIG_SYS_IMMR + 0x01240000)
|
||||||
|
#endif
|
||||||
#define CONFIG_SYS_NS16550_COM1 (CONFIG_SYS_IMMR + 0x011C0500)
|
#define CONFIG_SYS_NS16550_COM1 (CONFIG_SYS_IMMR + 0x011C0500)
|
||||||
#define CONFIG_SYS_NS16550_COM2 (CONFIG_SYS_IMMR + 0x011C0600)
|
#define CONFIG_SYS_NS16550_COM2 (CONFIG_SYS_IMMR + 0x011C0600)
|
||||||
#define SYS_FSL_LS2080A_LS2085A_TIMER_ADDR 0x023d0000
|
#define SYS_FSL_LS2080A_LS2085A_TIMER_ADDR 0x023d0000
|
||||||
|
@ -45,6 +47,12 @@
|
||||||
#define I2C2_BASE_ADDR (CONFIG_SYS_IMMR + 0x01010000)
|
#define I2C2_BASE_ADDR (CONFIG_SYS_IMMR + 0x01010000)
|
||||||
#define I2C3_BASE_ADDR (CONFIG_SYS_IMMR + 0x01020000)
|
#define I2C3_BASE_ADDR (CONFIG_SYS_IMMR + 0x01020000)
|
||||||
#define I2C4_BASE_ADDR (CONFIG_SYS_IMMR + 0x01030000)
|
#define I2C4_BASE_ADDR (CONFIG_SYS_IMMR + 0x01030000)
|
||||||
|
#ifdef CONFIG_NXP_LSCH3_2
|
||||||
|
#define I2C5_BASE_ADDR (CONFIG_SYS_IMMR + 0x01040000)
|
||||||
|
#define I2C6_BASE_ADDR (CONFIG_SYS_IMMR + 0x01050000)
|
||||||
|
#define I2C7_BASE_ADDR (CONFIG_SYS_IMMR + 0x01060000)
|
||||||
|
#define I2C8_BASE_ADDR (CONFIG_SYS_IMMR + 0x01070000)
|
||||||
|
#endif
|
||||||
#define GPIO4_BASE_ADDR (CONFIG_SYS_IMMR + 0x01330000)
|
#define GPIO4_BASE_ADDR (CONFIG_SYS_IMMR + 0x01330000)
|
||||||
#define GPIO4_GPDIR_ADDR (GPIO4_BASE_ADDR + 0x0)
|
#define GPIO4_GPDIR_ADDR (GPIO4_BASE_ADDR + 0x0)
|
||||||
#define GPIO4_GPDAT_ADDR (GPIO4_BASE_ADDR + 0x8)
|
#define GPIO4_GPDAT_ADDR (GPIO4_BASE_ADDR + 0x8)
|
||||||
|
@ -83,7 +91,7 @@
|
||||||
(CONFIG_SYS_IMMR + CONFIG_SYS_FSL_JR0_OFFSET)
|
(CONFIG_SYS_IMMR + CONFIG_SYS_FSL_JR0_OFFSET)
|
||||||
|
|
||||||
#ifdef CONFIG_TFABOOT
|
#ifdef CONFIG_TFABOOT
|
||||||
#ifdef CONFIG_FSL_LSCH3_2
|
#ifdef CONFIG_NXP_LSCH3_2
|
||||||
/* RCW_SRC field in Power-On Reset Control Register 1 */
|
/* RCW_SRC field in Power-On Reset Control Register 1 */
|
||||||
#define RCW_SRC_MASK 0x07800000
|
#define RCW_SRC_MASK 0x07800000
|
||||||
#define RCW_SRC_BIT 23
|
#define RCW_SRC_BIT 23
|
||||||
|
|
Loading…
Reference in a new issue