Date: Sat, 29 Jan 2011 15:36:29 -0800 From: Marcel Moolenaar <xcllnt@mac.com> To: Nathan Whitehorn <nwhitehorn@freebsd.org> Cc: powerpc@freebsd.org Subject: Re: Beware of revision 218075 Message-ID: <81D12FF3-11D1-4625-ABE3-9EE30748E9E6@mac.com> In-Reply-To: <4D44A26F.1070701@freebsd.org> References: <550814DC-3E80-401C-B725-BFCB391726DF@mac.com> <4D449504.7030209@freebsd.org> <5C0CFF6E-94C9-43F5-A22F-5A0F6ECC0448@mac.com> <4D4498FF.9050808@freebsd.org> <F60BB9A4-E8D8-4DA9-A179-C395B0BFA568@mac.com> <4D449D3B.5050008@freebsd.org> <C1C88C89-C7AC-4F9D-ADFC-F9124F032B90@mac.com> <4D44A26F.1070701@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Jan 29, 2011, at 3:27 PM, Nathan Whitehorn wrote: >>> Index: intr_machdep.c >>> =================================================================== >>> --- intr_machdep.c (revision 218074) >>> +++ intr_machdep.c (revision 218075) >>> @@ -373,6 +426,9 @@ >>> i->pol != INTR_POLARITY_CONFORM) >>> PIC_CONFIG(i->pic, i->intline, i->trig, i->pol); >>> >>> + if (i != NULL&& i->pic == root_pic) >>> + PIC_BIND(i->pic, i->intline, i->cpu); >>> + >>> if (i->event != NULL) >>> PIC_ENABLE(i->pic, i->intline, vector); >>> } >> >> That can be reverted without harm AFAICT. One of my earlier >> changes removed the SYSINIT to do the binding and instead do >> it here. I partially reverted that (i.e. the SYSINIT is >> still there, but the change above remained), because I didn't >> know the consequence of such a change. > I've reverted it in r218081. Everything seems OK now. Thanks. I was just about to revert the change myself after realizing that I may have responded in a way that would put the burden on you. >>> The "max IRQ = 128" thing also likely breaks Cell systems, like the PS3, where the PIC has 256 interrupts, but I haven't looked into that in detail yet. >> This is where we need to implement multiple passes. I tried to >> do that in the same commit, but ended up with a lot more >> churn than I was comfortable handling. But ideally, we probe >> busses and interrupt controllers first, so that we don't have >> this problem -- all interrupt controllers will have registered >> before we need to map from PIC+pin to IRQ. >> >> There's probably a quick fix in case it's broken. If the pin >> is higher than the number of IRQs we have recorded for the PIC, >> we can simply bump the number of irqs the PIC has (i.e. extend >> the IRQ range assigned to the PIC). Unless we have other PICs >> recorded this can always be done -- since the PS3 only has 1 >> PIC, this should be a quick kluge to get it working again. > > Ah, OK. My PS3 seems to boot fine, so don't worry about it. Good luck navigating through the rest of this minefield! I actually think I've just passed through it. This commit was perceived to be the most dangerous and it seems I sustained nothing more than a bruise or scratch :-) -- Marcel Moolenaar xcllnt@mac.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?81D12FF3-11D1-4625-ABE3-9EE30748E9E6>