summaryrefslogtreecommitdiff
path: root/kernel/src/cpu/pic.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/src/cpu/pic.c')
-rw-r--r--kernel/src/cpu/pic.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/kernel/src/cpu/pic.c b/kernel/src/cpu/pic.c
index ceb6e11..83bb524 100644
--- a/kernel/src/cpu/pic.c
+++ b/kernel/src/cpu/pic.c
@@ -3,22 +3,18 @@
void remap_pic(void)
{
- // save masks
-// uint8_t a1 = inb(PIC1_DATA);
-// uint8_t a2 = inb(PIC2_DATA);
-
// starts the initialization sequence (in cascade mode)
outb(PIC1_COMMAND, ICW1_INIT | ICW1_ICW4);
outb(PIC2_COMMAND, ICW1_INIT | ICW1_ICW4);
- outb(PIC1_DATA, 0x20); // ICW2: Master PIC vector offset
- outb(PIC2_DATA, 0x28); // ICW2: Slave PIC vector offset
+ outb(PIC1_DATA, 0xe0); // ICW2: Master PIC vector offset
+ outb(PIC2_DATA, 0xe8); // ICW2: Slave PIC vector offset
outb(PIC1_DATA, 4); // ICW3: tell Master PIC that there is a slave PIC at IRQ2 (0000 0100)
outb(PIC2_DATA, 2); // ICW3: tell Slave PIC its cascade identity (0000 0010)
outb(PIC1_DATA, ICW4_8086);
outb(PIC2_DATA, ICW4_8086);
- // mask interrupts
- outb(PIC1_DATA, 0xfc);
+ // mask all interrupts
+ outb(PIC1_DATA, 0xff);
outb(PIC2_DATA, 0xff);
}