linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] XBox Gaming System subarchitecture.
@ 2003-07-14 12:49 Anders Gustafsson - xbox patch monkey
  2003-07-14 13:59 ` Dave Jones
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Anders Gustafsson - xbox patch monkey @ 2003-07-14 12:49 UTC (permalink / raw)
  To: torvalds; +Cc: linux-kernel

A wise man recently said:

''That pretty much cuts the list of "needs to be supported" down to x86,
  ia64, x86-64 and possibly sparc/alpha.''

Some parts of x86 are still not supported, namely the bastardized PC called
Xbox. The patch below fixes that. Rediffed to latest bk.

Please apply. Snälla.

-- 
Anders Gustafsson - andersg@0x63.nu - http://0x63.nu/

You can import this changeset into BK by piping this whole message to:
'| bk receive [path to repository]' or apply the patch as usual.

===================================================================


ChangeSet
  1.1459 03/07/14 12:55:39 andersg@0x63.nu +10 -0
  Added XBox Gaming System subarchitecture.

  include/asm-i386/mach-xbox/mach_pci_blacklist.h
    1.1 03/07/14 12:48:09 andersg@0x63.nu +6 -0

  include/asm-i386/mach-default/mach_pci_blacklist.h
    1.1 03/07/14 12:48:09 andersg@0x63.nu +6 -0

  include/asm-i386/mach-xbox/mach_pci_blacklist.h
    1.0 03/07/14 12:48:09 andersg@0x63.nu +0 -0
    BitKeeper file /data/dev/kernel/bk/xbox-2.5/include/asm-i386/mach-xbox/mach_pci_blacklist.h

  include/asm-i386/mach-default/mach_pci_blacklist.h
    1.0 03/07/14 12:48:09 andersg@0x63.nu +0 -0
    BitKeeper file /data/dev/kernel/bk/xbox-2.5/include/asm-i386/mach-default/mach_pci_blacklist.h

  arch/i386/mach-xbox/setup.c
    1.1 03/07/14 12:48:08 andersg@0x63.nu +79 -0

  arch/i386/mach-xbox/setup.c
    1.0 03/07/14 12:48:08 andersg@0x63.nu +0 -0
    BitKeeper file /data/dev/kernel/bk/xbox-2.5/arch/i386/mach-xbox/setup.c

  arch/i386/mach-xbox/reboot.c
    1.1 03/07/14 12:48:07 andersg@0x63.nu +51 -0

  arch/i386/mach-xbox/Makefile
    1.1 03/07/14 12:48:07 andersg@0x63.nu +5 -0

  include/asm-i386/timex.h
    1.6 03/07/14 12:48:07 andersg@0x63.nu +5 -1
    The xbox has a different CLOCK_TICK_RATE.

  arch/i386/mach-xbox/reboot.c
    1.0 03/07/14 12:48:07 andersg@0x63.nu +0 -0
    BitKeeper file /data/dev/kernel/bk/xbox-2.5/arch/i386/mach-xbox/reboot.c

  arch/i386/mach-xbox/Makefile
    1.0 03/07/14 12:48:07 andersg@0x63.nu +0 -0
    BitKeeper file /data/dev/kernel/bk/xbox-2.5/arch/i386/mach-xbox/Makefile

  arch/i386/pci/direct.c
    1.19 03/07/14 12:48:06 andersg@0x63.nu +4 -0
    Added a mach-hook for blacklisting pci-devices.
    The xbox uses this to prevent it from touching some devices that makes
    it hang.

  arch/i386/boot/compressed/Makefile
    1.17 03/07/14 12:48:06 andersg@0x63.nu +5 -0
    There is some strange interaction when paging is off, that makes 1.1 xboxen
    crash while decompressing kernel. Compiling the decompressor without
    optimization works around this problem.

  arch/i386/Makefile
    1.53 03/07/14 12:48:06 andersg@0x63.nu +4 -0
    Added XBox Gaming System subarchitecture.

  arch/i386/Kconfig
    1.67 03/07/14 12:48:06 andersg@0x63.nu +19 -2
    Added configoption for XBox Gaming System subarchitecture.


 arch/i386/Kconfig                                  |   21 +++++
 arch/i386/Makefile                                 |    4 +
 arch/i386/boot/compressed/Makefile                 |    5 +
 arch/i386/mach-xbox/Makefile                       |    5 +
 arch/i386/mach-xbox/reboot.c                       |   51 +++++++++++++
 arch/i386/mach-xbox/setup.c                        |   79 +++++++++++++++++++++
 arch/i386/pci/direct.c                             |    4 +
 include/asm-i386/mach-default/mach_pci_blacklist.h |    6 +
 include/asm-i386/mach-xbox/mach_pci_blacklist.h    |    6 +
 include/asm-i386/timex.h                           |    6 +
 10 files changed, 184 insertions(+), 3 deletions(-)


diff -Nru a/arch/i386/Kconfig b/arch/i386/Kconfig
--- a/arch/i386/Kconfig	Mon Jul 14 13:17:53 2003
+++ b/arch/i386/Kconfig	Mon Jul 14 13:17:53 2003
@@ -43,6 +43,22 @@
 	help
 	  Choose this option if your computer is a standard PC or compatible.
 
+config X86_XBOX
+	bool "XBox Gaming System"
+	help
+	  This option is needed to make Linux boot on XBox Gaming Systems.
+	  
+	  The XBox can be considered as a standard PC with a Coppermine-based Celeron 733 MHz,
+	  IDE harddrive, DVD, Ethernet, USB and graphics. 
+	  
+	  To boot the kernel you need "_romwell", either used as a replacement BIOS (cromwell)
+	  or as a bootloader.
+	  
+	  For more information see http://xbox-linux.sourceforge.net/ 
+	  
+	  If you do not specifically need a kernel for XBOX machine,
+	  say N here otherwise the kernel you build will not be bootable.
+
 config X86_VOYAGER
 	bool "Voyager (NCR)"
 	help
@@ -409,6 +425,7 @@
 	  Otherwise, say N.
 
 config SMP
+	depends on !X86_XBOX
 	bool "Symmetric multi-processing support"
 	---help---
 	  This enables support for systems with more than one CPU. If you have
@@ -1104,7 +1121,7 @@
 
 config MCA
 	bool "MCA support"
-	depends on !(X86_VISWS || X86_VOYAGER)
+	depends on !(X86_VISWS || X86_VOYAGER || X86_XBOX)
 	help
 	  MicroChannel Architecture is found in some IBM PS/2 machines and
 	  laptops.  It is a bus system similar to PCI or ISA. See
@@ -1403,7 +1420,7 @@
 
 config X86_BIOS_REBOOT
 	bool
-	depends on !(X86_VISWS || X86_VOYAGER)
+	depends on !(X86_VISWS || X86_VOYAGER || X86_XBOX)
 	default y
 
 config X86_TRAMPOLINE
diff -Nru a/arch/i386/Makefile b/arch/i386/Makefile
--- a/arch/i386/Makefile	Mon Jul 14 13:17:53 2003
+++ b/arch/i386/Makefile	Mon Jul 14 13:17:53 2003
@@ -53,6 +53,10 @@
 # Default subarch .c files
 mcore-y  := mach-default
 
+# Xbox subarch support
+mflags-$(CONFIG_X86_XBOX)	:= -Iinclude/asm-i386/mach-xbox
+mcore-$(CONFIG_X86_XBOX)	:= mach-xbox
+
 # Voyager subarch support
 mflags-$(CONFIG_X86_VOYAGER)	:= -Iinclude/asm-i386/mach-voyager
 mcore-$(CONFIG_X86_VOYAGER)	:= mach-voyager
diff -Nru a/arch/i386/boot/compressed/Makefile b/arch/i386/boot/compressed/Makefile
--- a/arch/i386/boot/compressed/Makefile	Mon Jul 14 13:17:53 2003
+++ b/arch/i386/boot/compressed/Makefile	Mon Jul 14 13:17:53 2003
@@ -5,6 +5,11 @@
 #
 
 targets		:= vmlinux vmlinux.bin vmlinux.bin.gz head.o misc.o piggy.o
+ifeq ($(CONFIG_X86_XBOX),y)
+#XXX Compiling with optimization makes 1.1-xboxen 
+#    crash while decompressing the kernel
+CFLAGS_misc.o   := -O0
+endif
 EXTRA_AFLAGS	:= -traditional
 
 LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -e startup_32
diff -Nru a/arch/i386/mach-xbox/Makefile b/arch/i386/mach-xbox/Makefile
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/arch/i386/mach-xbox/Makefile	Mon Jul 14 13:17:53 2003
@@ -0,0 +1,5 @@
+#
+# Makefile for the linux kernel.
+#
+
+obj-y				:= setup.o reboot.o
diff -Nru a/arch/i386/mach-xbox/reboot.c b/arch/i386/mach-xbox/reboot.c
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/arch/i386/mach-xbox/reboot.c	Mon Jul 14 13:17:53 2003
@@ -0,0 +1,51 @@
+/*
+ * arch/i386/mach-xbox/reboot.c 
+ * Olivier Fauchon <olivier.fauchon@free.fr>
+ * Anders Gustafsson <andersg@0x63.nu>
+ *
+ */
+
+#include <asm/io.h>
+
+/* we don't use any of those, but dmi_scan.c needs 'em */
+void (*pm_power_off)(void);
+int reboot_thru_bios;
+
+#define XBOX_SMB_IO_BASE 0xC000
+#define XBOX_SMB_HOST_ADDRESS       (0x4 + XBOX_SMB_IO_BASE)
+#define XBOX_SMB_HOST_COMMAND       (0x8 + XBOX_SMB_IO_BASE)
+#define XBOX_SMB_HOST_DATA          (0x6 + XBOX_SMB_IO_BASE)
+#define XBOX_SMB_GLOBAL_ENABLE      (0x2 + XBOX_SMB_IO_BASE)
+
+#define XBOX_PIC_ADDRESS 0x10
+
+#define SMC_CMD_POWER 0x02
+#define SMC_SUBCMD_POWER_RESET 0x01
+#define SMC_SUBCMD_POWER_CYCLE 0x40
+#define SMC_SUBCMD_POWER_OFF 0x80
+
+
+static void xbox_pic_cmd(u8 command)
+{
+	outw_p(((XBOX_PIC_ADDRESS) << 1),XBOX_SMB_HOST_ADDRESS);
+	outb_p(SMC_CMD_POWER, XBOX_SMB_HOST_COMMAND);
+	outw_p(command, XBOX_SMB_HOST_DATA);
+	outw_p(inw(XBOX_SMB_IO_BASE),XBOX_SMB_IO_BASE);
+	outb_p(0x0a,XBOX_SMB_GLOBAL_ENABLE);
+}
+
+void machine_restart(char * __unused)
+{
+	printk(KERN_INFO "Sending POWER_RESET to XBOX-PIC.\n");
+	xbox_pic_cmd(SMC_SUBCMD_POWER_RESET);  
+}
+
+void machine_power_off(void)
+{
+	printk(KERN_INFO "Sending POWER_OFF to XBOX-PIC.\n");
+	xbox_pic_cmd(SMC_SUBCMD_POWER_OFF);  
+}
+
+void machine_halt(void)
+{
+}
diff -Nru a/arch/i386/mach-xbox/setup.c b/arch/i386/mach-xbox/setup.c
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/arch/i386/mach-xbox/setup.c	Mon Jul 14 13:17:53 2003
@@ -0,0 +1,79 @@
+/*
+ *	Machine specific setup for xbox
+ */
+
+#include <linux/config.h>
+#include <linux/smp.h>
+#include <linux/init.h>
+#include <linux/irq.h>
+#include <linux/interrupt.h>
+#include <asm/arch_hooks.h>
+
+/**
+ * pre_intr_init_hook - initialisation prior to setting up interrupt vectors
+ *
+ * Description:
+ *	Perform any necessary interrupt initialisation prior to setting up
+ *	the "ordinary" interrupt call gates.  For legacy reasons, the ISA
+ *	interrupts should be initialised here if the machine emulates a PC
+ *	in any way.
+ **/
+void __init pre_intr_init_hook(void)
+{
+	init_ISA_irqs();
+}
+
+/**
+ * intr_init_hook - post gate setup interrupt initialisation
+ *
+ * Description:
+ *	Fill in any interrupts that may have been left out by the general
+ *	init_IRQ() routine.  interrupts having to do with the machine rather
+ *	than the devices on the I/O bus (like APIC interrupts in intel MP
+ *	systems) are started here.
+ **/
+void __init intr_init_hook(void)
+{
+#ifdef CONFIG_X86_LOCAL_APIC
+	apic_intr_init();
+#endif
+
+}
+
+/**
+ * pre_setup_arch_hook - hook called prior to any setup_arch() execution
+ *
+ * Description:
+ *	generally used to activate any machine specific identification
+ *	routines that may be needed before setup_arch() runs.  On VISWS
+ *	this is used to get the board revision and type.
+ **/
+void __init pre_setup_arch_hook(void)
+{
+}
+
+/**
+ * trap_init_hook - initialise system specific traps
+ *
+ * Description:
+ *	Called as the final act of trap_init().  Used in VISWS to initialise
+ *	the various board specific APIC traps.
+ **/
+void __init trap_init_hook(void)
+{
+}
+
+static struct irqaction irq0  = { timer_interrupt, SA_INTERRUPT, 0, "timer", NULL, NULL};
+
+/**
+ * time_init_hook - do any specific initialisations for the system timer.
+ *
+ * Description:
+ *	Must plug the system timer interrupt source at HZ into the IRQ listed
+ *	in irq_vectors.h:TIMER_IRQ
+ **/
+void __init time_init_hook(void)
+{
+	setup_irq(0, &irq0);
+}
+
diff -Nru a/arch/i386/pci/direct.c b/arch/i386/pci/direct.c
--- a/arch/i386/pci/direct.c	Mon Jul 14 13:17:53 2003
+++ b/arch/i386/pci/direct.c	Mon Jul 14 13:17:53 2003
@@ -4,6 +4,7 @@
 
 #include <linux/pci.h>
 #include <linux/init.h>
+#include "mach_pci_blacklist.h"
 #include "pci.h"
 
 /*
@@ -20,6 +21,9 @@
 	if (!value || (bus > 255) || (devfn > 255) || (reg > 255))
 		return -EINVAL;
 
+	if (mach_pci_is_blacklisted(bus,PCI_SLOT(devfn),PCI_FUNC(devfn)))
+		return -EINVAL;
+	
 	spin_lock_irqsave(&pci_config_lock, flags);
 
 	outl(PCI_CONF1_ADDRESS(bus, devfn, reg), 0xCF8);
diff -Nru a/include/asm-i386/mach-default/mach_pci_blacklist.h b/include/asm-i386/mach-default/mach_pci_blacklist.h
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/include/asm-i386/mach-default/mach_pci_blacklist.h	Mon Jul 14 13:17:53 2003
@@ -0,0 +1,6 @@
+#ifndef __ASM_MACH_PCI_BLACKLIST_H
+#define __ASM_MACH_PCI_BLACKLIST_H
+
+#define mach_pci_is_blacklisted(bus,dev,fn) 0
+
+#endif
diff -Nru a/include/asm-i386/mach-xbox/mach_pci_blacklist.h b/include/asm-i386/mach-xbox/mach_pci_blacklist.h
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/include/asm-i386/mach-xbox/mach_pci_blacklist.h	Mon Jul 14 13:17:53 2003
@@ -0,0 +1,6 @@
+#ifndef __ASM_MACH_PCI_BLACKLIST_H
+#define __ASM_MACH_PCI_BLACKLIST_H
+
+#define mach_pci_is_blacklisted(bus,dev,fn) ( (bus>1) || (bus&&(dev||fn)) || ((bus==0 && dev==0) && ((fn==1)||(fn==2))) )
+
+#endif
diff -Nru a/include/asm-i386/timex.h b/include/asm-i386/timex.h
--- a/include/asm-i386/timex.h	Mon Jul 14 13:17:53 2003
+++ b/include/asm-i386/timex.h	Mon Jul 14 13:17:53 2003
@@ -15,7 +15,11 @@
 #ifdef CONFIG_MELAN
 #  define CLOCK_TICK_RATE 1189200 /* AMD Elan has different frequency! */
 #else
-#  define CLOCK_TICK_RATE 1193182 /* Underlying HZ */
+#  ifdef CONFIG_X86_XBOX
+#    define CLOCK_TICK_RATE 1124998 /* so has the Xbox */
+#  else 
+#    define CLOCK_TICK_RATE 1193180 /* Underlying HZ */
+#  endif
 #endif
 #endif
 

===================================================================


This BitKeeper patch contains the following changesets:
1.1459
## Wrapped with gzip_uu ##


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
+3>'_M<FS>]DV    
 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] XBox Gaming System subarchitecture.
  2003-07-14 12:49 [PATCH] XBox Gaming System subarchitecture Anders Gustafsson - xbox patch monkey
@ 2003-07-14 13:59 ` Dave Jones
  2003-07-14 14:21   ` Anders Gustafsson
  2003-07-14 14:32 ` Jeff Garzik
  2003-07-14 16:12 ` Linus Torvalds
  2 siblings, 1 reply; 12+ messages in thread
From: Dave Jones @ 2003-07-14 13:59 UTC (permalink / raw)
  To: Anders Gustafsson - xbox patch monkey; +Cc: torvalds, linux-kernel

On Mon, Jul 14, 2003 at 02:49:33PM +0200, Anders Gustafsson - xbox patch monkey wrote:
 > A wise man recently said:
 > 
 > ''That pretty much cuts the list of "needs to be supported" down to x86,
 >   ia64, x86-64 and possibly sparc/alpha.''
 > 
 > Some parts of x86 are still not supported, namely the bastardized PC called
 > Xbox. The patch below fixes that. Rediffed to latest bk.
 > 
 > Please apply. Sn?lla.

First you should read (and preferably act upon) the comments
sent the last time you posted this.

Notably the gcc 'workaround' and the HZ ifdef maze.

		Dave


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] XBox Gaming System subarchitecture.
  2003-07-14 13:59 ` Dave Jones
