diff options
author | David Daney <david.daney@cavium.com> | 2011-11-22 09:47:03 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2011-12-07 17:03:28 -0500 |
commit | ada11a339dc1dd5cf6724638675bfc008de99fac (patch) | |
tree | 9b5933f426f64cece95d83635b851c15617b8d10 /arch/mips/cavium-octeon | |
parent | af866496c7752d2c0bd97fcbb4627cac72aa9a64 (diff) |
MIPS: Octeon: Update bootloader board type constants.
Many new types of boards exist, so lets recognize them.
Signed-off-by: David Daney <david.daney@cavium.com>
Cc: linux-mips@linux-mips.org
Cc: netdev@vger.kernel.org
Cc: devel@driverdev.osuosl.org
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Patchwork: https://patchwork.linux-mips.org/patch/2940/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/cavium-octeon')
-rw-r--r-- | arch/mips/cavium-octeon/executive/cvmx-helper-board.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/mips/cavium-octeon/executive/cvmx-helper-board.c b/arch/mips/cavium-octeon/executive/cvmx-helper-board.c index 71590a35163b..fd2015331a20 100644 --- a/arch/mips/cavium-octeon/executive/cvmx-helper-board.c +++ b/arch/mips/cavium-octeon/executive/cvmx-helper-board.c | |||
@@ -117,6 +117,10 @@ int cvmx_helper_board_get_mii_address(int ipd_port) | |||
117 | case CVMX_BOARD_TYPE_EBH5200: | 117 | case CVMX_BOARD_TYPE_EBH5200: |
118 | case CVMX_BOARD_TYPE_EBH5201: | 118 | case CVMX_BOARD_TYPE_EBH5201: |
119 | case CVMX_BOARD_TYPE_EBT5200: | 119 | case CVMX_BOARD_TYPE_EBT5200: |
120 | /* Board has 2 management ports */ | ||
121 | if ((ipd_port >= CVMX_HELPER_BOARD_MGMT_IPD_PORT) && | ||
122 | (ipd_port < (CVMX_HELPER_BOARD_MGMT_IPD_PORT + 2))) | ||
123 | return ipd_port - CVMX_HELPER_BOARD_MGMT_IPD_PORT; | ||
120 | /* | 124 | /* |
121 | * Board has 4 SGMII ports. The PHYs start right after the MII | 125 | * Board has 4 SGMII ports. The PHYs start right after the MII |
122 | * ports MII0 = 0, MII1 = 1, SGMII = 2-5. | 126 | * ports MII0 = 0, MII1 = 1, SGMII = 2-5. |
@@ -128,6 +132,9 @@ int cvmx_helper_board_get_mii_address(int ipd_port) | |||
128 | case CVMX_BOARD_TYPE_EBH5600: | 132 | case CVMX_BOARD_TYPE_EBH5600: |
129 | case CVMX_BOARD_TYPE_EBH5601: | 133 | case CVMX_BOARD_TYPE_EBH5601: |
130 | case CVMX_BOARD_TYPE_EBH5610: | 134 | case CVMX_BOARD_TYPE_EBH5610: |
135 | /* Board has 1 management port */ | ||
136 | if (ipd_port == CVMX_HELPER_BOARD_MGMT_IPD_PORT) | ||
137 | return 0; | ||
131 | /* | 138 | /* |
132 | * Board has 8 SGMII ports. 4 connect out, two connect | 139 | * Board has 8 SGMII ports. 4 connect out, two connect |
133 | * to a switch, and 2 loop to each other | 140 | * to a switch, and 2 loop to each other |
@@ -147,6 +154,19 @@ int cvmx_helper_board_get_mii_address(int ipd_port) | |||
147 | return ipd_port - 16 + 1; | 154 | return ipd_port - 16 + 1; |
148 | else | 155 | else |
149 | return -1; | 156 | return -1; |
157 | case CVMX_BOARD_TYPE_NIC_XLE_10G: | ||
158 | case CVMX_BOARD_TYPE_NIC10E: | ||
159 | return -1; | ||
160 | case CVMX_BOARD_TYPE_NIC4E: | ||
161 | if (ipd_port >= 0 && ipd_port <= 3) | ||
162 | return (ipd_port + 0x1f) & 0x1f; | ||
163 | else | ||
164 | return -1; | ||
165 | case CVMX_BOARD_TYPE_NIC2E: | ||
166 | if (ipd_port >= 0 && ipd_port <= 1) | ||
167 | return ipd_port + 1; | ||
168 | else | ||
169 | return -1; | ||
150 | case CVMX_BOARD_TYPE_BBGW_REF: | 170 | case CVMX_BOARD_TYPE_BBGW_REF: |
151 | /* | 171 | /* |
152 | * No PHYs are connected to Octeon, everything is | 172 | * No PHYs are connected to Octeon, everything is |