1*83d290c5STom Rini // SPDX-License-Identifier: GPL-2.0+
2db977abfSKumar Gala /*
333e68354SLaurentiu TUDOR  * Copyright 2010-2011 Freescale Semiconductor, Inc.
4db977abfSKumar Gala  */
5db977abfSKumar Gala 
6db977abfSKumar Gala #include <common.h>
7db977abfSKumar Gala #include <asm/fsl_portals.h>
8db977abfSKumar Gala #include <asm/fsl_liodn.h>
9db977abfSKumar Gala 
1058b2f96eSKumar Gala #ifdef CONFIG_SYS_DPAA_QBMAN
11db977abfSKumar Gala struct qportal_info qp_info[CONFIG_SYS_QMAN_NUM_PORTALS] = {
12db977abfSKumar Gala 	/* dqrr liodn, frame data liodn, liodn off, sdest */
13db977abfSKumar Gala 	SET_QP_INFO( 1,  2,  1, 0),
14db977abfSKumar Gala 	SET_QP_INFO( 3,  4,  2, 1),
15db977abfSKumar Gala 	SET_QP_INFO( 5,  6,  3, 2),
16db977abfSKumar Gala 	SET_QP_INFO( 7,  8,  4, 3),
17db977abfSKumar Gala 	SET_QP_INFO( 9, 10,  5, 4),
18db977abfSKumar Gala 	SET_QP_INFO(11, 12,  6, 5),
19db977abfSKumar Gala 	SET_QP_INFO(13, 14,  7, 6),
20db977abfSKumar Gala 	SET_QP_INFO(15, 16,  8, 7),
21db977abfSKumar Gala 	SET_QP_INFO(17, 18,  9, 0), /* for now sdest to 0 */
22db977abfSKumar Gala 	SET_QP_INFO(19, 20, 10, 0), /* for now sdest to 0 */
23db977abfSKumar Gala };
2458b2f96eSKumar Gala #endif
25db977abfSKumar Gala 
261a0c6421SKumar Gala struct srio_liodn_id_table srio_liodn_tbl[] = {
271a0c6421SKumar Gala 	SET_SRIO_LIODN_1(1, 198),
281a0c6421SKumar Gala 	SET_SRIO_LIODN_1(2, 199),
291a0c6421SKumar Gala };
301a0c6421SKumar Gala int srio_liodn_tbl_sz = ARRAY_SIZE(srio_liodn_tbl);
311a0c6421SKumar Gala 
32db977abfSKumar Gala struct liodn_id_table liodn_tbl[] = {
33db977abfSKumar Gala 	SET_USB_LIODN(1, "fsl-usb2-mph", 127),
34db977abfSKumar Gala 	SET_USB_LIODN(2, "fsl-usb2-dr", 157),
35db977abfSKumar Gala 
36db977abfSKumar Gala 	SET_SDHC_LIODN(1, 156),
37db977abfSKumar Gala 
385c5befdaSTimur Tabi 	SET_PCI_LIODN(CONFIG_SYS_FSL_PCIE_COMPAT, 1, 193),
395c5befdaSTimur Tabi 	SET_PCI_LIODN(CONFIG_SYS_FSL_PCIE_COMPAT, 2, 194),
405c5befdaSTimur Tabi 	SET_PCI_LIODN(CONFIG_SYS_FSL_PCIE_COMPAT, 3, 195),
41db977abfSKumar Gala 
428d3eaa97STudor Laurentiu 	SET_DMA_LIODN(1, "fsl,eloplus-dma", 196),
438d3eaa97STudor Laurentiu 	SET_DMA_LIODN(2, "fsl,eloplus-dma", 197),
44db977abfSKumar Gala 
451a0c6421SKumar Gala 	SET_GUTS_LIODN("fsl,srio-rmu", 200, rmuliodnr, 0xd3000),
46db977abfSKumar Gala 
4758b2f96eSKumar Gala #ifdef CONFIG_SYS_DPAA_QBMAN
48db977abfSKumar Gala 	SET_QMAN_LIODN(31),
49db977abfSKumar Gala 	SET_BMAN_LIODN(32),
5058b2f96eSKumar Gala #endif
51db977abfSKumar Gala 	SET_PME_LIODN(128),
52db977abfSKumar Gala };
5358b2f96eSKumar Gala int liodn_tbl_sz = ARRAY_SIZE(liodn_tbl);
54db977abfSKumar Gala 
55db977abfSKumar Gala #ifdef CONFIG_SYS_DPAA_FMAN
5697a8d010SIgal Liberman struct fman_liodn_id_table fman1_liodn_tbl[] = {
57db977abfSKumar Gala 	SET_FMAN_RX_1G_LIODN(1, 0, 11),
58db977abfSKumar Gala 	SET_FMAN_RX_1G_LIODN(1, 1, 12),
59db977abfSKumar Gala 	SET_FMAN_RX_1G_LIODN(1, 2, 13),
60db977abfSKumar Gala 	SET_FMAN_RX_1G_LIODN(1, 3, 14),
61db977abfSKumar Gala 	SET_FMAN_RX_10G_LIODN(1, 0, 15),
62db977abfSKumar Gala };
6358b2f96eSKumar Gala int fman1_liodn_tbl_sz = ARRAY_SIZE(fman1_liodn_tbl);
64db977abfSKumar Gala 
65db977abfSKumar Gala #if (CONFIG_SYS_NUM_FMAN == 2)
6697a8d010SIgal Liberman struct fman_liodn_id_table fman2_liodn_tbl[] = {
67db977abfSKumar Gala 	SET_FMAN_RX_1G_LIODN(2, 0, 16),
68db977abfSKumar Gala 	SET_FMAN_RX_1G_LIODN(2, 1, 17),
69db977abfSKumar Gala 	SET_FMAN_RX_1G_LIODN(2, 2, 18),
70db977abfSKumar Gala 	SET_FMAN_RX_1G_LIODN(2, 3, 19),
71db977abfSKumar Gala 	SET_FMAN_RX_10G_LIODN(2, 0, 20),
72db977abfSKumar Gala };
7358b2f96eSKumar Gala int fman2_liodn_tbl_sz = ARRAY_SIZE(fman2_liodn_tbl);
74db977abfSKumar Gala #endif
75db977abfSKumar Gala #endif
76db977abfSKumar Gala 
77db977abfSKumar Gala struct liodn_id_table sec_liodn_tbl[] = {
78e95a0611SKim Phillips 	/*
79e95a0611SKim Phillips 	 * We assume currently that all JR are in the same partition
80e95a0611SKim Phillips 	 * and as such they need to represent the same LIODN due to
81e95a0611SKim Phillips 	 * a 4080 rev.2 h/w requirement that DECOs sharing from themselves
82e95a0611SKim Phillips 	 * or from another DECO have the two Non-SEQ LIODN values equal
83e95a0611SKim Phillips 	 */
84e95a0611SKim Phillips 	SET_SEC_JR_LIODN_ENTRY(0, 146, 154), /* (0, 146, 154), */
85e95a0611SKim Phillips 	SET_SEC_JR_LIODN_ENTRY(1, 146, 154), /* (1, 147, 155), */
86e95a0611SKim Phillips 	SET_SEC_JR_LIODN_ENTRY(2, 146, 154), /* (2, 178, 186), */
87e95a0611SKim Phillips 	SET_SEC_JR_LIODN_ENTRY(3, 146, 154), /* (3, 179, 187), */
88db977abfSKumar Gala 	SET_SEC_RTIC_LIODN_ENTRY(a, 144),
89db977abfSKumar Gala 	SET_SEC_RTIC_LIODN_ENTRY(b, 145),
90db977abfSKumar Gala 	SET_SEC_RTIC_LIODN_ENTRY(c, 176),
91db977abfSKumar Gala 	SET_SEC_RTIC_LIODN_ENTRY(d, 177),
92db977abfSKumar Gala 	SET_SEC_DECO_LIODN_ENTRY(0, 129, 161),
93db977abfSKumar Gala 	SET_SEC_DECO_LIODN_ENTRY(1, 130, 162),
94db977abfSKumar Gala 	SET_SEC_DECO_LIODN_ENTRY(2, 131, 163),
95db977abfSKumar Gala 	SET_SEC_DECO_LIODN_ENTRY(3, 132, 164),
96db977abfSKumar Gala 	SET_SEC_DECO_LIODN_ENTRY(4, 133, 165),
97db977abfSKumar Gala };
9858b2f96eSKumar Gala int sec_liodn_tbl_sz = ARRAY_SIZE(sec_liodn_tbl);
99db977abfSKumar Gala 
100db977abfSKumar Gala struct liodn_id_table liodn_bases[] = {
101db977abfSKumar Gala 	[FSL_HW_PORTAL_SEC]  = SET_LIODN_BASE_2(96, 106),
102db977abfSKumar Gala #ifdef CONFIG_SYS_DPAA_FMAN
103db977abfSKumar Gala 	[FSL_HW_PORTAL_FMAN1] = SET_LIODN_BASE_1(32),
104db977abfSKumar Gala #if (CONFIG_SYS_NUM_FMAN == 2)
105db977abfSKumar Gala 	[FSL_HW_PORTAL_FMAN2] = SET_LIODN_BASE_1(64),
106db977abfSKumar Gala #endif
107db977abfSKumar Gala #endif
108db977abfSKumar Gala #ifdef CONFIG_SYS_DPAA_PME
109db977abfSKumar Gala 	[FSL_HW_PORTAL_PME]   = SET_LIODN_BASE_2(116, 133),
110db977abfSKumar Gala #endif
111db977abfSKumar Gala };
112