if (cvmx_sysinfo_get()->board_type != CVMX_BOARD_TYPE_SIM) {
cvmx_spi_start_interface(interface, CVMX_SPI_MODE_DUPLEX,
CVMX_HELPER_SPI_TIMEOUT, num_ports); if (cvmx_spi4000_is_present(interface))
cvmx_spi4000_initialize(interface);
}
__cvmx_interrupt_spxx_int_msk_enable(interface);
__cvmx_interrupt_stxx_int_msk_enable(interface);
__cvmx_interrupt_gmxx_enable(interface); return0;
}
/** *ReturnthelinkstateofanIPD/PKOportasreturnedby *autonegotiation.Theresultofthisfunctionmaynotmatch *Octeon'slinkconfigifautonegotiationhaschangedsince *thelastcalltocvmx_helper_link_set(). * *@ipd_port:IPD/PKOporttoquery * *ReturnsLinkstate
*/ union cvmx_helper_link_info __cvmx_helper_spi_link_get(int ipd_port)
{ union cvmx_helper_link_info result; int interface = cvmx_helper_get_interface_num(ipd_port); int index = cvmx_helper_get_interface_index_num(ipd_port);
result.u64 = 0;
if (cvmx_sysinfo_get()->board_type == CVMX_BOARD_TYPE_SIM) { /* The simulator gives you a simulated full duplex link */
result.s.link_up = 1;
result.s.full_duplex = 1;
result.s.speed = 10000;
} elseif (cvmx_spi4000_is_present(interface)) { union cvmx_gmxx_rxx_rx_inbnd inband =
cvmx_spi4000_check_speed(interface, index);
result.s.link_up = inband.s.status;
result.s.full_duplex = inband.s.duplex; switch (inband.s.speed) { case0: /* 10 Mbps */
result.s.speed = 10; break; case1: /* 100 Mbps */
result.s.speed = 100; break; case2: /* 1 Gbps */
result.s.speed = 1000; break; case3: /* Illegal */
result.s.speed = 0;
result.s.link_up = 0; break;
}
} else { /* For generic SPI we can't determine the link, just return some
sane results */
result.s.link_up = 1;
result.s.full_duplex = 1;
result.s.speed = 10000;
} return result;
}
/** *ConfigureanIPD/PKOportforthespecifiedlinkstate.This *functiondoesnotinfluenceautonegotiationatthePHYlevel. *Thepassedlinkstatemustalwaysmatchthelinkstatereturned *bycvmx_helper_link_get(). * *@ipd_port:IPD/PKOporttoconfigure *@link_info:Thenewlinkstate * *ReturnsZeroonsuccess,negativeonfailure
*/ int __cvmx_helper_spi_link_set(int ipd_port, union cvmx_helper_link_info link_info)
{ /* Nothing to do. If we have a SPI4000 then the setup was already performed bycvmx_spi4000_check_speed().Ifnotthenthereisn'tanylink
info */ return0;
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet am 2026-09-29)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.