Ticket #1853: RTL8169 - Offset Bug.diff

File RTL8169 - Offset Bug.diff, 0.8 KB (added by anxiety, 20 months ago)

Tracked down the problem to the wrong offset being read from the pci config. Now matches Realtek's Linux driver. I couldn't find why it worked before as the value hasn't changed since the original version added to the repository. This is only verified with my own 8168 but I found no special logic in other drivers for 8167 or 8169. (Working)

  • src/add-ons/kernel/drivers/network/rtl8169/device.c

     
    499499    } 
    500500 
    501501    TRACE("IRQ %d\n", device->irq); 
    502      
     502 
    503503    // map registers into memory 
    504     val = gPci->read_pci_config(device->pciInfo->bus, device->pciInfo->device, device->pciInfo->function, 0x14, 4); 
     504    val = gPci->read_pci_config(device->pciInfo->bus, device->pciInfo->device, device->pciInfo->function, 0x18, 4); 
    505505    val &= PCI_address_memory_32_mask; 
    506506    TRACE("hardware register address %p\n", (void *) val); 
    507507    device->regArea = map_mem(&device->regAddr, (void *)val, 256, 0, "rtl8169 register");