X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FModules%2FNetwork%2FE1000%2Fe1000.c;h=600f3348ef560703e98657a65f61e137632d8e3f;hb=0c2915f7f306013a29fc79ed69039eae3a26f337;hp=01a5a6a250e813a9ee6a97539131a7748ce562b9;hpb=d8a7947c06c6facbbaa3381f2c98dd4644a5b0b3;p=tpg%2Facess2.git diff --git a/KernelLand/Modules/Network/E1000/e1000.c b/KernelLand/Modules/Network/E1000/e1000.c index 01a5a6a2..600f3348 100644 --- a/KernelLand/Modules/Network/E1000/e1000.c +++ b/KernelLand/Modules/Network/E1000/e1000.c @@ -64,6 +64,7 @@ int E1000_Install(char **Arguments) // Allocate card array gaE1000_Cards = calloc(sizeof(tCard), card_count); if( !gaE1000_Cards ) { + Log_Warning("E1000", "Allocation of %i card structures failed", card_count); return MODULE_ERR_MALLOC; } @@ -88,6 +89,7 @@ int E1000_Install(char **Arguments) Log_Debug("E1000", "Card %i: %P IRQ %i", card_idx, card->MMIOBasePhys, card->IRQ); if( E1000_int_InitialiseCard(card) ) { + Log_Warning("E1000", "Initialisation of card #%i failed", card_idx); return MODULE_ERR_MALLOC; } @@ -205,6 +207,7 @@ int E1000_SendPacket(void *Ptr, tIPStackBuffer *Buffer) 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)); @@ -354,8 +357,15 @@ void E1000_IRQHandler(int Num, void *Ptr) { } + + // 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 &= ~(ICR_RXT0|ICR_LSC|ICR_TXQE|ICR_TXDW|ICR_TXD_LOW|ICR_RXDMT0); if( icr ) Log_Warning("E1000", "Unhandled ICR bits 0x%x", icr); }