Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 249832 - [post-2.6.24 regression] memory mapping changes result in blank console on iMac G5
Summary: [post-2.6.24 regression] memory mapping changes result in blank console on iM...
Status: VERIFIED UPSTREAM
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: PPC Linux
: High major (vote)
Assignee: Gentoo Kernel Bug Wranglers and Kernel Maintainers
URL:
Whiteboard: linux-2.6.??-regression linux-bugzill...
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-04 18:51 UTC by Raul Flores
Modified: 2009-05-16 15:33 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Raul Flores 2008-12-04 18:51:20 UTC
building the 2.6.26 kernel with the defalult g5_defconfig will cause the iMac to lose the console. The machine will boot, but the console remains blank. Everything else appears to work (other than know issues) but the console. I can ssh to the machine ...
The 2.6.24 kernel does not have this issue.

Reproducible: Always

Steps to Reproduce:
iMac G5 iSight system (PowerMac 12,1, PPC970FX processor, ATI Radeon X600 video)
1.emerge latest kernel (2.6.26 or 2.6.27)
2.build with g5_defconfig; config yaboot; etc
3.boot new kernel
4.no screen


Actual Results:  
System starts to boot, get a few messages.
When the initial bootup console switches over to new colour console, the console becomes unuseable.

Expected Results:  
login prompt

The following sections of /proc/iomem show how the mapping differs:
/proc/iomem 2.6.24(pci@0 ATI card)       /proc/iomem 2.6.26 (pci@0 ATI card)
90000000-9fffffff : /pci@0,f0000000      90000000-9fffffff : /pci@0,f0000000
  90000000-9000ffff : 0000:04:00.0         90000000-9bffffff : PCI Bus 0000:04
  90020000-9003ffff : 0000:04:00.0           90000000-97ffffff : 0000:04:00.0
  98000000-9fffffff : 0000:04:00.0           98000000-9801ffff : 0000:04:00.0
    98008000-9836553f : offb               9c008000-9c1213ff : offb
    9c008000-9c1213ff : offb             a0000000-efffffff : /ht@0,f2000000
a0000000-efffffff : /ht@0,f2000000       f1000000-f1ffffff : /pci@0,f0000000
f1000000-f1ffffff : /pci@0,f0000000        f1000000-f10fffff : PCI Bus 0000:04
                                             f1000000-f100ffff : 0000:04:00.0

Tried emerging the 2.6.27 kernel and pulled a kernel from GIT (2.6.28).

Adding the following code lines: 1314 and 1322-1327
in file: /usr/src/linux/arch/powerpc/kernel/pci-common.c 
adjusts the iomem mappings so that the console works for the 2.6.28 kernel.

1310
1311 static inline void __devinit alloc_resource(struct pci_dev *dev, int idx)
1312 {
1313     struct resource *pr, *r = &dev->resource[idx];
1314     struct pci_dev *d1 = dev->bus->self;
1315
1316     DBG("PCI: alloc_resource (pci-common.c) Allocating %s: Resource %d: %016llx..%016llx [%x]\n",
1317         pci_name(dev), idx,
1318         (unsigned long long)r->start,
1319         (unsigned long long)r->end,
1320         (unsigned int)r->flags);
1321
1322     if ( (strcmp(pci_name(dev),"0000:04:00.0") == 0) && (idx == 0 || idx == 2) ){
1323         printk("HRF: alloc_resource using dev bus self: %d \n",d1->devfn);
1324         pr = pci_find_parent_resource(d1, r);
1325     } else {
1326         pr = pci_find_parent_resource(dev, r);
1327     }
1328
1329     if (!pr || (pr->flags & IORESOURCE_UNSET) || request_resource(pr, r) < 0) {
1330         printk(KERN_WARNING "PCI: Cannot allocate resource region %d"
1331                " of device %s, will remap\n", idx, pci_name(dev));
1332         if (pr) {
1333             DBG("PCI:  parent is %p: %016llx-%016llx [%x]\n", pr,
1334                 (unsigned long long)pr->start,
1335                 (unsigned long long)pr->end,
1336                 (unsigned int)pr->flags);
1337             /* We'll assign a new address later */
1338             r->flags |= IORESOURCE_UNSET;
1339             r->end -= r->start;
1340             r->start = 0;
1341         }
1342     }
1343 }
Comment 1 Daniel Drake (RETIRED) gentoo-dev 2008-12-07 12:57:13 UTC
Please file an upstream bug for this at http://bugzilla.kernel.org and post the new URL here. Thanks!
Comment 2 Daniel Drake (RETIRED) gentoo-dev 2009-05-16 15:33:53 UTC
Please reopen this bug when you've filed a report upstream