Lines Matching refs:interface

128 /* Port count per interface */
135 * Return the number of interfaces the chip has. Each interface
138 * one interface.
168 * Return the number of ports on an interface. Depending on the
170 * specifies that the interface doesn't exist or isn't usable.
172 * @param interface Interface to get the port count for
174 * @return Number of ports on interface. Can be Zero.
176 int cvmx_helper_ports_on_interface(int interface)
178 return interface_port_count[interface];
186 * Get the operating mode of an interface. Depending on the Octeon
188 * of the type of packet I/O supported by an interface.
190 * @param interface Interface to probe
192 * @return Mode of the interface. Unknown or unsupported interfaces return
195 cvmx_helper_interface_mode_t cvmx_helper_interface_get_mode(int interface)
198 if (interface == 2)
201 if (interface == 3)
209 if (OCTEON_IS_MODEL(OCTEON_CN6XXX) && (interface == 4 || interface == 5))
212 sriox_status_reg.u64 = cvmx_read_csr(CVMX_SRIOX_STATUS_REG(interface-4));
219 if (interface == 0 && cvmx_sysinfo_get()->board_type == CVMX_BOARD_TYPE_CN3005_EVB_HS5 && cvmx_sysinfo_get()->board_rev_major == 1)
221 /* Lie about interface type of CN3005 board. This board has a switch on port 1 like
230 if ((interface == 1) && (OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN30XX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN63XX)))
233 mode.u64 = cvmx_read_csr(CVMX_GMXX_INF_MODE(interface));
283 * per interface numbering
331 * This function probes an interface to determine the actual
334 * interface_port_count[interface] correctly. Hardware setup of the
337 * @param interface Interface to probe
341 int cvmx_helper_interface_probe(int interface)
346 switch (cvmx_helper_interface_get_mode(interface))
351 interface_port_count[interface] = 0;
355 interface_port_count[interface] = __cvmx_helper_xaui_probe(interface);
361 interface_port_count[interface] = __cvmx_helper_rgmii_probe(interface);
365 interface_port_count[interface] = __cvmx_helper_spi_probe(interface);
370 interface_port_count[interface] = __cvmx_helper_sgmii_probe(interface);
374 interface_port_count[interface] = __cvmx_helper_npi_probe(interface);
379 interface_port_count[interface] = __cvmx_helper_loop_probe(interface);
383 interface_port_count[interface] = __cvmx_helper_srio_probe(interface);
387 interface_port_count[interface] = __cvmx_helper_board_interface_probe(interface, interface_port_count[interface]);
398 * Setup the IPD/PIP for the ports on an interface. Packet
400 * interface. The number of ports on the interface must already
403 * @param interface Interface to setup IPD/PIP for
407 static int __cvmx_helper_interface_setup_ipd(int interface)
409 int ipd_port = cvmx_helper_get_ipd_port(interface, 0);
410 int num_ports = interface_port_count[interface];
424 * interface or port. This must be called before IPD is enabled.
448 * Setup the PKO for the ports on an interface. The number of
452 * @param interface Interface to setup PKO for
456 static int __cvmx_helper_interface_setup_pko(int interface)
472 int ipd_port = cvmx_helper_get_ipd_port(interface, 0);
473 int num_ports = interface_port_count[interface];
491 * interface or port. This must be called before PKO is enabled.
520 int interface;
521 for (interface=0; interface<num_interfaces; interface++)
523 switch (cvmx_helper_interface_get_mode(interface))
537 cvmx_gmx_set_backpressure_override(interface, 0xf);
669 * @param interface Interface to enable
673 static int __cvmx_helper_packet_hardware_enable(int interface)
676 switch (cvmx_helper_interface_get_mode(interface))
685 result = __cvmx_helper_xaui_enable(interface);
691 result = __cvmx_helper_rgmii_enable(interface);
695 result = __cvmx_helper_spi_enable(interface);
700 result = __cvmx_helper_sgmii_enable(interface);
704 result = __cvmx_helper_npi_enable(interface);
709 result = __cvmx_helper_loop_enable(interface);
713 result = __cvmx_helper_srio_enable(interface);
716 result |= __cvmx_helper_board_hardware_enable(interface);
730 int interface;
738 for (interface=0; interface<num_interfaces; interface++)
740 if (cvmx_helper_ports_on_interface(interface) > 0)
742 //cvmx_dprintf("Enabling packet I/O on interface %d\n", interface);
743 __cvmx_helper_packet_hardware_enable(interface);
771 int interface;
823 for (interface=0; interface<num_interfaces; interface++)
824 result |= cvmx_helper_interface_probe(interface);
827 for (interface=0; interface<num_interfaces; interface++)
829 if (cvmx_helper_ports_on_interface(interface) > 0)
831 interface, cvmx_helper_ports_on_interface(interface),
832 cvmx_helper_interface_mode_to_string(cvmx_helper_interface_get_mode(interface)));
833 result |= __cvmx_helper_interface_setup_ipd(interface);
834 result |= __cvmx_helper_interface_setup_pko(interface);
880 int interface;
887 for (interface=0; interface<2; interface++)
888 if (cvmx_helper_interface_get_mode(interface) != CVMX_HELPER_INTERFACE_MODE_DISABLED)
889 cvmx_gmx_set_backpressure_override(interface, 0xf);
894 for (interface=0; interface<num_interfaces; interface++)
896 num_ports = cvmx_helper_ports_on_interface(interface);
899 int pko_port = cvmx_helper_get_ipd_port(interface, index);
925 for (interface=0; interface<2; interface++)
927 switch (cvmx_helper_interface_get_mode(interface))
931 /* Not a packet interface */
950 cvmx_write_csr(CVMX_ASXX_RX_PRT_EN(interface), 0);
951 num_ports = cvmx_helper_ports_on_interface(interface);
957 gmx_cfg.u64 = cvmx_read_csr(CVMX_GMXX_PRTX_CFG(index, interface));
959 cvmx_write_csr(CVMX_GMXX_PRTX_CFG(index, interface), gmx_cfg.u64);
961 cvmx_write_csr(CVMX_NPI_DBG_SELECT, interface*0x800 + index*0x100 + 0x880);
974 cvmx_write_csr(CVMX_ASXX_TX_PRT_EN(interface), 0);
975 /* Disable interrupts for interface */
976 cvmx_write_csr(CVMX_ASXX_INT_EN(interface), 0);
977 cvmx_write_csr(CVMX_GMXX_TX_INT_EN(interface), 0);
982 num_ports = cvmx_helper_ports_on_interface(interface);
988 gmx_cfg.u64 = cvmx_read_csr(CVMX_GMXX_PRTX_CFG(index, interface));
990 cvmx_write_csr(CVMX_GMXX_PRTX_CFG(index, interface), gmx_cfg.u64);
991 if (CVMX_WAIT_FOR_FIELD64(CVMX_GMXX_PRTX_CFG(index, interface), cvmx_gmxx_prtx_cfg_t, rx_idle, ==, 1, timeout*1000000))
996 if (CVMX_WAIT_FOR_FIELD64(CVMX_GMXX_PRTX_CFG(index, interface), cvmx_gmxx_prtx_cfg_t, tx_idle, ==, 1, timeout*1000000))
1095 for (interface=0; interface<2; interface++)
1097 switch (cvmx_helper_interface_get_mode(interface))
1111 num_ports = cvmx_helper_ports_on_interface(interface);
1116 cvmx_write_csr(CVMX_GMXX_RXX_ADR_CTL(index, interface), 1);
1117 cvmx_write_csr(CVMX_GMXX_RXX_ADR_CAM_EN(index, interface), 0);
1118 cvmx_write_csr(CVMX_GMXX_RXX_ADR_CAM0(index, interface), 0);
1119 cvmx_write_csr(CVMX_GMXX_RXX_ADR_CAM1(index, interface), 0);
1120 cvmx_write_csr(CVMX_GMXX_RXX_ADR_CAM2(index, interface), 0);
1121 cvmx_write_csr(CVMX_GMXX_RXX_ADR_CAM3(index, interface), 0);
1122 cvmx_write_csr(CVMX_GMXX_RXX_ADR_CAM4(index, interface), 0);
1123 cvmx_write_csr(CVMX_GMXX_RXX_ADR_CAM5(index, interface), 0);
1229 int interface = cvmx_helper_get_interface_num(ipd_port);
1232 if (index >= cvmx_helper_ports_on_interface(interface))
1276 int interface = cvmx_helper_get_interface_num(ipd_port);
1283 if (index >= cvmx_helper_ports_on_interface(interface))
1286 switch (cvmx_helper_interface_get_mode(interface))
1345 int interface = cvmx_helper_get_interface_num(ipd_port);
1348 if (index >= cvmx_helper_ports_on_interface(interface))
1351 switch (cvmx_helper_interface_get_mode(interface))
1407 int interface = cvmx_helper_get_interface_num(ipd_port);
1410 if (index >= cvmx_helper_ports_on_interface(interface))
1413 switch (cvmx_helper_interface_get_mode(interface))