@ 2003-07-14 14:21   ` Anders Gustafsson
  2003-07-14 14:28     ` Dave Jones
  0 siblings, 1 reply; 12+ messages in thread
From: Anders Gustafsson @ 2003-07-14 14:21 UTC (permalink / raw)
  To: Dave Jones, torvalds, linux-kernel

On Mon, Jul 14, 2003 at 02:59:48PM +0100, Dave Jones wrote:
> First you should read (and preferably act upon) the comments
> sent the last time you posted this.
> 
> Notably the gcc 'workaround' and the HZ ifdef maze.

Ooops, wrong patch. I have a labyrinth of bitkeeper-trees here, all looking
almost the same.

The real patch contains cleaned up HZ-ifdefs.

Regarding the gcc "workaround" I said:

"I don't really know how to make clear it's not a gcc problem. But if it was,
 why doesn't it crash on pc and 1.0 xboxen? And why does it crash on kernels
 compiled with 2.95, with or without optimization? I really wish I had the
 explaination to this problem."
 
Or as Christoph answered: "Oh well, stupid crappy hardware..."

-- 
Anders Gustafsson - andersg@0x63.nu - http://0x63.nu/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] XBox Gaming System subarchitecture.
  2003-07-14 14:21   ` Anders Gustafsson
@ 2003-07-14 14:28     ` Dave Jones
  2003-07-14 14:54       ` Anders Gustafsson
  0 siblings, 1 reply; 12+ messages in thread
From: Dave Jones @ 2003-07-14 14:28 UTC (permalink / raw)
  To: Anders Gustafsson; +Cc: torvalds, linux-kernel

On Mon, Jul 14, 2003 at 04:21:52PM +0200, Anders Gustafsson wrote:
 > > Notably the gcc 'workaround' and the HZ ifdef maze.
 > 
 > Ooops, wrong patch. I have a labyrinth of bitkeeper-trees here, all looking
 > almost the same.
 > 
 > The real patch contains cleaned up HZ-ifdefs.

good good..

 > Regarding the gcc "workaround" I said:
 > "I don't really know how to make clear it's not a gcc problem. But if it was,
 >  why doesn't it crash on pc and 1.0 xboxen? And why does it crash on kernels
 >  compiled with 2.95, with or without optimization? I really wish I had the
 >  explaination to this problem."
 >  
 > Or as Christoph answered: "Oh well, stupid crappy hardware..."

That's a possibility, but if that were the case, I'd expect other things
also to start randomly failing. It's unclear to me how -O2 would make
a hardware bug more aparent. If it did so, that would also mean you'd
have to ensure all your userspace was similarly compiled, which sounds
very suspect.  It's just a celeron based PC with nvidia nforce chipset right ?
If that combination caused such problems, I'd expect to see the
occasional problem report from non-Xbox regular home-built PC users too.

Might be one worth picking over on the gcc lists if you can identify
which part gets miscompiled ?

Tried different versions of binutils too ?

		Dave


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] XBox Gaming System subarchitecture.
  2003-07-14 12:49 [PATCH] XBox Gaming System subarchitecture Anders Gustafsson - xbox patch monkey
  2003-07-14 13:59 ` Dave Jones
