Date: Sat, 15 Sep 2018 00:16:20 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 231291] 12-ALPHA4 does not boot on i386 after r338360 Message-ID: <bug-231291-227-3hMZqLbTbE@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-231291-227@https.bugs.freebsd.org/bugzilla/> References: <bug-231291-227@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=231291 --- Comment #6 from John Baldwin <jhb@FreeBSD.org> --- So your system doesn't support APIC. I believed I had tested that case, but I think while working on the dynamic IRQ patches I introduced a regression and ended up not retesting the final result. This patch fixed a non-APIC boot for me: Index: sys/x86/isa/atpic.c =================================================================== --- atpic.c (revision 338687) +++ atpic.c (working copy) @@ -221,14 +221,20 @@ atpic_register_sources(struct pic *pic) * that APIC ISA routing and allowing the ATPIC source for that IRQ * to leak through. We used to depend on this feature for routing * IRQ0 via mixed mode, but now we don't use mixed mode at all. + * + * To avoid the slave not register sources after the master + * registers its sources, register all IRQs when this function is + * called on the master. */ + if (ap != &atpics[MASTER]) + return; for (i = 0; i < NUM_ISA_IRQS; i++) if (intr_lookup_source(i) != NULL) return; /* Loop through all interrupt sources and add them. */ - for (i = 0, ai = atintrs + ap->at_irqbase; i < 8; i++, ai++) { - if (ap->at_irqbase + i == ICU_SLAVEID) + for (i = 0, ai = atintrs; i < NUM_ISA_IRQS; i++, ai++) { + if (i == ICU_SLAVEID) continue; intr_register_source(&ai->at_intsrc); } -- You are receiving this mail because: You are the assignee for the bug.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-231291-227-3hMZqLbTbE>
