int txd = first_txd;
while( (idx = IPStack_Buffer_GetBuffer(Buffer, idx, &len, &ptr)) != -1 )
{
+ //Debug_HexDump("E100 SendPacket", ptr, len);
if( MM_GetPhysAddr(ptr) + len-1 != MM_GetPhysAddr((char*)ptr + len-1) )
{
size_t remlen = PAGE_SIZE - ((tVAddr)ptr & (PAGE_SIZE-1));
{
LOG("No completed TXDs");
}
- }
-
+ }
+
if( icr & ICR_LSC )
{
// Link status change
LOG("nPackets = %i", nPackets);
}
- icr &= ~(ICR_RXT0|ICR_LSC|ICR_TXQE|ICR_TXDW);
+ // Transmit Descriptor Low Threshold hit
+ if( icr & ICR_TXD_LOW )
+ {
+
+ }
+
+ // Receive Descriptor Minimum Threshold Reached
+ // - We're reading too slow
+ if( icr & ICR_RXDMT0 )
+ {
+ LOG("RX descs running out");
+ }
+
+ icr &= ~(ICR_RXT0|ICR_LSC|ICR_TXQE|ICR_TXDW|ICR_TXD_LOW|ICR_RXDMT0);
if( icr )
Log_Warning("E1000", "Unhandled ICR bits 0x%x", icr);
}