[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#353651: linux-2.6: [powerpc] cannot probe macio devices during boot--breaks eth0 on upgrade from 2.4

Package: linux-2.6
Severity: important
Tags: patch

-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: powerpc (ppc)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.15-1-powerpc
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

-- H/W config
cat /proc/cpuinfo:
processor       : 0
cpu             : 740/750
temperature     : 22-24 C (uncalibrated)
clock           : 333MHz
revision        : 130.2 (pvr 0008 8202)
bogomips        : 663.55
machine         : iMac,1
motherboard     : iMac MacRISC Power Macintosh
detected as     : 65 (iMac (first generation))
pmac flags      : 00000000
L2 cache        : 512K unified
memory          : 64MB
pmac-generation : NewWorld

lspci -v:
0000:00:00.0 Host bridge: Motorola MPC106 [Grackle] (rev 40)
        Flags: bus master, fast devsel, latency 0

0000:00:10.0 ff00: Apple Computer Inc. Paddington Mac I/O
        Flags: bus master, medium devsel, latency 32
        Memory at 80800000 (32-bit, non-prefetchable) [size=512K]

0000:00:12.0 VGA compatible controller: ATI Technologies Inc 3D Rage Pro 215GP (rev 5c) (prog-if 00 [VGA])
        Flags: bus master, stepping, medium devsel, latency 32, IRQ 22
        Memory at 81000000 (32-bit, non-prefetchable) [size=16M]
        I/O ports at fe000c00 [size=256]
        Memory at 80881000 (32-bit, non-prefetchable) [size=4K]

0000:00:14.0 USB Controller: Agere Systems USB (rev 12) (prog-if 10 [OHCI])
        Subsystem: Agere Systems USB
        Flags: bus master, medium devsel, latency 32, IRQ 28
        Memory at 80880000 (32-bit, non-prefetchable) [size=4K]

----other info:
May be related to Bug #303491

----Long Description:
Upgrading to 2.6 from 2.4 breaks networking on because neither hotplug
nor udev is able to probe for devices on the macio bus.  No networking
available for fresh installations.

The installation process should seed /etc/modules with drivers for devices
on busses that cannot be probed.  For example, module "bmac" is required
for first generation iMacs.

Below is a suggested workaround for inclusion in the postinst process.
It seeds /etc/modules for some well-known configurations.
(a) It is not exhaustive.
(b) IT is not in ''patch'' format.
(c) Modifications will be required to conform to debian policy.
(d) It operates against a /proc/cpuinfo field common to both 2.4 and 2.6


# Workaround for early NewWorld bus probe limitations that seeds
# /etc/modules with drivers required for common well-known
# configurations.
# 1.  determine the required module(s):
case ` awk '/machine/{print $3}' /proc/cpuinfo` in
  ( "iMac,1" ) modules="bmac";;  # <-- First generation iMacs.
  ( "PowerBook,1" ) modules="bmac";; # <--Lombard powerbook
  ( "PowerMac,1" ) modules="bmac";;  # <--B&W G3
  #...and others as necessary.

# 2.  direct the kernel to load the module(s)
for mod in $modules; do
  if ( ! grep "$mod" /etc/modules > /dev/null ); then
    echo "$mod" >>  /etc/modules;
    echo "module $module added to /etc/modules";

# 3. other notification of config changes as appropriate (e.g. email to root)

Reply to: