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