]> Projects (at) Tadryanom (dot) Me - AdrOS.git/commit
feat: E1000 NIC driver (Intel 82540EM)
authorTulio A M Mendes <[email protected]>
Wed, 11 Feb 2026 23:33:57 +0000 (20:33 -0300)
committerTulio A M Mendes <[email protected]>
Fri, 13 Feb 2026 02:20:50 +0000 (23:20 -0300)
commit64f96ca09869611d6536fafbf4192301e5344016
tree0b3a3f8d11ed3b42bb9b9a33bc961d9b4f25c4af
parent3b1cf30cfcc48d5209687acaefc5eb34be3494fc
feat: E1000 NIC driver (Intel 82540EM)

- include/e1000.h: register defines, TX/RX descriptor structs, public API
- src/drivers/e1000.c: full E1000 driver implementation
  PCI BAR0 MMIO mapping (128KB at 0xC0230000), bus mastering enabled
  EEPROM MAC address read, TX/RX descriptor ring setup (32 entries each)
  DMA buffer allocation, legacy TX descriptors, interrupt handler
  e1000_send/e1000_recv/e1000_get_mac/e1000_link_up API
- src/arch/x86/arch_platform.c: IOAPIC route IRQ 11 -> vector 43
- src/kernel/init.c: call e1000_init() after pci_init()
- Tested: MAC 52:54:00:12:34:56, IRQ=11, 19/19 smoke tests pass
include/e1000.h [new file with mode: 0644]
src/arch/x86/arch_platform.c
src/drivers/e1000.c [new file with mode: 0644]
src/kernel/init.c