@ 2003-07-14 14:32 ` Jeff Garzik
  2003-07-14 16:12 ` Linus Torvalds
  2 siblings, 0 replies; 12+ messages in thread
From: Jeff Garzik @ 2003-07-14 14:32 UTC (permalink / raw)
  To: Anders Gustafsson - xbox patch monkey; +Cc: torvalds, linux-kernel

On Mon, Jul 14, 2003 at 02:49:33PM +0200, Anders Gustafsson - xbox patch monkey wrote:
> A wise man recently said:
> 
> ''That pretty much cuts the list of "needs to be supported" down to x86,
>   ia64, x86-64 and possibly sparc/alpha.''
> 
> Some parts of x86 are still not supported, namely the bastardized PC called
> Xbox. The patch below fixes that. Rediffed to latest bk.


Personally I think we should wait on merging this until the furor over
the current Xbox hacks dies down.  It can be yet another architecture
that catches up after 2.6.0 is released, which isn't a big deal IMO.

	Jeff




^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] XBox Gaming System subarchitecture.
  2003-07-14 14:28     ` Dave Jones
@ 2003-07-14 14:54       ` Anders Gustafsson
  2003-07-14 15:04         ` [CORRECT PATCH] " Anders Gustafsson
  2003-07-15 12:39         ` [PATCH] " Eric W. Biederman
  0 siblings, 2 replies; 12+ messages in thread
