link_is_up = true;
}
*/
+
+ link_is_up = true; /* FIXME tell s/w link is up */
+
// fire off a receive from the ethernet
bp_receive_to_buf(CPU_RX_BUF, PORT_ETH, 1, 0, BP_LAST_LINE);
}
if (status & (BPS_DONE(CPU_TX_BUF) | BPS_ERROR(CPU_TX_BUF))){
+ if (status & BPS_ERROR(CPU_TX_BUF)){
+ putchar('E');
+ }
bp_clear_buf(CPU_TX_BUF);
npackets_sent++;
- if ((npackets_sent & 0xF) == 0) // print after every 16 packets
- print_rmon_regs();
+ if ((npackets_sent & 0xF) == 0){ // print after every 16 packets
+ //print_rmon_regs();
+ putchar('.');
+ }
}
if (link_is_up && send_packet_now && (status & BPS_IDLE(CPU_TX_BUF))){
while((eth_mac->miistatus & MIIS_BUSY) != 0)
;
- printf("MIIM-READ ADDR %d DATA %d\n",addr, eth_mac->miirx_data);
- return eth_mac->miirx_data;
+ int r = eth_mac->miirx_data;
+ printf("MIIM-READ ADDR 0x%x DATA 0x%x\n",addr, r);
+ return r;
}
void
eth_mac->miitx_data = value;
eth_mac->miicommand = MIIC_WCTRLDATA;
- printf("MIIM-WRITE ADDR %d VAL %d\n",addr,value);
+ printf("MIIM-WRITE ADDR 0x%x VAL 0x%x\n",addr,value);
while((eth_mac->miistatus & MIIS_BUSY) != 0)
;
}
t &= ~(NWAY_AR_10T_HD_CAPS | NWAY_AR_10T_FD_CAPS | NWAY_AR_100TX_HD_CAPS | NWAY_AR_100TX_FD_CAPS);
eth_mac_miim_write(PHY_AUTONEG_ADV, t);
+ int r = eth_mac_miim_read(PHY_AUTONEG_ADV); // DEBUG, read back
+ if (t != r){
+ printf("PHY_AUTONEG_ADV: wrote 0x%x, got 0x%x\n", t, r);
+ }
// Restart autonegotation.
// We want to ensure that we're advertising our PAUSE capabilities.