Skip site navigation (1)Skip section navigation (2)
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>