From: Anders Gustafsson @ 2003-07-14 14:54 UTC (permalink / raw)
  To: Dave Jones, torvalds, linux-kernel

On Mon, Jul 14, 2003 at 03:28:38PM +0100, Dave Jones wrote:
>  > The real patch contains cleaned up HZ-ifdefs.
> 
> good good..

Testing it an extra time now.

>  > Or as Christoph answered: "Oh well, stupid crappy hardware..."
> 
> That's a possibility, but if that were the case, I'd expect other things
> also to start randomly failing. It's unclear to me how -O2 would make
> a hardware bug more aparent. If it did so, that would also mean you'd
> have to ensure all your userspace was similarly compiled, which sounds
> very suspect.  It's just a celeron based PC with nvidia nforce chipset right ?
> If that combination caused such problems, I'd expect to see the
> occasional problem report from non-Xbox regular home-built PC users too.

It only happens when paging is off. Hence no problem as soon as the kernel
is up and running. -O2 changes the memory-access patterns so it is quite
possible that it would expose hardware bugs.

> Might be one worth picking over on the gcc lists if you can identify
> which part gets miscompiled ?
> 
> Tried different versions of binutils too ?

On 1.0 xboxes it works with any gcc with or without optimizations on.

On 1.1+ xboxen it does NOT work with 2.95, -O0 or -O2. But with 3.2.2-3.3 it
is known to work with -O0.

It's was not easy to localize the crashes. Cos adding more code for
debugging moves the point where it crashes around. However it does crash
reading from memory. A prefectly valid address. That it just a few
instructions earlier had written and read from.

