GK SDK 源码库: XMIPCLinuxV100R005C00SPC030 (kernel/tools/open_source excluded)
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2015 Freescale Semiconductor, Inc.
|
||||
* Copyright 2019 NXP Semiconductors
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_FSL_LAYERSCAPE_CLOCK_H_
|
||||
#define __ASM_ARCH_FSL_LAYERSCAPE_CLOCK_H_
|
||||
|
||||
#include <common.h>
|
||||
|
||||
enum mxc_clock {
|
||||
MXC_ARM_CLK = 0,
|
||||
MXC_BUS_CLK,
|
||||
MXC_UART_CLK,
|
||||
MXC_I2C_CLK,
|
||||
MXC_DSPI_CLK,
|
||||
};
|
||||
|
||||
unsigned int mxc_get_clock(enum mxc_clock clk);
|
||||
ulong get_ddr_freq(ulong);
|
||||
uint get_svr(void);
|
||||
|
||||
#endif /* __ASM_ARCH_FSL_LAYERSCAPE_CLOCK_H_ */
|
||||
@@ -0,0 +1,404 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2016-2018 NXP
|
||||
* Copyright 2015, Freescale Semiconductor
|
||||
*/
|
||||
|
||||
#ifndef _ASM_ARMV8_FSL_LAYERSCAPE_CONFIG_H_
|
||||
#define _ASM_ARMV8_FSL_LAYERSCAPE_CONFIG_H_
|
||||
|
||||
#include <linux/kconfig.h>
|
||||
#include <fsl_ddrc_version.h>
|
||||
|
||||
#define CONFIG_STANDALONE_LOAD_ADDR 0x80300000
|
||||
|
||||
/*
|
||||
* Reserve secure memory
|
||||
* To be aligned with MMU block size
|
||||
*/
|
||||
#define CONFIG_SYS_MEM_RESERVE_SECURE (66 * 1024 * 1024) /* 66MB */
|
||||
#define SPL_TLB_SETBACK 0x1000000 /* 16MB under effective memory top */
|
||||
|
||||
#ifdef CONFIG_ARCH_LS2080A
|
||||
#define CONFIG_SYS_FSL_CLUSTER_CLOCKS { 1, 1, 4, 4 }
|
||||
#define SRDS_MAX_LANES 8
|
||||
#define CONFIG_SYS_PAGE_SIZE 0x10000
|
||||
#ifndef L1_CACHE_BYTES
|
||||
#define L1_CACHE_SHIFT 6
|
||||
#define L1_CACHE_BYTES BIT(L1_CACHE_SHIFT)
|
||||
#endif
|
||||
|
||||
#define CONFIG_SYS_FSL_OCRAM_BASE 0x18000000 /* initial RAM */
|
||||
#define SYS_FSL_OCRAM_SPACE_SIZE 0x00200000 /* 2M space */
|
||||
#define CONFIG_SYS_FSL_OCRAM_SIZE 0x00020000 /* Real size 128K */
|
||||
|
||||
/* DDR */
|
||||
#define CONFIG_SYS_DDR_BLOCK1_SIZE ((phys_size_t)2 << 30)
|
||||
#define CONFIG_MAX_MEM_MAPPED CONFIG_SYS_DDR_BLOCK1_SIZE
|
||||
|
||||
#define CONFIG_SYS_FSL_CCSR_GUR_LE
|
||||
#define CONFIG_SYS_FSL_CCSR_SCFG_LE
|
||||
#define CONFIG_SYS_FSL_ESDHC_LE
|
||||
#define CONFIG_SYS_FSL_IFC_LE
|
||||
#define CONFIG_SYS_FSL_PEX_LUT_LE
|
||||
|
||||
#define CONFIG_SYS_MEMAC_LITTLE_ENDIAN
|
||||
|
||||
/* Generic Interrupt Controller Definitions */
|
||||
#define GICD_BASE 0x06000000
|
||||
#define GICR_BASE 0x06100000
|
||||
|
||||
/* SMMU Defintions */
|
||||
#define SMMU_BASE 0x05000000 /* GR0 Base */
|
||||
|
||||
/* SFP */
|
||||
#define CONFIG_SYS_FSL_SFP_VER_3_4
|
||||
#define CONFIG_SYS_FSL_SFP_LE
|
||||
#define CONFIG_SYS_FSL_SRK_LE
|
||||
|
||||
/* Security Monitor */
|
||||
#define CONFIG_SYS_FSL_SEC_MON_LE
|
||||
|
||||
/* Secure Boot */
|
||||
#define CONFIG_ESBC_HDR_LS
|
||||
|
||||
/* DCFG - GUR */
|
||||
#define CONFIG_SYS_FSL_CCSR_GUR_LE
|
||||
|
||||
/* Cache Coherent Interconnect */
|
||||
#define CCI_MN_BASE 0x04000000
|
||||
#define CCI_MN_RNF_NODEID_LIST 0x180
|
||||
#define CCI_MN_DVM_DOMAIN_CTL 0x200
|
||||
#define CCI_MN_DVM_DOMAIN_CTL_SET 0x210
|
||||
|
||||
#define CCI_HN_F_0_BASE (CCI_MN_BASE + 0x200000)
|
||||
#define CCI_HN_F_1_BASE (CCI_MN_BASE + 0x210000)
|
||||
#define CCN_HN_F_SAM_CTL 0x8 /* offset on base HN_F base */
|
||||
#define CCN_HN_F_SAM_NODEID_MASK 0x7f
|
||||
#define CCN_HN_F_SAM_NODEID_DDR0 0x4
|
||||
#define CCN_HN_F_SAM_NODEID_DDR1 0xe
|
||||
|
||||
#define CCI_RN_I_0_BASE (CCI_MN_BASE + 0x800000)
|
||||
#define CCI_RN_I_2_BASE (CCI_MN_BASE + 0x820000)
|
||||
#define CCI_RN_I_6_BASE (CCI_MN_BASE + 0x860000)
|
||||
#define CCI_RN_I_12_BASE (CCI_MN_BASE + 0x8C0000)
|
||||
#define CCI_RN_I_16_BASE (CCI_MN_BASE + 0x900000)
|
||||
#define CCI_RN_I_20_BASE (CCI_MN_BASE + 0x940000)
|
||||
|
||||
#define CCI_S0_QOS_CONTROL_BASE(x) ((CCI_RN_I_0_BASE + (x * 0x10000)) + 0x10)
|
||||
#define CCI_S1_QOS_CONTROL_BASE(x) ((CCI_RN_I_0_BASE + (x * 0x10000)) + 0x110)
|
||||
#define CCI_S2_QOS_CONTROL_BASE(x) ((CCI_RN_I_0_BASE + (x * 0x10000)) + 0x210)
|
||||
|
||||
#define CCI_AUX_CONTROL_BASE(x) ((CCI_RN_I_0_BASE + (x * 0x10000)) + 0x0500)
|
||||
|
||||
/* TZ Protection Controller Definitions */
|
||||
#define TZPC_BASE 0x02200000
|
||||
#define TZPCR0SIZE_BASE (TZPC_BASE)
|
||||
#define TZPCDECPROT_0_STAT_BASE (TZPC_BASE + 0x800)
|
||||
#define TZPCDECPROT_0_SET_BASE (TZPC_BASE + 0x804)
|
||||
#define TZPCDECPROT_0_CLR_BASE (TZPC_BASE + 0x808)
|
||||
#define TZPCDECPROT_1_STAT_BASE (TZPC_BASE + 0x80C)
|
||||
#define TZPCDECPROT_1_SET_BASE (TZPC_BASE + 0x810)
|
||||
#define TZPCDECPROT_1_CLR_BASE (TZPC_BASE + 0x814)
|
||||
#define TZPCDECPROT_2_STAT_BASE (TZPC_BASE + 0x818)
|
||||
#define TZPCDECPROT_2_SET_BASE (TZPC_BASE + 0x81C)
|
||||
#define TZPCDECPROT_2_CLR_BASE (TZPC_BASE + 0x820)
|
||||
|
||||
#define DCSR_CGACRE5 0x700070914ULL
|
||||
#define EPU_EPCMPR5 0x700060914ULL
|
||||
#define EPU_EPCCR5 0x700060814ULL
|
||||
#define EPU_EPSMCR5 0x700060228ULL
|
||||
#define EPU_EPECR5 0x700060314ULL
|
||||
#define EPU_EPCTR5 0x700060a14ULL
|
||||
#define EPU_EPGCR 0x700060000ULL
|
||||
|
||||
#define CONFIG_SYS_FSL_ERRATUM_A008751
|
||||
|
||||
#define CONFIG_SYS_FSL_MAX_NUM_OF_SEC 1
|
||||
|
||||
#elif defined(CONFIG_ARCH_LS1088A)
|
||||
#define CONFIG_SYS_FSL_NUM_CC_PLLS 3
|
||||
#define CONFIG_SYS_FSL_CLUSTER_CLOCKS { 1, 1 }
|
||||
#define CONFIG_GICV3
|
||||
#define CONFIG_SYS_PAGE_SIZE 0x10000
|
||||
|
||||
#define SRDS_MAX_LANES 4
|
||||
|
||||
/* TZ Protection Controller Definitions */
|
||||
#define TZPC_BASE 0x02200000
|
||||
#define TZPCR0SIZE_BASE (TZPC_BASE)
|
||||
#define TZPCDECPROT_0_STAT_BASE (TZPC_BASE + 0x800)
|
||||
#define TZPCDECPROT_0_SET_BASE (TZPC_BASE + 0x804)
|
||||
#define TZPCDECPROT_0_CLR_BASE (TZPC_BASE + 0x808)
|
||||
#define TZPCDECPROT_1_STAT_BASE (TZPC_BASE + 0x80C)
|
||||
#define TZPCDECPROT_1_SET_BASE (TZPC_BASE + 0x810)
|
||||
#define TZPCDECPROT_1_CLR_BASE (TZPC_BASE + 0x814)
|
||||
#define TZPCDECPROT_2_STAT_BASE (TZPC_BASE + 0x818)
|
||||
#define TZPCDECPROT_2_SET_BASE (TZPC_BASE + 0x81C)
|
||||
#define TZPCDECPROT_2_CLR_BASE (TZPC_BASE + 0x820)
|
||||
|
||||
/* Generic Interrupt Controller Definitions */
|
||||
#define GICD_BASE 0x06000000
|
||||
#define GICR_BASE 0x06100000
|
||||
|
||||
/* SMMU Defintions */
|
||||
#define SMMU_BASE 0x05000000 /* GR0 Base */
|
||||
|
||||
/* DDR */
|
||||
#define CONFIG_SYS_DDR_BLOCK1_SIZE ((phys_size_t)2 << 30)
|
||||
#define CONFIG_MAX_MEM_MAPPED CONFIG_SYS_DDR_BLOCK1_SIZE
|
||||
|
||||
#define CONFIG_SYS_FSL_CCSR_GUR_LE
|
||||
#define CONFIG_SYS_FSL_CCSR_SCFG_LE
|
||||
#define CONFIG_SYS_FSL_ESDHC_LE
|
||||
#define CONFIG_SYS_FSL_IFC_LE
|
||||
#define CONFIG_SYS_FSL_PEX_LUT_LE
|
||||
|
||||
#define CONFIG_SYS_MEMAC_LITTLE_ENDIAN
|
||||
|
||||
/* SFP */
|
||||
#define CONFIG_SYS_FSL_SFP_VER_3_4
|
||||
#define CONFIG_SYS_FSL_SFP_LE
|
||||
#define CONFIG_SYS_FSL_SRK_LE
|
||||
|
||||
/* Security Monitor */
|
||||
#define CONFIG_SYS_FSL_SEC_MON_LE
|
||||
|
||||
/* Secure Boot */
|
||||
#define CONFIG_ESBC_HDR_LS
|
||||
|
||||
/* DCFG - GUR */
|
||||
#define CONFIG_SYS_FSL_CCSR_GUR_LE
|
||||
#define CONFIG_SYS_FSL_MAX_NUM_OF_SEC 1
|
||||
#define CONFIG_SYS_FSL_OCRAM_BASE 0x18000000 /* initial RAM */
|
||||
#define SYS_FSL_OCRAM_SPACE_SIZE 0x00200000 /* 2M space */
|
||||
#define CONFIG_SYS_FSL_OCRAM_SIZE 0x00020000 /* Real size 128K */
|
||||
|
||||
/* LX2160A Soc Support */
|
||||
#elif defined(CONFIG_ARCH_LX2160A)
|
||||
#define TZPC_BASE 0x02200000
|
||||
#define TZPCDECPROT_0_SET_BASE (TZPC_BASE + 0x804)
|
||||
#if !defined(CONFIG_DM_I2C)
|
||||
#define CONFIG_SYS_I2C
|
||||
#define CONFIG_SYS_I2C_EARLY_INIT
|
||||
#endif
|
||||
#define SRDS_MAX_LANES 8
|
||||
#ifndef L1_CACHE_BYTES
|
||||
#define L1_CACHE_SHIFT 6
|
||||
#define L1_CACHE_BYTES BIT(L1_CACHE_SHIFT)
|
||||
#endif
|
||||
#define CONFIG_SYS_FSL_CORES_PER_CLUSTER 2
|
||||
#define CONFIG_SYS_FSL_CLUSTER_CLOCKS { 1, 1, 1, 1, 4, 4, 4, 4 }
|
||||
#define CONFIG_SYS_FSL_NUM_CC_PLLS 4
|
||||
|
||||
#define CONFIG_SYS_PAGE_SIZE 0x10000
|
||||
|
||||
#define CONFIG_SYS_FSL_OCRAM_BASE 0x18000000 /* initial RAM */
|
||||
#define SYS_FSL_OCRAM_SPACE_SIZE 0x00200000 /* 2M space */
|
||||
#define CONFIG_SYS_FSL_OCRAM_SIZE 0x00040000 /* Real size 256K */
|
||||
|
||||
/* DDR */
|
||||
#define CONFIG_SYS_DDR_BLOCK1_SIZE ((phys_size_t)2 << 30)
|
||||
#define CONFIG_MAX_MEM_MAPPED CONFIG_SYS_DDR_BLOCK1_SIZE
|
||||
|
||||
#define CONFIG_SYS_FSL_CCSR_GUR_LE
|
||||
#define CONFIG_SYS_FSL_CCSR_SCFG_LE
|
||||
#define CONFIG_SYS_FSL_ESDHC_LE
|
||||
#define CONFIG_SYS_FSL_PEX_LUT_LE
|
||||
|
||||
#define CONFIG_SYS_MEMAC_LITTLE_ENDIAN
|
||||
|
||||
/* Generic Interrupt Controller Definitions */
|
||||
#define GICD_BASE 0x06000000
|
||||
#define GICR_BASE 0x06200000
|
||||
|
||||
/* SMMU Definitions */
|
||||
#define SMMU_BASE 0x05000000 /* GR0 Base */
|
||||
|
||||
/* SFP */
|
||||
#define CONFIG_SYS_FSL_SFP_VER_3_4
|
||||
#define CONFIG_SYS_FSL_SFP_LE
|
||||
#define CONFIG_SYS_FSL_SRK_LE
|
||||
|
||||
/* Security Monitor */
|
||||
#define CONFIG_SYS_FSL_SEC_MON_LE
|
||||
|
||||
/* Secure Boot */
|
||||
#define CONFIG_ESBC_HDR_LS
|
||||
|
||||
/* DCFG - GUR */
|
||||
#define CONFIG_SYS_FSL_CCSR_GUR_LE
|
||||
|
||||
#define CONFIG_SYS_FSL_MAX_NUM_OF_SEC 1
|
||||
|
||||
#elif defined(CONFIG_ARCH_LS1028A)
|
||||
#define CONFIG_SYS_FSL_NUM_CC_PLLS 3
|
||||
#define CONFIG_SYS_FSL_CLUSTER_CLOCKS { 1, 1 }
|
||||
#define CONFIG_GICV3
|
||||
#define CONFIG_FSL_TZPC_BP147
|
||||
#define CONFIG_FSL_TZASC_400
|
||||
|
||||
/* TZ Protection Controller Definitions */
|
||||
#define TZPC_BASE 0x02200000
|
||||
#define TZPCR0SIZE_BASE (TZPC_BASE)
|
||||
#define TZPCDECPROT_0_STAT_BASE (TZPC_BASE + 0x800)
|
||||
#define TZPCDECPROT_0_SET_BASE (TZPC_BASE + 0x804)
|
||||
#define TZPCDECPROT_0_CLR_BASE (TZPC_BASE + 0x808)
|
||||
#define TZPCDECPROT_1_STAT_BASE (TZPC_BASE + 0x80C)
|
||||
#define TZPCDECPROT_1_SET_BASE (TZPC_BASE + 0x810)
|
||||
#define TZPCDECPROT_1_CLR_BASE (TZPC_BASE + 0x814)
|
||||
#define TZPCDECPROT_2_STAT_BASE (TZPC_BASE + 0x818)
|
||||
#define TZPCDECPROT_2_SET_BASE (TZPC_BASE + 0x81C)
|
||||
#define TZPCDECPROT_2_CLR_BASE (TZPC_BASE + 0x820)
|
||||
|
||||
#define SRDS_MAX_LANES 4
|
||||
|
||||
#define CONFIG_SYS_FSL_OCRAM_BASE 0x18000000 /* initial RAM */
|
||||
#define SYS_FSL_OCRAM_SPACE_SIZE 0x00200000 /* 2M */
|
||||
#define CONFIG_SYS_FSL_OCRAM_SIZE 0x00040000 /* Real size 256K */
|
||||
|
||||
/* Generic Interrupt Controller Definitions */
|
||||
#define GICD_BASE 0x06000000
|
||||
#define GICR_BASE 0x06040000
|
||||
|
||||
/* SMMU Definitions */
|
||||
#define SMMU_BASE 0x05000000 /* GR0 Base */
|
||||
|
||||
/* DDR */
|
||||
#define CONFIG_SYS_DDR_BLOCK1_SIZE ((phys_size_t)2 << 30)
|
||||
#define CONFIG_MAX_MEM_MAPPED CONFIG_SYS_DDR_BLOCK1_SIZE
|
||||
|
||||
#define CONFIG_SYS_FSL_CCSR_GUR_LE
|
||||
#define CONFIG_SYS_FSL_CCSR_SCFG_LE
|
||||
#define CONFIG_SYS_FSL_ESDHC_LE
|
||||
#define CONFIG_SYS_FSL_PEX_LUT_LE
|
||||
|
||||
#define CONFIG_SYS_MEMAC_LITTLE_ENDIAN
|
||||
|
||||
/* SFP */
|
||||
#define CONFIG_SYS_FSL_SFP_VER_3_4
|
||||
#define CONFIG_SYS_FSL_SFP_LE
|
||||
#define CONFIG_SYS_FSL_SRK_LE
|
||||
|
||||
/* SEC */
|
||||
#define CONFIG_SYS_FSL_MAX_NUM_OF_SEC 1
|
||||
|
||||
/* Security Monitor */
|
||||
#define CONFIG_SYS_FSL_SEC_MON_LE
|
||||
|
||||
/* Secure Boot */
|
||||
#define CONFIG_ESBC_HDR_LS
|
||||
|
||||
/* DCFG - GUR */
|
||||
#define CONFIG_SYS_FSL_CCSR_GUR_LE
|
||||
|
||||
#elif defined(CONFIG_FSL_LSCH2)
|
||||
#define CONFIG_SYS_FSL_OCRAM_BASE 0x10000000 /* initial RAM */
|
||||
#define SYS_FSL_OCRAM_SPACE_SIZE 0x00200000 /* 2M space */
|
||||
#define CONFIG_SYS_FSL_OCRAM_SIZE 0x00020000 /* Real size 128K */
|
||||
|
||||
#define DCSR_DCFG_SBEESR2 0x20140534
|
||||
#define DCSR_DCFG_MBEESR2 0x20140544
|
||||
|
||||
#define CONFIG_SYS_FSL_CCSR_SCFG_BE
|
||||
#define CONFIG_SYS_FSL_ESDHC_BE
|
||||
#define CONFIG_SYS_FSL_WDOG_BE
|
||||
#define CONFIG_SYS_FSL_DSPI_BE
|
||||
#define CONFIG_SYS_FSL_QSPI_BE
|
||||
#define CONFIG_SYS_FSL_CCSR_GUR_BE
|
||||
#define CONFIG_SYS_FSL_PEX_LUT_BE
|
||||
|
||||
/* SoC related */
|
||||
#ifdef CONFIG_ARCH_LS1043A
|
||||
#define CONFIG_SYS_FMAN_V3
|
||||
#define CONFIG_SYS_FSL_QMAN_V3
|
||||
#define CONFIG_SYS_NUM_FMAN 1
|
||||
#define CONFIG_SYS_NUM_FM1_DTSEC 7
|
||||
#define CONFIG_SYS_NUM_FM1_10GEC 1
|
||||
#define CONFIG_SYS_DDR_BLOCK1_SIZE ((phys_size_t)2 << 30)
|
||||
#define CONFIG_MAX_MEM_MAPPED CONFIG_SYS_DDR_BLOCK1_SIZE
|
||||
|
||||
#define QE_MURAM_SIZE 0x6000UL
|
||||
#define MAX_QE_RISC 1
|
||||
#define QE_NUM_OF_SNUM 28
|
||||
|
||||
#define CONFIG_SYS_FSL_IFC_BE
|
||||
#define CONFIG_SYS_FSL_SFP_VER_3_2
|
||||
#define CONFIG_SYS_FSL_SEC_MON_BE
|
||||
#define CONFIG_SYS_FSL_SFP_BE
|
||||
#define CONFIG_SYS_FSL_SRK_LE
|
||||
#define CONFIG_KEY_REVOCATION
|
||||
|
||||
/* SMMU Defintions */
|
||||
#define SMMU_BASE 0x09000000
|
||||
|
||||
/* Generic Interrupt Controller Definitions */
|
||||
#define GICD_BASE 0x01401000
|
||||
#define GICC_BASE 0x01402000
|
||||
#define GICH_BASE 0x01404000
|
||||
#define GICV_BASE 0x01406000
|
||||
#define GICD_SIZE 0x1000
|
||||
#define GICC_SIZE 0x2000
|
||||
#define GICH_SIZE 0x2000
|
||||
#define GICV_SIZE 0x2000
|
||||
#ifdef CONFIG_HAS_FEATURE_GIC64K_ALIGN
|
||||
#define GICD_BASE_64K 0x01410000
|
||||
#define GICC_BASE_64K 0x01420000
|
||||
#define GICH_BASE_64K 0x01440000
|
||||
#define GICV_BASE_64K 0x01460000
|
||||
#define GICD_SIZE_64K 0x10000
|
||||
#define GICC_SIZE_64K 0x20000
|
||||
#define GICH_SIZE_64K 0x20000
|
||||
#define GICV_SIZE_64K 0x20000
|
||||
#endif
|
||||
|
||||
#define DCFG_CCSR_SVR 0x1ee00a4
|
||||
#define REV1_0 0x10
|
||||
#define REV1_1 0x11
|
||||
#define GIC_ADDR_BIT 31
|
||||
#define SCFG_GIC400_ALIGN 0x1570188
|
||||
|
||||
#define CONFIG_SYS_FSL_MAX_NUM_OF_SEC 1
|
||||
|
||||
#elif defined(CONFIG_ARCH_LS1012A)
|
||||
#define GICD_BASE 0x01401000
|
||||
#define GICC_BASE 0x01402000
|
||||
#define CONFIG_SYS_FSL_SFP_VER_3_2
|
||||
#define CONFIG_SYS_FSL_SEC_MON_BE
|
||||
#define CONFIG_SYS_FSL_SFP_BE
|
||||
#define CONFIG_SYS_FSL_SRK_LE
|
||||
#define CONFIG_KEY_REVOCATION
|
||||
#define CONFIG_SYS_FSL_MAX_NUM_OF_SEC 1
|
||||
#define CONFIG_SYS_DDR_BLOCK1_SIZE ((phys_size_t)2 << 30)
|
||||
#define CONFIG_MAX_MEM_MAPPED CONFIG_SYS_DDR_BLOCK1_SIZE
|
||||
|
||||
#elif defined(CONFIG_ARCH_LS1046A)
|
||||
#define CONFIG_SYS_FMAN_V3
|
||||
#define CONFIG_SYS_FSL_QMAN_V3
|
||||
#define CONFIG_SYS_NUM_FMAN 1
|
||||
#define CONFIG_SYS_NUM_FM1_DTSEC 8
|
||||
#define CONFIG_SYS_NUM_FM1_10GEC 2
|
||||
#define CONFIG_SYS_DDR_BLOCK1_SIZE ((phys_size_t)2 << 30)
|
||||
#define CONFIG_MAX_MEM_MAPPED CONFIG_SYS_DDR_BLOCK1_SIZE
|
||||
|
||||
#define CONFIG_SYS_FSL_IFC_BE
|
||||
#define CONFIG_SYS_FSL_SFP_VER_3_2
|
||||
#define CONFIG_SYS_FSL_SEC_MON_BE
|
||||
#define CONFIG_SYS_FSL_SFP_BE
|
||||
#define CONFIG_SYS_FSL_SRK_LE
|
||||
#define CONFIG_KEY_REVOCATION
|
||||
|
||||
/* SMMU Defintions */
|
||||
#define SMMU_BASE 0x09000000
|
||||
|
||||
/* Generic Interrupt Controller Definitions */
|
||||
#define GICD_BASE 0x01410000
|
||||
#define GICC_BASE 0x01420000
|
||||
|
||||
#define CONFIG_SYS_FSL_MAX_NUM_OF_SEC 1
|
||||
#else
|
||||
#error SoC not defined
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_ARMV8_FSL_LAYERSCAPE_CONFIG_H_ */
|
||||
@@ -0,0 +1,98 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2017-2018 NXP
|
||||
* Copyright 2014-2015, Freescale Semiconductor
|
||||
*/
|
||||
|
||||
#ifndef _FSL_LAYERSCAPE_CPU_H
|
||||
#define _FSL_LAYERSCAPE_CPU_H
|
||||
|
||||
#ifdef CONFIG_FSL_LSCH3
|
||||
#define CONFIG_SYS_FSL_CCSR_BASE 0x00000000
|
||||
#define CONFIG_SYS_FSL_CCSR_SIZE 0x10000000
|
||||
#define CONFIG_SYS_FSL_QSPI_BASE1 0x20000000
|
||||
#define CONFIG_SYS_FSL_QSPI_SIZE1 0x10000000
|
||||
#ifndef CONFIG_NXP_LSCH3_2
|
||||
#define CONFIG_SYS_FSL_IFC_BASE1 0x30000000
|
||||
#define CONFIG_SYS_FSL_IFC_SIZE1 0x10000000
|
||||
#define CONFIG_SYS_FSL_IFC_SIZE1_1 0x400000
|
||||
#endif
|
||||
#define CONFIG_SYS_FSL_DRAM_BASE1 0x80000000
|
||||
#define CONFIG_SYS_FSL_DRAM_SIZE1 0x80000000
|
||||
#define CONFIG_SYS_FSL_QSPI_BASE2 0x400000000
|
||||
#define CONFIG_SYS_FSL_QSPI_SIZE2 0x100000000
|
||||
#ifndef CONFIG_NXP_LSCH3_2
|
||||
#define CONFIG_SYS_FSL_IFC_BASE2 0x500000000
|
||||
#define CONFIG_SYS_FSL_IFC_SIZE2 0x100000000
|
||||
#endif
|
||||
#define CONFIG_SYS_FSL_DCSR_BASE 0x700000000
|
||||
#define CONFIG_SYS_FSL_DCSR_SIZE 0x40000000
|
||||
#define CONFIG_SYS_FSL_MC_BASE 0x80c000000
|
||||
#define CONFIG_SYS_FSL_MC_SIZE 0x4000000
|
||||
#define CONFIG_SYS_FSL_NI_BASE 0x810000000
|
||||
#define CONFIG_SYS_FSL_NI_SIZE 0x8000000
|
||||
#define CONFIG_SYS_FSL_QBMAN_BASE 0x818000000
|
||||
#define CONFIG_SYS_FSL_QBMAN_SIZE 0x8000000
|
||||
#define CONFIG_SYS_FSL_QBMAN_SIZE_1 0x4000000
|
||||
#ifdef CONFIG_ARCH_LS2080A
|
||||
#define CONFIG_SYS_PCIE1_PHYS_SIZE 0x200000000
|
||||
#define CONFIG_SYS_PCIE2_PHYS_SIZE 0x200000000
|
||||
#define CONFIG_SYS_PCIE3_PHYS_SIZE 0x200000000
|
||||
#define CONFIG_SYS_PCIE4_PHYS_SIZE 0x200000000
|
||||
#else
|
||||
#define CONFIG_SYS_PCIE1_PHYS_SIZE 0x800000000
|
||||
#define CONFIG_SYS_PCIE2_PHYS_SIZE 0x800000000
|
||||
#ifndef CONFIG_SYS_PCIE3_PHYS_SIZE
|
||||
#define CONFIG_SYS_PCIE3_PHYS_SIZE 0x800000000
|
||||
#endif
|
||||
#define CONFIG_SYS_PCIE4_PHYS_SIZE 0x800000000
|
||||
#define SYS_PCIE5_PHYS_SIZE 0x800000000
|
||||
#define SYS_PCIE6_PHYS_SIZE 0x800000000
|
||||
#endif
|
||||
#define CONFIG_SYS_FSL_WRIOP1_BASE 0x4300000000
|
||||
#define CONFIG_SYS_FSL_WRIOP1_SIZE 0x100000000
|
||||
#define CONFIG_SYS_FSL_AIOP1_BASE 0x4b00000000
|
||||
#define CONFIG_SYS_FSL_AIOP1_SIZE 0x100000000
|
||||
#ifndef CONFIG_ARCH_LX2160A
|
||||
#define CONFIG_SYS_FSL_PEBUF_BASE 0x4c00000000
|
||||
#else
|
||||
#define CONFIG_SYS_FSL_PEBUF_BASE 0x1c00000000
|
||||
#endif
|
||||
#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_SIZE2 0x7F80000000
|
||||
#endif
|
||||
#elif defined(CONFIG_FSL_LSCH2)
|
||||
#define CONFIG_SYS_FSL_BOOTROM_BASE 0x0
|
||||
#define CONFIG_SYS_FSL_BOOTROM_SIZE 0x1000000
|
||||
#define CONFIG_SYS_FSL_CCSR_BASE 0x1000000
|
||||
#define CONFIG_SYS_FSL_CCSR_SIZE 0xf000000
|
||||
#define CONFIG_SYS_FSL_DCSR_BASE 0x20000000
|
||||
#define CONFIG_SYS_FSL_DCSR_SIZE 0x4000000
|
||||
#define CONFIG_SYS_FSL_QSPI_BASE 0x40000000
|
||||
#define CONFIG_SYS_FSL_QSPI_SIZE 0x20000000
|
||||
#define CONFIG_SYS_FSL_IFC_BASE 0x60000000
|
||||
#define CONFIG_SYS_FSL_IFC_SIZE 0x20000000
|
||||
#define CONFIG_SYS_FSL_DRAM_BASE1 0x80000000
|
||||
#define CONFIG_SYS_FSL_DRAM_SIZE1 0x80000000
|
||||
#define CONFIG_SYS_FSL_QBMAN_BASE 0x500000000
|
||||
#define CONFIG_SYS_FSL_QBMAN_SIZE 0x10000000
|
||||
#define CONFIG_SYS_FSL_DRAM_BASE2 0x880000000
|
||||
#define CONFIG_SYS_FSL_DRAM_SIZE2 0x780000000 /* 30GB */
|
||||
#define CONFIG_SYS_PCIE1_PHYS_SIZE 0x800000000
|
||||
#define CONFIG_SYS_PCIE2_PHYS_SIZE 0x800000000
|
||||
#define CONFIG_SYS_PCIE3_PHYS_SIZE 0x800000000
|
||||
#define CONFIG_SYS_FSL_DRAM_BASE3 0x8800000000
|
||||
#define CONFIG_SYS_FSL_DRAM_SIZE3 0x7800000000 /* 480GB */
|
||||
#endif
|
||||
|
||||
int fsl_qoriq_core_to_cluster(unsigned int core);
|
||||
u32 cpu_mask(void);
|
||||
|
||||
#endif /* _FSL_LAYERSCAPE_CPU_H */
|
||||
@@ -0,0 +1,10 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2015 Freescale Semiconductor
|
||||
*/
|
||||
|
||||
#ifndef _ASM_ARMV8_FSL_LAYERSCAPE_FDT_H_
|
||||
#define _ASM_ARMV8_FSL_LAYERSCAPE_FDT_H_
|
||||
|
||||
void fdt_fixup_board_enet(void *fdt);
|
||||
#endif /* _ASM_ARMV8_FSL_LAYERSCAPE_FDT_H_ */
|
||||
@@ -0,0 +1,193 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2018 NXP
|
||||
*/
|
||||
|
||||
#ifndef _FSL_ICID_H_
|
||||
#define _FSL_ICID_H_
|
||||
|
||||
#include <asm/types.h>
|
||||
#include <fsl_qbman.h>
|
||||
#include <fsl_sec.h>
|
||||
#include <asm/armv8/sec_firmware.h>
|
||||
|
||||
struct icid_id_table {
|
||||
const char *compat;
|
||||
u32 id;
|
||||
u32 reg;
|
||||
phys_addr_t compat_addr;
|
||||
phys_addr_t reg_addr;
|
||||
bool le;
|
||||
};
|
||||
|
||||
struct fman_icid_id_table {
|
||||
u32 port_id;
|
||||
u32 icid;
|
||||
};
|
||||
|
||||
u32 get_ppid_icid(int ppid_tbl_idx, int ppid);
|
||||
int fdt_get_smmu_phandle(void *blob);
|
||||
int fdt_set_iommu_prop(void *blob, int off, int smmu_ph, u32 *ids, int num_ids);
|
||||
void set_icids(void);
|
||||
void fdt_fixup_icid(void *blob);
|
||||
|
||||
#define SET_ICID_ENTRY(name, idA, regA, addr, compataddr, _le) \
|
||||
{ .compat = name, \
|
||||
.id = idA, \
|
||||
.reg = regA, \
|
||||
.compat_addr = compataddr, \
|
||||
.reg_addr = addr, \
|
||||
.le = _le \
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SYS_FSL_SEC_LE
|
||||
#define SEC_IS_LE true
|
||||
#elif defined(CONFIG_SYS_FSL_SEC_BE)
|
||||
#define SEC_IS_LE false
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FSL_LSCH2
|
||||
|
||||
#ifdef CONFIG_SYS_FSL_CCSR_SCFG_LE
|
||||
#define SCFG_IS_LE true
|
||||
#elif defined(CONFIG_SYS_FSL_CCSR_SCFG_BE)
|
||||
#define SCFG_IS_LE false
|
||||
#endif
|
||||
|
||||
#define QDMA_IS_LE false
|
||||
|
||||
#define SET_SCFG_ICID(compat, streamid, name, compataddr) \
|
||||
SET_ICID_ENTRY(compat, streamid, (((streamid) << 24) | (1 << 23)), \
|
||||
offsetof(struct ccsr_scfg, name) + CONFIG_SYS_FSL_SCFG_ADDR, \
|
||||
compataddr, SCFG_IS_LE)
|
||||
|
||||
#define SET_USB_ICID(usb_num, compat, streamid) \
|
||||
SET_SCFG_ICID(compat, streamid, usb##usb_num##_icid,\
|
||||
CONFIG_SYS_XHCI_USB##usb_num##_ADDR)
|
||||
|
||||
#define SET_SATA_ICID(compat, streamid) \
|
||||
SET_SCFG_ICID(compat, streamid, sata_icid,\
|
||||
AHCI_BASE_ADDR)
|
||||
|
||||
#define SET_SDHC_ICID(streamid) \
|
||||
SET_SCFG_ICID("fsl,esdhc", streamid, sdhc_icid,\
|
||||
CONFIG_SYS_FSL_ESDHC_ADDR)
|
||||
|
||||
#define SET_EDMA_ICID(streamid) \
|
||||
SET_SCFG_ICID("fsl,vf610-edma", streamid, edma_icid,\
|
||||
EDMA_BASE_ADDR)
|
||||
|
||||
#define SET_ETR_ICID(streamid) \
|
||||
SET_SCFG_ICID(NULL, streamid, etr_icid, 0)
|
||||
|
||||
#define SET_DEBUG_ICID(streamid) \
|
||||
SET_SCFG_ICID(NULL, streamid, debug_icid, 0)
|
||||
|
||||
#define SET_QE_ICID(streamid) \
|
||||
SET_SCFG_ICID("fsl,qe", streamid, qe_icid,\
|
||||
QE_BASE_ADDR)
|
||||
|
||||
#define SET_QMAN_ICID(streamid) \
|
||||
SET_ICID_ENTRY("fsl,qman", streamid, streamid, \
|
||||
offsetof(struct ccsr_qman, liodnr) + \
|
||||
CONFIG_SYS_FSL_QMAN_ADDR, \
|
||||
CONFIG_SYS_FSL_QMAN_ADDR, false)
|
||||
|
||||
#define SET_BMAN_ICID(streamid) \
|
||||
SET_ICID_ENTRY("fsl,bman", streamid, streamid, \
|
||||
offsetof(struct ccsr_bman, liodnr) + \
|
||||
CONFIG_SYS_FSL_BMAN_ADDR, \
|
||||
CONFIG_SYS_FSL_BMAN_ADDR, false)
|
||||
|
||||
#define SET_FMAN_ICID_ENTRY(_port_id, streamid) \
|
||||
{ .port_id = (_port_id), .icid = (streamid) }
|
||||
|
||||
#define SEC_ICID_REG_VAL(streamid) (((streamid) << 16) | (streamid))
|
||||
|
||||
#define SET_SEC_QI_ICID(streamid) \
|
||||
SET_ICID_ENTRY("fsl,sec-v4.0", streamid, \
|
||||
0, offsetof(ccsr_sec_t, qilcr_ls) + \
|
||||
CONFIG_SYS_FSL_SEC_ADDR, \
|
||||
CONFIG_SYS_FSL_SEC_ADDR, SEC_IS_LE)
|
||||
|
||||
extern struct fman_icid_id_table fman_icid_tbl[];
|
||||
extern int fman_icid_tbl_sz;
|
||||
|
||||
#else /* CONFIG_FSL_LSCH2 */
|
||||
|
||||
#ifdef CONFIG_SYS_FSL_CCSR_GUR_LE
|
||||
#define GUR_IS_LE true
|
||||
#elif defined(CONFIG_SYS_FSL_CCSR_GUR_BE)
|
||||
#define GUR_IS_LE false
|
||||
#endif
|
||||
|
||||
#define QDMA_IS_LE true
|
||||
|
||||
#define SET_GUR_ICID(compat, streamid, name, compataddr) \
|
||||
SET_ICID_ENTRY(compat, streamid, streamid, \
|
||||
offsetof(struct ccsr_gur, name) + CONFIG_SYS_FSL_GUTS_ADDR, \
|
||||
compataddr, GUR_IS_LE)
|
||||
|
||||
#define SET_USB_ICID(usb_num, compat, streamid) \
|
||||
SET_GUR_ICID(compat, streamid, usb##usb_num##_amqr,\
|
||||
CONFIG_SYS_XHCI_USB##usb_num##_ADDR)
|
||||
|
||||
#define SET_SATA_ICID(sata_num, compat, streamid) \
|
||||
SET_GUR_ICID(compat, streamid, sata##sata_num##_amqr, \
|
||||
AHCI_BASE_ADDR##sata_num)
|
||||
|
||||
#define SET_SDHC_ICID(sdhc_num, streamid) \
|
||||
SET_GUR_ICID("fsl,esdhc", streamid, sdmm##sdhc_num##_amqr,\
|
||||
FSL_ESDHC##sdhc_num##_BASE_ADDR)
|
||||
|
||||
#define SET_EDMA_ICID(streamid) \
|
||||
SET_GUR_ICID("fsl,vf610-edma", streamid, spare3_amqr,\
|
||||
EDMA_BASE_ADDR)
|
||||
|
||||
#define SET_GPU_ICID(compat, streamid) \
|
||||
SET_GUR_ICID(compat, streamid, misc1_amqr,\
|
||||
GPU_BASE_ADDR)
|
||||
|
||||
#define SET_DISPLAY_ICID(streamid) \
|
||||
SET_GUR_ICID("arm,mali-dp500", streamid, spare2_amqr,\
|
||||
DISPLAY_BASE_ADDR)
|
||||
|
||||
#define SEC_ICID_REG_VAL(streamid) (streamid)
|
||||
|
||||
#endif /* CONFIG_FSL_LSCH2 */
|
||||
|
||||
#define SET_QDMA_ICID(compat, streamid) \
|
||||
SET_ICID_ENTRY(compat, streamid, (1 << 31) | (streamid), \
|
||||
QDMA_BASE_ADDR + QMAN_CQSIDR_REG, \
|
||||
QDMA_BASE_ADDR, QDMA_IS_LE), \
|
||||
SET_ICID_ENTRY(NULL, streamid, (1 << 31) | (streamid), \
|
||||
QDMA_BASE_ADDR + QMAN_CQSIDR_REG + 4, \
|
||||
QDMA_BASE_ADDR, QDMA_IS_LE)
|
||||
|
||||
#define SET_SEC_JR_ICID_ENTRY(jr_num, streamid) \
|
||||
SET_ICID_ENTRY( \
|
||||
(CONFIG_IS_ENABLED(ARMV8_SEC_FIRMWARE_SUPPORT) && \
|
||||
(FSL_SEC_JR##jr_num##_OFFSET == \
|
||||
SEC_JR3_OFFSET + CONFIG_SYS_FSL_SEC_OFFSET) \
|
||||
? NULL \
|
||||
: "fsl,sec-v4.0-job-ring"), \
|
||||
streamid, \
|
||||
SEC_ICID_REG_VAL(streamid), \
|
||||
offsetof(ccsr_sec_t, jrliodnr[jr_num].ls) + \
|
||||
CONFIG_SYS_FSL_SEC_ADDR, \
|
||||
FSL_SEC_JR##jr_num##_BASE_ADDR, SEC_IS_LE)
|
||||
|
||||
#define SET_SEC_DECO_ICID_ENTRY(deco_num, streamid) \
|
||||
SET_ICID_ENTRY(NULL, streamid, SEC_ICID_REG_VAL(streamid), \
|
||||
offsetof(ccsr_sec_t, decoliodnr[deco_num].ls) + \
|
||||
CONFIG_SYS_FSL_SEC_ADDR, 0, SEC_IS_LE)
|
||||
|
||||
#define SET_SEC_RTIC_ICID_ENTRY(rtic_num, streamid) \
|
||||
SET_ICID_ENTRY(NULL, streamid, SEC_ICID_REG_VAL(streamid), \
|
||||
offsetof(ccsr_sec_t, rticliodnr[rtic_num].ls) + \
|
||||
CONFIG_SYS_FSL_SEC_ADDR, 0, SEC_IS_LE)
|
||||
|
||||
extern struct icid_id_table icid_tbl[];
|
||||
extern int icid_tbl_sz;
|
||||
|
||||
#endif
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2018 NXP
|
||||
*/
|
||||
|
||||
#ifndef _FSL_PORTALS_H_
|
||||
#define _FSL_PORTALS_H_
|
||||
|
||||
struct qportal_info {
|
||||
u16 dicid; /* DQRR ICID */
|
||||
u16 ficid; /* frame data ICID */
|
||||
u16 icid;
|
||||
u8 sdest;
|
||||
};
|
||||
|
||||
#define SET_QP_INFO(streamid, dest) \
|
||||
{ .dicid = (streamid), .ficid = (streamid), .icid = (streamid), \
|
||||
.sdest = (dest) }
|
||||
|
||||
extern struct qportal_info qp_info[];
|
||||
void fdt_portal(void *blob, const char *compat, const char *container,
|
||||
u64 addr, u32 size);
|
||||
|
||||
#endif
|
||||
+218
@@ -0,0 +1,218 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2018 NXP
|
||||
* Copyright 2015 Freescale Semiconductor, Inc.
|
||||
*/
|
||||
|
||||
#ifndef __FSL_SERDES_H__
|
||||
#define __FSL_SERDES_H__
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#ifdef CONFIG_FSL_LSCH3
|
||||
enum srds_prtcl {
|
||||
/*
|
||||
* Nobody will check whether the device 'NONE' has been configured,
|
||||
* So use it to indicate if the serdes_prtcl_map has been initialized.
|
||||
*/
|
||||
NONE = 0,
|
||||
PCIE1,
|
||||
PCIE2,
|
||||
PCIE3,
|
||||
PCIE4,
|
||||
PCIE5,
|
||||
PCIE6,
|
||||
SATA1,
|
||||
SATA2,
|
||||
SATA3,
|
||||
SATA4,
|
||||
XAUI1,
|
||||
XAUI2,
|
||||
XFI1,
|
||||
XFI2,
|
||||
XFI3,
|
||||
XFI4,
|
||||
XFI5,
|
||||
XFI6,
|
||||
XFI7,
|
||||
XFI8,
|
||||
XFI9,
|
||||
XFI10,
|
||||
XFI11,
|
||||
XFI12,
|
||||
XFI13,
|
||||
XFI14,
|
||||
SGMII1,
|
||||
SGMII2,
|
||||
SGMII3,
|
||||
SGMII4,
|
||||
SGMII5,
|
||||
SGMII6,
|
||||
SGMII7,
|
||||
SGMII8,
|
||||
SGMII9,
|
||||
SGMII10,
|
||||
SGMII11,
|
||||
SGMII12,
|
||||
SGMII13,
|
||||
SGMII14,
|
||||
SGMII15,
|
||||
SGMII16,
|
||||
SGMII17,
|
||||
SGMII18,
|
||||
QSGMII_A,
|
||||
QSGMII_B,
|
||||
QSGMII_C,
|
||||
QSGMII_D,
|
||||
SGMII_T1,
|
||||
SGMII_T2,
|
||||
SGMII_T3,
|
||||
SGMII_T4,
|
||||
SXGMII1,
|
||||
SXGMII2,
|
||||
SXGMII3,
|
||||
SXGMII4,
|
||||
QXGMII1,
|
||||
QXGMII2,
|
||||
QXGMII3,
|
||||
QXGMII4,
|
||||
_25GE1,
|
||||
_25GE2,
|
||||
_25GE3,
|
||||
_25GE4,
|
||||
_25GE5,
|
||||
_25GE6,
|
||||
_25GE7,
|
||||
_25GE8,
|
||||
_25GE9,
|
||||
_25GE10,
|
||||
_40GE1,
|
||||
_40GE2,
|
||||
_50GE1,
|
||||
_50GE2,
|
||||
_100GE1,
|
||||
_100GE2,
|
||||
SERDES_PRCTL_COUNT
|
||||
};
|
||||
|
||||
enum srds {
|
||||
FSL_SRDS_1 = 0,
|
||||
FSL_SRDS_2 = 1,
|
||||
NXP_SRDS_3 = 2,
|
||||
};
|
||||
#elif defined(CONFIG_FSL_LSCH2)
|
||||
enum srds_prtcl {
|
||||
/*
|
||||
* Nobody will check whether the device 'NONE' has been configured,
|
||||
* So use it to indicate if the serdes_prtcl_map has been initialized.
|
||||
*/
|
||||
NONE = 0,
|
||||
PCIE1,
|
||||
PCIE2,
|
||||
PCIE3,
|
||||
PCIE4,
|
||||
SATA1,
|
||||
SATA2,
|
||||
SRIO1,
|
||||
SRIO2,
|
||||
SGMII_FM1_DTSEC1,
|
||||
SGMII_FM1_DTSEC2,
|
||||
SGMII_FM1_DTSEC3,
|
||||
SGMII_FM1_DTSEC4,
|
||||
SGMII_FM1_DTSEC5,
|
||||
SGMII_FM1_DTSEC6,
|
||||
SGMII_FM1_DTSEC9,
|
||||
SGMII_FM1_DTSEC10,
|
||||
SGMII_FM2_DTSEC1,
|
||||
SGMII_FM2_DTSEC2,
|
||||
SGMII_FM2_DTSEC3,
|
||||
SGMII_FM2_DTSEC4,
|
||||
SGMII_FM2_DTSEC5,
|
||||
SGMII_FM2_DTSEC6,
|
||||
SGMII_FM2_DTSEC9,
|
||||
SGMII_FM2_DTSEC10,
|
||||
SGMII_TSEC1,
|
||||
SGMII_TSEC2,
|
||||
SGMII_TSEC3,
|
||||
SGMII_TSEC4,
|
||||
XAUI_FM1,
|
||||
XAUI_FM2,
|
||||
AURORA,
|
||||
CPRI1,
|
||||
CPRI2,
|
||||
CPRI3,
|
||||
CPRI4,
|
||||
CPRI5,
|
||||
CPRI6,
|
||||
CPRI7,
|
||||
CPRI8,
|
||||
XAUI_FM1_MAC9,
|
||||
XAUI_FM1_MAC10,
|
||||
XAUI_FM2_MAC9,
|
||||
XAUI_FM2_MAC10,
|
||||
HIGIG_FM1_MAC9,
|
||||
HIGIG_FM1_MAC10,
|
||||
HIGIG_FM2_MAC9,
|
||||
HIGIG_FM2_MAC10,
|
||||
QSGMII_FM1_A, /* A indicates MACs 1,2,5,6 */
|
||||
QSGMII_FM1_B, /* B indicates MACs 5,6,9,10 */
|
||||
QSGMII_FM2_A,
|
||||
QSGMII_FM2_B,
|
||||
XFI_FM1_MAC1,
|
||||
XFI_FM1_MAC2,
|
||||
XFI_FM1_MAC9,
|
||||
XFI_FM1_MAC10,
|
||||
XFI_FM2_MAC9,
|
||||
XFI_FM2_MAC10,
|
||||
INTERLAKEN,
|
||||
QSGMII_SW1_A, /* Indicates ports on L2 Switch */
|
||||
QSGMII_SW1_B,
|
||||
SGMII_2500_FM1_DTSEC1,
|
||||
SGMII_2500_FM1_DTSEC2,
|
||||
SGMII_2500_FM1_DTSEC3,
|
||||
SGMII_2500_FM1_DTSEC4,
|
||||
SGMII_2500_FM1_DTSEC5,
|
||||
SGMII_2500_FM1_DTSEC6,
|
||||
SGMII_2500_FM1_DTSEC9,
|
||||
SGMII_2500_FM1_DTSEC10,
|
||||
SGMII_2500_FM2_DTSEC1,
|
||||
SGMII_2500_FM2_DTSEC2,
|
||||
SGMII_2500_FM2_DTSEC3,
|
||||
SGMII_2500_FM2_DTSEC4,
|
||||
SGMII_2500_FM2_DTSEC5,
|
||||
SGMII_2500_FM2_DTSEC6,
|
||||
SGMII_2500_FM2_DTSEC9,
|
||||
SGMII_2500_FM2_DTSEC10,
|
||||
TX_CLK,
|
||||
SERDES_PRCTL_COUNT
|
||||
};
|
||||
|
||||
enum srds {
|
||||
FSL_SRDS_1 = 0,
|
||||
FSL_SRDS_2 = 1,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
int is_serdes_configured(enum srds_prtcl device);
|
||||
void fsl_serdes_init(void);
|
||||
int serdes_get_first_lane(u32 sd, enum srds_prtcl device);
|
||||
enum srds_prtcl serdes_get_prtcl(int serdes, int cfg, int lane);
|
||||
int is_serdes_prtcl_valid(int serdes, u32 prtcl);
|
||||
int serdes_get_number(int serdes, int cfg);
|
||||
void fsl_rgmii_init(void);
|
||||
|
||||
#ifdef CONFIG_FSL_LSCH2
|
||||
const char *serdes_clock_to_string(u32 clock);
|
||||
int get_serdes_protocol(void);
|
||||
#endif
|
||||
#ifdef CONFIG_SYS_HAS_SERDES
|
||||
/* Get the volt of SVDD in unit mV */
|
||||
int get_serdes_volt(void);
|
||||
/* Set the volt of SVDD in unit mV */
|
||||
int set_serdes_volt(int svdd);
|
||||
/* The target volt of SVDD in unit mV */
|
||||
int setup_serdes_volt(u32 svdd);
|
||||
#endif
|
||||
|
||||
#endif /* __FSL_SERDES_H__ */
|
||||
+709
@@ -0,0 +1,709 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2013-2015 Freescale Semiconductor, Inc.
|
||||
*/
|
||||
|
||||
#ifndef __ARCH_FSL_LSCH2_IMMAP_H__
|
||||
#define __ARCH_FSL_LSCH2_IMMAP_H__
|
||||
|
||||
#include <fsl_immap.h>
|
||||
|
||||
#define CONFIG_SYS_IMMR 0x01000000
|
||||
#define CONFIG_SYS_DCSRBAR 0x20000000
|
||||
#define CONFIG_SYS_DCSR_DCFG_ADDR (CONFIG_SYS_DCSRBAR + 0x00140000)
|
||||
#define CONFIG_SYS_DCSR_COP_CCP_ADDR (CONFIG_SYS_DCSRBAR + 0x02008040)
|
||||
|
||||
#define CONFIG_SYS_FSL_DDR_ADDR (CONFIG_SYS_IMMR + 0x00080000)
|
||||
#define CONFIG_SYS_GIC400_ADDR (CONFIG_SYS_IMMR + 0x00400000)
|
||||
#define CONFIG_SYS_IFC_ADDR (CONFIG_SYS_IMMR + 0x00530000)
|
||||
#define SYS_FSL_QSPI_ADDR (CONFIG_SYS_IMMR + 0x00550000)
|
||||
#define CONFIG_SYS_FSL_ESDHC_ADDR (CONFIG_SYS_IMMR + 0x00560000)
|
||||
#define CONFIG_SYS_FSL_CSU_ADDR (CONFIG_SYS_IMMR + 0x00510000)
|
||||
#define CONFIG_SYS_FSL_GUTS_ADDR (CONFIG_SYS_IMMR + 0x00ee0000)
|
||||
#define CONFIG_SYS_FSL_RST_ADDR (CONFIG_SYS_IMMR + 0x00ee00b0)
|
||||
#define CONFIG_SYS_FSL_SCFG_ADDR (CONFIG_SYS_IMMR + 0x00570000)
|
||||
#define CONFIG_SYS_FSL_BMAN_ADDR (CONFIG_SYS_IMMR + 0x00890000)
|
||||
#define CONFIG_SYS_FSL_QMAN_ADDR (CONFIG_SYS_IMMR + 0x00880000)
|
||||
#define CONFIG_SYS_FSL_FMAN_ADDR (CONFIG_SYS_IMMR + 0x00a00000)
|
||||
#define CONFIG_SYS_FSL_SERDES_ADDR (CONFIG_SYS_IMMR + 0x00ea0000)
|
||||
#define CONFIG_SYS_FSL_DCFG_ADDR (CONFIG_SYS_IMMR + 0x00ee0000)
|
||||
#define CONFIG_SYS_FSL_CLK_ADDR (CONFIG_SYS_IMMR + 0x00ee1000)
|
||||
#define CONFIG_SYS_NS16550_COM1 (CONFIG_SYS_IMMR + 0x011c0500)
|
||||
#define CONFIG_SYS_NS16550_COM2 (CONFIG_SYS_IMMR + 0x011c0600)
|
||||
#define CONFIG_SYS_NS16550_COM3 (CONFIG_SYS_IMMR + 0x011d0500)
|
||||
#define CONFIG_SYS_NS16550_COM4 (CONFIG_SYS_IMMR + 0x011d0600)
|
||||
#define CONFIG_SYS_XHCI_USB1_ADDR (CONFIG_SYS_IMMR + 0x01f00000)
|
||||
#define CONFIG_SYS_XHCI_USB2_ADDR (CONFIG_SYS_IMMR + 0x02000000)
|
||||
#define CONFIG_SYS_XHCI_USB3_ADDR (CONFIG_SYS_IMMR + 0x02100000)
|
||||
#define CONFIG_SYS_EHCI_USB1_ADDR (CONFIG_SYS_IMMR + 0x07600000)
|
||||
#define CONFIG_SYS_PCIE1_ADDR (CONFIG_SYS_IMMR + 0x2400000)
|
||||
#define CONFIG_SYS_PCIE2_ADDR (CONFIG_SYS_IMMR + 0x2500000)
|
||||
#define CONFIG_SYS_PCIE3_ADDR (CONFIG_SYS_IMMR + 0x2600000)
|
||||
#define CONFIG_SYS_SEC_MON_ADDR (CONFIG_SYS_IMMR + 0xe90000)
|
||||
#define CONFIG_SYS_SFP_ADDR (CONFIG_SYS_IMMR + 0xe80200)
|
||||
|
||||
#define CONFIG_SYS_BMAN_NUM_PORTALS 10
|
||||
#define CONFIG_SYS_BMAN_MEM_BASE 0x508000000
|
||||
#define CONFIG_SYS_BMAN_MEM_PHYS (0xf00000000ull + \
|
||||
CONFIG_SYS_BMAN_MEM_BASE)
|
||||
#define CONFIG_SYS_BMAN_MEM_SIZE 0x08000000
|
||||
#define CONFIG_SYS_BMAN_SP_CENA_SIZE 0x10000
|
||||
#define CONFIG_SYS_BMAN_SP_CINH_SIZE 0x10000
|
||||
#define CONFIG_SYS_BMAN_CENA_BASE CONFIG_SYS_BMAN_MEM_BASE
|
||||
#define CONFIG_SYS_BMAN_CENA_SIZE (CONFIG_SYS_BMAN_MEM_SIZE >> 1)
|
||||
#define CONFIG_SYS_BMAN_CINH_BASE (CONFIG_SYS_BMAN_MEM_BASE + \
|
||||
CONFIG_SYS_BMAN_CENA_SIZE)
|
||||
#define CONFIG_SYS_BMAN_CINH_SIZE (CONFIG_SYS_BMAN_MEM_SIZE >> 1)
|
||||
#define CONFIG_SYS_BMAN_SWP_ISDR_REG 0x3E80
|
||||
#define CONFIG_SYS_QMAN_NUM_PORTALS 10
|
||||
#define CONFIG_SYS_QMAN_MEM_BASE 0x500000000
|
||||
#define CONFIG_SYS_QMAN_MEM_PHYS CONFIG_SYS_QMAN_MEM_BASE
|
||||
#define CONFIG_SYS_QMAN_MEM_SIZE 0x08000000
|
||||
#define CONFIG_SYS_QMAN_SP_CENA_SIZE 0x10000
|
||||
#define CONFIG_SYS_QMAN_SP_CINH_SIZE 0x10000
|
||||
#define CONFIG_SYS_QMAN_CENA_BASE CONFIG_SYS_QMAN_MEM_BASE
|
||||
#define CONFIG_SYS_QMAN_CENA_SIZE (CONFIG_SYS_QMAN_MEM_SIZE >> 1)
|
||||
#define CONFIG_SYS_QMAN_CINH_BASE (CONFIG_SYS_QMAN_MEM_BASE + \
|
||||
CONFIG_SYS_QMAN_CENA_SIZE)
|
||||
#define CONFIG_SYS_QMAN_CINH_SIZE (CONFIG_SYS_QMAN_MEM_SIZE >> 1)
|
||||
#define CONFIG_SYS_QMAN_SWP_ISDR_REG 0x3680
|
||||
|
||||
#define CONFIG_SYS_FSL_TIMER_ADDR 0x02b00000
|
||||
|
||||
#define I2C1_BASE_ADDR (CONFIG_SYS_IMMR + 0x01180000)
|
||||
#define I2C2_BASE_ADDR (CONFIG_SYS_IMMR + 0x01190000)
|
||||
#define I2C3_BASE_ADDR (CONFIG_SYS_IMMR + 0x011a0000)
|
||||
#define I2C4_BASE_ADDR (CONFIG_SYS_IMMR + 0x011b0000)
|
||||
|
||||
#define WDOG1_BASE_ADDR (CONFIG_SYS_IMMR + 0x01ad0000)
|
||||
|
||||
#define QSPI0_BASE_ADDR (CONFIG_SYS_IMMR + 0x00550000)
|
||||
#define DSPI1_BASE_ADDR (CONFIG_SYS_IMMR + 0x01100000)
|
||||
|
||||
#define GPIO1_BASE_ADDR (CONFIG_SYS_IMMR + 0x1300000)
|
||||
#define GPIO2_BASE_ADDR (CONFIG_SYS_IMMR + 0x1310000)
|
||||
#define GPIO3_BASE_ADDR (CONFIG_SYS_IMMR + 0x1320000)
|
||||
#define GPIO4_BASE_ADDR (CONFIG_SYS_IMMR + 0x1330000)
|
||||
|
||||
#define QE_BASE_ADDR (CONFIG_SYS_IMMR + 0x1400000)
|
||||
|
||||
#define LPUART_BASE (CONFIG_SYS_IMMR + 0x01950000)
|
||||
|
||||
#define EDMA_BASE_ADDR (CONFIG_SYS_IMMR + 0x01c00000)
|
||||
|
||||
#define AHCI_BASE_ADDR (CONFIG_SYS_IMMR + 0x02200000)
|
||||
|
||||
#define QDMA_BASE_ADDR (CONFIG_SYS_IMMR + 0x07380000)
|
||||
#define QMAN_CQSIDR_REG 0x20a80
|
||||
|
||||
#define CONFIG_SYS_PCIE1_PHYS_ADDR 0x4000000000ULL
|
||||
#define CONFIG_SYS_PCIE2_PHYS_ADDR 0x4800000000ULL
|
||||
#define CONFIG_SYS_PCIE3_PHYS_ADDR 0x5000000000ULL
|
||||
/* LUT registers */
|
||||
#ifdef CONFIG_ARCH_LS1012A
|
||||
#define PCIE_LUT_BASE 0xC0000
|
||||
#else
|
||||
#define PCIE_LUT_BASE 0x10000
|
||||
#endif
|
||||
#define PCIE_LUT_LCTRL0 0x7F8
|
||||
#define PCIE_LUT_DBG 0x7FC
|
||||
|
||||
/* TZ Address Space Controller Definitions */
|
||||
#define TZASC1_BASE 0x01100000 /* as per CCSR map. */
|
||||
#define TZASC2_BASE 0x01110000 /* as per CCSR map. */
|
||||
#define TZASC3_BASE 0x01120000 /* as per CCSR map. */
|
||||
#define TZASC4_BASE 0x01130000 /* as per CCSR map. */
|
||||
#define TZASC_BUILD_CONFIG_REG(x) ((TZASC1_BASE + (x * 0x10000)))
|
||||
#define TZASC_ACTION_REG(x) ((TZASC1_BASE + (x * 0x10000)) + 0x004)
|
||||
#define TZASC_GATE_KEEPER(x) ((TZASC1_BASE + (x * 0x10000)) + 0x008)
|
||||
#define TZASC_REGION_BASE_LOW_0(x) ((TZASC1_BASE + (x * 0x10000)) + 0x100)
|
||||
#define TZASC_REGION_BASE_HIGH_0(x) ((TZASC1_BASE + (x * 0x10000)) + 0x104)
|
||||
#define TZASC_REGION_TOP_LOW_0(x) ((TZASC1_BASE + (x * 0x10000)) + 0x108)
|
||||
#define TZASC_REGION_TOP_HIGH_0(x) ((TZASC1_BASE + (x * 0x10000)) + 0x10C)
|
||||
#define TZASC_REGION_ATTRIBUTES_0(x) ((TZASC1_BASE + (x * 0x10000)) + 0x110)
|
||||
#define TZASC_REGION_ID_ACCESS_0(x) ((TZASC1_BASE + (x * 0x10000)) + 0x114)
|
||||
|
||||
#define TP_ITYP_AV 0x00000001 /* Initiator available */
|
||||
#define TP_ITYP_TYPE(x) (((x) & 0x6) >> 1) /* Initiator Type */
|
||||
#define TP_ITYP_TYPE_ARM 0x0
|
||||
#define TP_ITYP_TYPE_PPC 0x1 /* PowerPC */
|
||||
#define TP_ITYP_TYPE_OTHER 0x2 /* StarCore DSP */
|
||||
#define TP_ITYP_TYPE_HA 0x3 /* HW Accelerator */
|
||||
#define TP_ITYP_THDS(x) (((x) & 0x18) >> 3) /* # threads */
|
||||
#define TP_ITYP_VER(x) (((x) & 0xe0) >> 5) /* Initiator Version */
|
||||
#define TY_ITYP_VER_A7 0x1
|
||||
#define TY_ITYP_VER_A53 0x2
|
||||
#define TY_ITYP_VER_A57 0x3
|
||||
#define TY_ITYP_VER_A72 0x4
|
||||
|
||||
#define TP_CLUSTER_EOC 0xc0000000 /* end of clusters */
|
||||
#define TP_CLUSTER_INIT_MASK 0x0000003f /* initiator mask */
|
||||
#define TP_INIT_PER_CLUSTER 4
|
||||
|
||||
/*
|
||||
* Define default values for some CCSR macros to make header files cleaner*
|
||||
*
|
||||
* To completely disable CCSR relocation in a board header file, define
|
||||
* CONFIG_SYS_CCSR_DO_NOT_RELOCATE. This will force CONFIG_SYS_CCSRBAR_PHYS
|
||||
* to a value that is the same as CONFIG_SYS_CCSRBAR.
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_SYS_CCSRBAR_PHYS
|
||||
#error "Do not define CONFIG_SYS_CCSRBAR_PHYS directly. Use \
|
||||
CONFIG_SYS_CCSRBAR_PHYS_LOW and/or CONFIG_SYS_CCSRBAR_PHYS_HIGH instead."
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SYS_CCSR_DO_NOT_RELOCATE
|
||||
#undef CONFIG_SYS_CCSRBAR_PHYS_HIGH
|
||||
#undef CONFIG_SYS_CCSRBAR_PHYS_LOW
|
||||
#define CONFIG_SYS_CCSRBAR_PHYS_HIGH 0
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_SYS_CCSRBAR
|
||||
#define CONFIG_SYS_CCSRBAR 0x01000000
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_SYS_CCSRBAR_PHYS_HIGH
|
||||
#define CONFIG_SYS_CCSRBAR_PHYS_HIGH 0
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_SYS_CCSRBAR_PHYS_LOW
|
||||
#define CONFIG_SYS_CCSRBAR_PHYS_LOW 0x01000000
|
||||
#endif
|
||||
|
||||
#define CONFIG_SYS_CCSRBAR_PHYS ((CONFIG_SYS_CCSRBAR_PHYS_HIGH * 1ull) << 32 | \
|
||||
CONFIG_SYS_CCSRBAR_PHYS_LOW)
|
||||
|
||||
struct sys_info {
|
||||
unsigned long freq_processor[CONFIG_MAX_CPUS];
|
||||
/* frequency of platform PLL */
|
||||
unsigned long freq_systembus;
|
||||
unsigned long freq_ddrbus;
|
||||
unsigned long freq_localbus;
|
||||
unsigned long freq_cga_m2;
|
||||
#ifdef CONFIG_SYS_DPAA_FMAN
|
||||
unsigned long freq_fman[CONFIG_SYS_NUM_FMAN];
|
||||
#endif
|
||||
unsigned long freq_qman;
|
||||
};
|
||||
|
||||
#define CONFIG_SYS_FSL_FM1_OFFSET 0xa00000
|
||||
#define CONFIG_SYS_FSL_FM1_RX0_1G_OFFSET 0xa88000
|
||||
#define CONFIG_SYS_FSL_FM1_RX1_1G_OFFSET 0xa89000
|
||||
#define CONFIG_SYS_FSL_FM1_RX2_1G_OFFSET 0xa8a000
|
||||
#define CONFIG_SYS_FSL_FM1_RX3_1G_OFFSET 0xa8b000
|
||||
#define CONFIG_SYS_FSL_FM1_RX4_1G_OFFSET 0xa8c000
|
||||
#define CONFIG_SYS_FSL_FM1_RX5_1G_OFFSET 0xa8d000
|
||||
|
||||
#define CONFIG_SYS_FSL_FM1_DTSEC1_OFFSET 0xae0000
|
||||
#define CONFIG_SYS_FSL_FM1_ADDR \
|
||||
(CONFIG_SYS_IMMR + CONFIG_SYS_FSL_FM1_OFFSET)
|
||||
#define CONFIG_SYS_FSL_FM1_DTSEC1_ADDR \
|
||||
(CONFIG_SYS_IMMR + CONFIG_SYS_FSL_FM1_DTSEC1_OFFSET)
|
||||
|
||||
#define CONFIG_SYS_FSL_SEC_OFFSET 0x700000ull
|
||||
#define CONFIG_SYS_FSL_JR0_OFFSET 0x710000ull
|
||||
#define FSL_SEC_JR0_OFFSET CONFIG_SYS_FSL_JR0_OFFSET
|
||||
#define FSL_SEC_JR1_OFFSET 0x720000ull
|
||||
#define FSL_SEC_JR2_OFFSET 0x730000ull
|
||||
#define FSL_SEC_JR3_OFFSET 0x740000ull
|
||||
#define CONFIG_SYS_FSL_SEC_ADDR \
|
||||
(CONFIG_SYS_IMMR + CONFIG_SYS_FSL_SEC_OFFSET)
|
||||
#define CONFIG_SYS_FSL_JR0_ADDR \
|
||||
(CONFIG_SYS_IMMR + CONFIG_SYS_FSL_JR0_OFFSET)
|
||||
#define FSL_SEC_JR0_BASE_ADDR (CONFIG_SYS_IMMR + FSL_SEC_JR0_OFFSET)
|
||||
#define FSL_SEC_JR1_BASE_ADDR (CONFIG_SYS_IMMR + FSL_SEC_JR1_OFFSET)
|
||||
#define FSL_SEC_JR2_BASE_ADDR (CONFIG_SYS_IMMR + FSL_SEC_JR2_OFFSET)
|
||||
#define FSL_SEC_JR3_BASE_ADDR (CONFIG_SYS_IMMR + FSL_SEC_JR3_OFFSET)
|
||||
|
||||
/* Device Configuration and Pin Control */
|
||||
#define DCFG_DCSR_PORCR1 0x0
|
||||
#define DCFG_DCSR_ECCCR2 0x524
|
||||
#define DISABLE_PFE_ECC BIT(13)
|
||||
|
||||
struct ccsr_gur {
|
||||
u32 porsr1; /* POR status 1 */
|
||||
#define FSL_CHASSIS2_CCSR_PORSR1_RCW_MASK 0xFF800000
|
||||
u32 porsr2; /* POR status 2 */
|
||||
u8 res_008[0x20-0x8];
|
||||
u32 gpporcr1; /* General-purpose POR configuration */
|
||||
u32 gpporcr2;
|
||||
#define FSL_CHASSIS2_DCFG_FUSESR_VID_SHIFT 25
|
||||
#define FSL_CHASSIS2_DCFG_FUSESR_VID_MASK 0x1F
|
||||
#define FSL_CHASSIS2_DCFG_FUSESR_ALTVID_SHIFT 20
|
||||
#define FSL_CHASSIS2_DCFG_FUSESR_ALTVID_MASK 0x1F
|
||||
u32 dcfg_fusesr; /* Fuse status register */
|
||||
u8 res_02c[0x70-0x2c];
|
||||
u32 devdisr; /* Device disable control */
|
||||
#define FSL_CHASSIS2_DEVDISR2_DTSEC1_1 0x80000000
|
||||
#define FSL_CHASSIS2_DEVDISR2_DTSEC1_2 0x40000000
|
||||
#define FSL_CHASSIS2_DEVDISR2_DTSEC1_3 0x20000000
|
||||
#define FSL_CHASSIS2_DEVDISR2_DTSEC1_4 0x10000000
|
||||
#define FSL_CHASSIS2_DEVDISR2_DTSEC1_5 0x08000000
|
||||
#define FSL_CHASSIS2_DEVDISR2_DTSEC1_6 0x04000000
|
||||
#define FSL_CHASSIS2_DEVDISR2_DTSEC1_9 0x00800000
|
||||
#define FSL_CHASSIS2_DEVDISR2_DTSEC1_10 0x00400000
|
||||
#define FSL_CHASSIS2_DEVDISR2_10GEC1_1 0x00800000
|
||||
#define FSL_CHASSIS2_DEVDISR2_10GEC1_2 0x00400000
|
||||
#define FSL_CHASSIS2_DEVDISR2_10GEC1_3 0x80000000
|
||||
#define FSL_CHASSIS2_DEVDISR2_10GEC1_4 0x40000000
|
||||
u32 devdisr2; /* Device disable control 2 */
|
||||
u32 devdisr3; /* Device disable control 3 */
|
||||
u32 devdisr4; /* Device disable control 4 */
|
||||
u32 devdisr5; /* Device disable control 5 */
|
||||
u32 devdisr6; /* Device disable control 6 */
|
||||
u32 devdisr7; /* Device disable control 7 */
|
||||
u8 res_08c[0x94-0x8c];
|
||||
u32 coredisru; /* uppper portion for support of 64 cores */
|
||||
u32 coredisrl; /* lower portion for support of 64 cores */
|
||||
u8 res_09c[0xa0-0x9c];
|
||||
u32 pvr; /* Processor version */
|
||||
u32 svr; /* System version */
|
||||
u32 mvr; /* Manufacturing version */
|
||||
u8 res_0ac[0xb0-0xac];
|
||||
u32 rstcr; /* Reset control */
|
||||
u32 rstrqpblsr; /* Reset request preboot loader status */
|
||||
u8 res_0b8[0xc0-0xb8];
|
||||
u32 rstrqmr1; /* Reset request mask */
|
||||
u8 res_0c4[0xc8-0xc4];
|
||||
u32 rstrqsr1; /* Reset request status */
|
||||
u8 res_0cc[0xd4-0xcc];
|
||||
u32 rstrqwdtmrl; /* Reset request WDT mask */
|
||||
u8 res_0d8[0xdc-0xd8];
|
||||
u32 rstrqwdtsrl; /* Reset request WDT status */
|
||||
u8 res_0e0[0xe4-0xe0];
|
||||
u32 brrl; /* Boot release */
|
||||
u8 res_0e8[0x100-0xe8];
|
||||
u32 rcwsr[16]; /* Reset control word status */
|
||||
#define FSL_CHASSIS2_RCWSR0_SYS_PLL_RAT_SHIFT 25
|
||||
#define FSL_CHASSIS2_RCWSR0_SYS_PLL_RAT_MASK 0x1f
|
||||
#define FSL_CHASSIS2_RCWSR0_MEM_PLL_RAT_SHIFT 16
|
||||
#define FSL_CHASSIS2_RCWSR0_MEM_PLL_RAT_MASK 0x3f
|
||||
#define FSL_CHASSIS2_RCWSR4_SRDS1_PRTCL_MASK 0xffff0000
|
||||
#define FSL_CHASSIS2_RCWSR4_SRDS1_PRTCL_SHIFT 16
|
||||
#define FSL_CHASSIS2_RCWSR4_SRDS2_PRTCL_MASK 0x0000ffff
|
||||
#define FSL_CHASSIS2_RCWSR4_SRDS2_PRTCL_SHIFT 0
|
||||
#define RCW_SB_EN_REG_INDEX 7
|
||||
#define RCW_SB_EN_MASK 0x00200000
|
||||
|
||||
u8 res_140[0x200-0x140];
|
||||
u32 scratchrw[4]; /* Scratch Read/Write */
|
||||
u8 res_210[0x300-0x210];
|
||||
u32 scratchw1r[4]; /* Scratch Read (Write once) */
|
||||
u8 res_310[0x400-0x310];
|
||||
u32 crstsr[12];
|
||||
u8 res_430[0x500-0x430];
|
||||
|
||||
/* PCI Express n Logical I/O Device Number register */
|
||||
u32 dcfg_ccsr_pex1liodnr;
|
||||
u32 dcfg_ccsr_pex2liodnr;
|
||||
u32 dcfg_ccsr_pex3liodnr;
|
||||
u32 dcfg_ccsr_pex4liodnr;
|
||||
/* RIO n Logical I/O Device Number register */
|
||||
u32 dcfg_ccsr_rio1liodnr;
|
||||
u32 dcfg_ccsr_rio2liodnr;
|
||||
u32 dcfg_ccsr_rio3liodnr;
|
||||
u32 dcfg_ccsr_rio4liodnr;
|
||||
/* USB Logical I/O Device Number register */
|
||||
u32 dcfg_ccsr_usb1liodnr;
|
||||
u32 dcfg_ccsr_usb2liodnr;
|
||||
u32 dcfg_ccsr_usb3liodnr;
|
||||
u32 dcfg_ccsr_usb4liodnr;
|
||||
/* SD/MMC Logical I/O Device Number register */
|
||||
u32 dcfg_ccsr_sdmmc1liodnr;
|
||||
u32 dcfg_ccsr_sdmmc2liodnr;
|
||||
u32 dcfg_ccsr_sdmmc3liodnr;
|
||||
u32 dcfg_ccsr_sdmmc4liodnr;
|
||||
/* RIO Message Unit Logical I/O Device Number register */
|
||||
u32 dcfg_ccsr_riomaintliodnr;
|
||||
|
||||
u8 res_544[0x550-0x544];
|
||||
u32 sataliodnr[4];
|
||||
u8 res_560[0x570-0x560];
|
||||
|
||||
u32 dcfg_ccsr_misc1liodnr;
|
||||
u32 dcfg_ccsr_misc2liodnr;
|
||||
u32 dcfg_ccsr_misc3liodnr;
|
||||
u32 dcfg_ccsr_misc4liodnr;
|
||||
u32 dcfg_ccsr_dma1liodnr;
|
||||
u32 dcfg_ccsr_dma2liodnr;
|
||||
u32 dcfg_ccsr_dma3liodnr;
|
||||
u32 dcfg_ccsr_dma4liodnr;
|
||||
u32 dcfg_ccsr_spare1liodnr;
|
||||
u32 dcfg_ccsr_spare2liodnr;
|
||||
u32 dcfg_ccsr_spare3liodnr;
|
||||
u32 dcfg_ccsr_spare4liodnr;
|
||||
u8 res_5a0[0x600-0x5a0];
|
||||
u32 dcfg_ccsr_pblsr;
|
||||
|
||||
u32 pamubypenr;
|
||||
u32 dmacr1;
|
||||
|
||||
u8 res_60c[0x610-0x60c];
|
||||
u32 dcfg_ccsr_gensr1;
|
||||
u32 dcfg_ccsr_gensr2;
|
||||
u32 dcfg_ccsr_gensr3;
|
||||
u32 dcfg_ccsr_gensr4;
|
||||
u32 dcfg_ccsr_gencr1;
|
||||
u32 dcfg_ccsr_gencr2;
|
||||
u32 dcfg_ccsr_gencr3;
|
||||
u32 dcfg_ccsr_gencr4;
|
||||
u32 dcfg_ccsr_gencr5;
|
||||
u32 dcfg_ccsr_gencr6;
|
||||
u32 dcfg_ccsr_gencr7;
|
||||
u8 res_63c[0x658-0x63c];
|
||||
u32 dcfg_ccsr_cgensr1;
|
||||
u32 dcfg_ccsr_cgensr0;
|
||||
u8 res_660[0x678-0x660];
|
||||
u32 dcfg_ccsr_cgencr1;
|
||||
|
||||
u32 dcfg_ccsr_cgencr0;
|
||||
u8 res_680[0x700-0x680];
|
||||
u32 dcfg_ccsr_sriopstecr;
|
||||
u32 dcfg_ccsr_dcsrcr;
|
||||
|
||||
u8 res_708[0x740-0x708]; /* add more registers when needed */
|
||||
u32 tp_ityp[64]; /* Topology Initiator Type Register */
|
||||
struct {
|
||||
u32 upper;
|
||||
u32 lower;
|
||||
} tp_cluster[16];
|
||||
u8 res_8c0[0xa00-0x8c0]; /* add more registers when needed */
|
||||
u32 dcfg_ccsr_qmbm_warmrst;
|
||||
u8 res_a04[0xa20-0xa04]; /* add more registers when needed */
|
||||
u32 dcfg_ccsr_reserved0;
|
||||
u32 dcfg_ccsr_reserved1;
|
||||
};
|
||||
|
||||
#define SCFG_QSPI_CLKSEL 0x40100000
|
||||
#define SCFG_USBDRVVBUS_SELCR_USB1 0x00000000
|
||||
#define SCFG_USBDRVVBUS_SELCR_USB2 0x00000001
|
||||
#define SCFG_USBDRVVBUS_SELCR_USB3 0x00000002
|
||||
#define SCFG_USBPWRFAULT_INACTIVE 0x00000000
|
||||
#define SCFG_USBPWRFAULT_SHARED 0x00000001
|
||||
#define SCFG_USBPWRFAULT_DEDICATED 0x00000002
|
||||
#define SCFG_USBPWRFAULT_USB3_SHIFT 4
|
||||
#define SCFG_USBPWRFAULT_USB2_SHIFT 2
|
||||
#define SCFG_USBPWRFAULT_USB1_SHIFT 0
|
||||
|
||||
#define SCFG_BASE 0x01570000
|
||||
#define SCFG_USB3PRM1CR_USB1 0x070
|
||||
#define SCFG_USB3PRM2CR_USB1 0x074
|
||||
#define SCFG_USB3PRM1CR_USB2 0x07C
|
||||
#define SCFG_USB3PRM2CR_USB2 0x080
|
||||
#define SCFG_USB3PRM1CR_USB3 0x088
|
||||
#define SCFG_USB3PRM2CR_USB3 0x08c
|
||||
#define SCFG_USB_TXVREFTUNE 0x9
|
||||
#define SCFG_USB_SQRXTUNE_MASK 0x7
|
||||
#define SCFG_USB_PCSTXSWINGFULL 0x47
|
||||
#define SCFG_USB_PHY1 0x084F0000
|
||||
#define SCFG_USB_PHY2 0x08500000
|
||||
#define SCFG_USB_PHY3 0x08510000
|
||||
#define SCFG_USB_PHY_RX_OVRD_IN_HI 0x200c
|
||||
#define USB_PHY_RX_EQ_VAL_1 0x0000
|
||||
#define USB_PHY_RX_EQ_VAL_2 0x0080
|
||||
#define USB_PHY_RX_EQ_VAL_3 0x0380
|
||||
#define USB_PHY_RX_EQ_VAL_4 0x0b80
|
||||
|
||||
#define SCFG_SNPCNFGCR_SECRDSNP 0x80000000
|
||||
#define SCFG_SNPCNFGCR_SECWRSNP 0x40000000
|
||||
#define SCFG_SNPCNFGCR_SATARDSNP 0x00800000
|
||||
#define SCFG_SNPCNFGCR_SATAWRSNP 0x00400000
|
||||
#define SCFG_SNPCNFGCR_USB1RDSNP 0x00200000
|
||||
#define SCFG_SNPCNFGCR_USB1WRSNP 0x00100000
|
||||
#define SCFG_SNPCNFGCR_USB2RDSNP 0x00008000
|
||||
#define SCFG_SNPCNFGCR_USB2WRSNP 0x00010000
|
||||
#define SCFG_SNPCNFGCR_USB3RDSNP 0x00002000
|
||||
#define SCFG_SNPCNFGCR_USB3WRSNP 0x00004000
|
||||
|
||||
/* RGMIIPCR bit definitions*/
|
||||
#define SCFG_RGMIIPCR_EN_AUTO BIT(3)
|
||||
#define SCFG_RGMIIPCR_SETSP_1000M BIT(2)
|
||||
#define SCFG_RGMIIPCR_SETSP_100M 0
|
||||
#define SCFG_RGMIIPCR_SETSP_10M BIT(1)
|
||||
#define SCFG_RGMIIPCR_SETFD BIT(0)
|
||||
|
||||
/* PFEASBCR bit definitions */
|
||||
#define SCFG_PFEASBCR_ARCACHE0 BIT(31)
|
||||
#define SCFG_PFEASBCR_AWCACHE0 BIT(30)
|
||||
#define SCFG_PFEASBCR_ARCACHE1 BIT(29)
|
||||
#define SCFG_PFEASBCR_AWCACHE1 BIT(28)
|
||||
#define SCFG_PFEASBCR_ARSNP BIT(27)
|
||||
#define SCFG_PFEASBCR_AWSNP BIT(26)
|
||||
|
||||
/* WR_QoS1 PFE bit definitions */
|
||||
#define SCFG_WR_QOS1_PFE1_QOS GENMASK(27, 24)
|
||||
#define SCFG_WR_QOS1_PFE2_QOS GENMASK(23, 20)
|
||||
|
||||
/* RD_QoS1 PFE bit definitions */
|
||||
#define SCFG_RD_QOS1_PFE1_QOS GENMASK(27, 24)
|
||||
#define SCFG_RD_QOS1_PFE2_QOS GENMASK(23, 20)
|
||||
|
||||
/* Supplemental Configuration Unit */
|
||||
struct ccsr_scfg {
|
||||
u8 res_000[0x100-0x000];
|
||||
u32 usb2_icid;
|
||||
u32 usb3_icid;
|
||||
u8 res_108[0x114-0x108];
|
||||
u32 dma_icid;
|
||||
u32 sata_icid;
|
||||
u32 usb1_icid;
|
||||
u32 qe_icid;
|
||||
u32 sdhc_icid;
|
||||
u32 edma_icid;
|
||||
u32 etr_icid;
|
||||
u32 core_sft_rst[4];
|
||||
u8 res_140[0x158-0x140];
|
||||
u32 altcbar;
|
||||
u32 qspi_cfg;
|
||||
u8 res_160[0x164 - 0x160];
|
||||
u32 wr_qos1;
|
||||
u32 wr_qos2;
|
||||
u32 rd_qos1;
|
||||
u32 rd_qos2;
|
||||
u8 res_174[0x180 - 0x174];
|
||||
u32 dmamcr;
|
||||
u8 res_184[0x188-0x184];
|
||||
u32 gic_align;
|
||||
u32 debug_icid;
|
||||
u8 res_190[0x1a4-0x190];
|
||||
u32 snpcnfgcr;
|
||||
u8 res_1a8[0x1ac-0x1a8];
|
||||
u32 intpcr;
|
||||
u8 res_1b0[0x204-0x1b0];
|
||||
u32 coresrencr;
|
||||
u8 res_208[0x220-0x208];
|
||||
u32 rvbar0_0;
|
||||
u32 rvbar0_1;
|
||||
u32 rvbar1_0;
|
||||
u32 rvbar1_1;
|
||||
u32 rvbar2_0;
|
||||
u32 rvbar2_1;
|
||||
u32 rvbar3_0;
|
||||
u32 rvbar3_1;
|
||||
u32 lpmcsr;
|
||||
u8 res_244[0x400-0x244];
|
||||
u32 qspidqscr;
|
||||
u32 ecgtxcmcr;
|
||||
u32 sdhciovselcr;
|
||||
u32 rcwpmuxcr0;
|
||||
u32 usbdrvvbus_selcr;
|
||||
u32 usbpwrfault_selcr;
|
||||
u32 usb_refclk_selcr1;
|
||||
u32 usb_refclk_selcr2;
|
||||
u32 usb_refclk_selcr3;
|
||||
u8 res_424[0x434 - 0x424];
|
||||
u32 rgmiipcr;
|
||||
u32 res_438;
|
||||
u32 rgmiipsr;
|
||||
u32 pfepfcssr1;
|
||||
u32 pfeintencr1;
|
||||
u32 pfepfcssr2;
|
||||
u32 pfeintencr2;
|
||||
u32 pfeerrcr;
|
||||
u32 pfeeerrintencr;
|
||||
u32 pfeasbcr;
|
||||
u32 pfebsbcr;
|
||||
u8 res_460[0x484 - 0x460];
|
||||
u32 mdioselcr;
|
||||
u8 res_468[0x600 - 0x488];
|
||||
u32 scratchrw[4];
|
||||
u8 res_610[0x680-0x610];
|
||||
u32 corebcr;
|
||||
u8 res_684[0x1000-0x684];
|
||||
u32 pex1msiir;
|
||||
u32 pex1msir;
|
||||
u8 res_1008[0x2000-0x1008];
|
||||
u32 pex2;
|
||||
u32 pex2msir;
|
||||
u8 res_2008[0x3000-0x2008];
|
||||
u32 pex3msiir;
|
||||
u32 pex3msir;
|
||||
};
|
||||
|
||||
/* Clocking */
|
||||
struct ccsr_clk {
|
||||
struct {
|
||||
u32 clkcncsr; /* core cluster n clock control status */
|
||||
u8 res_004[0x0c];
|
||||
u32 clkcghwacsr; /* Clock generator n hardware accelerator */
|
||||
u8 res_014[0x0c];
|
||||
} clkcsr[4];
|
||||
u8 res_040[0x780]; /* 0x100 */
|
||||
struct {
|
||||
u32 pllcngsr;
|
||||
u8 res_804[0x1c];
|
||||
} pllcgsr[2];
|
||||
u8 res_840[0x1c0];
|
||||
u32 clkpcsr; /* 0xa00 Platform clock domain control/status */
|
||||
u8 res_a04[0x1fc];
|
||||
u32 pllpgsr; /* 0xc00 Platform PLL General Status */
|
||||
u8 res_c04[0x1c];
|
||||
u32 plldgsr; /* 0xc20 DDR PLL General Status */
|
||||
u8 res_c24[0x3dc];
|
||||
};
|
||||
|
||||
/* System Counter */
|
||||
struct sctr_regs {
|
||||
u32 cntcr;
|
||||
u32 cntsr;
|
||||
u32 cntcv1;
|
||||
u32 cntcv2;
|
||||
u32 resv1[4];
|
||||
u32 cntfid0;
|
||||
u32 cntfid1;
|
||||
u32 resv2[1002];
|
||||
u32 counterid[12];
|
||||
};
|
||||
|
||||
#define SRDS_MAX_LANES 4
|
||||
struct ccsr_serdes {
|
||||
struct {
|
||||
u32 rstctl; /* Reset Control Register */
|
||||
#define SRDS_RSTCTL_RST 0x80000000
|
||||
#define SRDS_RSTCTL_RSTDONE 0x40000000
|
||||
#define SRDS_RSTCTL_RSTERR 0x20000000
|
||||
#define SRDS_RSTCTL_SWRST 0x10000000
|
||||
#define SRDS_RSTCTL_SDEN 0x00000020
|
||||
#define SRDS_RSTCTL_SDRST_B 0x00000040
|
||||
#define SRDS_RSTCTL_PLLRST_B 0x00000080
|
||||
u32 pllcr0; /* PLL Control Register 0 */
|
||||
#define SRDS_PLLCR0_POFF 0x80000000
|
||||
#define SRDS_PLLCR0_RFCK_SEL_MASK 0x70000000
|
||||
#define SRDS_PLLCR0_RFCK_SEL_100 0x00000000
|
||||
#define SRDS_PLLCR0_RFCK_SEL_125 0x10000000
|
||||
#define SRDS_PLLCR0_RFCK_SEL_156_25 0x20000000
|
||||
#define SRDS_PLLCR0_RFCK_SEL_150 0x30000000
|
||||
#define SRDS_PLLCR0_RFCK_SEL_161_13 0x40000000
|
||||
#define SRDS_PLLCR0_RFCK_SEL_122_88 0x50000000
|
||||
#define SRDS_PLLCR0_PLL_LCK 0x00800000
|
||||
#define SRDS_PLLCR0_FRATE_SEL_MASK 0x000f0000
|
||||
#define SRDS_PLLCR0_FRATE_SEL_5 0x00000000
|
||||
#define SRDS_PLLCR0_FRATE_SEL_3_75 0x00050000
|
||||
#define SRDS_PLLCR0_FRATE_SEL_5_15 0x00060000
|
||||
#define SRDS_PLLCR0_FRATE_SEL_4 0x00070000
|
||||
#define SRDS_PLLCR0_FRATE_SEL_3_12 0x00090000
|
||||
#define SRDS_PLLCR0_FRATE_SEL_3 0x000a0000
|
||||
u32 pllcr1; /* PLL Control Register 1 */
|
||||
#define SRDS_PLLCR1_PLL_BWSEL 0x08000000
|
||||
u32 res_0c; /* 0x00c */
|
||||
u32 pllcr3;
|
||||
u32 pllcr4;
|
||||
u32 pllcr5; /* 0x018 SerDes PLL1 Control 5 */
|
||||
u8 res_1c[0x20-0x1c];
|
||||
} bank[2];
|
||||
u8 res_40[0x90-0x40];
|
||||
u32 srdstcalcr; /* 0x90 TX Calibration Control */
|
||||
u8 res_94[0xa0-0x94];
|
||||
u32 srdsrcalcr; /* 0xa0 RX Calibration Control */
|
||||
u8 res_a4[0xb0-0xa4];
|
||||
u32 srdsgr0; /* 0xb0 General Register 0 */
|
||||
u8 res_b4[0x100-0xb4];
|
||||
struct {
|
||||
u32 lnpssr0; /* 0x100, 0x120, 0x140, 0x160 */
|
||||
u8 res_104[0x120-0x104];
|
||||
} lnpssr[4]; /* Lane A, B, C, D */
|
||||
u8 res_180[0x200-0x180];
|
||||
u32 srdspccr0; /* 0x200 Protocol Configuration 0 */
|
||||
u32 srdspccr1; /* 0x204 Protocol Configuration 1 */
|
||||
u32 srdspccr2; /* 0x208 Protocol Configuration 2 */
|
||||
u32 srdspccr3; /* 0x20c Protocol Configuration 3 */
|
||||
u32 srdspccr4; /* 0x210 Protocol Configuration 4 */
|
||||
u32 srdspccr5; /* 0x214 Protocol Configuration 5 */
|
||||
u32 srdspccr6; /* 0x218 Protocol Configuration 6 */
|
||||
u32 srdspccr7; /* 0x21c Protocol Configuration 7 */
|
||||
u32 srdspccr8; /* 0x220 Protocol Configuration 8 */
|
||||
u32 srdspccr9; /* 0x224 Protocol Configuration 9 */
|
||||
u32 srdspccra; /* 0x228 Protocol Configuration A */
|
||||
u32 srdspccrb; /* 0x22c Protocol Configuration B */
|
||||
u8 res_230[0x800-0x230];
|
||||
struct {
|
||||
u32 gcr0; /* 0x800 General Control Register 0 */
|
||||
u32 gcr1; /* 0x804 General Control Register 1 */
|
||||
u32 gcr2; /* 0x808 General Control Register 2 */
|
||||
u32 sscr0;
|
||||
u32 recr0; /* 0x810 Receive Equalization Control */
|
||||
u32 recr1;
|
||||
u32 tecr0; /* 0x818 Transmit Equalization Control */
|
||||
u32 sscr1;
|
||||
u32 ttlcr0; /* 0x820 Transition Tracking Loop Ctrl 0 */
|
||||
u8 res_824[0x83c-0x824];
|
||||
u32 tcsr3;
|
||||
} lane[4]; /* Lane A, B, C, D */
|
||||
u8 res_900[0x1000-0x900]; /* from 0x900 to 0xfff */
|
||||
struct {
|
||||
u32 srdspexcr0; /* 0x1000, 0x1040, 0x1080 */
|
||||
u8 res_1004[0x1040-0x1004];
|
||||
} pcie[3];
|
||||
u8 res_10c0[0x1800-0x10c0];
|
||||
struct {
|
||||
u8 res_1800[0x1804-0x1800];
|
||||
u32 srdssgmiicr1; /* 0x1804 SGMII Protocol Control 1 */
|
||||
u8 res_1808[0x180c-0x1808];
|
||||
u32 srdssgmiicr3; /* 0x180c SGMII Protocol Control 3 */
|
||||
} sgmii[4]; /* Lane A, B, C, D */
|
||||
u8 res_1840[0x1880-0x1840];
|
||||
struct {
|
||||
u8 res_1880[0x1884-0x1880];
|
||||
u32 srdsqsgmiicr1; /* 0x1884 QSGMII Protocol Control 1 */
|
||||
u8 res_1888[0x188c-0x1888];
|
||||
u32 srdsqsgmiicr3; /* 0x188c QSGMII Protocol Control 3 */
|
||||
} qsgmii[2]; /* Lane A, B */
|
||||
u8 res_18a0[0x1980-0x18a0];
|
||||
struct {
|
||||
u8 res_1980[0x1984-0x1980];
|
||||
u32 srdsxficr1; /* 0x1984 XFI Protocol Control 1 */
|
||||
u8 res_1988[0x198c-0x1988];
|
||||
u32 srdsxficr3; /* 0x198c XFI Protocol Control 3 */
|
||||
} xfi[2]; /* Lane A, B */
|
||||
u8 res_19a0[0x2000-0x19a0]; /* from 0x19a0 to 0x1fff */
|
||||
};
|
||||
|
||||
struct ccsr_gpio {
|
||||
u32 gpdir;
|
||||
u32 gpodr;
|
||||
u32 gpdat;
|
||||
u32 gpier;
|
||||
u32 gpimr;
|
||||
u32 gpicr;
|
||||
u32 gpibe;
|
||||
};
|
||||
|
||||
/* MMU 500 */
|
||||
#define SMMU_SCR0 (SMMU_BASE + 0x0)
|
||||
#define SMMU_SCR1 (SMMU_BASE + 0x4)
|
||||
#define SMMU_SCR2 (SMMU_BASE + 0x8)
|
||||
#define SMMU_SACR (SMMU_BASE + 0x10)
|
||||
#define SMMU_IDR0 (SMMU_BASE + 0x20)
|
||||
#define SMMU_IDR1 (SMMU_BASE + 0x24)
|
||||
|
||||
#define SMMU_NSCR0 (SMMU_BASE + 0x400)
|
||||
#define SMMU_NSCR2 (SMMU_BASE + 0x408)
|
||||
#define SMMU_NSACR (SMMU_BASE + 0x410)
|
||||
|
||||
#define SCR0_CLIENTPD_MASK 0x00000001
|
||||
#define SCR0_USFCFG_MASK 0x00000400
|
||||
|
||||
#ifdef CONFIG_TFABOOT
|
||||
#define RCW_SRC_MASK (0xFF800000)
|
||||
#define RCW_SRC_BIT 23
|
||||
|
||||
/* RCW SRC NAND */
|
||||
#define RCW_SRC_NAND_MASK (0x100)
|
||||
#define RCW_SRC_NAND_VAL (0x100)
|
||||
#define NAND_RESERVED_MASK (0xFC)
|
||||
#define NAND_RESERVED_1 (0x0)
|
||||
#define NAND_RESERVED_2 (0x80)
|
||||
|
||||
/* RCW SRC NOR */
|
||||
#define RCW_SRC_NOR_MASK (0x1F0)
|
||||
#define NOR_8B_VAL (0x10)
|
||||
#define NOR_16B_VAL (0x20)
|
||||
#define SD_VAL (0x40)
|
||||
#define QSPI_VAL1 (0x44)
|
||||
#define QSPI_VAL2 (0x45)
|
||||
#endif
|
||||
|
||||
uint get_svr(void);
|
||||
|
||||
#endif /* __ARCH_FSL_LSCH2_IMMAP_H__*/
|
||||
+576
@@ -0,0 +1,576 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* LayerScape Internal Memory Map
|
||||
*
|
||||
* Copyright 2017-2019 NXP
|
||||
* Copyright 2014 Freescale Semiconductor, Inc.
|
||||
*/
|
||||
|
||||
#ifndef __ARCH_FSL_LSCH3_IMMAP_H_
|
||||
#define __ARCH_FSL_LSCH3_IMMAP_H_
|
||||
|
||||
#define CONFIG_SYS_IMMR 0x01000000
|
||||
#define CONFIG_SYS_FSL_DDR_ADDR (CONFIG_SYS_IMMR + 0x00080000)
|
||||
#define CONFIG_SYS_FSL_DDR2_ADDR (CONFIG_SYS_IMMR + 0x00090000)
|
||||
#define CONFIG_SYS_FSL_DDR3_ADDR 0x08210000
|
||||
#define CONFIG_SYS_FSL_GUTS_ADDR (CONFIG_SYS_IMMR + 0x00E00000)
|
||||
#define CONFIG_SYS_FSL_PMU_ADDR (CONFIG_SYS_IMMR + 0x00E30000)
|
||||
#ifdef CONFIG_ARCH_LX2160A
|
||||
#define CONFIG_SYS_FSL_RST_ADDR (CONFIG_SYS_IMMR + 0x00e88180)
|
||||
#else
|
||||
#define CONFIG_SYS_FSL_RST_ADDR (CONFIG_SYS_IMMR + 0x00E60000)
|
||||
#endif
|
||||
#define CONFIG_SYS_FSL_CH3_CLK_GRPA_ADDR (CONFIG_SYS_IMMR + 0x00300000)
|
||||
#define CONFIG_SYS_FSL_CH3_CLK_GRPB_ADDR (CONFIG_SYS_IMMR + 0x00310000)
|
||||
#define CONFIG_SYS_FSL_CH3_CLK_CTRL_ADDR (CONFIG_SYS_IMMR + 0x00370000)
|
||||
#define SYS_FSL_QSPI_ADDR (CONFIG_SYS_IMMR + 0x010c0000)
|
||||
#define CONFIG_SYS_FSL_ESDHC_ADDR (CONFIG_SYS_IMMR + 0x01140000)
|
||||
#define FSL_ESDHC1_BASE_ADDR CONFIG_SYS_FSL_ESDHC_ADDR
|
||||
#define FSL_ESDHC2_BASE_ADDR (CONFIG_SYS_IMMR + 0x01150000)
|
||||
#ifndef CONFIG_NXP_LSCH3_2
|
||||
#define CONFIG_SYS_IFC_ADDR (CONFIG_SYS_IMMR + 0x01240000)
|
||||
#endif
|
||||
#define CONFIG_SYS_NS16550_COM1 (CONFIG_SYS_IMMR + 0x011C0500)
|
||||
#define CONFIG_SYS_NS16550_COM2 (CONFIG_SYS_IMMR + 0x011C0600)
|
||||
#define SYS_FSL_LS2080A_LS2085A_TIMER_ADDR 0x023d0000
|
||||
#define CONFIG_SYS_FSL_TIMER_ADDR 0x023e0000
|
||||
#define CONFIG_SYS_FSL_PMU_CLTBENR (CONFIG_SYS_FSL_PMU_ADDR + \
|
||||
0x18A0)
|
||||
#define FSL_PMU_PCTBENR_OFFSET (CONFIG_SYS_FSL_PMU_ADDR + 0x8A0)
|
||||
#define FSL_LSCH3_SVR (CONFIG_SYS_FSL_GUTS_ADDR + 0xA4)
|
||||
|
||||
#define CONFIG_SYS_FSL_WRIOP1_ADDR (CONFIG_SYS_IMMR + 0x7B80000)
|
||||
#define CONFIG_SYS_FSL_WRIOP1_MDIO1 (CONFIG_SYS_FSL_WRIOP1_ADDR + 0x16000)
|
||||
#define CONFIG_SYS_FSL_WRIOP1_MDIO2 (CONFIG_SYS_FSL_WRIOP1_ADDR + 0x17000)
|
||||
#define CONFIG_SYS_FSL_LSCH3_SERDES_ADDR (CONFIG_SYS_IMMR + 0xEA0000)
|
||||
|
||||
#define CONFIG_SYS_FSL_DCSR_DDR_ADDR 0x70012c000ULL
|
||||
#define CONFIG_SYS_FSL_DCSR_DDR2_ADDR 0x70012d000ULL
|
||||
#define CONFIG_SYS_FSL_DCSR_DDR3_ADDR 0x700132000ULL
|
||||
#define CONFIG_SYS_FSL_DCSR_DDR4_ADDR 0x700133000ULL
|
||||
|
||||
#define I2C1_BASE_ADDR (CONFIG_SYS_IMMR + 0x01000000)
|
||||
#define I2C2_BASE_ADDR (CONFIG_SYS_IMMR + 0x01010000)
|
||||
#define I2C3_BASE_ADDR (CONFIG_SYS_IMMR + 0x01020000)
|
||||
#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_GPDIR_ADDR (GPIO4_BASE_ADDR + 0x0)
|
||||
#define GPIO4_GPDAT_ADDR (GPIO4_BASE_ADDR + 0x8)
|
||||
|
||||
#define CONFIG_SYS_XHCI_USB1_ADDR (CONFIG_SYS_IMMR + 0x02100000)
|
||||
#define CONFIG_SYS_XHCI_USB2_ADDR (CONFIG_SYS_IMMR + 0x02110000)
|
||||
|
||||
/* TZ Address Space Controller Definitions */
|
||||
#define TZASC1_BASE 0x01100000 /* as per CCSR map. */
|
||||
#define TZASC2_BASE 0x01110000 /* as per CCSR map. */
|
||||
#define TZASC3_BASE 0x01120000 /* as per CCSR map. */
|
||||
#define TZASC4_BASE 0x01130000 /* as per CCSR map. */
|
||||
#define TZASC_BUILD_CONFIG_REG(x) ((TZASC1_BASE + (x * 0x10000)))
|
||||
#define TZASC_ACTION_REG(x) ((TZASC1_BASE + (x * 0x10000)) + 0x004)
|
||||
#define TZASC_GATE_KEEPER(x) ((TZASC1_BASE + (x * 0x10000)) + 0x008)
|
||||
#define TZASC_REGION_BASE_LOW_0(x) ((TZASC1_BASE + (x * 0x10000)) + 0x100)
|
||||
#define TZASC_REGION_BASE_HIGH_0(x) ((TZASC1_BASE + (x * 0x10000)) + 0x104)
|
||||
#define TZASC_REGION_TOP_LOW_0(x) ((TZASC1_BASE + (x * 0x10000)) + 0x108)
|
||||
#define TZASC_REGION_TOP_HIGH_0(x) ((TZASC1_BASE + (x * 0x10000)) + 0x10C)
|
||||
#define TZASC_REGION_ATTRIBUTES_0(x) ((TZASC1_BASE + (x * 0x10000)) + 0x110)
|
||||
#define TZASC_REGION_ID_ACCESS_0(x) ((TZASC1_BASE + (x * 0x10000)) + 0x114)
|
||||
|
||||
/* EDMA */
|
||||
#define EDMA_BASE_ADDR (CONFIG_SYS_IMMR + 0x012c0000)
|
||||
|
||||
/* SATA */
|
||||
#define AHCI_BASE_ADDR1 (CONFIG_SYS_IMMR + 0x02200000)
|
||||
#define AHCI_BASE_ADDR2 (CONFIG_SYS_IMMR + 0x02210000)
|
||||
#define AHCI_BASE_ADDR3 (CONFIG_SYS_IMMR + 0x02220000)
|
||||
#define AHCI_BASE_ADDR4 (CONFIG_SYS_IMMR + 0x02230000)
|
||||
|
||||
/* QDMA */
|
||||
#define QDMA_BASE_ADDR (CONFIG_SYS_IMMR + 0x07380000)
|
||||
#define QMAN_CQSIDR_REG 0x20a80
|
||||
|
||||
/* DISPLAY */
|
||||
#define DISPLAY_BASE_ADDR (CONFIG_SYS_IMMR + 0x0e080000)
|
||||
|
||||
/* GPU */
|
||||
#define GPU_BASE_ADDR (CONFIG_SYS_IMMR + 0x0e0c0000)
|
||||
|
||||
/* SFP */
|
||||
#define CONFIG_SYS_SFP_ADDR (CONFIG_SYS_IMMR + 0x00e80200)
|
||||
|
||||
/* SEC */
|
||||
#define CONFIG_SYS_FSL_SEC_OFFSET 0x07000000ull
|
||||
#define CONFIG_SYS_FSL_JR0_OFFSET 0x07010000ull
|
||||
#define FSL_SEC_JR0_OFFSET CONFIG_SYS_FSL_JR0_OFFSET
|
||||
#define FSL_SEC_JR1_OFFSET 0x07020000ull
|
||||
#define FSL_SEC_JR2_OFFSET 0x07030000ull
|
||||
#define FSL_SEC_JR3_OFFSET 0x07040000ull
|
||||
#define CONFIG_SYS_FSL_SEC_ADDR \
|
||||
(CONFIG_SYS_IMMR + CONFIG_SYS_FSL_SEC_OFFSET)
|
||||
#define CONFIG_SYS_FSL_JR0_ADDR \
|
||||
(CONFIG_SYS_IMMR + CONFIG_SYS_FSL_JR0_OFFSET)
|
||||
#define FSL_SEC_JR0_BASE_ADDR (CONFIG_SYS_IMMR + FSL_SEC_JR0_OFFSET)
|
||||
#define FSL_SEC_JR1_BASE_ADDR (CONFIG_SYS_IMMR + FSL_SEC_JR1_OFFSET)
|
||||
#define FSL_SEC_JR2_BASE_ADDR (CONFIG_SYS_IMMR + FSL_SEC_JR2_OFFSET)
|
||||
#define FSL_SEC_JR3_BASE_ADDR (CONFIG_SYS_IMMR + FSL_SEC_JR3_OFFSET)
|
||||
|
||||
#ifdef CONFIG_TFABOOT
|
||||
#ifdef CONFIG_NXP_LSCH3_2
|
||||
/* RCW_SRC field in Power-On Reset Control Register 1 */
|
||||
#define RCW_SRC_MASK 0x07800000
|
||||
#define RCW_SRC_BIT 23
|
||||
|
||||
/* CFG_RCW_SRC[3:0] */
|
||||
#define RCW_SRC_TYPE_MASK 0x8
|
||||
#define RCW_SRC_ADDR_OFFSET_8MB 0x800000
|
||||
|
||||
/* RCW SRC HARDCODED */
|
||||
#define RCW_SRC_HARDCODED_VAL 0x0 /* 0x00 - 0x07 */
|
||||
|
||||
#define RCW_SRC_SDHC1_VAL 0x8 /* 0x8 */
|
||||
#define RCW_SRC_SDHC2_VAL 0x9 /* 0x9 */
|
||||
#define RCW_SRC_I2C1_VAL 0xa /* 0xa */
|
||||
#define RCW_SRC_RESERVED_UART_VAL 0xb /* 0xb */
|
||||
#define RCW_SRC_FLEXSPI_NAND2K_VAL 0xc /* 0xc */
|
||||
#define RCW_SRC_FLEXSPI_NAND4K_VAL 0xd /* 0xd */
|
||||
#define RCW_SRC_RESERVED_1_VAL 0xe /* 0xe */
|
||||
#define RCW_SRC_FLEXSPI_NOR_24B 0xf /* 0xf */
|
||||
#else
|
||||
#define RCW_SRC_MASK (0xFF800000)
|
||||
#define RCW_SRC_BIT 23
|
||||
/* CFG_RCW_SRC[6:0] */
|
||||
#define RCW_SRC_TYPE_MASK (0x70)
|
||||
|
||||
/* RCW SRC HARDCODED */
|
||||
#define RCW_SRC_HARDCODED_VAL (0x10) /* 0x10 - 0x1f */
|
||||
/* Hardcoded will also have CFG_RCW_SRC[7] as 1. 0x90 - 0x9f */
|
||||
|
||||
/* RCW SRC NOR */
|
||||
#define RCW_SRC_NOR_VAL (0x20)
|
||||
#define NOR_TYPE_MASK (0x10)
|
||||
#define NOR_16B_VAL (0x0) /* 0x20 - 0x2f */
|
||||
#define NOR_32B_VAL (0x10) /* 0x30 - 0x3f */
|
||||
|
||||
/* RCW SRC Serial Flash
|
||||
* 1. SERIAL NOR (QSPI)
|
||||
* 2. OTHERS (SD/MMC, SPI, I2C1
|
||||
*/
|
||||
#define RCW_SRC_SERIAL_MASK (0x7F)
|
||||
#define RCW_SRC_QSPI_VAL (0x62) /* 0x62 */
|
||||
#define RCW_SRC_SD_CARD_VAL (0x40) /* 0x40 */
|
||||
#define RCW_SRC_EMMC_VAL (0x41) /* 0x41 */
|
||||
#define RCW_SRC_I2C1_VAL (0x49) /* 0x49 */
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Security Monitor */
|
||||
#define CONFIG_SYS_SEC_MON_ADDR (CONFIG_SYS_IMMR + 0x00e90000)
|
||||
|
||||
/* MMU 500 */
|
||||
#define SMMU_SCR0 (SMMU_BASE + 0x0)
|
||||
#define SMMU_SCR1 (SMMU_BASE + 0x4)
|
||||
#define SMMU_SCR2 (SMMU_BASE + 0x8)
|
||||
#define SMMU_SACR (SMMU_BASE + 0x10)
|
||||
#define SMMU_IDR0 (SMMU_BASE + 0x20)
|
||||
#define SMMU_IDR1 (SMMU_BASE + 0x24)
|
||||
|
||||
#define SMMU_NSCR0 (SMMU_BASE + 0x400)
|
||||
#define SMMU_NSCR2 (SMMU_BASE + 0x408)
|
||||
#define SMMU_NSACR (SMMU_BASE + 0x410)
|
||||
|
||||
#define SCR0_CLIENTPD_MASK 0x00000001
|
||||
#define SCR0_USFCFG_MASK 0x00000400
|
||||
|
||||
|
||||
/* PCIe */
|
||||
#define CONFIG_SYS_PCIE1_ADDR (CONFIG_SYS_IMMR + 0x2400000)
|
||||
#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_LX2160A
|
||||
#define SYS_PCIE5_ADDR (CONFIG_SYS_IMMR + 0x2800000)
|
||||
#define SYS_PCIE6_ADDR (CONFIG_SYS_IMMR + 0x2900000)
|
||||
#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
|
||||
#elif CONFIG_ARCH_LS1028A
|
||||
#define CONFIG_SYS_PCIE1_PHYS_ADDR 0x8000000000ULL
|
||||
#define CONFIG_SYS_PCIE2_PHYS_ADDR 0x8800000000ULL
|
||||
#define CONFIG_SYS_PCIE3_PHYS_ADDR 0x01f0000000ULL
|
||||
/* this is used by integrated PCI on LS1028, includes ECAM and register space */
|
||||
#define CONFIG_SYS_PCIE3_PHYS_SIZE 0x0010000000ULL
|
||||
#else
|
||||
#define CONFIG_SYS_PCIE1_PHYS_ADDR 0x1000000000ULL
|
||||
#define CONFIG_SYS_PCIE2_PHYS_ADDR 0x1200000000ULL
|
||||
#define CONFIG_SYS_PCIE3_PHYS_ADDR 0x1400000000ULL
|
||||
#define CONFIG_SYS_PCIE4_PHYS_ADDR 0x1600000000ULL
|
||||
#endif
|
||||
|
||||
/* Device Configuration */
|
||||
#define DCFG_BASE 0x01e00000
|
||||
#define DCFG_PORSR1 0x000
|
||||
#define DCFG_PORSR1_RCW_SRC 0xff800000
|
||||
#define DCFG_PORSR1_RCW_SRC_NOR 0x12f00000
|
||||
#define DCFG_RCWSR13 0x130
|
||||
#define DCFG_RCWSR13_DSPI (0 << 8)
|
||||
#define DCFG_RCWSR15 0x138
|
||||
#define DCFG_RCWSR15_IFCGRPABASE_QSPI 0x3
|
||||
|
||||
#define DCFG_DCSR_BASE 0X700100000ULL
|
||||
#define DCFG_DCSR_PORCR1 0x000
|
||||
|
||||
/* Interrupt Sampling Control */
|
||||
#define ISC_BASE 0x01F70000
|
||||
#define IRQCR_OFFSET 0x14
|
||||
|
||||
/* Supplemental Configuration */
|
||||
#define SCFG_BASE 0x01fc0000
|
||||
#define SCFG_USB3PRM1CR 0x000
|
||||
#define SCFG_USB3PRM1CR_INIT 0x27672b2a
|
||||
#define SCFG_USB_TXVREFTUNE 0x9
|
||||
#define SCFG_USB_SQRXTUNE_MASK 0x7
|
||||
#define SCFG_QSPICLKCTLR 0x10
|
||||
|
||||
#define DCSR_BASE 0x700000000ULL
|
||||
#define DCSR_USB_PHY1 0x4600000
|
||||
#define DCSR_USB_PHY2 0x4610000
|
||||
#define DCSR_USB_PHY_RX_OVRD_IN_HI 0x200C
|
||||
#define USB_PHY_RX_EQ_VAL_1 0x0000
|
||||
#define USB_PHY_RX_EQ_VAL_2 0x0080
|
||||
#define USB_PHY_RX_EQ_VAL_3 0x0380
|
||||
#define USB_PHY_RX_EQ_VAL_4 0x0b80
|
||||
#define DCSR_USB_IOCR1 0x108004
|
||||
#define DCSR_USB_PCSTXSWINGFULL 0x71
|
||||
|
||||
#define TP_ITYP_AV 0x00000001 /* Initiator available */
|
||||
#define TP_ITYP_TYPE(x) (((x) & 0x6) >> 1) /* Initiator Type */
|
||||
#define TP_ITYP_TYPE_ARM 0x0
|
||||
#define TP_ITYP_TYPE_PPC 0x1 /* PowerPC */
|
||||
#define TP_ITYP_TYPE_OTHER 0x2 /* StarCore DSP */
|
||||
#define TP_ITYP_TYPE_HA 0x3 /* HW Accelerator */
|
||||
#define TP_ITYP_THDS(x) (((x) & 0x18) >> 3) /* # threads */
|
||||
#define TP_ITYP_VER(x) (((x) & 0xe0) >> 5) /* Initiator Version */
|
||||
#define TY_ITYP_VER_A7 0x1
|
||||
#define TY_ITYP_VER_A53 0x2
|
||||
#define TY_ITYP_VER_A57 0x3
|
||||
#define TY_ITYP_VER_A72 0x4
|
||||
|
||||
#define TP_CLUSTER_EOC 0x80000000 /* end of clusters */
|
||||
#define TP_CLUSTER_INIT_MASK 0x0000003f /* initiator mask */
|
||||
#define TP_INIT_PER_CLUSTER 4
|
||||
/* This is chassis generation 3 */
|
||||
#ifndef __ASSEMBLY__
|
||||
struct sys_info {
|
||||
unsigned long freq_processor[CONFIG_MAX_CPUS];
|
||||
/* frequency of platform PLL */
|
||||
unsigned long freq_systembus;
|
||||
unsigned long freq_ddrbus;
|
||||
unsigned long freq_cga_m2;
|
||||
#ifdef CONFIG_SYS_FSL_HAS_DP_DDR
|
||||
unsigned long freq_ddrbus2;
|
||||
#endif
|
||||
unsigned long freq_localbus;
|
||||
unsigned long freq_qe;
|
||||
#ifdef CONFIG_SYS_DPAA_FMAN
|
||||
unsigned long freq_fman[CONFIG_SYS_NUM_FMAN];
|
||||
#endif
|
||||
#ifdef CONFIG_SYS_DPAA_QBMAN
|
||||
unsigned long freq_qman;
|
||||
#endif
|
||||
#ifdef CONFIG_SYS_DPAA_PME
|
||||
unsigned long freq_pme;
|
||||
#endif
|
||||
};
|
||||
|
||||
/* Global Utilities Block */
|
||||
struct ccsr_gur {
|
||||
u32 porsr1; /* POR status 1 */
|
||||
u32 porsr2; /* POR status 2 */
|
||||
u8 res_008[0x20-0x8];
|
||||
u32 gpporcr1; /* General-purpose POR configuration */
|
||||
u32 gpporcr2; /* General-purpose POR configuration 2 */
|
||||
u32 gpporcr3;
|
||||
u32 gpporcr4;
|
||||
u8 res_030[0x60-0x30];
|
||||
#define FSL_CHASSIS3_DCFG_FUSESR_VID_MASK 0x1F
|
||||
#define FSL_CHASSIS3_DCFG_FUSESR_ALTVID_MASK 0x1F
|
||||
#if defined(CONFIG_ARCH_LS1088A)
|
||||
#define FSL_CHASSIS3_DCFG_FUSESR_VID_SHIFT 25
|
||||
#define FSL_CHASSIS3_DCFG_FUSESR_ALTVID_SHIFT 20
|
||||
#else
|
||||
#define FSL_CHASSIS3_DCFG_FUSESR_VID_SHIFT 2
|
||||
#define FSL_CHASSIS3_DCFG_FUSESR_ALTVID_SHIFT 7
|
||||
#endif
|
||||
u32 dcfg_fusesr; /* Fuse status register */
|
||||
u8 res_064[0x70-0x64];
|
||||
u32 devdisr; /* Device disable control 1 */
|
||||
u32 devdisr2; /* Device disable control 2 */
|
||||
u32 devdisr3; /* Device disable control 3 */
|
||||
u32 devdisr4; /* Device disable control 4 */
|
||||
u32 devdisr5; /* Device disable control 5 */
|
||||
u32 devdisr6; /* Device disable control 6 */
|
||||
u8 res_088[0x94-0x88];
|
||||
u32 coredisr; /* Device disable control 7 */
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC1 0x00000001
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC2 0x00000002
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC3 0x00000004
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC4 0x00000008
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC5 0x00000010
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC6 0x00000020
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC7 0x00000040
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC8 0x00000080
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC9 0x00000100
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC10 0x00000200
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC11 0x00000400
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC12 0x00000800
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC13 0x00001000
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC14 0x00002000
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC15 0x00004000
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC16 0x00008000
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC17 0x00010000
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC18 0x00020000
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC19 0x00040000
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC20 0x00080000
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC21 0x00100000
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC22 0x00200000
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC23 0x00400000
|
||||
#define FSL_CHASSIS3_DEVDISR2_DPMAC24 0x00800000
|
||||
u8 res_098[0xa0-0x98];
|
||||
u32 pvr; /* Processor version */
|
||||
u32 svr; /* System version */
|
||||
u8 res_0a8[0x100-0xa8];
|
||||
u32 rcwsr[30]; /* Reset control word status */
|
||||
|
||||
#define FSL_CHASSIS3_RCWSR0_SYS_PLL_RAT_SHIFT 2
|
||||
#define FSL_CHASSIS3_RCWSR0_SYS_PLL_RAT_MASK 0x1f
|
||||
#define FSL_CHASSIS3_RCWSR0_MEM_PLL_RAT_SHIFT 10
|
||||
#define FSL_CHASSIS3_RCWSR0_MEM_PLL_RAT_MASK 0x3f
|
||||
#define FSL_CHASSIS3_RCWSR0_MEM2_PLL_RAT_SHIFT 18
|
||||
#define FSL_CHASSIS3_RCWSR0_MEM2_PLL_RAT_MASK 0x3f
|
||||
|
||||
#if defined(CONFIG_ARCH_LS2080A)
|
||||
#define FSL_CHASSIS3_RCWSR28_SRDS1_PRTCL_MASK 0x00FF0000
|
||||
#define FSL_CHASSIS3_RCWSR28_SRDS1_PRTCL_SHIFT 16
|
||||
#define FSL_CHASSIS3_RCWSR28_SRDS2_PRTCL_MASK 0xFF000000
|
||||
#define FSL_CHASSIS3_RCWSR28_SRDS2_PRTCL_SHIFT 24
|
||||
#define FSL_CHASSIS3_SRDS1_PRTCL_MASK FSL_CHASSIS3_RCWSR28_SRDS1_PRTCL_MASK
|
||||
#define FSL_CHASSIS3_SRDS1_PRTCL_SHIFT FSL_CHASSIS3_RCWSR28_SRDS1_PRTCL_SHIFT
|
||||
#define FSL_CHASSIS3_SRDS2_PRTCL_MASK FSL_CHASSIS3_RCWSR28_SRDS2_PRTCL_MASK
|
||||
#define FSL_CHASSIS3_SRDS2_PRTCL_SHIFT FSL_CHASSIS3_RCWSR28_SRDS2_PRTCL_SHIFT
|
||||
#define FSL_CHASSIS3_SRDS1_REGSR 29
|
||||
#define FSL_CHASSIS3_SRDS2_REGSR 29
|
||||
#elif defined(CONFIG_ARCH_LX2160A)
|
||||
#define FSL_CHASSIS3_EC1_REGSR 27
|
||||
#define FSL_CHASSIS3_EC2_REGSR 27
|
||||
#define FSL_CHASSIS3_EC1_REGSR_PRTCL_MASK 0x00000003
|
||||
#define FSL_CHASSIS3_EC1_REGSR_PRTCL_SHIFT 0
|
||||
#define FSL_CHASSIS3_EC2_REGSR_PRTCL_MASK 0x00000007
|
||||
#define FSL_CHASSIS3_EC2_REGSR_PRTCL_SHIFT 2
|
||||
#define FSL_CHASSIS3_RCWSR28_SRDS1_PRTCL_MASK 0x001F0000
|
||||
#define FSL_CHASSIS3_RCWSR28_SRDS1_PRTCL_SHIFT 16
|
||||
#define FSL_CHASSIS3_RCWSR28_SRDS2_PRTCL_MASK 0x03E00000
|
||||
#define FSL_CHASSIS3_RCWSR28_SRDS2_PRTCL_SHIFT 21
|
||||
#define FSL_CHASSIS3_RCWSR28_SRDS3_PRTCL_MASK 0x7C000000
|
||||
#define FSL_CHASSIS3_RCWSR28_SRDS3_PRTCL_SHIFT 26
|
||||
#define FSL_CHASSIS3_SRDS1_PRTCL_MASK FSL_CHASSIS3_RCWSR28_SRDS1_PRTCL_MASK
|
||||
#define FSL_CHASSIS3_SRDS1_PRTCL_SHIFT FSL_CHASSIS3_RCWSR28_SRDS1_PRTCL_SHIFT
|
||||
#define FSL_CHASSIS3_SRDS2_PRTCL_MASK FSL_CHASSIS3_RCWSR28_SRDS2_PRTCL_MASK
|
||||
#define FSL_CHASSIS3_SRDS2_PRTCL_SHIFT FSL_CHASSIS3_RCWSR28_SRDS2_PRTCL_SHIFT
|
||||
#define FSL_CHASSIS3_SRDS3_PRTCL_MASK FSL_CHASSIS3_RCWSR28_SRDS3_PRTCL_MASK
|
||||
#define FSL_CHASSIS3_SRDS3_PRTCL_SHIFT FSL_CHASSIS3_RCWSR28_SRDS3_PRTCL_SHIFT
|
||||
#define FSL_CHASSIS3_SRDS1_REGSR 29
|
||||
#define FSL_CHASSIS3_SRDS2_REGSR 29
|
||||
#define FSL_CHASSIS3_SRDS3_REGSR 29
|
||||
#define FSL_CHASSIS3_RCWSR12_REGSR 12
|
||||
#define FSL_CHASSIS3_RCWSR13_REGSR 13
|
||||
#define FSL_CHASSIS3_SDHC1_BASE_PMUX_MASK 0x07000000
|
||||
#define FSL_CHASSIS3_SDHC1_BASE_PMUX_SHIFT 24
|
||||
#define FSL_CHASSIS3_SDHC2_BASE_PMUX_MASK 0x00000038
|
||||
#define FSL_CHASSIS3_SDHC2_BASE_PMUX_SHIFT 3
|
||||
#define FSL_CHASSIS3_IIC5_PMUX_MASK 0x00000E00
|
||||
#define FSL_CHASSIS3_IIC5_PMUX_SHIFT 9
|
||||
#elif defined(CONFIG_ARCH_LS1088A)
|
||||
#define FSL_CHASSIS3_EC1_REGSR 26
|
||||
#define FSL_CHASSIS3_EC2_REGSR 26
|
||||
#define FSL_CHASSIS3_RCWSR25_EC1_PRTCL_MASK 0x00000007
|
||||
#define FSL_CHASSIS3_RCWSR25_EC1_PRTCL_SHIFT 0
|
||||
#define FSL_CHASSIS3_RCWSR25_EC2_PRTCL_MASK 0x00000038
|
||||
#define FSL_CHASSIS3_RCWSR25_EC2_PRTCL_SHIFT 3
|
||||
#define FSL_CHASSIS3_RCWSR29_SRDS1_PRTCL_MASK 0xFFFF0000
|
||||
#define FSL_CHASSIS3_RCWSR29_SRDS1_PRTCL_SHIFT 16
|
||||
#define FSL_CHASSIS3_RCWSR30_SRDS2_PRTCL_MASK 0x0000FFFF
|
||||
#define FSL_CHASSIS3_RCWSR30_SRDS2_PRTCL_SHIFT 0
|
||||
#define FSL_CHASSIS3_SRDS1_PRTCL_MASK FSL_CHASSIS3_RCWSR29_SRDS1_PRTCL_MASK
|
||||
#define FSL_CHASSIS3_SRDS1_PRTCL_SHIFT FSL_CHASSIS3_RCWSR29_SRDS1_PRTCL_SHIFT
|
||||
#define FSL_CHASSIS3_SRDS2_PRTCL_MASK FSL_CHASSIS3_RCWSR30_SRDS2_PRTCL_MASK
|
||||
#define FSL_CHASSIS3_SRDS2_PRTCL_SHIFT FSL_CHASSIS3_RCWSR30_SRDS2_PRTCL_SHIFT
|
||||
#define FSL_CHASSIS3_SRDS1_REGSR 29
|
||||
#define FSL_CHASSIS3_SRDS2_REGSR 30
|
||||
#elif defined(CONFIG_ARCH_LS1028A)
|
||||
#define FSL_CHASSIS3_RCWSR29_SRDS1_PRTCL_MASK 0xFFFF0000
|
||||
#define FSL_CHASSIS3_RCWSR29_SRDS1_PRTCL_SHIFT 16
|
||||
#define FSL_CHASSIS3_SRDS1_PRTCL_MASK FSL_CHASSIS3_RCWSR29_SRDS1_PRTCL_MASK
|
||||
#define FSL_CHASSIS3_SRDS1_PRTCL_SHIFT FSL_CHASSIS3_RCWSR29_SRDS1_PRTCL_SHIFT
|
||||
#define FSL_CHASSIS3_SRDS1_REGSR 29
|
||||
#endif
|
||||
#define RCW_SB_EN_REG_INDEX 9
|
||||
#define RCW_SB_EN_MASK 0x00000400
|
||||
|
||||
u8 res_178[0x200-0x178];
|
||||
u32 scratchrw[16]; /* Scratch Read/Write */
|
||||
u8 res_240[0x300-0x240];
|
||||
u32 scratchw1r[4]; /* Scratch Read (Write once) */
|
||||
u8 res_310[0x400-0x310];
|
||||
u32 bootlocptrl; /* Boot location pointer low-order addr */
|
||||
u32 bootlocptrh; /* Boot location pointer high-order addr */
|
||||
u8 res_408[0x520-0x408];
|
||||
u32 usb1_amqr;
|
||||
u32 usb2_amqr;
|
||||
u8 res_528[0x530-0x528]; /* add more registers when needed */
|
||||
u32 sdmm1_amqr;
|
||||
u32 sdmm2_amqr;
|
||||
u8 res_538[0x550 - 0x538]; /* add more registers when needed */
|
||||
u32 sata1_amqr;
|
||||
u32 sata2_amqr;
|
||||
u32 sata3_amqr;
|
||||
u32 sata4_amqr;
|
||||
u8 res_560[0x570 - 0x560]; /* add more registers when needed */
|
||||
u32 misc1_amqr;
|
||||
u8 res_574[0x590-0x574]; /* add more registers when needed */
|
||||
u32 spare1_amqr;
|
||||
u32 spare2_amqr;
|
||||
u32 spare3_amqr;
|
||||
u8 res_59c[0x620 - 0x59c]; /* add more registers when needed */
|
||||
u32 gencr[7]; /* General Control Registers */
|
||||
u8 res_63c[0x640-0x63c]; /* add more registers when needed */
|
||||
u32 cgensr1; /* Core General Status Register */
|
||||
u8 res_644[0x660-0x644]; /* add more registers when needed */
|
||||
u32 cgencr1; /* Core General Control Register */
|
||||
u8 res_664[0x740-0x664]; /* add more registers when needed */
|
||||
u32 tp_ityp[64]; /* Topology Initiator Type Register */
|
||||
struct {
|
||||
u32 upper;
|
||||
u32 lower;
|
||||
} tp_cluster[4]; /* Core cluster n Topology Register */
|
||||
u8 res_864[0x920-0x864]; /* add more registers when needed */
|
||||
u32 ioqoscr[8]; /*I/O Quality of Services Register */
|
||||
u32 uccr;
|
||||
u8 res_944[0x960-0x944]; /* add more registers when needed */
|
||||
u32 ftmcr;
|
||||
u8 res_964[0x990-0x964]; /* add more registers when needed */
|
||||
u32 coredisablesr;
|
||||
u8 res_994[0xa00-0x994]; /* add more registers when needed */
|
||||
u32 sdbgcr; /*Secure Debug Confifuration Register */
|
||||
u8 res_a04[0xbf8-0xa04]; /* add more registers when needed */
|
||||
u32 ipbrr1;
|
||||
u32 ipbrr2;
|
||||
u8 res_858[0x1000-0xc00];
|
||||
};
|
||||
|
||||
struct ccsr_clk_cluster_group {
|
||||
struct {
|
||||
u8 res_00[0x10];
|
||||
u32 csr;
|
||||
u8 res_14[0x20-0x14];
|
||||
} hwncsr[3];
|
||||
u8 res_60[0x80-0x60];
|
||||
struct {
|
||||
u32 gsr;
|
||||
u8 res_84[0xa0-0x84];
|
||||
} pllngsr[3];
|
||||
u8 res_e0[0x100-0xe0];
|
||||
};
|
||||
|
||||
struct ccsr_clk_ctrl {
|
||||
struct {
|
||||
u32 csr; /* core cluster n clock control status */
|
||||
u8 res_04[0x20-0x04];
|
||||
} clkcncsr[8];
|
||||
};
|
||||
|
||||
struct ccsr_reset {
|
||||
u32 rstcr; /* 0x000 */
|
||||
u32 rstcrsp; /* 0x004 */
|
||||
u8 res_008[0x10-0x08]; /* 0x008 */
|
||||
u32 rstrqmr1; /* 0x010 */
|
||||
u32 rstrqmr2; /* 0x014 */
|
||||
u32 rstrqsr1; /* 0x018 */
|
||||
u32 rstrqsr2; /* 0x01c */
|
||||
u32 rstrqwdtmrl; /* 0x020 */
|
||||
u32 rstrqwdtmru; /* 0x024 */
|
||||
u8 res_028[0x30-0x28]; /* 0x028 */
|
||||
u32 rstrqwdtsrl; /* 0x030 */
|
||||
u32 rstrqwdtsru; /* 0x034 */
|
||||
u8 res_038[0x60-0x38]; /* 0x038 */
|
||||
u32 brrl; /* 0x060 */
|
||||
u32 brru; /* 0x064 */
|
||||
u8 res_068[0x80-0x68]; /* 0x068 */
|
||||
u32 pirset; /* 0x080 */
|
||||
u32 pirclr; /* 0x084 */
|
||||
u8 res_088[0x90-0x88]; /* 0x088 */
|
||||
u32 brcorenbr; /* 0x090 */
|
||||
u8 res_094[0x100-0x94]; /* 0x094 */
|
||||
u32 rcw_reqr; /* 0x100 */
|
||||
u32 rcw_completion; /* 0x104 */
|
||||
u8 res_108[0x110-0x108]; /* 0x108 */
|
||||
u32 pbi_reqr; /* 0x110 */
|
||||
u32 pbi_completion; /* 0x114 */
|
||||
u8 res_118[0xa00-0x118]; /* 0x118 */
|
||||
u32 qmbm_warmrst; /* 0xa00 */
|
||||
u32 soc_warmrst; /* 0xa04 */
|
||||
u8 res_a08[0xbf8-0xa08]; /* 0xa08 */
|
||||
u32 ip_rev1; /* 0xbf8 */
|
||||
u32 ip_rev2; /* 0xbfc */
|
||||
};
|
||||
|
||||
struct ccsr_serdes {
|
||||
struct {
|
||||
u32 rstctl; /* Reset Control Register */
|
||||
u32 pllcr0; /* PLL Control Register 0 */
|
||||
u32 pllcr1; /* PLL Control Register 1 */
|
||||
u32 pllcr2; /* PLL Control Register 2 */
|
||||
u32 pllcr3; /* PLL Control Register 3 */
|
||||
u32 pllcr4; /* PLL Control Register 4 */
|
||||
u32 pllcr5; /* PLL Control Register 5 */
|
||||
u8 res[0x20 - 0x1c];
|
||||
} bank[2];
|
||||
u8 res1[0x90 - 0x40];
|
||||
u32 srdstcalcr; /* TX Calibration Control */
|
||||
u32 srdstcalcr1; /* TX Calibration Control1 */
|
||||
u8 res2[0xa0 - 0x98];
|
||||
u32 srdsrcalcr; /* RX Calibration Control */
|
||||
u32 srdsrcalcr1; /* RX Calibration Control1 */
|
||||
u8 res3[0xb0 - 0xa8];
|
||||
u32 srdsgr0; /* General Register 0 */
|
||||
u8 res4[0x800 - 0xb4];
|
||||
struct serdes_lane {
|
||||
u32 gcr0; /* General Control Register 0 */
|
||||
u32 gcr1; /* General Control Register 1 */
|
||||
u32 gcr2; /* General Control Register 2 */
|
||||
u32 ssc0; /* Speed Switch Control 0 */
|
||||
u32 rec0; /* Receive Equalization Control 0 */
|
||||
u32 rec1; /* Receive Equalization Control 1 */
|
||||
u32 tec0; /* Transmit Equalization Control 0 */
|
||||
u32 ssc1; /* Speed Switch Control 1 */
|
||||
u8 res1[0x840 - 0x820];
|
||||
} lane[8];
|
||||
u8 res5[0x19fc - 0xa00];
|
||||
};
|
||||
|
||||
#endif /*__ASSEMBLY__*/
|
||||
#endif /* __ARCH_FSL_LSCH3_IMMAP_H_ */
|
||||
@@ -0,0 +1,12 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2015 Freescale Semiconductor, Inc.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __ASM_ARCH_FSL_LAYERSCAPE_IMX_REGS_H__
|
||||
#define __ASM_ARCH_FSL_LAYERSCAPE_IMX_REGS_H__
|
||||
|
||||
#define I2C_QUIRK_REG /* enable 8-bit driver */
|
||||
|
||||
#endif /* __ASM_ARCH_FSL_LAYERSCAPE_IMX_REGS_H__ */
|
||||
@@ -0,0 +1,9 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2015, Freescale Semiconductor
|
||||
*/
|
||||
|
||||
#ifndef _ASM_ARMV8_FSL_LAYERSCAPE_MMU_H_
|
||||
#define _ASM_ARMV8_FSL_LAYERSCAPE_MMU_H_
|
||||
void update_early_mmu_table(void);
|
||||
#endif /* _ASM_ARMV8_FSL_LAYERSCAPE_MMU_H_ */
|
||||
@@ -0,0 +1,51 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2014-2015, Freescale Semiconductor
|
||||
*/
|
||||
|
||||
#ifndef _FSL_LAYERSCAPE_MP_H
|
||||
#define _FSL_LAYERSCAPE_MP_H
|
||||
|
||||
/*
|
||||
* Each spin table element is defined as
|
||||
* struct {
|
||||
* uint64_t entry_addr;
|
||||
* uint64_t status;
|
||||
* uint64_t lpid;
|
||||
* uint64_t arch_comp;
|
||||
* };
|
||||
* we pad this struct to 64 bytes so each entry is in its own cacheline
|
||||
* the actual spin table is an array of these structures
|
||||
*/
|
||||
#define SPIN_TABLE_ELEM_ENTRY_ADDR_IDX 0
|
||||
#define SPIN_TABLE_ELEM_STATUS_IDX 1
|
||||
#define SPIN_TABLE_ELEM_LPID_IDX 2
|
||||
/* compare os arch and cpu arch */
|
||||
#define SPIN_TABLE_ELEM_ARCH_COMP_IDX 3
|
||||
#define WORDS_PER_SPIN_TABLE_ENTRY 8 /* pad to 64 bytes */
|
||||
#define SPIN_TABLE_ELEM_SIZE 64
|
||||
|
||||
/* os arch is same as cpu arch */
|
||||
#define OS_ARCH_SAME 0
|
||||
/* os arch is different from cpu arch */
|
||||
#define OS_ARCH_DIFF 1
|
||||
|
||||
#define id_to_core(x) ((x & 3) | (x >> 6))
|
||||
#ifndef __ASSEMBLY__
|
||||
extern u64 __spin_table[];
|
||||
extern u64 __real_cntfrq;
|
||||
extern u64 *secondary_boot_code;
|
||||
extern size_t __secondary_boot_code_size;
|
||||
#ifdef CONFIG_MP
|
||||
int fsl_layerscape_wake_seconday_cores(void);
|
||||
#else
|
||||
static inline int fsl_layerscape_wake_seconday_cores(void) { return 0; }
|
||||
#endif
|
||||
void *get_spin_tbl_addr(void);
|
||||
phys_addr_t determine_mp_bootpg(void);
|
||||
void secondary_boot_func(void);
|
||||
int is_core_online(u64 cpu_id);
|
||||
u32 cpu_pos_mask(void);
|
||||
#endif
|
||||
|
||||
#endif /* _FSL_LAYERSCAPE_MP_H */
|
||||
@@ -0,0 +1,91 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2015 Freescale Semiconductor, Inc.
|
||||
*/
|
||||
|
||||
#ifndef __FSL_NS_ACCESS_H_
|
||||
#define __FSL_NS_ACCESS_H_
|
||||
#include <fsl_csu.h>
|
||||
|
||||
enum csu_cslx_ind {
|
||||
CSU_CSLX_PCIE2_IO = 0,
|
||||
CSU_CSLX_PCIE1_IO,
|
||||
CSU_CSLX_MG2TPR_IP,
|
||||
CSU_CSLX_IFC_MEM,
|
||||
CSU_CSLX_OCRAM,
|
||||
CSU_CSLX_GIC,
|
||||
CSU_CSLX_PCIE1,
|
||||
CSU_CSLX_OCRAM2,
|
||||
CSU_CSLX_QSPI_MEM,
|
||||
CSU_CSLX_PCIE2,
|
||||
CSU_CSLX_SATA,
|
||||
CSU_CSLX_USB1,
|
||||
CSU_CSLX_QM_BM_SWPORTAL,
|
||||
CSU_CSLX_PCIE3 = 16,
|
||||
CSU_CSLX_PCIE3_IO,
|
||||
CSU_CSLX_USB3 = 20,
|
||||
CSU_CSLX_USB2,
|
||||
CSU_CSLX_PFE = 23,
|
||||
CSU_CSLX_SERDES = 32,
|
||||
CSU_CSLX_QDMA,
|
||||
CSU_CSLX_LPUART2,
|
||||
CSU_CSLX_LPUART1,
|
||||
CSU_CSLX_LPUART4,
|
||||
CSU_CSLX_LPUART3,
|
||||
CSU_CSLX_LPUART6,
|
||||
CSU_CSLX_LPUART5,
|
||||
CSU_CSLX_DSPI1 = 41,
|
||||
CSU_CSLX_QSPI,
|
||||
CSU_CSLX_ESDHC,
|
||||
CSU_CSLX_IFC = 45,
|
||||
CSU_CSLX_I2C1,
|
||||
CSU_CSLX_USB_2,
|
||||
CSU_CSLX_I2C3 = 48,
|
||||
CSU_CSLX_I2C2,
|
||||
CSU_CSLX_DUART2 = 50,
|
||||
CSU_CSLX_DUART1,
|
||||
CSU_CSLX_WDT2,
|
||||
CSU_CSLX_WDT1,
|
||||
CSU_CSLX_EDMA,
|
||||
CSU_CSLX_SYS_CNT,
|
||||
CSU_CSLX_DMA_MUX2,
|
||||
CSU_CSLX_DMA_MUX1,
|
||||
CSU_CSLX_DDR,
|
||||
CSU_CSLX_QUICC,
|
||||
CSU_CSLX_DCFG_CCU_RCPM = 60,
|
||||
CSU_CSLX_SECURE_BOOTROM,
|
||||
CSU_CSLX_SFP,
|
||||
CSU_CSLX_TMU,
|
||||
CSU_CSLX_SECURE_MONITOR,
|
||||
CSU_CSLX_SCFG,
|
||||
CSU_CSLX_FM = 66,
|
||||
CSU_CSLX_SEC5_5,
|
||||
CSU_CSLX_BM,
|
||||
CSU_CSLX_QM,
|
||||
CSU_CSLX_GPIO2 = 70,
|
||||
CSU_CSLX_GPIO1,
|
||||
CSU_CSLX_GPIO4,
|
||||
CSU_CSLX_GPIO3,
|
||||
CSU_CSLX_PLATFORM_CONT,
|
||||
CSU_CSLX_CSU,
|
||||
CSU_CSLX_IIC4 = 77,
|
||||
CSU_CSLX_WDT4,
|
||||
CSU_CSLX_WDT3,
|
||||
CSU_CSLX_ESDHC2 = 80,
|
||||
CSU_CSLX_WDT5 = 81,
|
||||
CSU_CSLX_SAI2,
|
||||
CSU_CSLX_SAI1,
|
||||
CSU_CSLX_SAI4,
|
||||
CSU_CSLX_SAI3,
|
||||
CSU_CSLX_FTM2 = 86,
|
||||
CSU_CSLX_FTM1,
|
||||
CSU_CSLX_FTM4,
|
||||
CSU_CSLX_FTM3,
|
||||
CSU_CSLX_FTM6 = 90,
|
||||
CSU_CSLX_FTM5,
|
||||
CSU_CSLX_FTM8,
|
||||
CSU_CSLX_FTM7,
|
||||
CSU_CSLX_DSCR = 121,
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,12 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2016 NXP Semiconductor, Inc.
|
||||
*/
|
||||
|
||||
#ifndef __FSL_PPA_H_
|
||||
#define __FSL_PPA_H_
|
||||
|
||||
#ifdef CONFIG_FSL_LS_PPA
|
||||
int ppa_init(void);
|
||||
#endif
|
||||
#endif
|
||||
@@ -0,0 +1,156 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2017-2019 NXP
|
||||
* Copyright 2015 Freescale Semiconductor
|
||||
*/
|
||||
|
||||
#ifndef _ASM_ARMV8_FSL_LAYERSCAPE_SOC_H_
|
||||
#define _ASM_ARMV8_FSL_LAYERSCAPE_SOC_H_
|
||||
|
||||
#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
|
||||
|
||||
#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)
|
||||
#define scfg_clrbits32(addr, clear) clrbits_le32(addr, clear)
|
||||
#define scfg_clrsetbits32(addr, clear, set) clrsetbits_le32(addr, clear, set)
|
||||
#elif defined(CONFIG_SYS_FSL_CCSR_SCFG_BE)
|
||||
#define scfg_in32(a) in_be32(a)
|
||||
#define scfg_out32(a, v) out_be32(a, v)
|
||||
#define scfg_clrbits32(addr, clear) clrbits_be32(addr, clear)
|
||||
#define scfg_clrsetbits32(addr, clear, set) clrsetbits_be32(addr, clear, set)
|
||||
#endif
|
||||
|
||||
#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
|
||||
#ifndef __ASSEMBLY__
|
||||
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)}
|
||||
|
||||
#ifdef CONFIG_TFABOOT
|
||||
#define SMC_DRAM_BANK_INFO (0xC200FF12)
|
||||
#define SIP_SVC_RCW 0xC200FF18
|
||||
|
||||
phys_size_t tfa_get_dram_size(void);
|
||||
|
||||
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
|
||||
#endif
|
||||
#define SVR_WO_E 0xFFFFFE
|
||||
#define SVR_LS1012A 0x870400
|
||||
#define SVR_LS1043A 0x879200
|
||||
#define SVR_LS1023A 0x879208
|
||||
/* LS1043A/LS1023A 23x23 package silicon has different value of VAR_PER */
|
||||
#define SVR_LS1043A_P23 0x879202
|
||||
#define SVR_LS1023A_P23 0x87920A
|
||||
#define SVR_LS1017A 0x870B24
|
||||
#define SVR_LS1018A 0x870B20
|
||||
#define SVR_LS1027A 0x870B04
|
||||
#define SVR_LS1028A 0x870B00
|
||||
#define SVR_LS1046A 0x870700
|
||||
#define SVR_LS1026A 0x870708
|
||||
#define SVR_LS1048A 0x870320
|
||||
#define SVR_LS1084A 0x870302
|
||||
#define SVR_LS1088A 0x870300
|
||||
#define SVR_LS1044A 0x870322
|
||||
#define SVR_LS2045A 0x870120
|
||||
#define SVR_LS2080A 0x870110
|
||||
#define SVR_LS2085A 0x870100
|
||||
#define SVR_LS2040A 0x870130
|
||||
#define SVR_LS2088A 0x870900
|
||||
#define SVR_LS2084A 0x870910
|
||||
#define SVR_LS2048A 0x870920
|
||||
#define SVR_LS2044A 0x870930
|
||||
#define SVR_LS2081A 0x870918
|
||||
#define SVR_LS2041A 0x870914
|
||||
#define SVR_LX2160A 0x873600
|
||||
#define SVR_LX2120A 0x873620
|
||||
#define SVR_LX2080A 0x873602
|
||||
|
||||
#define SVR_MAJ(svr) (((svr) >> 4) & 0xf)
|
||||
#define SVR_MIN(svr) (((svr) >> 0) & 0xf)
|
||||
#define SVR_REV(svr) (((svr) >> 0) & 0xff)
|
||||
#define SVR_SOC_VER(svr) (((svr) >> 8) & SVR_WO_E)
|
||||
#define IS_E_PROCESSOR(svr) (!((svr >> 8) & 0x1))
|
||||
#ifdef CONFIG_ARCH_LX2160A
|
||||
#define IS_C_PROCESSOR(svr) (!((svr >> 12) & 0x1))
|
||||
#endif
|
||||
#ifdef CONFIG_ARCH_LS1028A
|
||||
#define IS_MULTIMEDIA_EN(svr) (!((svr >> 10) & 0x1))
|
||||
#endif
|
||||
#define IS_SVR_REV(svr, maj, min) \
|
||||
((SVR_MAJ(svr) == (maj)) && (SVR_MIN(svr) == (min)))
|
||||
#define SVR_DEV(svr) ((svr) >> 8)
|
||||
#define IS_SVR_DEV(svr, dev) (((svr) >> 16) == (dev))
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#ifdef CONFIG_FSL_LSCH3
|
||||
void fsl_lsch3_early_init_f(void);
|
||||
int get_core_volt_from_fuse(void);
|
||||
#elif defined(CONFIG_FSL_LSCH2)
|
||||
void fsl_lsch2_early_init_f(void);
|
||||
int setup_chip_volt(void);
|
||||
/* Setup core vdd in unit mV */
|
||||
int board_setup_core_volt(u32 vdd);
|
||||
#ifdef CONFIG_FSL_PFE
|
||||
void init_pfe_scfg_dcfg_regs(void);
|
||||
#endif
|
||||
#endif
|
||||
#ifdef CONFIG_QSPI_AHB_INIT
|
||||
int qspi_ahb_init(void);
|
||||
#endif
|
||||
|
||||
void cpu_name(char *name);
|
||||
#ifdef CONFIG_SYS_FSL_ERRATUM_A009635
|
||||
void erratum_a009635(void);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SYS_FSL_ERRATUM_A010315
|
||||
void erratum_a010315(void);
|
||||
#endif
|
||||
|
||||
bool soc_has_dp_ddr(void);
|
||||
bool soc_has_aiop(void);
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_ARMV8_FSL_LAYERSCAPE_SOC_H_ */
|
||||
@@ -0,0 +1,12 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2014-2015, Freescale Semiconductor, Inc.
|
||||
*/
|
||||
|
||||
#ifndef _FSL_LAYERSCAPE_SPEED_H
|
||||
#define _FSL_LAYERSCAPE_SPEED_H
|
||||
void get_sys_info(struct sys_info *sys_info);
|
||||
#ifdef CONFIG_SYS_DPAA_QBMAN
|
||||
unsigned long get_qman_freq(void);
|
||||
#endif
|
||||
#endif /* _FSL_LAYERSCAPE_SPEED_H */
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2017 NXP Semiconductor, Inc.
|
||||
*
|
||||
*/
|
||||
#ifndef __FSL_STREAM_ID_H
|
||||
#define __FSL_STREAM_ID_H
|
||||
|
||||
/*
|
||||
* Stream IDs on Chassis-2 (for example ls1043a, ls1046a, ls1012) devices
|
||||
* are not hardwired and are programmed by sw. There are a limited number
|
||||
* of stream IDs available, and the partitioning of them is scenario
|
||||
* dependent. This header defines the partitioning between legacy, PCI,
|
||||
* and DPAA1 devices.
|
||||
*
|
||||
* This partitioning can be customized in this file depending
|
||||
* on the specific hardware config:
|
||||
*
|
||||
* -non-PCI legacy, platform devices (USB, SDHC, SATA, DMA, QE etc)
|
||||
* -all legacy devices get a unique stream ID assigned and programmed in
|
||||
* their AMQR registers by u-boot
|
||||
*
|
||||
* -PCIe
|
||||
* -there is a range of stream IDs set aside for PCI in this
|
||||
* file. U-boot will scan the PCI bus and for each device discovered:
|
||||
* -allocate a streamID
|
||||
* -set a PEXn LUT table entry mapping 'requester ID' to 'stream ID'
|
||||
* -set a msi-map entry in the PEXn controller node in the
|
||||
* device tree (see Documentation/devicetree/bindings/pci/pci-msi.txt
|
||||
* for more info on the msi-map definition)
|
||||
* -set a iommu-map entry in the PEXn controller node in the
|
||||
* device tree (see Documentation/devicetree/bindings/pci/pci-iommu.txt
|
||||
* for more info on the iommu-map definition)
|
||||
*
|
||||
* -DPAA1
|
||||
* - Stream ids for DPAA1 use are reserved for future usecase.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#define FSL_INVALID_STREAM_ID 0
|
||||
|
||||
/* legacy devices */
|
||||
#define FSL_USB1_STREAM_ID 1
|
||||
#define FSL_USB2_STREAM_ID 2
|
||||
#define FSL_USB3_STREAM_ID 3
|
||||
#define FSL_SDHC_STREAM_ID 4
|
||||
#define FSL_SATA_STREAM_ID 5
|
||||
#define FSL_QE_STREAM_ID 6
|
||||
#define FSL_QDMA_STREAM_ID 7
|
||||
#define FSL_EDMA_STREAM_ID 8
|
||||
#define FSL_ETR_STREAM_ID 9
|
||||
#define FSL_DEBUG_STREAM_ID 10
|
||||
|
||||
/* PCI - programmed in PEXn_LUT */
|
||||
#define FSL_PEX_STREAM_ID_START 11
|
||||
#define FSL_PEX_STREAM_ID_END 26
|
||||
|
||||
/* DPAA1 - Stream-ID that can be programmed in DPAA1 h/w */
|
||||
#define FSL_DPAA1_STREAM_ID_START 27
|
||||
#define FSL_DPAA1_STREAM_ID_END 63
|
||||
|
||||
#endif
|
||||
+129
@@ -0,0 +1,129 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright 2015-2018 NXP
|
||||
* Copyright 2014 Freescale Semiconductor, Inc.
|
||||
*
|
||||
*/
|
||||
#ifndef __FSL_STREAM_ID_H
|
||||
#define __FSL_STREAM_ID_H
|
||||
|
||||
/*
|
||||
* Stream IDs on NXP Chassis-3 (for example ls2080a, ls1088a, ls2088a)
|
||||
* devices are not hardwired and are programmed by sw. There are a limited
|
||||
* number of stream IDs available, and the partitioning of them is scenario
|
||||
* dependent. This header defines the partitioning between legacy,
|
||||
* PCI, and DPAA2 devices.
|
||||
*
|
||||
* This partitioning can be customized in this file depending
|
||||
* on the specific hardware config:
|
||||
*
|
||||
* -non-PCI legacy, platform devices (USB, SD/MMC, SATA, DMA)
|
||||
* -all legacy devices get a unique stream ID assigned and programmed in
|
||||
* their AMQR registers by u-boot
|
||||
*
|
||||
* -PCIe
|
||||
* -there is a range of stream IDs set aside for PCI in this
|
||||
* file. U-boot will scan the PCI bus and for each device discovered:
|
||||
* -allocate a streamID
|
||||
* -set a PEXn LUT table entry mapping 'requester ID' to 'stream ID'
|
||||
* -set a msi-map entry in the PEXn controller node in the
|
||||
* device tree (see Documentation/devicetree/bindings/pci/pci-msi.txt
|
||||
* for more info on the msi-map definition)
|
||||
* -set a iommu-map entry in the PEXn controller node in the
|
||||
* device tree (see Documentation/devicetree/bindings/pci/pci-iommu.txt
|
||||
* for more info on the iommu-map definition)
|
||||
*
|
||||
* -DPAA2
|
||||
* -u-boot will allocate a range of stream IDs to be used by the Management
|
||||
* Complex for containers and will set these values in the MC DPC image.
|
||||
* -u-boot will fixup the iommu-map property in the fsl-mc node in the
|
||||
* device tree (see Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt
|
||||
* for more info on the msi-map definition)
|
||||
* -the MC is responsible for allocating and setting up 'isolation context
|
||||
* IDs (ICIDs) based on the allocated stream IDs for all DPAA2 devices.
|
||||
*
|
||||
* On Chasis-3 SoCs stream IDs are programmed in AMQ registers (32-bits) for
|
||||
* each of the different bus masters. The relationship between
|
||||
* the AMQ registers and stream IDs is defined in the table below:
|
||||
* AMQ bit streamID bit
|
||||
* ---------------------------
|
||||
* PL[18] 9 // privilege bit
|
||||
* BMT[17] 8 // bypass translation
|
||||
* VA[16] 7 // reserved
|
||||
* [15] - // unused
|
||||
* ICID[14:7] - // unused
|
||||
* ICID[6:0] 6-0 // isolation context id
|
||||
* ----------------------------
|
||||
*
|
||||
*/
|
||||
|
||||
#define AMQ_PL_MASK (0x1 << 18) /* priviledge bit */
|
||||
#define AMQ_BMT_MASK (0x1 << 17) /* bypass bit */
|
||||
|
||||
#define FSL_INVALID_STREAM_ID 0
|
||||
|
||||
#define FSL_BYPASS_AMQ (AMQ_PL_MASK | AMQ_BMT_MASK)
|
||||
|
||||
/* legacy devices */
|
||||
#define FSL_USB1_STREAM_ID 1
|
||||
#define FSL_USB2_STREAM_ID 2
|
||||
#define FSL_SDMMC_STREAM_ID 3
|
||||
#define FSL_SATA1_STREAM_ID 4
|
||||
|
||||
#if defined(CONFIG_ARCH_LS2080A) || defined(CONFIG_ARCH_LX2160A)
|
||||
#define FSL_SATA2_STREAM_ID 5
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_ARCH_LS2080A) || defined(CONFIG_ARCH_LX2160A)
|
||||
#define FSL_DMA_STREAM_ID 6
|
||||
#elif defined(CONFIG_ARCH_LS1088A) || defined(CONFIG_ARCH_LS1028A)
|
||||
#define FSL_DMA_STREAM_ID 5
|
||||
#endif
|
||||
|
||||
/* PCI - programmed in PEXn_LUT */
|
||||
#define FSL_PEX_STREAM_ID_START 7
|
||||
|
||||
#ifdef CONFIG_ARCH_LX2160A
|
||||
#define FSL_PEX_STREAM_ID_NUM (0x100)
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_ARCH_LS2080A) || defined(CONFIG_ARCH_LS1028A)
|
||||
#define FSL_PEX_STREAM_ID_END 22
|
||||
#elif defined(CONFIG_ARCH_LS1088A)
|
||||
#define FSL_PEX_STREAM_ID_END 18
|
||||
#endif
|
||||
|
||||
|
||||
/* DPAA2 - set in MC DPC and alloced by MC */
|
||||
#define FSL_DPAA2_STREAM_ID_START 23
|
||||
#define FSL_DPAA2_STREAM_ID_END 63
|
||||
|
||||
#define FSL_SEC_STREAM_ID 64
|
||||
#define FSL_SEC_JR1_STREAM_ID 65
|
||||
#define FSL_SEC_JR2_STREAM_ID 66
|
||||
#define FSL_SEC_JR3_STREAM_ID 67
|
||||
#define FSL_SEC_JR4_STREAM_ID 68
|
||||
|
||||
#define FSL_SDMMC2_STREAM_ID 69
|
||||
|
||||
/*
|
||||
* Erratum A-050382 workaround
|
||||
*
|
||||
* Description:
|
||||
* The eDMA ICID programmed in the eDMA_AMQR register in DCFG is not
|
||||
* correctly forwarded to the SMMU.
|
||||
* Workaround:
|
||||
* Program eDMA ICID in the eDMA_AMQR register in DCFG to 40.
|
||||
*/
|
||||
#ifdef CONFIG_SYS_FSL_ERRATUM_A050382
|
||||
#define FSL_EDMA_STREAM_ID 40
|
||||
#else
|
||||
#define FSL_EDMA_STREAM_ID 70
|
||||
#endif
|
||||
|
||||
#define FSL_GPU_STREAM_ID 71
|
||||
#define FSL_DISPLAY_STREAM_ID 72
|
||||
#define FSL_SATA3_STREAM_ID 73
|
||||
#define FSL_SATA4_STREAM_ID 74
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user