IAL400, ethtool
Мануальный форсаж режимов без autonegotiation не работает, с autonegotiation все ок
если смотреть на линк с другой стороны то при установлении 100(10)-HD переходит в half duplex и обратно возвратить не возможно, только через включение autoneg
10-FD установить невозможно
сам же phy(по статусу) при этом находится в 10-FD
Встречал ли кто такую ситуацию или это у меня проблемы с драйвером?
статус вычитываю так:
Код
... ixEthAccMiiReadRtn(phyAddr, IX_ETH_MII_STAT_REG, &statRegval);
if(!autoneg) {
...
if(ixEthMiiPhyId[phyAddr] == IX_ETH_MII_RTL8201CP_PHY_ID) {
ixEthAccMiiReadRtn(phyAddr, 0x19, ®val25);
if(regval25&0x01)
*speed100 = TRUE;
*fullDuplex = ( (statRegval & (IX_ETH_MII_SR_10T_HALF_DPX|IX_ETH_MII_SR_TX_HALF_DPX)) != 0);
}
...
}
if(!autoneg) {
...
if(ixEthMiiPhyId[phyAddr] == IX_ETH_MII_RTL8201CP_PHY_ID) {
ixEthAccMiiReadRtn(phyAddr, 0x19, ®val25);
if(regval25&0x01)
*speed100 = TRUE;
*fullDuplex = ( (statRegval & (IX_ETH_MII_SR_10T_HALF_DPX|IX_ETH_MII_SR_TX_HALF_DPX)) != 0);
}
...
}
И соответственно устанавка режимов:
Код
if(speed100)
regval |= 0x2000;
if(fullDuplex)
regval |= 0x0100;
regval |= 0x2000;
if(fullDuplex)
regval |= 0x0100;