summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2024-06-27 22:37:13 +0200
committerAnton Kling <anton@kling.gg>2024-06-27 22:37:13 +0200
commitf7b07eabcb33ebf9938907edd2df7f1e9dc46c88 (patch)
tree47d9e8472802394012975193b0068e1610fd2273
parent565ef5415437bde9635e8e252e4aa9f503d3ef8d (diff)
RTL8139: Nicer code
-rw-r--r--kernel/drivers/rtl8139.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/kernel/drivers/rtl8139.c b/kernel/drivers/rtl8139.c
index 610ca47..ff22041 100644
--- a/kernel/drivers/rtl8139.c
+++ b/kernel/drivers/rtl8139.c
@@ -12,7 +12,12 @@
#define CMD 0x37
#define IMR 0x3C
-#define RTL8139_RXBUFFER_SIZE (8192 << 3)
+// 0 - 8K
+// 1 - 16K
+// 2 - 32K
+// 3 - 64K
+#define RTL8139_CHOSEN_BUFFER 3
+#define RTL8139_RXBUFFER_SIZE (8192 << (RTL8139_CHOSEN_BUFFER))
#define TSD0 0x10 // transmit status
#define TSAD0 0x20 // transmit start address
@@ -182,11 +187,9 @@ void rtl8139_init(void) {
// Set transmit and reciever enable
outb(base_address + 0x37, (1 << 2) | (1 << 3));
- int buffer_length = 3; // 0b11 for 64K + 16 byte
-
// Configure the recieve buffer
outl(base_address + 0x44,
- 0xf | (buffer_length << 11)); // 0xf is AB+AM+APM+AAP
+ 0xf | ((RTL8139_CHOSEN_BUFFER) << 11)); // 0xf is AB+AM+APM+AAP
install_handler((interrupt_handler)rtl8139_handler,
INT_32_INTERRUPT_GATE(0x3), 0x20 + interrupt_line);