BUG: 2.6.11-rc2 and -rc1 hang during boot on PowerMacs
Mikael Pettersson
mikpe at csd.uu.se
Tue Jan 25 04:42:25 EST 2005
Benjamin Herrenschmidt writes:
> On Sun, 2005-01-23 at 11:43 +1100, Benjamin Herrenschmidt wrote:
>
> > I know about this problem, I'm working on a proper fix. Thanks for your
> > report.
>
> Can you send me the PVR value for both of these CPUs
> (cat /proc/cpuinfo) ? I can't find right now why they would lock up
> unless the default idle loop is _not_ run properly, that is for some
> reason, NAP or DOZE mode end up not beeing enabled. Can you send me
> your .config as well ?
=== cpuinfo.emac ===
processor : 0
cpu : 7447/7457, altivec supported
clock : 1249MHz
revision : 1.1 (pvr 8002 0101)
bogomips : 830.66
machine : PowerMac6,4
motherboard : PowerMac6,4 MacRISC3 Power Macintosh
detected as : 287 (Unknown Intrepid-based)
pmac flags : 00000000
L2 cache : 512K unified
memory : 256MB
pmac-generation : NewWorld
=== cpuinfo.beige-g3 ===
processor : 0
cpu : 7455, altivec supported (a Sonnet G4 upgrade processor)
clock : 66MHz <-- bogus, is 1.0GHz in reality
revision : 2.1 (pvr 8001 0201)
bogomips : 999.42
machine : Power Macintosh
motherboard : AAPL,Gossamer MacRISC
detected as : 48 (PowerMac G3 (Gossamer))
pmac flags : 00000000
memory : 768MB
pmac-generation : OldWorld
The .config files are a bit big, I'm sending them off-list.
> Finally, try that patch and tell me if it makes a difference. It makes
> sure we re-enable interrupts in cpu_idle, and thus should only be a
> workaround. I found _one_ actual code path where we fail to re-enable
> them, and this is when neither DOZE nor NAP mode is enabled, which
> should not happen on any G3 (they should all support DOZE mode), and
> might happe non some G4s if the chipset doesn't support NAP or
> powersave_nap is set to 0 in proc, but that shouldn't be the case of an
> eMac neither...
>
> --- linux-work.orig/arch/ppc/kernel/idle.c 2005-01-24 11:42:35.000000000 +1100
> +++ linux-work/arch/ppc/kernel/idle.c 2005-01-24 12:19:41.114353760 +1100
> @@ -39,17 +39,15 @@
> powersave = ppc_md.power_save;
>
> if (!need_resched()) {
> + local_irq_enable();
> if (powersave != NULL)
> powersave();
> else {
> #ifdef CONFIG_SMP
> set_thread_flag(TIF_POLLING_NRFLAG);
> - local_irq_enable();
> while (!need_resched())
> barrier();
> clear_thread_flag(TIF_POLLING_NRFLAG);
> -#else
> - local_irq_enable();
> #endif
> }
> }
Yes, this patch made the eMac boot Ok -- I can't test the Beige G3 until Friday.
/Mikael
More information about the Linuxppc-dev
mailing list