О! Спасибо, что не молчите!!!
Значит так я делаю вот что:
for (phy = 0; phy <= 4; phy++) {
ethatp_IfcReadExtPhyReg(phy, MII_BMCR, ®_val);
reg_val &= (~(EPHY_AUTONEGOTIATE | EPHY_100MBIT | EPHY_FULLDUPLEX));
reg_val |= EPHY_FULLDUPLEX;
ethatp_IfcWriteExtPhyReg(phy, MII_BMCR, reg_val);
}
отключаю AUTONEGOTIATE для всех портов, ставлю скорость 10.
ethatp_IfcWriteExtPhyReg(6, 22, 0x8F3F);
и кроме того пишу волшебное число 0x8F3F (это было еще до меня) в регистр 22 для PHY 6 это как я понимаю для того порта, куда подключен процессор.
даташит я прикрепил (на самом деле RTL8306).
Схему вышлю чуть позже.