armv8: fsl-layerscape: Add NXP LS2088A SoC support

The QorIQ LS2088A SoC is built on layerscape architecture.

It is similar to LS2080A SoC with some differences like
1)Timer controller offset is different
2)It has A72 cores
3)It supports TZASC module

Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>
Reviewed-by: York Sun <york.sun@nxp.com>
This commit is contained in:
Priyanka Jain 2016-11-17 12:29:55 +05:30 committed by York Sun
parent d5df606d17
commit 9ae836cde7
10 changed files with 84 additions and 15 deletions

View File

@ -4,6 +4,7 @@ SoC overview
2. LS2080A 2. LS2080A
3. LS1012A 3. LS1012A
4. LS1046A 4. LS1046A
5. LS2088A
LS1043A LS1043A
--------- ---------
@ -169,3 +170,60 @@ The LS1046A SoC includes the following function and features:
- Two DUARTs - Two DUARTs
- Integrated flash controller (IFC) supporting NAND and NOR flash - Integrated flash controller (IFC) supporting NAND and NOR flash
- QorIQ platform's trust architecture 2.1 - QorIQ platform's trust architecture 2.1
LS2088A
--------
The LS2088A integrated multicore processor combines eight ARM Cortex-A72
processor cores with high-performance data path acceleration logic and network
and peripheral bus interfaces required for networking, telecom/datacom,
wireless infrastructure, and mil/aerospace applications.
The LS2088A SoC includes the following function and features:
- Eight 64-bit ARM Cortex-A72 CPUs
- 1 MB platform cache with ECC
- Two 64-bit DDR4 SDRAM memory controllers with ECC and interleaving support
- One secondary 32-bit DDR4 SDRAM memory controller, intended for use by
the AIOP
- Data path acceleration architecture (DPAA2) incorporating acceleration for
the following functions:
- Packet parsing, classification, and distribution (WRIOP)
- Queue and Hardware buffer management for scheduling, packet sequencing, and
congestion management, buffer allocation and de-allocation (QBMan)
- Cryptography acceleration (SEC) at up to 10 Gbps
- RegEx pattern matching acceleration (PME) at up to 10 Gbps
- Decompression/compression acceleration (DCE) at up to 20 Gbps
- Accelerated I/O processing (AIOP) at up to 20 Gbps
- QDMA engine
- 16 SerDes lanes at up to 10.3125 GHz
- Ethernet interfaces
- Up to eight 10 Gbps Ethernet MACs
- Up to eight 1 / 2.5 Gbps Ethernet MACs
- High-speed peripheral interfaces
- Four PCIe 3.0 controllers, one supporting SR-IOV
- Additional peripheral interfaces
- Two serial ATA (SATA 3.0) controllers
- Two high-speed USB 3.0 controllers with integrated PHY
- Enhanced secure digital host controller (eSDXC/eMMC)
- Serial peripheral interface (SPI) controller
- Quad Serial Peripheral Interface (QSPI) Controller
- Four I2C controllers
- Two DUARTs
- Integrated flash controller (IFC 2.0) supporting NAND and NOR flash
- Support for hardware virtualization and partitioning enforcement
- QorIQ platform's trust architecture 3.0
- Service processor (SP) provides pre-boot initialization and secure-boot
capabilities
LS2088A SoC has 3 more similar SoC personalities
1)LS2048A, few difference w.r.t. LS2088A:
a) Four 64-bit ARM v8 Cortex-A72 CPUs
2)LS2084A, few difference w.r.t. LS2088A:
a) No AIOP
b) No 32-bit DDR3 SDRAM memory
c) 5 * 1/10G + 5 *1G WRIOP
d) No L2 switch
3)LS2044A, few difference w.r.t. LS2084A:
a) Four 64-bit ARM v8 Cortex-A72 CPUs

View File

@ -31,8 +31,10 @@ bool soc_has_dp_ddr(void)
struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR); struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR);
u32 svr = gur_in32(&gur->svr); u32 svr = gur_in32(&gur->svr);
/* LS2085A has DP_DDR */ /* LS2085A, LS2088A, LS2048A has DP_DDR */
if (SVR_SOC_VER(svr) == SVR_LS2085A) if ((SVR_SOC_VER(svr) == SVR_LS2085A) ||
(SVR_SOC_VER(svr) == SVR_LS2088A) ||
(SVR_SOC_VER(svr) == SVR_LS2048A))
return true; return true;
return false; return false;

View File

@ -25,6 +25,7 @@
#ifndef L1_CACHE_BYTES #ifndef L1_CACHE_BYTES
#define L1_CACHE_SHIFT 6 #define L1_CACHE_SHIFT 6
#define L1_CACHE_BYTES BIT(L1_CACHE_SHIFT) #define L1_CACHE_BYTES BIT(L1_CACHE_SHIFT)
#define CONFIG_FSL_TZASC_400
#endif #endif
#define CONFIG_SYS_FSL_OCRAM_BASE 0x18000000 /* initial RAM */ #define CONFIG_SYS_FSL_OCRAM_BASE 0x18000000 /* initial RAM */

View File