-- 
Anders Gustafsson - andersg@0x63.nu - http://0x63.nu/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [CORRECT PATCH] XBox Gaming System subarchitecture.
  2003-07-14 14:54       ` Anders Gustafsson
@ 2003-07-14 15:04         ` Anders Gustafsson
  2003-07-15 12:39         ` [PATCH] " Eric W. Biederman
  1 sibling, 0 replies; 12+ messages in thread
From: Anders Gustafsson @ 2003-07-14 15:04 UTC (permalink / raw)
  To: Dave Jones, torvalds, linux-kernel

On Mon, Jul 14, 2003 at 04:54:29PM +0200, Anders Gustafsson wrote:
> >  > The real patch contains cleaned up HZ-ifdefs.
> > 
> > good good..
> 
> Testing it an extra time now.

And here it is.

-- 
Anders Gustafsson - andersg@0x63.nu - http://0x63.nu/

You can import this changeset into BK by piping this whole message to:
'| bk receive [path to repository]' or apply the patch as usual.

===================================================================


ChangeSet
  1.1459 03/07/14 16:56:06 andersg@0x63.nu +10 -0
  Added XBox Gaming System subarchitecture.

  include/asm-i386/mach-xbox/mach_pci_blacklist.h
    1.1 03/07/14 16:55:48 andersg@0x63.nu +10 -0

  include/asm-i386/mach-xbox/mach_pci_blacklist.h
    1.0 03/07/14 16:55:48 andersg@0x63.nu +0 -0
    BitKeeper file /data/dev/kernel/bk/xbox-2.5/include/asm-i386/mach-xbox/mach_pci_blacklist.h

  include/asm-i386/mach-default/mach_pci_blacklist.h
    1.1 03/07/14 16:55:47 andersg@0x63.nu +6 -0

  arch/i386/mach-xbox/setup.c
    1.1 03/07/14 16:55:47 andersg@0x63.nu +79 -0

  include/asm-i386/mach-default/mach_pci_blacklist.h
    1.0 03/07/14 16:55:47 andersg@0x63.nu +0 -0
    BitKeeper file /data/dev/kernel/bk/xbox-2.5/include/asm-i386/mach-default/mach_pci_blacklist.h

  arch/i386/mach-xbox/setup.c
    1.0 03/07/14 16:55:47 andersg@0x63.nu +0 -0
    BitKeeper file /data/dev/kernel/bk/xbox-2.5/arch/i386/mach-xbox/setup.c

  arch/i386/mach-xbox/reboot.c
    1.1 03/07/14 16:55:46 andersg@0x63.nu +51 -0

  arch/i386/mach-xbox/reboot.c
    1.0 03/07/14 16:55:46 andersg@0x63.nu +0 -0
    BitKeeper file /data/dev/kernel/bk/xbox-2.5/arch/i386/mach-xbox/reboot.c

  arch/i386/mach-xbox/Makefile
    1.1 03/07/14 16:55:45 andersg@0x63.nu +5 -0

  include/asm-i386/timex.h
    1.6 03/07/14 16:55:45 andersg@0x63.nu +5 -5
    The xbox has a different CLOCK_TICK_RATE.

  arch/i386/pci/direct.c
    1.19 03/07/14 16:55:45 andersg@0x63.nu +4 -0
    Added a mach-hook for blacklisting pci-devices.
    The xbox uses this to prevent it from touching some devices that makes
    it hang.

  arch/i386/mach-xbox/Makefile
    1.0 03/07/14 16:55:45 andersg@0x63.nu +0 -0
    BitKeeper file /data/dev/kernel/bk/xbox-2.5/arch/i386/mach-xbox/Makefile

  arch/i386/boot/compressed/Makefile
    1.17 03/07/14 16:55:45 andersg@0x63.nu +5 -0
    There is some strange interaction when paging is off, that makes 1.1 xboxen
    crash while decompressing kernel. Compiling the decompressor without
    optimization reliably works around this problem.

  arch/i386/Makefile
    1.53 03/07/14 16:55:45 andersg@0x63.nu +4 -0
    Added XBox Gaming System subarchitecture.

  arch/i386/Kconfig
    1.67 03/07/14 16:55:45 andersg@0x63.nu +19 -2
    Added configoption for XBox Gaming System subarchitecture.


 arch/i386/Kconfig                                  |   21 +++++
 arch/i386/Makefile                                 |    4 +
 arch/i386/boot/compressed/Makefile                 |    5 +
 arch/i386/mach-xbox/Makefile                       |    5 +
 arch/i386/mach-xbox/reboot.c                       |   51 +++++++++++++
 arch/i386/mach-xbox/setup.c                        |   79 +++++++++++++++++++++
 arch/i386/pci/direct.c                             |    4 +
 include/asm-i386/mach-default/mach_pci_blacklist.h |    6 +
 include/asm-i386/mach-xbox/mach_pci_blacklist.h    |   10 ++
 include/asm-i386/timex.h                           |   10 +-
 10 files changed, 188 insertions(+), 7 deletions(-)


diff -Nru a/arch/i386/Kconfig b/arch/i386/Kconfig
--- a/arch/i386/Kconfig	Mon Jul 14 16:59:22 2003
+++ b/arch/i386/Kconfig	Mon Jul 14 16:59:22 2003
@@ -43,6 +43,22 @@
 	help
 	  Choose this option if your computer is a standard PC or compatible.
 
+config X86_XBOX
+	bool "XBox Gaming System"
+	help
+	  This option is needed to make Linux boot on XBox Gaming Systems.
+	  
+	  The XBox can be considered as a standard PC with a Coppermine-based Celeron 733 MHz,
+	  IDE harddrive, DVD, Ethernet, USB and graphics. 
+	  
+	  To boot the kernel you need "_romwell", either used as a replacement BIOS (cromwell)
+	  or as a bootloader.
+	  
+	  For more information see http://xbox-linux.sourceforge.net/ 
+	  
+	  If you do not specifically need a kernel for XBOX machine,
+	  say N here otherwise the kernel you build will not be bootable.
+
 config X86_VOYAGER
 	bool "Voyager (NCR)"
 	help
@@ -409,6 +425,7 @@
 	  Otherwise, say N.
 
 config SMP
+	depends on !X86_XBOX
 	bool "Symmetric multi-processing support"
 	---help---
 	  This enables support for systems with more than one CPU. If you have
@@ -1104,7 +1121,7 @@
 
 config MCA
 	bool "MCA support"
-	depends on !(X86_VISWS || X86_VOYAGER)
+	depends on !(X86_VISWS || X86_VOYAGER || X86_XBOX)
 	help
 	  MicroChannel Architecture is found in some IBM PS/2 machines and
 	  laptops.  It is a bus system similar to PCI or ISA. See
@@ -1403,7 +1420,7 @@
 
 config X86_BIOS_REBOOT
 	bool
-	depends on !(X86_VISWS || X86_VOYAGER)
+	depends on !(X86_VISWS || X86_VOYAGER || X86_XBOX)
 	default y
 
 config X86_TRAMPOLINE
diff -Nru a/arch/i386/Makefile b/arch/i386/Makefile
--- a/arch/i386/Makefile	Mon Jul 14 16:59:22 2003
+++ b/arch/i386/Makefile	Mon Jul 14 16:59:22 2003
@@ -53,6 +53,10 @@
 # Default subarch .c files
 mcore-y  := mach-default
 
+# Xbox subarch support
+mflags-$(CONFIG_X86_XBOX)	:= -Iinclude/asm-i386/mach-xbox
+mcore-$(CONFIG_X86_XBOX)	:= mach-xbox
+
 # Voyager subarch support
 mflags-$(CONFIG_X86_VOYAGER)	:= -Iinclude/asm-i386/mach-voyager
 mcore-$(CONFIG_X86_VOYAGER)	:= mach-voyager
diff -Nru a/arch/i386/boot/compressed/Makefile b/arch/i386/boot/compressed/Makefile
--- a/arch/i386/boot/compressed/Makefile	Mon Jul 14 16:59:22 2003
+++ b/arch/i386/boot/compressed/Makefile	Mon Jul 14 16:59:22 2003
@@ -5,6 +5,11 @@
 #
 
 targets		:= vmlinux vmlinux.bin vmlinux.bin.gz head.o misc.o piggy.o
+ifeq ($(CONFIG_X86_XBOX),y)
+#XXX Compiling with optimization makes 1.1-xboxen 
+#    crash while decompressing the kernel
+CFLAGS_misc.o   := -O0
+endif
 EXTRA_AFLAGS	:= -traditional
 
 LDFLAGS_vmlinux := -Ttext $(IMAGE_OFFSET) -e startup_32
diff -Nru a/arch/i386/mach-xbox/Makefile b/arch/i386/mach-xbox/Makefile
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/arch/i386/mach-xbox/Makefile	Mon Jul 14 16:59:22 2003
@@ -0,0 +1,5 @@
+#
+# Makefile for the linux kernel.
+#
+
+obj-y				:= setup.o reboot.o
diff -Nru a/arch/i386/mach-xbox/reboot.c b/arch/i386/mach-xbox/reboot.c
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/arch/i386/mach-xbox/reboot.c	Mon Jul 14 16:59:22 2003
@@ -0,0 +1,51 @@
+/*
+ * arch/i386/mach-xbox/reboot.c 
+ * Olivier Fauchon <olivier.fauchon@free.fr>
+ * Anders Gustafsson <andersg@0x63.nu>
+ *
+ */
+
+#include <asm/io.h>
+
+/* we don't use any of those, but dmi_scan.c needs 'em */
+void (*pm_power_off)(void);
+int reboot_thru_bios;
+
+#define XBOX_SMB_IO_BASE 0xC000
+#define XBOX_SMB_HOST_ADDRESS       (0x4 + XBOX_SMB_IO_BASE)
+#define XBOX_SMB_HOST_COMMAND       (0x8 + XBOX_SMB_IO_BASE)
+#define XBOX_SMB_HOST_DATA          (0x6 + XBOX_SMB_IO_BASE)
+#define XBOX_SMB_GLOBAL_ENABLE      (0x2 + XBOX_SMB_IO_BASE)
+
+#define XBOX_PIC_ADDRESS 0x10
+
+#define SMC_CMD_POWER 0x02
+#define SMC_SUBCMD_POWER_RESET 0x01
+#define SMC_SUBCMD_POWER_CYCLE 0x40
+#define SMC_SUBCMD_POWER_OFF 0x80
+
+
+static void xbox_pic_cmd(u8 command)
+{
+	outw_p(((XBOX_PIC_ADDRESS) << 1),XBOX_SMB_HOST_ADDRESS);
+	outb_p(SMC_CMD_POWER, XBOX_SMB_HOST_COMMAND);
+	outw_p(command, XBOX_SMB_HOST_DATA);
+	outw_p(inw(XBOX_SMB_IO_BASE),XBOX_SMB_IO_BASE);
+	outb_p(0x0a,XBOX_SMB_GLOBAL_ENABLE);
+}
+
+void machine_restart(char * __unused)
+{
+	printk(KERN_INFO "Sending POWER_RESET to XBOX-PIC.\n");
+	xbox_pic_cmd(SMC_SUBCMD_POWER_RESET);  
+}
+
+void machine_power_off(void)
+{
+	printk(KERN_INFO "Sending POWER_OFF to XBOX-PIC.\n");
+	xbox_pic_cmd(SMC_SUBCMD_POWER_OFF);  
+}
+
+void machine_halt(void)
+{
+}
diff -Nru a/arch/i386/mach-xbox/setup.c b/arch/i386/mach-xbox/setup.c
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/arch/i386/mach-xbox/setup.c	Mon Jul 14 16:59:22 2003
@@ -0,0 +1,79 @@
+/*
+ *	Machine specific setup for xbox
+ */
+
+#include <linux/config.h>
+#include <linux/smp.h>
+#include <linux/init.h>
+#include <linux/irq.h>
+#include <linux/interrupt.h>
+#include <asm/arch_hooks.h>
+
+/**
+ * pre_intr_init_hook - initialisation prior to setting up interrupt vectors
+ *
+ * Description:
+ *	Perform any necessary interrupt initialisation prior to setting up
+ *	the "ordinary" interrupt call gates.  For legacy reasons, the ISA
+ *	interrupts should be initialised here if the machine emulates a PC
+ *	in any way.
+ **/
+void __init pre_intr_init_hook(void)
+{
+	init_ISA_irqs();
+}
+
+/**
+ * intr_init_hook - post gate setup interrupt initialisation
+ *
+ * Description:
+ *	Fill in any interrupts that may have been left out by the general
+ *	init_IRQ() routine.  interrupts having to do with the machine rather
+ *	than the devices on the I/O bus (like APIC interrupts in intel MP
+ *	systems) are started here.
+ **/
+void __init intr_init_hook(void)
+{
+#ifdef CONFIG_X86_LOCAL_APIC
+	apic_intr_init();
+#endif
+
+}
+
+/**
+ * pre_setup_arch_hook - hook called prior to any setup_arch() execution
+ *
+ * Description:
+ *	generally used to activate any machine specific identification
+ *	routines that may be needed before setup_arch() runs.  On VISWS
+ *	this is used to get the board revision and type.
+ **/
+void __init pre_setup_arch_hook(void)
+{
+}
+
+/**
+ * trap_init_hook - initialise system specific traps
+ *
+ * Description:
+ *	Called as the final act of trap_init().  Used in VISWS to initialise
+ *	the various board specific APIC traps.
+ **/
+void __init trap_init_hook(void)
+{
+}
+
+static struct irqaction irq0  = { timer_interrupt, SA_INTERRUPT, 0, "timer", NULL, NULL};
+
+/**
+ * time_init_hook - do any specific initialisations for the system timer.
+ *
+ * Description:
+ *	Must plug the system timer interrupt source at HZ into the IRQ listed
+ *	in irq_vectors.h:TIMER_IRQ
+ **/
+void __init time_init_hook(void)
+{
+	setup_irq(0, &irq0);
+}
+
diff -Nru a/arch/i386/pci/direct.c b/arch/i386/pci/direct.c
--- a/arch/i386/pci/direct.c	Mon Jul 14 16:59:22 2003
+++ b/arch/i386/pci/direct.c	Mon Jul 14 16:59:22 2003
@@ -4,6 +4,7 @@
 
 #include <linux/pci.h>
 #include <linux/init.h>
+#include "mach_pci_blacklist.h"
 #include "pci.h"
 
 /*
@@ -20,6 +21,9 @@
 	if (!value || (bus > 255) || (devfn > 255) || (reg > 255))
 		return -EINVAL;
 
+	if (mach_pci_is_blacklisted(bus,PCI_SLOT(devfn),PCI_FUNC(devfn)))
+		return -EINVAL;
+	
 	spin_lock_irqsave(&pci_config_lock, flags);
 
 	outl(PCI_CONF1_ADDRESS(bus, devfn, reg), 0xCF8);
diff -Nru a/include/asm-i386/mach-default/mach_pci_blacklist.h b/include/asm-i386/mach-default/mach_pci_blacklist.h
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/include/asm-i386/mach-default/mach_pci_blacklist.h	Mon Jul 14 16:59:22 2003
@@ -0,0 +1,6 @@
+#ifndef __ASM_MACH_PCI_BLACKLIST_H
+#define __ASM_MACH_PCI_BLACKLIST_H
+
+#define mach_pci_is_blacklisted(bus,dev,fn) 0
+
+#endif
diff -Nru a/include/asm-i386/mach-xbox/mach_pci_blacklist.h b/include/asm-i386/mach-xbox/mach_pci_blacklist.h
--- /dev/null	Wed Dec 31 16:00:00 1969
+++ b/include/asm-i386/mach-xbox/mach_pci_blacklist.h	Mon Jul 14 16:59:22 2003
@@ -0,0 +1,10 @@
+#ifndef __ASM_MACH_PCI_BLACKLIST_H
+#define __ASM_MACH_PCI_BLACKLIST_H
+
+static inline int mach_pci_is_blacklisted(int bus, int dev, int fn)
+{
+	return (bus > 1) || ((bus != 0) && ((dev != 0) || (fn != 0))) ||
+		(!bus && !dev && ((fn == 1) || (fn == 2)));
+}
+
+#endif
diff -Nru a/include/asm-i386/timex.h b/include/asm-i386/timex.h
--- a/include/asm-i386/timex.h	Mon Jul 14 16:59:22 2003
+++ b/include/asm-i386/timex.h	Mon Jul 14 16:59:22 2003
@@ -11,12 +11,12 @@
 
 #ifdef CONFIG_X86_PC9800
    extern int CLOCK_TICK_RATE;
+#elif defined(CONFIG_MELAN)
+# define CLOCK_TICK_RATE 1189200 /* AMD Elan has different frequency! */
+#elif defined(CONFIG_X86_XBOX)
+# define CLOCK_TICK_RATE 1124998 /* so has the Xbox */
 #else
-#ifdef CONFIG_MELAN
-#  define CLOCK_TICK_RATE 1189200 /* AMD Elan has different frequency! */
-#else
-#  define CLOCK_TICK_RATE 1193182 /* Underlying HZ */
-#endif
+# define CLOCK_TICK_RATE 1193182 /* Underlying HZ */
 #endif
 
 #define CLOCK_TICK_FACTOR	20	/* Factor of both 1000000 and CLOCK_TICK_RATE */

===================================================================


This BitKeeper patch contains the following changesets:
1.1459
## Wrapped with gzip_uu ##


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
1)]LUE+XK4N&_IB?W.'\W    
 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] XBox Gaming System subarchitecture.
  2003-07-14 12:49 [PATCH] XBox Gaming System subarchitecture Anders Gustafsson - xbox patch monkey
  2003-07-14 13:59 ` Dave Jones
  2003-07-14 14:32 ` Jeff Garzik
@ 2003-07-14 16:12 ` Linus Torvalds
  2003-07-14 16:45   ` Anders Gustafsson
  2 siblings, 1 reply; 12+ messages in thread
From: Linus Torvalds @ 2003-07-14 16:12 UTC (permalink / raw)
  To: Anders Gustafsson - xbox patch monkey; +Cc: linux-kernel


On Mon, 14 Jul 2003, Anders Gustafsson - xbox patch monkey wrote:
> 
> Some parts of x86 are still not supported, namely the bastardized PC called
> Xbox. The patch below fixes that. Rediffed to latest bk.
> 
> Please apply. Snälla.

Quite frankly, for Xbox support I want it to become a lot more commonly 
used before I actually put it into the standard kernel. 

Why? Simply because for now it's still a fairly specialized thing, and as
such I have to weigh the benefits of including it in the standard kernel
against the negatives of just being a bit politically "hot potato".

Don't get me wrong: I think doing an Xbox port is fine. It's just that 
putting it in the standard tree is not likely a good idea. I can well 
imagine a number of Linux distributors who do not feel like they need the 
aggravation ;)

		Linus


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] XBox Gaming System subarchitecture.
  2003-07-14 16:12 ` Linus Torvalds
