rpms/kernel-xen/devel linux-2.6-g5-thermal-overload.patch, NONE, 1.1.2.1 linux-2.6-usb-suspend.patch, NONE, 1.1.2.1 patch-2.6.15-rc5-git7.bz2.sign, NONE, 1.1.2.1 .cvsignore, 1.3.2.4, 1.3.2.5 kernel-xen.spec, 1.13.2.12, 1.13.2.13 linux-2.6-cell-idle-pmgt.patch, 1.1.2.1, 1.1.2.2 sources, 1.3.2.4, 1.3.2.5 upstream, 1.1.2.3, 1.1.2.4 patch-2.6.15-rc5-git5.bz2.sign, 1.1.2.1, NONE
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Mon Dec 19 12:53:00 UTC 2005
Author: quintela
Update of /cvs/dist/rpms/kernel-xen/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv18657
Modified Files:
Tag: private-kernel-xen-2_6_12-1_13_FC5-sct-branch
.cvsignore kernel-xen.spec linux-2.6-cell-idle-pmgt.patch
sources upstream
Added Files:
Tag: private-kernel-xen-2_6_12-1_13_FC5-sct-branch
linux-2.6-g5-thermal-overload.patch
linux-2.6-usb-suspend.patch patch-2.6.15-rc5-git7.bz2.sign
Removed Files:
Tag: private-kernel-xen-2_6_12-1_13_FC5-sct-branch
patch-2.6.15-rc5-git5.bz2.sign
Log Message:
rebase to rawhide kernel-2.6.14-1.1773
linux-2.6-g5-thermal-overload.patch:
therm_pm72.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
--- NEW FILE linux-2.6-g5-thermal-overload.patch ---
>From benh at kernel.crashing.org Mon Dec 19 00:47:09 2005
Return-path: <benh at kernel.crashing.org>
Envelope-to: dwmw2 at baythorne.infradead.org
Delivery-date: Mon, 19 Dec 2005 00:47:09 +0000
Received: from [2002:d592:9a28::1] (helo=pentafluge.infradead.org) by
baythorne.infradead.org with esmtps (Exim 4.54 #1 (Red Hat Linux)) id
1Eo9BF-0004Iq-MP for dwmw2 at baythorne.infradead.org; Mon, 19 Dec 2005
00:47:09 +0000
Received: from [2002:3fe4:139::1] (helo=gate.crashing.org) by
pentafluge.infradead.org with esmtps (Exim 4.54 #1 (Red Hat Linux)) id
1Eo9BE-0008DS-8N for dwmw2 at infradead.org; Mon, 19 Dec 2005 00:47:09 +0000
Received: from gaston (localhost [127.0.0.1]) by gate.crashing.org
(8.12.8/8.12.8) with ESMTP id jBJ0eDWG016389; Sun, 18 Dec 2005 18:40:16
-0600
Subject: [Fwd: [PATCH] powerpc: g5 thermal overtemp bug]
From: Benjamin Herrenschmidt <benh at kernel.crashing.org>
To: Olaf Hering <olh at suse.de>, David Woodhouse <dwmw2 at infradead.org>, Sven Luther <sven.luther at wanadoo.fr>
Content-Type: text/plain
Date: Mon, 19 Dec 2005 11:39:30 +1100
Message-Id: <1134952771.6102.128.camel at gaston>
Mime-Version: 1.0
X-Mailer: Evolution 2.2.3
X-Spam-Score: -2.8 (--)
X-Spam-Report: SpamAssassin version 3.0.4 on pentafluge.infradead.org
summary: Content analysis details: (-2.8 points, 5.0 required) pts rule
name description ---- ----------------------
-------------------------------------------------- -2.8 ALL_TRUSTED
Did not pass through any untrusted hosts
X-Evolution-Source: imap://dwmw2@pentafluge.infradead.org/
Content-Transfer-Encoding: 8bit
Figure that might interest distros ...
-------- Forwarded Message --------
From: Benjamin Herrenschmidt <benh at kernel.crashing.org>
To: Linus Torvalds <torvalds at osdl.org>
Cc: Markus Rothe <markus at unixforces.net>, Owen Stampflee
<ostampflee at terrasoftsolutions.com>, linuxppc64-dev
<linuxppc64-dev at ozlabs.org>, Linux Kernel list
<linux-kernel at vger.kernel.org>
Subject: [PATCH] powerpc: g5 thermal overtemp bug
Date: Mon, 19 Dec 2005 11:24:57 +1100
The g5 thermal control for liquid cooled machines has a small bug, when
the temperatures gets too high, it boosts all fans to the max, but
incorrectly sets the liquids pump to the min instead of the max speed,
thus causing the overtemp condition not to clear and the machine to shut
down after a while. This fixes it to set the pumps to max speed instead.
This problem might explain some of the reports of random shutdowns that
some g5 users have been reporting in the past.
Many thanks to Marcus Rothe for spending a lot of time trying various
patches & sending log logs before I found out that typo. Note that
overtemp handling is still not perfect and the machine might still
shutdown, that patch should reduce if not eliminate such occcurences in
"normal" conditions with high load. I'll implement a better handling
with proper slowing down of the CPUs later.
Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
Index: linux-work/drivers/macintosh/therm_pm72.c
===================================================================
--- linux-work.orig/drivers/macintosh/therm_pm72.c 2005-11-10 08:20:14.000000000 +1100
+++ linux-work/drivers/macintosh/therm_pm72.c 2005-12-19 11:20:39.000000000 +1100
@@ -933,7 +933,7 @@
if (state0->overtemp > 0) {
state0->rpm = state0->mpu.rmaxn_exhaust_fan;
state0->intake_rpm = intake = state0->mpu.rmaxn_intake_fan;
- pump = state0->pump_min;
+ pump = state0->pump_max;
goto do_set_fans;
}
linux-2.6-usb-suspend.patch:
usb.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
--- NEW FILE linux-2.6-usb-suspend.patch ---
>From stern at rowland.harvard.edu Wed Dec 14 09:39:01 2005
Date: Wed, 14 Dec 2005 12:22:17 -0500 (EST)
From: Alan Stern <stern at rowland.harvard.edu>
To: Greg KH <greg at kroah.com>
cc: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2005 at gmx.net>
Subject: [PATCH] usbcore: allow suspend/resume even if drivers don't support it
Message-ID: <Pine.LNX.4.44L0.0512141215510.7421-100000 at iolanthe.rowland.org>
This patch (as618) changes usbcore to prevent derailing the
suspend/resume sequence when a USB driver doesn't include support for
it. This is a workaround rather than a true fix; the core needs to be
changed so that URB submissions from suspended drivers can be refused
and outstanding URBs cancelled.
Signed-off-by: Alan Stern <stern at rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
---
drivers/usb/core/usb.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
--- gregkh-2.6.orig/drivers/usb/core/usb.c
+++ gregkh-2.6/drivers/usb/core/usb.c
@@ -1029,7 +1029,8 @@ static int usb_generic_suspend(struct de
mark_quiesced(intf);
} else {
// FIXME else if there's no suspend method, disconnect...
- dev_warn(dev, "no %s?\n", "suspend");
+ dev_warn(dev, "no suspend for driver %s?\n", driver->name);
+ mark_quiesced(intf);
status = 0;
}
return status;
@@ -1057,8 +1058,10 @@ static int usb_generic_resume(struct dev
}
if ((dev->driver == NULL) ||
- (dev->driver_data == &usb_generic_driver_data))
+ (dev->driver_data == &usb_generic_driver_data)) {
+ dev->power.power_state.event = PM_EVENT_FREEZE;
return 0;
+ }
intf = to_usb_interface(dev);
driver = to_usb_driver(dev->driver);
@@ -1078,7 +1081,7 @@ static int usb_generic_resume(struct dev
mark_quiesced(intf);
}
} else
- dev_warn(dev, "no %s?\n", "resume");
+ dev_warn(dev, "no resume for driver %s?\n", driver->name);
return 0;
}
--- NEW FILE patch-2.6.15-rc5-git7.bz2.sign ---
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)
Comment: See http://www.kernel.org/signature.html for info
iD8DBQBDo8kMyGugalF9Dw4RAisTAJ9drV5g2+vWMsoEGL5+RMfTRsqV0ACcDcj2
Qzx2aezRoDQc3rY3EdnaDi4=
=6Dlu
-----END PGP SIGNATURE-----
Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/kernel-xen/devel/.cvsignore,v
retrieving revision 1.3.2.4
retrieving revision 1.3.2.5
diff -u -r1.3.2.4 -r1.3.2.5
--- .cvsignore 15 Dec 2005 21:42:09 -0000 1.3.2.4
+++ .cvsignore 19 Dec 2005 12:52:57 -0000 1.3.2.5
@@ -4,5 +4,5 @@
linux-2.6.14.tar.bz2
xen-20051206.tar.bz2
patch-2.6.15-rc4.bz2
-patch-2.6.15-rc5-git5.bz2
+patch-2.6.15-rc5-git7.bz2
patch-2.6.15-rc5.bz2
Index: kernel-xen.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel-xen/devel/kernel-xen.spec,v
retrieving revision 1.13.2.12
retrieving revision 1.13.2.13
diff -u -r1.13.2.12 -r1.13.2.13
--- kernel-xen.spec 16 Dec 2005 20:19:07 -0000 1.13.2.12
+++ kernel-xen.spec 19 Dec 2005 12:52:57 -0000 1.13.2.13
@@ -214,7 +214,7 @@
# Patches 0 through 100 are meant for core subsystem upgrades
#
Patch1: patch-2.6.15-rc5.bz2
-Patch2: patch-2.6.15-rc5-git5.bz2
+Patch2: patch-2.6.15-rc5-git7.bz2
# Patches 100 through 500 are meant for architecture patches
Patch100: linux-2.6-bzimage.patch
@@ -245,6 +245,7 @@
Patch314: linux-2.6-ppc-rtas-check.patch
Patch315: linux-2.6-powerpc-parport.patch
Patch316: linux-2.6-cell-iommu.patch
+Patch317: linux-2.6-g5-thermal-overload.patch
# 400 - 499 ia64
# 500 - 599 s390(x)
@@ -364,6 +365,7 @@
Patch1760: linux-2.6-sata-enable-atapi-by-default.patch
Patch1770: linux-2.6-valid-ether-addr.patch
Patch1780: linux-2.6-firmware-loader-timeout.patch
+Patch1790: linux-2.6-usb-suspend.patch
# ACPI patches.
Patch1800: linux-2.6-acpi-thinkpad-c2c3.patch
@@ -661,6 +663,8 @@
%patch315 -p1
# Handle new Cell boards with >512MiB RAM
%patch316 -p1
+# Fix thermal overload on liquid-cooled G5s
+%patch317 -p1
#
# Xen
@@ -845,6 +849,8 @@
%patch1770 -p1
# Increase timeout on firmware loader.
%patch1780 -p1
+# Fix USB suspend with devices that have no suspend method
+%patch1790 -p1
# ACPI patches.
# Blacklist another 'No C2/C3 states' Thinkpad R40e BIOS.
@@ -1372,6 +1378,20 @@
%endif
%changelog
+* Mon Dec 19 2005 David Woodhouse <dwmw2 at redhat.com>
+- Fix thermal overload on liquid-cooled G5s
+- Fix USB suspend
+- Disable floppy driver on ppc32
+
+* Sat Dec 17 2005 Dave Jones <davej at redhat.com>
+- 2.6.15-rc5-git7
+
+* Fri Dec 16 2005 David Woodhouse <dwmw2 at redhat.com>
+- Update to fixed Cell pause_zero code
+
+* Fri Dec 16 2005 Dave Jones <davej at redhat.com>
+- 2.6.15-rc5-git6
+
* Fri Dec 16 2005 Dave Jones <davej at redhat.com>
- If we oops, pause a while before doing anything
so that people get a chance to grab the debug info.
linux-2.6-cell-idle-pmgt.patch:
arch/powerpc/kernel/cputable.c | 2
arch/powerpc/kernel/traps.c | 4
arch/powerpc/platforms/cell/Makefile | 2
arch/powerpc/platforms/cell/pervasive.c | 216 ++++++++++++++++++++++++++++++++
arch/powerpc/platforms/cell/pervasive.h | 62 +++++++++
arch/powerpc/platforms/cell/setup.c | 2
include/asm-powerpc/cputable.h | 4
include/asm-powerpc/reg.h | 22 ++-
8 files changed, 306 insertions(+), 8 deletions(-)
Index: linux-2.6-cell-idle-pmgt.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel-xen/devel/Attic/linux-2.6-cell-idle-pmgt.patch,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- linux-2.6-cell-idle-pmgt.patch 15 Dec 2005 16:26:37 -0000 1.1.2.1
+++ linux-2.6-cell-idle-pmgt.patch 19 Dec 2005 12:52:57 -0000 1.1.2.2
@@ -1,5 +1,3 @@
-Subject: cell: enable pause(0) in cpu_idle
-
This patch enables support for pause(0) power management state
for the Cell Broadband Processor, which is import for power efficient
operation. The pervasive infrastructure will in the future enable
@@ -24,7 +22,7 @@
===================================================================
--- /dev/null
+++ linux-2.6.15-rc/arch/powerpc/platforms/cell/pervasive.c
-@@ -0,0 +1,147 @@
+@@ -0,0 +1,216 @@
+/*
+ * CBE Pervasive Monitor and Debug
+ *
@@ -48,135 +46,204 @@
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
++#undef DEBUG
++
+#include <linux/config.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/percpu.h>
+#include <linux/types.h>
++#include <linux/kallsyms.h>
+
+#include <asm/io.h>
++#include <asm/machdep.h>
+#include <asm/prom.h>
+#include <asm/pgtable.h>
+#include <asm/reg.h>
+
+#include "pervasive.h"
+
-+struct pmd {
++static spinlock_t cbe_pervasive_lock;
++struct cbe_pervasive {
+ struct pmd_regs __iomem *regs;
-+ int power_management_enable;
++ unsigned int thread;
+};
+
-+static DEFINE_PER_CPU(struct pmd, pmd);
-+
-+void pause_zero(void)
-+{
-+ unsigned int multi_threading_control;
-+ unsigned long long machine_state;
-+
-+ /* Reset Thread Run Latch (latch is set in idle.c) */
-+ ppc64_runlatch_off();
-+
-+ if (__get_cpu_var(pmd).power_management_enable)
-+ {
-+ /* Disable EE during check for pause */
-+ machine_state=mfmsr();
-+ machine_state &= ~MSR_EE;
-+ mtmsrd(machine_state);
-+ /* Pause the PU */
-+ HMT_low();
-+ multi_threading_control = 0;
-+ mtspr(SPRN_CTRLT,multi_threading_control);
-+
-+ /* Re-enable EE after resuming */
-+ machine_state=mfmsr();
-+ machine_state |= MSR_EE;
-+ mtmsrd(machine_state);
-+ }
-+}
++/* can't use per_cpu from setup_arch */
++static struct cbe_pervasive cbe_pervasive[NR_CPUS];
+
-+void enable_pause_zero(void * data)
++static void __init cbe_enable_pause_zero(void)
+{
+ unsigned long thread_switch_control;
+ unsigned long temp_register;
-+ struct pmd *pmd;
++ struct cbe_pervasive *p;
++ int thread;
+
-+ pmd = &get_cpu_var(pmd);
++ p = &cbe_pervasive[get_cpu()];
++ spin_lock_irq(&cbe_pervasive_lock);
+
-+ if (!pmd->regs)
-+ return;
++ if (!cbe_pervasive->regs)
++ goto out;
+
+ pr_debug("Power Management: CPU %d\n", smp_processor_id());
+
+ /* Enable Pause(0) control bit */
-+ temp_register = in_be64(&pmd->regs->pm_control);
++ temp_register = in_be64(&p->regs->pm_control);
+
-+ out_be64(&pmd->regs->pm_control, temp_register|PMD_PAUSE_ZERO_CONTROL);
++ out_be64(&p->regs->pm_control,
++ temp_register|PMD_PAUSE_ZERO_CONTROL);
+
+ /* Enable DEC and EE interrupt request */
+ thread_switch_control = mfspr(SPRN_TSC_CELL);
-+ thread_switch_control |= TSCR_EE_ENABLE | TSCR_EE_BOOST;
++ thread_switch_control |= TSC_CELL_EE_ENABLE | TSC_CELL_EE_BOOST;
++
++ switch ((mfspr(SPRN_CTRLF) & CTRL_CT)) {
++ case CTRL_CT0:
++ thread_switch_control |= TSC_CELL_DEC_ENABLE_0;
++ thread = 0;
++ break;
++ case CTRL_CT1:
++ thread_switch_control |= TSC_CELL_DEC_ENABLE_1;
++ thread = 1;
++ break;
++ default:
++ printk(KERN_WARNING "%s: unknown configuration\n",
++ __FUNCTION__);
++ thread = -1;
++ break;
++ }
+
-+ if (smp_processor_id()%2)
-+ thread_switch_control |= TSC_DEC_ENABLE_1;
-+ else
-+ thread_switch_control |= TSC_DEC_ENABLE_0;
++ if (p->thread != thread)
++ printk(KERN_WARNING "%s: device tree inconsistant, "
++ "cpu %i: %d/%d\n", __FUNCTION__,
++ smp_processor_id(),
++ p->thread, thread);
+
+ mtspr(SPRN_TSC_CELL, thread_switch_control);
+
-+ pmd->power_management_enable = 1;
-+ put_cpu_var(pmd);
++out:
++ spin_unlock_irq(&cbe_pervasive_lock);
++ put_cpu();
++}
++
++static void cbe_idle(void)
++{
++ unsigned long ctrl;
++
++ cbe_enable_pause_zero();
++
++ while (1) {
++ if (!need_resched()) {
++ while (!need_resched()) {
++ /* go into low thread priority */
++ HMT_low();
++
++ /* go into low power mode */
++ local_irq_disable();
++ ctrl = mfspr(SPRN_CTRLF);
++ ctrl &= ~(CTRL_RUNLATCH | CTRL_TE);
++ mtspr(SPRN_CTRLT, ctrl);
++ local_irq_enable();
++ }
++ /* restore thread prio */
++ HMT_medium();
++ }
++
++ ppc64_runlatch_on();
++ preempt_enable_no_resched();
++ schedule();
++ preempt_disable();
++ }
++}
++
++void cbe_system_reset_exception(struct pt_regs *regs)
++{
++ switch (regs->msr & SRR1_WAKEMASK) {
++ case SRR1_WAKEEE:
++ do_IRQ(regs);
++ break;
++ case SRR1_WAKEDEC:
++ timer_interrupt(regs);
++ break;
++ case SRR1_WAKEMT:
++ /* no action required */
++ break;
++ default:
++ die("System Reset", regs, SIGABRT);
++ }
+}
+
-+static struct pmd_regs __iomem *find_pmd_mmio(int cpu)
++static int __init cbe_find_pmd_mmio(int cpu, struct cbe_pervasive *p)
+{
+ struct device_node *node;
-+ int node_number = cpu / 2;
-+ struct pmd_regs __iomem *pmd_mmio_area;
++ unsigned int *int_servers;
++ char *addr;
+ unsigned long real_address;
++ unsigned int size;
+
-+ for (node = of_find_node_by_type(NULL, "cpu"); node;
-+ node = of_find_node_by_type(node, "cpu")) {
-+ if (node_number == *(int *)get_property(node, "node-id", NULL))
-+ break;
-+ }
++ struct pmd_regs __iomem *pmd_mmio_area;
++ int hardid, thread;
++ int proplen;
+
-+ if (!node) {
-+ printk(KERN_WARNING "PMD: CPU %d not found\n", cpu);
-+ pmd_mmio_area = NULL;
-+ } else {
-+ real_address = *(long *)get_property(node, "pervasive", NULL);
-+ pr_debug("PMD for CPU %d at %lx\n", cpu, real_address);
-+ pmd_mmio_area = __ioremap(real_address, 0x1000, _PAGE_NO_CACHE);
++ pmd_mmio_area = NULL;
++ hardid = get_hard_smp_processor_id(cpu);
++ for (node = NULL; (node = of_find_node_by_type(node, "cpu"));) {
++ int_servers = (void *) get_property(node,
++ "ibm,ppc-interrupt-server#s", &proplen);
++ if (!int_servers) {
++ printk(KERN_WARNING "CPU device misses "
++ "ibm,ppc-interrupt-server#s property");
++ continue;
++ }
++ for (thread = 0; thread < proplen / sizeof (int); thread++) {
++ if (hardid == int_servers[thread]) {
++ addr = get_property(node, "pervasive", NULL);
++ goto found;
++ }
++ }
+ }
-+ return pmd_mmio_area;
++
++ printk(KERN_WARNING "%s: CPU %d not found\n", __FUNCTION__, cpu);
++ return -EINVAL;
++
++found:
++ real_address = *(unsigned long*) addr;
++ addr += sizeof (unsigned long);
++ size = *(unsigned int*) addr;
++
++ pr_debug("pervasive area for CPU %d at %lx, size %x\n",
++ cpu, real_address, size);
++ p->regs = __ioremap(real_address, size, _PAGE_NO_CACHE);
++ p->thread = thread;
++ return 0;
+}
+
+void __init cell_pervasive_init(void)
+{
-+ struct pmd *pmd;
++ struct cbe_pervasive *p;
+ int cpu;
++ int ret;
++
++ spin_lock_init(&cbe_pervasive_lock);
+
-+ if (!cpu_has_feature(CPU_FTR_PAUSE_ZERO) || !__onsim())
++ if (!cpu_has_feature(CPU_FTR_PAUSE_ZERO))
+ return;
+
+ for_each_cpu(cpu) {
-+ pmd = &per_cpu(pmd, cpu);
-+ pmd->regs = find_pmd_mmio(cpu);
++ p = &cbe_pervasive[cpu];
++ ret = cbe_find_pmd_mmio(cpu, p);
++ if (ret)
++ return;
+ }
-+}
+
-+int __init enable_pause_zero_init(void)
-+{
-+ on_each_cpu(enable_pause_zero, NULL, 0, 1);
-+ return 0;
++ ppc_md.idle_loop = cbe_idle;
++ ppc_md.system_reset_exception = cbe_system_reset_exception;
+}
-+
-+arch_initcall(enable_pause_zero_init);
Index: linux-2.6.15-rc/arch/powerpc/platforms/cell/pervasive.h
===================================================================
--- /dev/null
+++ linux-2.6.15-rc/arch/powerpc/platforms/cell/pervasive.h
-@@ -0,0 +1,64 @@
+@@ -0,0 +1,62 @@
+/*
+ * Cell Pervasive Monitor and Debug interface and HW structures
+ *
@@ -237,8 +304,6 @@
+};
+
+void __init cell_pervasive_init(void);
-+void enable_pause_zero(void *);
-+void _pause_zero(void);
+
+#endif
Index: linux-2.6.15-rc/arch/powerpc/platforms/cell/setup.c
@@ -261,65 +326,6 @@
#ifdef CONFIG_DUMMY_CONSOLE
conswitchp = &dummy_con;
#endif
-Index: linux-2.6.15-rc/arch/powerpc/kernel/head_64.S
-===================================================================
---- linux-2.6.15-rc.orig/arch/powerpc/kernel/head_64.S
-+++ linux-2.6.15-rc/arch/powerpc/kernel/head_64.S
-@@ -383,7 +383,7 @@ label##_common: \
- .globl __start_interrupts
- __start_interrupts:
-
-- STD_EXCEPTION_PSERIES(0x100, system_reset)
-+ STD_EXCEPTION_PSERIES(0x100, system_reset_check)
-
- . = 0x200
- _machine_check_pSeries:
-@@ -860,6 +860,31 @@ unrecov_fer:
- bl .unrecoverable_exception
- b 1b
-
-+/* This is a new system reset handler for the BE processor.
-+ * SRR1 stores wake information that must be decoded to determine why
-+ * the processor was at the system reset handler.
-+ */
-+
-+ .align 7
-+ .globl system_reset_check_common
-+system_reset_check_common:
-+BEGIN_FTR_SECTION
-+ mr r22,r12 /* r12 has SRR1 saved */
-+ srwi r22,r22,16
-+ andi. r22,r22,MSR_WAKEMASK
-+ cmpwi r22,MSR_WAKEEE
-+ beq 40f
-+ cmpwi r22,MSR_WAKEDEC
-+ beq 42f
-+ cmpwi r22,MSR_WAKEMT
-+ beq 43f
-+END_FTR_SECTION_IFSET(CPU_FTR_PAUSE_ZERO)
-+ b system_reset_common
-+40: b hardware_interrupt_common
-+42: b decrementer_common
-+43: EXCEPTION_PROLOG_COMMON(0x100, PACA_EXGEN);
-+ b fast_exception_return
-+
- /*
- * Here r13 points to the paca, r9 contains the saved CR,
- * SRR0 and SRR1 are saved in r11 and r12,
-Index: linux-2.6.15-rc/arch/powerpc/kernel/idle_64.c
-===================================================================
---- linux-2.6.15-rc.orig/arch/powerpc/kernel/idle_64.c
-+++ linux-2.6.15-rc/arch/powerpc/kernel/idle_64.c
-@@ -40,7 +40,8 @@ void default_idle(void)
- if (!need_resched()) {
- while (!need_resched() && !cpu_is_offline(cpu)) {
- ppc64_runlatch_off();
--
-+ if (cpu_has_feature(CPU_FTR_PAUSE_ZERO))
-+ pause_zero();
- /*
- * Go into low thread priority and possibly
- * low power mode.
Index: linux-2.6.15-rc/include/asm-powerpc/cputable.h
===================================================================
--- linux-2.6.15-rc.orig/include/asm-powerpc/cputable.h
@@ -342,56 +348,83 @@
CPU_FTRS_COMPATIBLE = CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB |
CPU_FTR_HPTE_TABLE | CPU_FTR_PPCAS_ARCH_V2,
#endif
-Index: linux-2.6.15-rc/include/asm-powerpc/processor.h
-===================================================================
---- linux-2.6.15-rc.orig/include/asm-powerpc/processor.h
-+++ linux-2.6.15-rc/include/asm-powerpc/processor.h
-@@ -281,6 +281,14 @@ static inline void prefetchw(const void
- #define HAVE_ARCH_PICK_MMAP_LAYOUT
- #endif
-
-+#ifdef CONFIG_PPC_CELL
-+extern void pause_zero(void);
-+#else
-+static inline void pause_zero(void)
-+{
-+}
-+#endif
-+
- #endif /* __KERNEL__ */
- #endif /* __ASSEMBLY__ */
- #endif /* _ASM_POWERPC_PROCESSOR_H */
Index: linux-2.6.15-rc/include/asm-powerpc/reg.h
===================================================================
--- linux-2.6.15-rc.orig/include/asm-powerpc/reg.h
+++ linux-2.6.15-rc/include/asm-powerpc/reg.h
-@@ -92,6 +92,15 @@
- #define MSR_RI __MASK(MSR_RI_LG) /* Recoverable Exception */
- #define MSR_LE __MASK(MSR_LE_LG) /* Little Endian */
-
-+/* Wake Events */
-+#define MSR_WAKEMASK 0x0038
-+#define MSR_WAKERESET 0x0038
-+#define MSR_WAKESYSERR 0x0030
-+#define MSR_WAKEEE 0x0020
-+#define MSR_WAKEMT 0x0028
-+#define MSR_WAKEDEC 0x0018
-+#define MSR_WAKETHERM 0x0010
-+
- #ifdef CONFIG_PPC64
- #define MSR_ MSR_ME | MSR_RI | MSR_IR | MSR_DR | MSR_ISF
- #define MSR_KERNEL MSR_ | MSR_SF | MSR_HV
-@@ -257,9 +266,10 @@
+@@ -145,6 +145,10 @@
+ #define SPRN_CTR 0x009 /* Count Register */
+ #define SPRN_CTRLF 0x088
+ #define SPRN_CTRLT 0x098
++#define CTRL_CT 0xc0000000 /* current thread */
++#define CTRL_CT0 0x80000000 /* thread 0 */
++#define CTRL_CT1 0x40000000 /* thread 1 */
++#define CTRL_TE 0x00c00000 /* thread enable */
+ #define CTRL_RUNLATCH 0x1
+ #define SPRN_DABR 0x3F5 /* Data Address Breakpoint Register */
+ #define DABR_TRANSLATION (1UL << 2)
+@@ -257,11 +261,11 @@
#define SPRN_HID6 0x3F9 /* BE HID 6 */
#define HID6_LB (0x0F<<12) /* Concurrent Large Page Modes */
#define HID6_DLP (1<<20) /* Disable all large page modes (4K only) */
-#define SPRN_TSCR 0x399 /* Thread switch control on BE */
-#define SPRN_TTR 0x39A /* Thread switch timeout on BE */
-#define TSCR_DEC_ENABLE 0x200000 /* Decrementer Interrupt */
+-#define TSCR_EE_ENABLE 0x100000 /* External Interrupt */
+-#define TSCR_EE_BOOST 0x080000 /* External Interrupt Boost */
+#define SPRN_TSC_CELL 0x399 /* Thread switch control on Cell */
-+#define SPRN_TTR 0x39A /* Thread switch timeout on Cell */
-+#define TSC_DEC_ENABLE_0 0x400000 /* Decrementer Interrupt */
-+#define TSC_DEC_ENABLE_1 0x200000 /* Decrementer Interrupt */
- #define TSCR_EE_ENABLE 0x100000 /* External Interrupt */
- #define TSCR_EE_BOOST 0x080000 /* External Interrupt Boost */
++#define TSC_CELL_DEC_ENABLE_0 0x400000 /* Decrementer Interrupt */
++#define TSC_CELL_DEC_ENABLE_1 0x200000 /* Decrementer Interrupt */
++#define TSC_CELL_EE_ENABLE 0x100000 /* External Interrupt */
++#define TSC_CELL_EE_BOOST 0x080000 /* External Interrupt Boost */
#define SPRN_TSC 0x3FD /* Thread switch control on others */
+ #define SPRN_TST 0x3FC /* Thread switch timeout on others */
+ #if !defined(SPRN_IAC1) && !defined(SPRN_IAC2)
+@@ -375,6 +379,14 @@
+ #define SPRN_SPRG7 0x117 /* Special Purpose Register General 7 */
+ #define SPRN_SRR0 0x01A /* Save/Restore Register 0 */
+ #define SPRN_SRR1 0x01B /* Save/Restore Register 1 */
++#define SRR1_WAKEMASK 0x00380000 /* reason for wakeup */
++#define SRR1_WAKERESET 0x00380000 /* System reset */
++#define SRR1_WAKESYSERR 0x00300000 /* System error */
++#define SRR1_WAKEEE 0x00200000 /* External interrupt */
++#define SRR1_WAKEMT 0x00280000 /* mtctrl */
++#define SRR1_WAKEDEC 0x00180000 /* Decrementer interrupt */
++#define SRR1_WAKETHERM 0x00100000 /* Thermal management interrupt */
++
+ #ifndef SPRN_SVR
+ #define SPRN_SVR 0x11E /* System Version Register */
+ #endif
+Index: linux-2.6.15-rc/arch/powerpc/kernel/cputable.c
+===================================================================
+--- linux-2.6.15-rc.orig/arch/powerpc/kernel/cputable.c
++++ linux-2.6.15-rc/arch/powerpc/kernel/cputable.c
+@@ -273,7 +273,7 @@ struct cpu_spec cpu_specs[] = {
+ .oprofile_model = &op_model_power4,
+ #endif
+ },
+- { /* BE DD1.x */
++ { /* Cell Broadband Engine */
+ .pvr_mask = 0xffff0000,
+ .pvr_value = 0x00700000,
+ .cpu_name = "Cell Broadband Engine",
+Index: linux-2.6.15-rc/arch/powerpc/kernel/traps.c
+===================================================================
+--- linux-2.6.15-rc.orig/arch/powerpc/kernel/traps.c
++++ linux-2.6.15-rc/arch/powerpc/kernel/traps.c
+@@ -230,8 +230,10 @@ void _exception(int signr, struct pt_reg
+ void system_reset_exception(struct pt_regs *regs)
+ {
+ /* See if any machine dependent calls */
+- if (ppc_md.system_reset_exception)
++ if (ppc_md.system_reset_exception) {
+ ppc_md.system_reset_exception(regs);
++ return;
++ }
+
+ die("System Reset", regs, SIGABRT);
+
+_______________________________________________
+Linuxppc64-dev mailing list
+Linuxppc64-dev at ozlabs.org
+https://ozlabs.org/mailman/listinfo/linuxppc64-dev
Index: sources
===================================================================
RCS file: /cvs/dist/rpms/kernel-xen/devel/sources,v
retrieving revision 1.3.2.4
retrieving revision 1.3.2.5
diff -u -r1.3.2.4 -r1.3.2.5
--- sources 15 Dec 2005 21:42:09 -0000 1.3.2.4
+++ sources 19 Dec 2005 12:52:57 -0000 1.3.2.5
@@ -1,4 +1,4 @@
66d02cbd723876c6d69846a067875a22 linux-2.6.14.tar.bz2
04385c8abed5541c0710b15393b79020 xen-20051206.tar.bz2
d14ab78f5bd1f920d9088a5e50a78d7d patch-2.6.15-rc5.bz2
-2317715e18364ed43654d30e46b137ca patch-2.6.15-rc5-git5.bz2
+601926b68e0e73ecb15f4d01e7a5dfab patch-2.6.15-rc5-git7.bz2
Index: upstream
===================================================================
RCS file: /cvs/dist/rpms/kernel-xen/devel/Attic/upstream,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- upstream 15 Dec 2005 21:42:09 -0000 1.1.2.3
+++ upstream 19 Dec 2005 12:52:57 -0000 1.1.2.4
@@ -1,3 +1,3 @@
linux-2.6.14.tar.bz2
patch-2.6.15-rc5.bz2
-patch-2.6.15-rc5-git5.bz2
+patch-2.6.15-rc5-git7.bz2
--- patch-2.6.15-rc5-git5.bz2.sign DELETED ---
More information about the fedora-cvs-commits
mailing list