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