Lines Matching refs:interface

47  * @interface: Interface to init
48 * @index: Index of prot on the interface
52 static int __cvmx_helper_sgmii_hardware_init_one_time(int interface, int index)
60 gmxx_prtx_cfg.u64 = cvmx_read_csr(CVMX_GMXX_PRTX_CFG(index, interface));
62 cvmx_write_csr(CVMX_GMXX_PRTX_CFG(index, interface), gmxx_prtx_cfg.u64);
70 cvmx_read_csr(CVMX_PCSX_MISCX_CTL_REG(index, interface));
72 cvmx_read_csr(CVMX_PCSX_LINKX_TIMER_COUNT_REG(index, interface));
82 cvmx_write_csr(CVMX_PCSX_LINKX_TIMER_COUNT_REG(index, interface),
98 cvmx_read_csr(CVMX_PCSX_ANX_ADV_REG(index, interface));
103 cvmx_write_csr(CVMX_PCSX_ANX_ADV_REG(index, interface),
108 cvmx_read_csr(CVMX_PCSX_MISCX_CTL_REG(index, interface));
114 (index, interface));
119 (index, interface),
132 * @interface: Interface to init
133 * @index: Index of prot on the interface
137 static int __cvmx_helper_sgmii_hardware_init_link(int interface, int index)
150 cvmx_read_csr(CVMX_PCSX_MRX_CONTROL_REG(index, interface));
153 cvmx_write_csr(CVMX_PCSX_MRX_CONTROL_REG(index, interface),
156 (CVMX_PCSX_MRX_CONTROL_REG(index, interface),
160 interface, index);
172 cvmx_write_csr(CVMX_PCSX_MRX_CONTROL_REG(index, interface),
182 CVMX_WAIT_FOR_FIELD64(CVMX_PCSX_MRX_STATUS_REG(index, interface),
185 /* cvmx_dprintf("SGMII%d: Port %d link timeout\n", interface, index); */
195 * @interface: Interface to init
196 * @index: Index of prot on the interface
201 static int __cvmx_helper_sgmii_hardware_init_link_speed(int interface,
211 gmxx_prtx_cfg.u64 = cvmx_read_csr(CVMX_GMXX_PRTX_CFG(index, interface));
214 cvmx_write_csr(CVMX_GMXX_PRTX_CFG(index, interface), gmxx_prtx_cfg.u64);
218 (CVMX_GMXX_PRTX_CFG(index, interface), union cvmx_gmxx_prtx_cfg,
220 || CVMX_WAIT_FOR_FIELD64(CVMX_GMXX_PRTX_CFG(index, interface),
225 interface, index);
230 gmxx_prtx_cfg.u64 = cvmx_read_csr(CVMX_GMXX_PRTX_CFG(index, interface));
237 cvmx_read_csr(CVMX_PCSX_MISCX_CTL_REG(index, interface));
257 cvmx_write_csr(CVMX_GMXX_TXX_SLOT(index, interface), 64);
258 cvmx_write_csr(CVMX_GMXX_TXX_BURST(index, interface), 0);
265 cvmx_write_csr(CVMX_GMXX_TXX_SLOT(index, interface), 64);
266 cvmx_write_csr(CVMX_GMXX_TXX_BURST(index, interface), 0);
273 cvmx_write_csr(CVMX_GMXX_TXX_SLOT(index, interface), 512);
274 cvmx_write_csr(CVMX_GMXX_TXX_BURST(index, interface), 8192);
281 cvmx_write_csr(CVMX_PCSX_MISCX_CTL_REG(index, interface),
285 cvmx_write_csr(CVMX_GMXX_PRTX_CFG(index, interface), gmxx_prtx_cfg.u64);
288 gmxx_prtx_cfg.u64 = cvmx_read_csr(CVMX_GMXX_PRTX_CFG(index, interface));
292 cvmx_write_csr(CVMX_GMXX_PRTX_CFG(index, interface), gmxx_prtx_cfg.u64);
298 * Bring up the SGMII interface to be ready for packet I/O but
302 * @interface: Interface to bringup
303 * @num_ports: Number of ports on the interface
307 static int __cvmx_helper_sgmii_hardware_init(int interface, int num_ports)
311 __cvmx_helper_setup_gmx(interface, num_ports);
314 int ipd_port = cvmx_helper_get_ipd_port(interface, index);
315 __cvmx_helper_sgmii_hardware_init_one_time(interface, index);
329 int __cvmx_helper_sgmii_enumerate(int interface)
334 * Probe a SGMII interface and determine the number of ports
335 * connected to it. The SGMII interface should still be down after
338 * @interface: Interface to probe
340 * Returns Number of ports on the interface. Zero to disable.
342 int __cvmx_helper_sgmii_probe(int interface)
348 * interface needs to be enabled before IPD otherwise per port
351 mode.u64 = cvmx_read_csr(CVMX_GMXX_INF_MODE(interface));
353 cvmx_write_csr(CVMX_GMXX_INF_MODE(interface), mode.u64);
354 return __cvmx_helper_sgmii_enumerate(interface);
358 * Bringup and enable a SGMII interface. After this call packet
362 * @interface: Interface to bring up
366 int __cvmx_helper_sgmii_enable(int interface)
368 int num_ports = cvmx_helper_ports_on_interface(interface);
371 __cvmx_helper_sgmii_hardware_init(interface, num_ports);
376 cvmx_read_csr(CVMX_GMXX_PRTX_CFG(index, interface));
378 cvmx_write_csr(CVMX_GMXX_PRTX_CFG(index, interface),
380 __cvmx_interrupt_pcsx_intx_en_reg_enable(index, interface);
382 __cvmx_interrupt_pcsxx_int_en_reg_enable(interface);
383 __cvmx_interrupt_gmxx_enable(interface);
401 int interface = cvmx_helper_get_interface_num(ipd_port);
416 cvmx_read_csr(CVMX_PCSX_MRX_CONTROL_REG(index, interface));
426 cvmx_read_csr(CVMX_PCSX_MISCX_CTL_REG(index, interface));
433 cvmx_read_csr(CVMX_PCSX_MISCX_CTL_REG(index, interface));
445 (index, interface));
448 (interface, index) != 0)
455 (index, interface));
510 int interface = cvmx_helper_get_interface_num(ipd_port);
512 __cvmx_helper_sgmii_hardware_init_link(interface, index);
513 return __cvmx_helper_sgmii_hardware_init_link_speed(interface, index,