@ 2003-07-14 16:45   ` Anders Gustafsson
  0 siblings, 0 replies; 12+ messages in thread
From: Anders Gustafsson @ 2003-07-14 16:45 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel

On Mon, Jul 14, 2003 at 09:12:31AM -0700, Linus Torvalds wrote:
> Don't get me wrong: I think doing an Xbox port is fine. It's just that 
> putting it in the standard tree is not likely a good idea. I can well 
> imagine a number of Linux distributors who do not feel like they need the 
> aggravation ;)

Okey. Now I know, thanks. I assumed that it was either this or that it had
to follow the standard procedure of posting the mach-patch(/patchset) a
hundred times to lkml before it got accepted.

(And regarding the distros: They distributors could just rip that part out
while doing all their patches ;). And I know that at least mandrake has a
positive look on xbox-distro. And the mandrake devels were especially
helpful in porting their installer to be compatible with the xbox.)
 
Just to make clear: The patch does nothing that involves anything with the
copy-protection. Not even the hdd-unlock. It is aimed to those who replace
the bios in the xbox with the clean microsoft-free cromwell-bios, which has
the sole purpose of booting linux.

-- 
Anders Gustafsson - andersg@0x63.nu - http://0x63.nu/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] XBox Gaming System subarchitecture.
  2003-07-14 14:54       ` Anders Gustafsson
  2003-07-14 15:04         ` [CORRECT PATCH] " Anders Gustafsson
@ 2003-07-15 12:39         ` Eric W. Biederman
  2003-07-15 12:51           ` Anders Gustafsson
  1 sibling, 1 reply; 12+ messages in thread
From: Eric W. Biederman @ 2003-07-15 12:39 UTC (permalink / raw)
  To: Anders Gustafsson; +Cc: Dave Jones, linux-kernel

Anders Gustafsson <andersg@0x63.nu> writes:

> On Mon, Jul 14, 2003 at 03:28:38PM +0100, Dave Jones wrote:
> >  > The real patch contains cleaned up HZ-ifdefs.
> > 
> > good good..
> 
> Testing it an extra time now.
> 
> >  > Or as Christoph answered: "Oh well, stupid crappy hardware..."
> > 
> > That's a possibility, but if that were the case, I'd expect other things
> > also to start randomly failing. It's unclear to me how -O2 would make
> > a hardware bug more aparent. If it did so, that would also mean you'd
> > have to ensure all your userspace was similarly compiled, which sounds
> > very suspect.  It's just a celeron based PC with nvidia nforce chipset right ?
> 
> > If that combination caused such problems, I'd expect to see the
> > occasional problem report from non-Xbox regular home-built PC users too.
> 
> It only happens when paging is off. Hence no problem as soon as the kernel
> is up and running. -O2 changes the memory-access patterns so it is quite
> possible that it would expose hardware bugs.
>
> 
> > Might be one worth picking over on the gcc lists if you can identify
> > which part gets miscompiled ?
> > 
> > Tried different versions of binutils too ?
> 
> On 1.0 xboxes it works with any gcc with or without optimizations on.
> 
> On 1.1+ xboxen it does NOT work with 2.95, -O0 or -O2. But with 3.2.2-3.3 it
> is known to work with -O0.
> 
> It's was not easy to localize the crashes. Cos adding more code for
> debugging moves the point where it crashes around. However it does crash
> reading from memory. A prefectly valid address. That it just a few
> instructions earlier had written and read from.

Have you tried running memtest86 on the box?  Except when you have more
than 2GB memtest86 does not enable paging, so another code sequence can
reproduce this bug memtest86 is likely to do it.

Eric

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] XBox Gaming System subarchitecture.
  2003-07-15 12:39         ` [PATCH] " Eric W. Biederman
