2018-05-06 21:58:06 +00:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
2015-03-21 02:28:12 +00:00
|
|
|
/*
|
2021-01-13 11:01:23 +00:00
|
|
|
* Copyright 2017-2021 NXP
|
2015-03-21 02:28:12 +00:00
|
|
|
* Copyright 2015 Freescale Semiconductor
|
|
|
|
*/
|
|
|
|
|
2015-10-26 11:47:50 +00:00
|
|
|
#ifndef _ASM_ARMV8_FSL_LAYERSCAPE_SOC_H_
|
|
|
|
#define _ASM_ARMV8_FSL_LAYERSCAPE_SOC_H_
|
|
|
|
|
2017-05-17 14:23:10 +00:00
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
#include <linux/types.h>
|
|
|
|
#ifdef CONFIG_FSL_LSCH2
|
|
|
|
#include <asm/arch/immap_lsch2.h>
|
|
|
|
#endif
|
|
|
|
#ifdef CONFIG_FSL_LSCH3
|
|
|
|
#include <asm/arch/immap_lsch3.h>
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
2015-10-26 11:47:50 +00:00
|
|
|
#ifdef CONFIG_SYS_FSL_CCSR_GUR_LE
|
|
|
|
#define gur_in32(a) in_le32(a)
|
|
|
|
#define gur_out32(a, v) out_le32(a, v)
|
|
|
|
#elif defined(CONFIG_SYS_FSL_CCSR_GUR_BE)
|
|
|
|
#define gur_in32(a) in_be32(a)
|
|
|
|
#define gur_out32(a, v) out_be32(a, v)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_SYS_FSL_CCSR_SCFG_LE
|
|
|
|
#define scfg_in32(a) in_le32(a)
|
|
|
|
#define scfg_out32(a, v) out_le32(a, v)
|
2017-09-04 10:46:47 +00:00
|
|
|
#define scfg_clrbits32(addr, clear) clrbits_le32(addr, clear)
|
|
|
|
#define scfg_clrsetbits32(addr, clear, set) clrsetbits_le32(addr, clear, set)
|
2015-10-26 11:47:50 +00:00
|
|
|
#elif defined(CONFIG_SYS_FSL_CCSR_SCFG_BE)
|
|
|
|
#define scfg_in32(a) in_be32(a)
|
|
|
|
#define scfg_out32(a, v) out_be32(a, v)
|
2017-09-04 10:46:47 +00:00
|
|
|
#define scfg_clrbits32(addr, clear) clrbits_be32(addr, clear)
|
|
|
|
#define scfg_clrsetbits32(addr, clear, set) clrsetbits_be32(addr, clear, set)
|
2015-10-26 11:47:50 +00:00
|
|
|
#endif
|
|
|
|
|
2015-11-11 09:58:34 +00:00
|
|
|
#ifdef CONFIG_SYS_FSL_PEX_LUT_LE
|
|
|
|
#define pex_lut_in32(a) in_le32(a)
|
|
|
|
#define pex_lut_out32(a, v) out_le32(a, v)
|
|
|
|
#elif defined(CONFIG_SYS_FSL_PEX_LUT_BE)
|
|
|
|
#define pex_lut_in32(a) in_be32(a)
|
|
|
|
#define pex_lut_out32(a, v) out_be32(a, v)
|
|
|
|
#endif
|
2016-11-17 06:59:52 +00:00
|
|
|
#ifndef __ASSEMBLY__
|
2015-05-28 09:24:06 +00:00
|
|
|
struct cpu_type {
|
|
|
|
char name[15];
|
|
|
|
u32 soc_ver;
|
|
|
|
u32 num_cores;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define CPU_TYPE_ENTRY(n, v, nc) \
|
|
|
|
{ .name = #n, .soc_ver = SVR_##v, .num_cores = (nc)}
|
2018-11-05 18:01:42 +00:00
|
|
|
|
|
|
|
#ifdef CONFIG_TFABOOT
|
2018-11-05 18:01:58 +00:00
|
|
|
#define SMC_DRAM_BANK_INFO (0xC200FF12)
|
2018-11-05 18:02:09 +00:00
|
|
|
#define SIP_SVC_RCW 0xC200FF18
|
2018-11-05 18:01:58 +00:00
|
|
|
|
|
|
|
phys_size_t tfa_get_dram_size(void);
|
|
|
|
|
2018-11-05 18:01:42 +00:00
|
|
|
enum boot_src {
|
|
|
|
BOOT_SOURCE_RESERVED = 0,
|
|
|
|
BOOT_SOURCE_IFC_NOR,
|
|
|
|
BOOT_SOURCE_IFC_NAND,
|
|
|
|
BOOT_SOURCE_QSPI_NOR,
|
|
|
|
BOOT_SOURCE_QSPI_NAND,
|
|
|
|
BOOT_SOURCE_XSPI_NOR,
|
|
|
|
BOOT_SOURCE_XSPI_NAND,
|
|
|
|
BOOT_SOURCE_SD_MMC,
|
|
|
|
BOOT_SOURCE_SD_MMC2,
|
|
|
|
BOOT_SOURCE_I2C1_EXTENDED,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum boot_src get_boot_src(void);
|
|
|
|
#endif
|
2016-11-17 06:59:52 +00:00
|
|
|
#endif
|
2015-05-28 09:24:06 +00:00
|
|
|
#define SVR_WO_E 0xFFFFFE
|
2016-06-24 08:18:13 +00:00
|
|
|
#define SVR_LS1012A 0x870400
|
|
|
|
#define SVR_LS1043A 0x879200
|
|
|
|
#define SVR_LS1023A 0x879208
|
2018-12-20 06:31:17 +00:00
|
|
|
/* LS1043A/LS1023A 23x23 package silicon has different value of VAR_PER */
|
|
|
|
#define SVR_LS1043A_P23 0x879202
|
|
|
|
#define SVR_LS1023A_P23 0x87920A
|
2019-09-18 08:50:52 +00:00
|
|
|
#define SVR_LS1017A 0x870B24
|
|
|
|
#define SVR_LS1018A 0x870B20
|
|
|
|
#define SVR_LS1027A 0x870B04
|
armv8: ls1028a: Add NXP LS1028A SoC support
Ls1028a SoC is based on Layerscape Chassis Generation 3.2
architecture with features:
2 ARM v8 Cortex-A72 cores, CCI400, SEC, DDR3L/4, LCD, GPU, TSN
ENETC, 2 USB 3.0, 2 eSDHC, 2 FlexCAN, 2 SPI, SATA, 8 I2C controllers,
6 LPUARTs, GPIO, SAI, qDMA, eDMA, GIC, TMU etc.
Signed-off-by: Sudhanshu Gupta <sudhanshu.gupta@nxp.com>
Signed-off-by: Rai Harninder <harninder.rai@nxp.com>
Signed-off-by: Rajesh Bhagat <rajesh.bhagat@nxp.com>
Signed-off-by: Bhaskar Upadhaya <Bhaskar.Upadhaya@nxp.com>
Signed-off-by: Tang Yuantian <andy.tang@nxp.com>
Reviewed-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
2019-04-10 08:43:33 +00:00
|
|
|
#define SVR_LS1028A 0x870B00
|
2016-07-05 08:01:55 +00:00
|
|
|
#define SVR_LS1046A 0x870700
|
|
|
|
#define SVR_LS1026A 0x870708
|
armv8: ls1088a: Add NXP LS1088A SoC support
LS1088A is compliant with the Layerscape Chassis Generation 3 with
eight ARM v8 Cortex-A53 cores in 2 cluster, CCI-400, one 64-bit DDR4
SDRAM memory controller with ECC, Data path acceleration architecture
2.0 (DPAA2), Ethernet interfaces (SGMIIs, RGMIIs, QSGMIIs, XFIs),
QSPI, IFC, PCIe, SATA, USB, SDXC, DUARTs etc.
Signed-off-by: Alison Wang <alison.wang@nxp.com>
Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Signed-off-by: Ashish Kumar <Ashish.Kumar@nxp.com>
Signed-off-by: Raghav Dogra <raghav.dogra@nxp.com>
Signed-off-by: Shaohui Xie <Shaohui.Xie@nxp.com>
[YS: Revised commit message]
Reviewed-by: York Sun <york.sun@nxp.com>
2017-08-31 10:42:53 +00:00
|
|
|
#define SVR_LS1048A 0x870320
|
|
|
|
#define SVR_LS1084A 0x870302
|
|
|
|
#define SVR_LS1088A 0x870300
|
|
|
|
#define SVR_LS1044A 0x870322
|
2016-06-24 08:18:13 +00:00
|
|
|
#define SVR_LS2045A 0x870120
|
|
|
|
#define SVR_LS2080A 0x870110
|
|
|
|
#define SVR_LS2085A 0x870100
|
|
|
|
#define SVR_LS2040A 0x870130
|
2016-11-17 06:59:55 +00:00
|
|
|
#define SVR_LS2088A 0x870900
|
|
|
|
#define SVR_LS2084A 0x870910
|
|
|
|
#define SVR_LS2048A 0x870920
|
|
|
|
#define SVR_LS2044A 0x870930
|
2017-06-09 06:18:08 +00:00
|
|
|
#define SVR_LS2081A 0x870918
|
|
|
|
#define SVR_LS2041A 0x870914
|
2019-10-15 08:54:11 +00:00
|
|
|
#define SVR_LX2160A 0x873600
|
|
|
|
#define SVR_LX2120A 0x873620
|
|
|
|
#define SVR_LX2080A 0x873602
|
armv8: lx2162a: Add Soc changes to support LX2162A
LX2162 is LX2160 based SoC, it has same die as of LX2160
with different packaging.
LX2162A support 64-bit 2.9GT/s DDR4 memory, i2c, micro-click module,
microSD card, eMMC support, serial console, qspi nor flash, qsgmii,
sgmii, 25g, 40g, 50g network interface, one usb 3.0 and serdes
interface to support three PCIe gen3 interface.
Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
[Fixed whitespace errors]
Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>
2020-10-29 13:46:16 +00:00
|
|
|
#define SVR_LX2162A 0x873608
|
|
|
|
#define SVR_LX2122A 0x873628
|
|
|
|
#define SVR_LX2082A 0x87360A
|
2015-05-28 09:24:06 +00:00
|
|
|
|
|
|
|
#define SVR_MAJ(svr) (((svr) >> 4) & 0xf)
|
|
|
|
#define SVR_MIN(svr) (((svr) >> 0) & 0xf)
|
2017-01-17 10:31:15 +00:00
|
|
|
#define SVR_REV(svr) (((svr) >> 0) & 0xff)
|
2015-05-28 09:24:06 +00:00
|
|
|
#define IS_E_PROCESSOR(svr) (!((svr >> 8) & 0x1))
|
armv8: lx2162a: Add Soc changes to support LX2162A
LX2162 is LX2160 based SoC, it has same die as of LX2160
with different packaging.
LX2162A support 64-bit 2.9GT/s DDR4 memory, i2c, micro-click module,
microSD card, eMMC support, serial console, qspi nor flash, qsgmii,
sgmii, 25g, 40g, 50g network interface, one usb 3.0 and serdes
interface to support three PCIe gen3 interface.
Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
[Fixed whitespace errors]
Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>
2020-10-29 13:46:16 +00:00
|
|
|
#if defined(CONFIG_ARCH_LX2160A) || defined(CONFIG_ARCH_LX2162A)
|
armv8: lx2160a: Add LX2160A SoC Support
LX2160A Soc is based on Layerscape Chassis Generation 3.2
architecture with features:
16 ARM v8 Cortex-A72 cores in 8 cluster, CCN508, SEC,
2 64-bit DDR4 memory controller, RGMII, 8 I2C controllers,
3 serdes modules, USB 3.0, SATA, 4 PL011 SBSA UARTs,
4 TZASC instances, etc.
SoC personalites:
LX2120A is SoC with Twelve 64-bit ARM v8 Cortex-A72 CPUs
LX2080A is SoC with Eight 64-bit ARM v8 Cortex-A72 CPUs
Signed-off-by: Bao Xiaowei <xiaowei.bao@nxp.com>
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
Signed-off-by: Vabhav Sharma <vabhav.sharma@nxp.com>
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>
2018-10-29 09:17:09 +00:00
|
|
|
#define IS_C_PROCESSOR(svr) (!((svr >> 12) & 0x1))
|
2021-01-13 11:01:23 +00:00
|
|
|
#define SVR_WO_CE 0xFFFFEE
|
|
|
|
#define SVR_SOC_VER(svr) (((svr) >> 8) & SVR_WO_CE)
|
|
|
|
#else
|
|
|
|
#define SVR_SOC_VER(svr) (((svr) >> 8) & SVR_WO_E)
|
armv8: lx2160a: Add LX2160A SoC Support
LX2160A Soc is based on Layerscape Chassis Generation 3.2
architecture with features:
16 ARM v8 Cortex-A72 cores in 8 cluster, CCN508, SEC,
2 64-bit DDR4 memory controller, RGMII, 8 I2C controllers,
3 serdes modules, USB 3.0, SATA, 4 PL011 SBSA UARTs,
4 TZASC instances, etc.
SoC personalites:
LX2120A is SoC with Twelve 64-bit ARM v8 Cortex-A72 CPUs
LX2080A is SoC with Eight 64-bit ARM v8 Cortex-A72 CPUs
Signed-off-by: Bao Xiaowei <xiaowei.bao@nxp.com>
Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
Signed-off-by: Vabhav Sharma <vabhav.sharma@nxp.com>
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>
2018-10-29 09:17:09 +00:00
|
|
|
#endif
|
2019-10-10 09:19:37 +00:00
|
|
|
#ifdef CONFIG_ARCH_LS1028A
|
|
|
|
#define IS_MULTIMEDIA_EN(svr) (!((svr >> 10) & 0x1))
|
|
|
|
#endif
|
2016-06-13 04:28:32 +00:00
|
|
|
#define IS_SVR_REV(svr, maj, min) \
|
|
|
|
((SVR_MAJ(svr) == (maj)) && (SVR_MIN(svr) == (min)))
|
2017-12-04 04:18:28 +00:00
|
|
|
#define SVR_DEV(svr) ((svr) >> 8)
|
|
|
|
#define IS_SVR_DEV(svr, dev) (((svr) >> 16) == (dev))
|
2015-05-28 09:24:06 +00:00
|
|
|
|
2016-11-17 06:59:52 +00:00
|
|
|
#ifndef __ASSEMBLY__
|
2015-10-26 11:47:51 +00:00
|
|
|
#ifdef CONFIG_FSL_LSCH3
|
2015-03-21 02:28:12 +00:00
|
|
|
void fsl_lsch3_early_init_f(void);
|
2018-01-17 10:43:00 +00:00
|
|
|
int get_core_volt_from_fuse(void);
|
2015-10-26 11:47:51 +00:00
|
|
|
#elif defined(CONFIG_FSL_LSCH2)
|
|
|
|
void fsl_lsch2_early_init_f(void);
|
2016-12-09 08:09:00 +00:00
|
|
|
int setup_chip_volt(void);
|
|
|
|
/* Setup core vdd in unit mV */
|
|
|
|
int board_setup_core_volt(u32 vdd);
|
2018-03-08 10:00:33 +00:00
|
|
|
#ifdef CONFIG_FSL_PFE
|
|
|
|
void init_pfe_scfg_dcfg_regs(void);
|
|
|
|
#endif
|
2015-10-26 11:47:51 +00:00
|
|
|
#endif
|
2018-06-26 21:48:28 +00:00
|
|
|
#ifdef CONFIG_QSPI_AHB_INIT
|
|
|
|
int qspi_ahb_init(void);
|
|
|
|
#endif
|
2015-10-26 11:47:51 +00:00
|
|
|
|
2019-11-21 11:45:17 +00:00
|
|
|
#ifdef CONFIG_FSPI_AHB_EN_4BYTE
|
|
|
|
#define SYS_NXP_FSPI_LUTCR_LOCK 0x00000001
|
|
|
|
#define SYS_NXP_FSPI_LUTCR_UNLOCK 0x00000002
|
|
|
|
#define SYS_NXP_FSPI_LUTKEY 0x5AF05AF0
|
|
|
|
int fspi_ahb_init(void);
|
|
|
|
#endif
|
|
|
|
|
2015-05-28 09:24:06 +00:00
|
|
|
void cpu_name(char *name);
|
2015-11-05 06:30:14 +00:00
|
|
|
#ifdef CONFIG_SYS_FSL_ERRATUM_A009635
|
|
|
|
void erratum_a009635(void);
|
|
|
|
#endif
|
2016-04-04 18:41:26 +00:00
|
|
|
|
2016-08-02 11:03:27 +00:00
|
|
|
#ifdef CONFIG_SYS_FSL_ERRATUM_A010315
|
|
|
|
void erratum_a010315(void);
|
|
|
|
#endif
|
|
|
|
|
2016-04-04 18:41:26 +00:00
|
|
|
bool soc_has_dp_ddr(void);
|
|
|
|
bool soc_has_aiop(void);
|
2020-04-28 02:19:32 +00:00
|
|
|
|
|
|
|
#ifdef CONFIG_GIC_V3_ITS
|
|
|
|
int ls_gic_rd_tables_init(void *blob);
|
|
|
|
#endif
|
2016-11-17 06:59:52 +00:00
|
|
|
#endif
|
2017-05-17 14:23:10 +00:00
|
|
|
|
2015-10-26 11:47:50 +00:00
|
|
|
#endif /* _ASM_ARMV8_FSL_LAYERSCAPE_SOC_H_ */
|