Bug 118288 - kernel freezes at desktop when booting via BootX on "WallStreet II" PowerBook G3
Summary: kernel freezes at desktop when booting via BootX on "WallStreet II" PowerBook G3
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: rawhide
Hardware: powerpc
OS: Linux
medium
high
Target Milestone: ---
Assignee: Arjan van de Ven
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2004-03-15 05:33 UTC by Barry K. Nathan
Modified: 2007-11-30 22:10 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2004-03-25 10:19:28 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Barry K. Nathan 2004-03-15 05:33:33 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040115

Description of problem:
Boot on a "WallStreet II" (I think; definitely some kind of
"WallStreet" anyway) PowerBook G3, via BootX, freezes before the BootX
early text console appears. After I click "Linux", the hard drive
shuts off, the mouse pointer disappears, and the computer freezes (the
Finder desktop is still visible at this point).

Version-Release number of selected component (if applicable):
kernel-2.6.4-1.270

How reproducible:
Always

Steps to Reproduce:
1. Install kernel-2.6.4-1.270.ppc.rpm.
2. Copy /boot/vmlinuz-2.6.4-1.270 to the Linux Kernels folder inside
the System Folder on your (hfsplus in my case) Mac OS 9 partition.
(Optionally copy the initrd as well, although I can't get far enough
for that to matter.)
3. Reboot into Mac OS 9.
4. Start the BootX application/control panel/whatever-it-is.
5. Choose the 2.6.4-1.270 kernel.
6. Remove any "video=..." options and select "No video driver".
7. If necessary, configure BootX to not load an initrd.
8. Click "Linux".

Actual Results:  BootX closes up, mouse pointer disappears, computer
freezes.

Expected Results:  BootX closes up, mouse pointer disappears, screen
turns black, about half a screenful of white text appears, the screen
is cleared again, and a penguin appears in the upper left corner of
the screen.

Additional info:

Originally this PowerBook had a 233MHz G3 (*with* backside cache!!)
and 96MB of RAM. In the last several months I've upgraded it to a
500MHz G3 (Sonnet if it matters) and 512MB of RAM, although that
should not be relevant; the machine still works with Yellow Dog 2.4.20
and 2.4.22 kernels, as well as mainline 2.4 kernels (most recently
2.4.25-rc2).

A few minutes ago I copied a vmlinux over from a PowerMac G4 running
Gentoo and mainline 2.6.1, and repeated the steps here. That got as
far as showing the penguin in the upper-left corner. I stopped the
boot at that point because that kernel's config is *way* too stripped
down for this PowerBook, but at least it proves that a 2.6.x kernel
can get past the early BootX console on this setup.

That still leaves a lot of variables to be eliminated, but I will
begin work on that now.

Comment 1 Barry K. Nathan 2004-03-15 07:28:48 UTC
Mainstream 2.6.4-bk2 boots (at least up to the penguin in the corner;
I'm still using the .config from the PowerMac G4 for now). 2.6.4-1.270
recompiled on the same machine with essentially the same .config as my
2.6.4-bk2 compile still freezes on the desktop.

I guess I'll once again start trying to locate which patch causes the
problem -- if I have time.

Comment 2 Barry K. Nathan 2004-03-15 07:29:27 UTC
(make that "causes or reveals")

Comment 3 Arjan van de Ven 2004-03-15 08:14:32 UTC
it could be a problem in the .config just as well, or the fact that
the kernel gets built with -g and then stripped.....
Unfortionately I have no ppc box to play with this and thus entirely
depend on other people to find such things ;(

Comment 4 Barry K. Nathan 2004-03-15 11:29:19 UTC
The problem happens when patch 10000 (linux-2.6.0-compile.patch) is
applied, and does not happen when that patch is not applied. This is
100% reproducible. Now I just need to figure out which part of that
patch is causing (or revealing) the problem...

Comment 5 Arjan van de Ven 2004-03-15 11:51:11 UTC
looking over that patch I see nothing really suspect that would touch
non-x86..... odd. Maybe the gcc inlining changes :(

Comment 6 Barry K. Nathan 2004-03-15 12:16:14 UTC
Here's the guilty part of the patch:

--- linux-2.6.3/arch/ppc/syslib/Makefile~       2004-03-09
15:43:56.387923120 +0100
+++ linux-2.6.3/arch/ppc/syslib/Makefile        2004-03-09
15:43:56.387923120 +0100
@@ -9,8 +9,6 @@
 EXTRA_AFLAGS           := -Wa,-m405
 endif
  
-CFLAGS_prom_init.o      += -mrelocatable-lib
-CFLAGS_btext.o          += -mrelocatable-lib
  
 obj-$(CONFIG_PPCBUG_NVRAM)     += prep_nvram.o
 obj-$(CONFIG_44x)              += ibm44x_common.o

If *either* line is removed, the boot process freezes. As long as both
lines are in, the kernel boots.

There's a comment about this at the top of prom_init.c.

I'm dying to know why this was hunk was in the patch, but anyway, what
I really care about is just getting rid of it for the next kernel, so
that it can actually boot on my system.

Comment 7 Arjan van de Ven 2004-03-15 12:18:46 UTC
I removed those because they made gcc ICE and our gcc maintainer said
they were broken... seems we need to go back to the drawing table on
that one.

Comment 8 Barry K. Nathan 2004-03-15 12:46:02 UTC
They don't seem to make gcc (3.3.3-2.1) ICE for me, FWIW... 

Here's the distribution archive for the bootloader I'm using (I think
it comes with source code):
http://penguinppc.org/~benh/BootX_1.2.2.sit

It's in the proprietary StuffIt compresion format (that's the de facto
standard on Mac OS 9.x and earlier) but, if it would help, I could
decompress it on a Mac OS X machine and then turn the source code into
a tarball. Be aware, though, that's it's a Mac OS program -- that's
how it avoids total reliance on the broken Open Firmware
implementations in older PPC Macs like mine.

Comment 9 Barry K. Nathan 2004-03-15 14:36:53 UTC
Ugh, it looks like whether the compile succeeds with -mrelocatable-lib
depends on the .config. (I think.) I got a compile failure with the
default .config.

If I figure anything else out, I'll let you know. I'll probably have
to set this problem aside for the moment, however.

Comment 10 Arjan van de Ven 2004-03-15 21:10:27 UTC
found a decent enough workaround for now;
uploaded the kernel with it to people.redhat.com/arjanv/2.5
thanks for digging this out!

Comment 11 Barry K. Nathan 2004-03-16 13:54:45 UTC
There is now a "ppc32-build-fix.patch" in 2.6.5-rc1-mm1. It's from one
of the upstream PPC people, and (modulo whitespace) I think it matches
what you did in 2.6.4-1.275; it may be the real fix and not just a
workaround.

2.6.4-1.275 boots for me now. Without getting into detail yet, I'm
running into other problems, but I want to make more progress in
troubleshooting before I bugzilla anything (I *strongly* suspect that
if my problems are not a .config error then they're upstream bugs).

Comment 12 Barry K. Nathan 2004-03-18 11:46:01 UTC
FWIW, "ppc32-build-fix.patch" is now included upstream as of
2.6.5-rc1-bk1.

Comment 13 Barry K. Nathan 2004-03-25 10:19:28 UTC
This bug is fixed upstream. 2.6.4-1.288 (maybe some earlier kernels
too) appears to have the upstream fix AFAIK, and it seems to work, so
I'm closing this bug.


Note You need to log in before you can comment on or make changes to this bug.