From: acevest Date: Fri, 2 Jan 2026 14:01:22 +0000 (+0800) Subject: 把8253/8254的时钟中断路由到CPU 0的0号中断 X-Git-Url: http://repos.zhaoyanbai.com/Mou_128.png?a=commitdiff_plain;h=7105a2e104f2107b10bbd9b75814279810ab96f8;p=kernel.git 把8253/8254的时钟中断路由到CPU 0的0号中断 --- diff --git a/kernel/apic.c b/kernel/apic.c index 90b13d2..7e7c050 100644 --- a/kernel/apic.c +++ b/kernel/apic.c @@ -302,9 +302,13 @@ void ioapic_init() { // TODO // iounmap(rcba_virt_base); - // 打开键盘中断 - ioapic_rte_write(IOAPIC_RTE(1), 0x21); extern irq_chip_t ioapic_chip; + // 把8253的中断通过IOAPIC转发到CPU0的0号中断 + // 8253/8254连在i8259的0号引脚,但连在IO APIC的2号引脚上 + ioapic_rte_write(IOAPIC_RTE(2), 0x20 + 0); + // 把键盘中断通过IOAPIC转发到CPU0的1号中断 + ioapic_rte_write(IOAPIC_RTE(1), 0x20 + 1); + irq_set_chip(0x00, &ioapic_chip); irq_set_chip(0x01, &ioapic_chip); }