1*5344c7b7SBharat Bhushan /* 2*5344c7b7SBharat Bhushan * Copyright 2017 NXP Semiconductor, Inc. 3*5344c7b7SBharat Bhushan * 4*5344c7b7SBharat Bhushan * SPDX-License-Identifier: GPL-2.0+ 5*5344c7b7SBharat Bhushan * 6*5344c7b7SBharat Bhushan */ 7*5344c7b7SBharat Bhushan #ifndef __FSL_STREAM_ID_H 8*5344c7b7SBharat Bhushan #define __FSL_STREAM_ID_H 9*5344c7b7SBharat Bhushan 10*5344c7b7SBharat Bhushan /* 11*5344c7b7SBharat Bhushan * Stream IDs on Chassis-2 (for example ls1043a, ls1046a, ls1012) devices 12*5344c7b7SBharat Bhushan * are not hardwired and are programmed by sw. There are a limited number 13*5344c7b7SBharat Bhushan * of stream IDs available, and the partitioning of them is scenario 14*5344c7b7SBharat Bhushan * dependent. This header defines the partitioning between legacy, PCI, 15*5344c7b7SBharat Bhushan * and DPAA1 devices. 16*5344c7b7SBharat Bhushan * 17*5344c7b7SBharat Bhushan * This partitioning can be customized in this file depending 18*5344c7b7SBharat Bhushan * on the specific hardware config: 19*5344c7b7SBharat Bhushan * 20*5344c7b7SBharat Bhushan * -non-PCI legacy, platform devices (USB, SDHC, SATA, DMA, QE etc) 21*5344c7b7SBharat Bhushan * -all legacy devices get a unique stream ID assigned and programmed in 22*5344c7b7SBharat Bhushan * their AMQR registers by u-boot 23*5344c7b7SBharat Bhushan * 24*5344c7b7SBharat Bhushan * -PCIe 25*5344c7b7SBharat Bhushan * -there is a range of stream IDs set aside for PCI in this 26*5344c7b7SBharat Bhushan * file. U-boot will scan the PCI bus and for each device discovered: 27*5344c7b7SBharat Bhushan * -allocate a streamID 28*5344c7b7SBharat Bhushan * -set a PEXn LUT table entry mapping 'requester ID' to 'stream ID' 29*5344c7b7SBharat Bhushan * -set a msi-map entry in the PEXn controller node in the 30*5344c7b7SBharat Bhushan * device tree (see Documentation/devicetree/bindings/pci/pci-msi.txt 31*5344c7b7SBharat Bhushan * for more info on the msi-map definition) 32*5344c7b7SBharat Bhushan * -set a iommu-map entry in the PEXn controller node in the 33*5344c7b7SBharat Bhushan * device tree (see Documentation/devicetree/bindings/pci/pci-iommu.txt 34*5344c7b7SBharat Bhushan * for more info on the iommu-map definition) 35*5344c7b7SBharat Bhushan * 36*5344c7b7SBharat Bhushan * -DPAA1 37*5344c7b7SBharat Bhushan * - Stream ids for DPAA1 use are reserved for future usecase. 38*5344c7b7SBharat Bhushan * 39*5344c7b7SBharat Bhushan */ 40*5344c7b7SBharat Bhushan 41*5344c7b7SBharat Bhushan 42*5344c7b7SBharat Bhushan #define FSL_INVALID_STREAM_ID 0 43*5344c7b7SBharat Bhushan 44*5344c7b7SBharat Bhushan /* legacy devices */ 45*5344c7b7SBharat Bhushan #define FSL_USB1_STREAM_ID 1 46*5344c7b7SBharat Bhushan #define FSL_USB2_STREAM_ID 2 47*5344c7b7SBharat Bhushan #define FSL_USB3_STREAM_ID 3 48*5344c7b7SBharat Bhushan #define FSL_SDHC_STREAM_ID 4 49*5344c7b7SBharat Bhushan #define FSL_SATA_STREAM_ID 5 50*5344c7b7SBharat Bhushan #define FSL_QE_STREAM_ID 6 51*5344c7b7SBharat Bhushan #define FSL_QDMA_STREAM_ID 7 52*5344c7b7SBharat Bhushan #define FSL_EDMA_STREAM_ID 8 53*5344c7b7SBharat Bhushan #define FSL_ETR_STREAM_ID 9 54*5344c7b7SBharat Bhushan 55*5344c7b7SBharat Bhushan /* PCI - programmed in PEXn_LUT */ 56*5344c7b7SBharat Bhushan #define FSL_PEX_STREAM_ID_START 11 57*5344c7b7SBharat Bhushan #define FSL_PEX_STREAM_ID_END 26 58*5344c7b7SBharat Bhushan 59*5344c7b7SBharat Bhushan /* DPAA1 - Stream-ID that can be programmed in DPAA1 h/w */ 60*5344c7b7SBharat Bhushan #define FSL_DPAA1_STREAM_ID_START 27 61*5344c7b7SBharat Bhushan #define FSL_DPAA1_STREAM_ID_END 63 62*5344c7b7SBharat Bhushan 63*5344c7b7SBharat Bhushan #endif 64