@ -11,6 +11,10 @@ static struct cpu_type cpu_type_list[] = {
CPU_TYPE_ENTRY(LS2080A, LS2080A, 8), CPU_TYPE_ENTRY(LS2080A, LS2080A, 8),
CPU_TYPE_ENTRY(LS2085A, LS2085A, 8), CPU_TYPE_ENTRY(LS2085A, LS2085A, 8),
CPU_TYPE_ENTRY(LS2045A, LS2045A, 4), CPU_TYPE_ENTRY(LS2045A, LS2045A, 4),
CPU_TYPE_ENTRY(LS2088A, LS2088A, 8),
CPU_TYPE_ENTRY(LS2084A, LS2084A, 8),
CPU_TYPE_ENTRY(LS2048A, LS2048A, 4),
CPU_TYPE_ENTRY(LS2044A, LS2044A, 4),
CPU_TYPE_ENTRY(LS1043A, LS1043A, 4), CPU_TYPE_ENTRY(LS1043A, LS1043A, 4),
CPU_TYPE_ENTRY(LS1023A, LS1023A, 2), CPU_TYPE_ENTRY(LS1023A, LS1023A, 2),
CPU_TYPE_ENTRY(LS1046A, LS1046A, 4), CPU_TYPE_ENTRY(LS1046A, LS1046A, 4),

View File

@ -50,6 +50,10 @@ struct cpu_type {
#define SVR_LS2080A 0x870110 #define SVR_LS2080A 0x870110
#define SVR_LS2085A 0x870100 #define SVR_LS2085A 0x870100
#define SVR_LS2040A 0x870130 #define SVR_LS2040A 0x870130
#define SVR_LS2088A 0x870900
#define SVR_LS2084A 0x870910
#define SVR_LS2048A 0x870920
#define SVR_LS2044A 0x870930
#define SVR_DEV_LS2080A 0x8701 #define SVR_DEV_LS2080A 0x8701

View File

@ -1,5 +1,5 @@
LS2080A BOARD LS2080A BOARD
M: York Sun <york.sun@nxp.com> M: York Sun <york.sun@nxp.com>, Priyanka Jain <priyanka.jain@nxp.com>
S: Maintained S: Maintained
F: board/freescale/ls2080a/ F: board/freescale/ls2080a/
F: include/configs/ls2080a_emu.h F: include/configs/ls2080a_emu.h

View File

@ -1,5 +1,5 @@
LS2080A BOARD LS2080A BOARD
M: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com> M: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>, Priyanka Jain <priyanka.jain@nxp.com>
S: Maintained S: Maintained
F: board/freescale/ls2080aqds/ F: board/freescale/ls2080aqds/
F: board/freescale/ls2080a/ls2080aqds.c F: board/freescale/ls2080a/ls2080aqds.c

View File

@ -2,14 +2,14 @@ Overview
-------- --------
The LS2080A Development System (QDS) is a high-performance computing, The LS2080A Development System (QDS) is a high-performance computing,
evaluation, and development platform that supports the QorIQ LS2080A evaluation, and development platform that supports the QorIQ LS2080A
Layerscape Architecture processor. The LS2080AQDS provides validation and and LS2088A Layerscape Architecture processor. The LS2080AQDS provides
SW development platform for the Freescale LS2080A processor series, with validation and SW development platform for the Freescale LS2080A, LS2088A
a complete debugging environment. processor series, with a complete debugging environment.
LS2080A SoC Overview LS2080A, LS2088A SoC Overview
-------------------- --------------------
Please refer arch/arm/cpu/armv8/fsl-layerscape/doc/README.soc for LS2080A Please refer arch/arm/cpu/armv8/fsl-layerscape/doc/README.soc for LS2080A,
SoC overview. LS2088A SoC overview.
LS2080AQDS board Overview LS2080AQDS board Overview
----------------------- -----------------------

View File

@ -1,5 +1,5 @@
LS2080A BOARD LS2080A BOARD
M: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com> M: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>, Priyanka Jain <priyanka.jain@nxp.com>
S: Maintained S: Maintained
F: board/freescale/ls2080ardb/ F: board/freescale/ls2080ardb/
F: board/freescale/ls2080a/ls2080ardb.c F: board/freescale/ls2080a/ls2080ardb.c

View File

@ -1,13 +1,13 @@
Overview Overview
-------- --------
The LS2080A Reference Design (RDB) is a high-performance computing, The LS2080A Reference Design (RDB) is a high-performance computing,
evaluation, and development platform that supports the QorIQ LS2080A evaluation, and development platform that supports the QorIQ LS2080A, LS2088A
Layerscape Architecture processor. Layerscape Architecture processor.
LS2080A SoC Overview LS2080A, LS2088A SoC Overview
-------------------- --------------------
Please refer arch/arm/cpu/armv8/fsl-layerscape/doc/README.soc for LS2080A Please refer arch/arm/cpu/armv8/fsl-layerscape/doc/README.soc for LS2080A,
SoC overview. LS2088A SoC overview.
LS2080ARDB board Overview LS2080ARDB board Overview
----------------------- -----------------------