aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJurij Smakov <jurij@wooyd.org>2007-03-09 13:44:14 +0000
committerJurij Smakov <jurij@wooyd.org>2007-03-09 13:44:14 +0000
commitc41b90cf46108e961bf9ce2eee37fb4217e8e27d (patch)
treeaecd07bb8259f46425ee790e9c78c84d584c7469
parente633d6b5564e9ce9e81acfe9849e8c45f36bd62e (diff)
downloadkernel_replicant_linux-c41b90cf46108e961bf9ce2eee37fb4217e8e27d.tar.gz
kernel_replicant_linux-c41b90cf46108e961bf9ce2eee37fb4217e8e27d.tar.bz2
kernel_replicant_linux-c41b90cf46108e961bf9ce2eee37fb4217e8e27d.zip
* Add series/12
* Add e450-boot-failure.patch to fix boot failure on E450. svn path=/dists/sid/linux-2.6/; revision=8337
-rw-r--r--debian/changelog6
-rw-r--r--debian/patches/bugfix/sparc/e450-boot-failure.patch66
-rw-r--r--debian/patches/series/121
3 files changed, 73 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 73b5d66d421c..a9c1de8f4bf3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,11 +1,17 @@
linux-2.6 (2.6.18.dfsg.1-12) UNRELEASED; urgency=low
+ [ Steve Langasek ]
* Set CONFIG_MATHEMU=y on alpha, which is required for proper fp math on
at least ev4-ev56 systems. Closes: #411813.
* linux-image packages need to depend on a newer version of coreutils,
because of the use of readlink -q -m inherited from kernel-package.
Closes: #413311.
+ [ Jurij Smakov ]
+ * Add bugfix/sparc/e450-boot-failure.patch to fix boot failure on
+ E450 machines. Thanks to David Miller for the patch and to Daniel
+ Smolik for testing.
+
-- Steve Langasek <vorlon@debian.org> Mon, 5 Mar 2007 00:25:35 -0800
linux-2.6 (2.6.18.dfsg.1-11) unstable; urgency=low
diff --git a/debian/patches/bugfix/sparc/e450-boot-failure.patch b/debian/patches/bugfix/sparc/e450-boot-failure.patch
new file mode 100644
index 000000000000..c1f32e30ae7c
--- /dev/null
+++ b/debian/patches/bugfix/sparc/e450-boot-failure.patch
@@ -0,0 +1,66 @@
+Author : David Miller <davem@davemloft.net>
+Date : Mon, 26 Feb 2007 14:08:39 -0800 (PST)
+Message-ID : <20070226.140839.69219235.davem@davemloft.net>
+Status : confirmed working
+Description : fixes boot failure on E450 machines
+
+diff -aur a/arch/sparc64/kernel/of_device.c b/arch/sparc64/kernel/of_device.c
+--- a/arch/sparc64/kernel/of_device.c 2006-09-20 06:42:06.000000000 +0300
++++ b/arch/sparc64/kernel/of_device.c 2007-03-09 14:58:57.000000000 +0200
+@@ -686,7 +686,7 @@
+ unsigned int irq)
+ {
+ struct linux_prom_pci_registers *regs;
+- unsigned int devfn, slot, ret;
++ unsigned int bus, devfn, slot, ret;
+
+ if (irq < 1 || irq > 4)
+ return irq;
+@@ -695,10 +695,46 @@
+ if (!regs)
+ return irq;
+
++ bus = (regs->phys_hi >> 16) & 0xff;
+ devfn = (regs->phys_hi >> 8) & 0xff;
+ slot = (devfn >> 3) & 0x1f;
+
+- ret = ((irq - 1 + (slot & 3)) & 3) + 1;
++ if (pp->irq_trans) {
++ /* Derived from Table 8-3, U2P User's Manual. This branch
++ * is handling a PCI controller that lacks a proper set of
++ * interrupt-map and interrupt-map-mask properties. The
++ * Ultra-E450 is one example.
++ *
++ * The bit layout is BSSLL, where:
++ * B: 0 on bus A, 1 on bus B
++ * D: 2-bit slot number, derived from PCI device number as
++ * (dev - 1) for bus A, or (dev - 2) for bus B
++ * L: 2-bit line number
++ *
++ * Actually, more "portable" way to calculate the funky
++ * slot number is to subtract pbm->pci_first_slot from the
++ * device number, and that's exactly what the pre-OF
++ * sparc64 code did, but we're building this stuff generically
++ * using the OBP tree, not in the PCI controller layer.
++ */
++ if (bus & 0x80) {
++ /* PBM-A */
++ bus = 0x00;
++ slot = (slot - 1) << 2;
++ } else {
++ /* PBM-B */
++ bus = 0x10;
++ slot = (slot - 2) << 2;
++ }
++ irq -= 1;
++
++ ret = (bus | slot | irq);
++ } else {
++ /* Going through a PCI-PCI bridge that lacks a set of
++ * interrupt-map and interrupt-map-mask properties.
++ */
++ ret = ((irq - 1 + (slot & 3)) & 3) + 1;
++ }
+
+ return ret;
+ }
diff --git a/debian/patches/series/12 b/debian/patches/series/12
new file mode 100644
index 000000000000..6ef5fd69e175
--- /dev/null
+++ b/debian/patches/series/12
@@ -0,0 +1 @@
++ bugfix/sparc/e450-boot-failure.patch