2018-05-06 21:58:06 +00:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0+ */
|
2015-07-02 05:59:02 +00:00
|
|
|
/*
|
2021-01-12 13:12:46 +00:00
|
|
|
* Copyright 2015-2021 NXP
|
2015-07-02 05:59:02 +00:00
|
|
|
* Copyright 2014 Freescale Semiconductor, Inc.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
#ifndef __FSL_STREAM_ID_H
|
|
|
|
#define __FSL_STREAM_ID_H
|
|
|
|
|
2016-03-10 16:52:07 +00:00
|
|
|
/*
|
2017-03-22 06:36:26 +00:00
|
|
|
* 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.
|
2015-07-02 05:59:02 +00:00
|
|
|
*
|
2016-03-10 16:52:07 +00:00
|
|
|
* 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
|
2023-05-17 07:17:16 +00:00
|
|
|
* file. U-Boot will scan the PCI bus and for each device discovered:
|
2016-03-10 16:52:07 +00:00
|
|
|
* -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)
|
2017-03-22 06:36:26 +00:00
|
|
|
* -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)
|
2015-07-02 05:59:02 +00:00
|
|
|
*
|
2016-03-10 16:52:07 +00:00
|
|
|
* -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.
|
2018-08-20 10:31:14 +00:00
|
|
|
* -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)
|
2016-03-10 16:52:07 +00:00
|
|
|
* -the MC is responsible for allocating and setting up 'isolation context
|
|
|
|
* IDs (ICIDs) based on the allocated stream IDs for all DPAA2 devices.
|
|
|
|
*
|
2019-11-27 15:19:32 +00:00
|
|
|
* - ECAM (integrated PCI)
|
|
|
|
* - U-Boot applies the value here to HW and does DT fix-up for both
|
|
|
|
* 'iommu-map' and 'msi-map'
|
|
|
|
*
|
2017-03-22 06:36:26 +00:00
|
|
|
* On Chasis-3 SoCs stream IDs are programmed in AMQ registers (32-bits) for
|
2015-07-02 05:59:02 +00:00
|
|
|
* 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
|
|
|
|
* ---------------------------
|
2016-03-10 16:52:07 +00:00
|
|
|
* 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
|
2015-07-02 05:59:02 +00:00
|
|
|
* ----------------------------
|
2016-03-10 16:52:07 +00:00
|
|
|
*
|
2015-07-02 05:59:02 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#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
|
armv8: ls1088a: Add NXP LS1088A SoC support
LS1088A is compliant with the Layerscape Chassis Generation 3 with
eight ARM v8 Cortex-A53 cores in 2 cluster, CCI-400, one 64-bit DDR4
SDRAM memory controller with ECC, Data path acceleration architecture
2.0 (DPAA2), Ethernet interfaces (SGMIIs, RGMIIs, QSGMIIs, XFIs),
QSPI, IFC, PCIe, SATA, USB, SDXC, DUARTs etc.
Signed-off-by: Alison Wang <alison.wang@nxp.com>
Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Signed-off-by: Ashish Kumar <Ashish.Kumar@nxp.com>
Signed-off-by: Raghav Dogra <raghav.dogra@nxp.com>
Signed-off-by: Shaohui Xie <Shaohui.Xie@nxp.com>
[YS: Revised commit message]
Reviewed-by: York Sun <york.sun@nxp.com>
2017-08-31 10:42:53 +00:00
|
|
|
|
armv8: lx2162a: Add Soc changes to support LX2162A
LX2162 is LX2160 based SoC, it has same die as of LX2160
with different packaging.
LX2162A support 64-bit 2.9GT/s DDR4 memory, i2c, micro-click module,
microSD card, eMMC support, serial console, qspi nor flash, qsgmii,
sgmii, 25g, 40g, 50g network interface, one usb 3.0 and serdes
interface to support three PCIe gen3 interface.
Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
[Fixed whitespace errors]
Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>
2020-10-29 13:46:16 +00:00
|
|
|
#if defined(CONFIG_ARCH_LS2080A) || defined(CONFIG_ARCH_LX2160A) || \
|
|
|
|
defined(CONFIG_ARCH_LX2162A)
|
2015-07-02 05:59:02 +00:00
|
|
|
#define FSL_SATA2_STREAM_ID 5
|
armv8: ls1088a: Add NXP LS1088A SoC support
LS1088A is compliant with the Layerscape Chassis Generation 3 with
eight ARM v8 Cortex-A53 cores in 2 cluster, CCI-400, one 64-bit DDR4
SDRAM memory controller with ECC, Data path acceleration architecture
2.0 (DPAA2), Ethernet interfaces (SGMIIs, RGMIIs, QSGMIIs, XFIs),
QSPI, IFC, PCIe, SATA, USB, SDXC, DUARTs etc.
Signed-off-by: Alison Wang <alison.wang@nxp.com>
Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Signed-off-by: Ashish Kumar <Ashish.Kumar@nxp.com>
Signed-off-by: Raghav Dogra <raghav.dogra@nxp.com>
Signed-off-by: Shaohui Xie <Shaohui.Xie@nxp.com>
[YS: Revised commit message]
Reviewed-by: York Sun <york.sun@nxp.com>
2017-08-31 10:42:53 +00:00
|
|
|
#endif
|
|
|
|
|
armv8: lx2162a: Add Soc changes to support LX2162A
LX2162 is LX2160 based SoC, it has same die as of LX2160
with different packaging.
LX2162A support 64-bit 2.9GT/s DDR4 memory, i2c, micro-click module,
microSD card, eMMC support, serial console, qspi nor flash, qsgmii,
sgmii, 25g, 40g, 50g network interface, one usb 3.0 and serdes
interface to support three PCIe gen3 interface.
Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
[Fixed whitespace errors]
Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>
2020-10-29 13:46:16 +00:00
|
|
|
#if defined(CONFIG_ARCH_LS2080A) || defined(CONFIG_ARCH_LX2160A) || \
|
|
|
|
defined(CONFIG_ARCH_LX2162A)
|
2015-07-02 05:59:02 +00:00
|
|
|
#define FSL_DMA_STREAM_ID 6
|
2019-07-30 14:29:59 +00:00
|
|
|
#elif defined(CONFIG_ARCH_LS1088A) || defined(CONFIG_ARCH_LS1028A)
|
armv8: ls1088a: Add NXP LS1088A SoC support
LS1088A is compliant with the Layerscape Chassis Generation 3 with
eight ARM v8 Cortex-A53 cores in 2 cluster, CCI-400, one 64-bit DDR4
SDRAM memory controller with ECC, Data path acceleration architecture
2.0 (DPAA2), Ethernet interfaces (SGMIIs, RGMIIs, QSGMIIs, XFIs),
QSPI, IFC, PCIe, SATA, USB, SDXC, DUARTs etc.
Signed-off-by: Alison Wang <alison.wang@nxp.com>
Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Signed-off-by: Ashish Kumar <Ashish.Kumar@nxp.com>
Signed-off-by: Raghav Dogra <raghav.dogra@nxp.com>
Signed-off-by: Shaohui Xie <Shaohui.Xie@nxp.com>
[YS: Revised commit message]
Reviewed-by: York Sun <york.sun@nxp.com>
2017-08-31 10:42:53 +00:00
|
|
|
#define FSL_DMA_STREAM_ID 5
|
|
|
|
#endif
|
2015-07-02 05:59:02 +00:00
|
|
|
|
2016-03-10 16:52:07 +00:00
|
|
|
/* PCI - programmed in PEXn_LUT */
|
|
|
|
#define FSL_PEX_STREAM_ID_START 7
|
armv8: ls1088a: Add NXP LS1088A SoC support
LS1088A is compliant with the Layerscape Chassis Generation 3 with
eight ARM v8 Cortex-A53 cores in 2 cluster, CCI-400, one 64-bit DDR4
SDRAM memory controller with ECC, Data path acceleration architecture
2.0 (DPAA2), Ethernet interfaces (SGMIIs, RGMIIs, QSGMIIs, XFIs),
QSPI, IFC, PCIe, SATA, USB, SDXC, DUARTs etc.
Signed-off-by: Alison Wang <alison.wang@nxp.com>
Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Signed-off-by: Ashish Kumar <Ashish.Kumar@nxp.com>
Signed-off-by: Raghav Dogra <raghav.dogra@nxp.com>
Signed-off-by: Shaohui Xie <Shaohui.Xie@nxp.com>
[YS: Revised commit message]
Reviewed-by: York Sun <york.sun@nxp.com>
2017-08-31 10:42:53 +00:00
|
|
|
|
armv8: ls1028a: Add NXP LS1028A SoC support
Ls1028a SoC is based on Layerscape Chassis Generation 3.2
architecture with features:
2 ARM v8 Cortex-A72 cores, CCI400, SEC, DDR3L/4, LCD, GPU, TSN
ENETC, 2 USB 3.0, 2 eSDHC, 2 FlexCAN, 2 SPI, SATA, 8 I2C controllers,
6 LPUARTs, GPIO, SAI, qDMA, eDMA, GIC, TMU etc.
Signed-off-by: Sudhanshu Gupta <sudhanshu.gupta@nxp.com>
Signed-off-by: Rai Harninder <harninder.rai@nxp.com>
Signed-off-by: Rajesh Bhagat <rajesh.bhagat@nxp.com>
Signed-off-by: Bhaskar Upadhaya <Bhaskar.Upadhaya@nxp.com>
Signed-off-by: Tang Yuantian <andy.tang@nxp.com>
Reviewed-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
2019-04-10 08:43:33 +00:00
|
|
|
#if defined(CONFIG_ARCH_LS2080A) || defined(CONFIG_ARCH_LS1028A)
|
2016-03-10 16:52:07 +00:00
|
|
|
#define FSL_PEX_STREAM_ID_END 22
|
armv8: ls1088a: Add NXP LS1088A SoC support
LS1088A is compliant with the Layerscape Chassis Generation 3 with
eight ARM v8 Cortex-A53 cores in 2 cluster, CCI-400, one 64-bit DDR4
SDRAM memory controller with ECC, Data path acceleration architecture
2.0 (DPAA2), Ethernet interfaces (SGMIIs, RGMIIs, QSGMIIs, XFIs),
QSPI, IFC, PCIe, SATA, USB, SDXC, DUARTs etc.
Signed-off-by: Alison Wang <alison.wang@nxp.com>
Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Signed-off-by: Ashish Kumar <Ashish.Kumar@nxp.com>
Signed-off-by: Raghav Dogra <raghav.dogra@nxp.com>
Signed-off-by: Shaohui Xie <Shaohui.Xie@nxp.com>
[YS: Revised commit message]
Reviewed-by: York Sun <york.sun@nxp.com>
2017-08-31 10:42:53 +00:00
|
|
|
#elif defined(CONFIG_ARCH_LS1088A)
|
|
|
|
#define FSL_PEX_STREAM_ID_END 18
|
armv8: lx2162a: Add Soc changes to support LX2162A
LX2162 is LX2160 based SoC, it has same die as of LX2160
with different packaging.
LX2162A support 64-bit 2.9GT/s DDR4 memory, i2c, micro-click module,
microSD card, eMMC support, serial console, qspi nor flash, qsgmii,
sgmii, 25g, 40g, 50g network interface, one usb 3.0 and serdes
interface to support three PCIe gen3 interface.
Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
[Fixed whitespace errors]
Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>
2020-10-29 13:46:16 +00:00
|
|
|
#elif defined(CONFIG_ARCH_LX2160A) || defined(CONFIG_ARCH_LX2162A)
|
2019-11-15 09:23:39 +00:00
|
|
|
#define FSL_PEX_STREAM_ID_END (0x100)
|
armv8: ls1088a: Add NXP LS1088A SoC support
LS1088A is compliant with the Layerscape Chassis Generation 3 with
eight ARM v8 Cortex-A53 cores in 2 cluster, CCI-400, one 64-bit DDR4
SDRAM memory controller with ECC, Data path acceleration architecture
2.0 (DPAA2), Ethernet interfaces (SGMIIs, RGMIIs, QSGMIIs, XFIs),
QSPI, IFC, PCIe, SATA, USB, SDXC, DUARTs etc.
Signed-off-by: Alison Wang <alison.wang@nxp.com>
Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
Signed-off-by: Ashish Kumar <Ashish.Kumar@nxp.com>
Signed-off-by: Raghav Dogra <raghav.dogra@nxp.com>
Signed-off-by: Shaohui Xie <Shaohui.Xie@nxp.com>
[YS: Revised commit message]
Reviewed-by: York Sun <york.sun@nxp.com>
2017-08-31 10:42:53 +00:00
|
|
|
#endif
|
|
|
|
|
2015-07-02 05:59:02 +00:00
|
|
|
|
|
|
|
/* DPAA2 - set in MC DPC and alloced by MC */
|
|
|
|
#define FSL_DPAA2_STREAM_ID_START 23
|
|
|
|
#define FSL_DPAA2_STREAM_ID_END 63
|
|
|
|
|
2019-11-27 15:19:32 +00:00
|
|
|
/* PCI IEPs, this overlaps DPAA2 but these two are exclusive at least for now */
|
2021-01-12 13:12:46 +00:00
|
|
|
#define FSL_ECAM_STREAM_ID_START 41
|
2019-11-27 15:19:32 +00:00
|
|
|
#define FSL_ECAM_STREAM_ID_END 63
|
|
|
|
|
2019-07-30 14:29:58 +00:00
|
|
|
#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
|
|
|
|
|
2019-07-30 14:29:59 +00:00
|
|
|
#define FSL_SDMMC2_STREAM_ID 69
|
2019-10-18 09:01:56 +00:00
|
|
|
|
|
|
|
/*
|
|
|
|
* 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
|
2019-07-30 14:29:59 +00:00
|
|
|
#define FSL_EDMA_STREAM_ID 70
|
2019-10-18 09:01:56 +00:00
|
|
|
#endif
|
|
|
|
|
2019-07-30 14:29:59 +00:00
|
|
|
#define FSL_GPU_STREAM_ID 71
|
|
|
|
#define FSL_DISPLAY_STREAM_ID 72
|
2019-10-18 09:01:55 +00:00
|
|
|
#define FSL_SATA3_STREAM_ID 73
|
|
|
|
#define FSL_SATA4_STREAM_ID 74
|
2019-07-30 14:29:59 +00:00
|
|
|
|
2015-07-02 05:59:02 +00:00
|
|
|
#endif
|