@ 2003-07-15 12:51           ` Anders Gustafsson
  2003-07-15 17:48             ` Mike Fedyk
  0 siblings, 1 reply; 12+ messages in thread
From: Anders Gustafsson @ 2003-07-15 12:51 UTC (permalink / raw)
  To: Eric W. Biederman; +Cc: Dave Jones, linux-kernel

On Tue, Jul 15, 2003 at 06:39:46AM -0600, Eric W. Biederman wrote:
> Have you tried running memtest86 on the box?  Except when you have more
> than 2GB memtest86 does not enable paging, so another code sequence can
> reproduce this bug memtest86 is likely to do it.

That was a very interesting idea... But I guess memtest86 wont be very fun
without a vga-bios.

-- 
Anders Gustafsson - andersg@0x63.nu - http://0x63.nu/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] XBox Gaming System subarchitecture.
  2003-07-15 12:51           ` Anders Gustafsson
@ 2003-07-15 17:48             ` Mike Fedyk
  0 siblings, 0 replies; 12+ messages in thread
From: Mike Fedyk @ 2003-07-15 17:48 UTC (permalink / raw)
  To: Anders Gustafsson; +Cc: Eric W. Biederman, Dave Jones, linux-kernel

On Tue, Jul 15, 2003 at 02:51:43PM +0200, Anders Gustafsson wrote:
> On Tue, Jul 15, 2003 at 06:39:46AM -0600, Eric W. Biederman wrote:
> > Have you tried running memtest86 on the box?  Except when you have more
> > than 2GB memtest86 does not enable paging, so another code sequence can
> > reproduce this bug memtest86 is likely to do it.
> 
> That was a very interesting idea... But I guess memtest86 wont be very fun
> without a vga-bios.

It supports a serial console too.

Does Xbox have serial?

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2003-07-15 17:33 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-07-14 12:49 [PATCH] XBox Gaming System subarchitecture Anders Gustafsson - xbox patch monkey
2003-07-14 13:59 ` Dave Jones
2003-07-14 14:21   ` Anders Gustafsson
2003-07-14 14:28     ` Dave Jones
2003-07-14 14:54       ` Anders Gustafsson
2003-07-14 15:04         ` [CORRECT PATCH] " Anders Gustafsson
2003-07-15 12:39         ` [PATCH] " Eric W. Biederman
2003-07-15 12:51           ` Anders Gustafsson
2003-07-15 17:48             ` Mike Fedyk
2003-07-14 14:32 ` Jeff Garzik
2003-07-14 16:12 ` Linus Torvalds
2003-07-14 16:45   ` Anders Gustafsson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).