linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Support for mach-xbox (updated)
@ 2003-06-03  9:11 Anders Gustafsson
  2003-06-03 12:59 ` Dave Jones
  0 siblings, 1 reply; 4+ messages in thread
From: Anders Gustafsson @ 2003-06-03  9:11 UTC (permalink / raw)
  To: linux-kernel; +Cc: Sam Ravnborg, mikpe, torvalds

Updated according to Sam and Mikaels comments.

This patch that adds a new subachitecture for the xbox gaming system. All it
does outside the subarchitecture is adding posibility to blacklist
pci-devices through an mach-hook.

-- 
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.1266 03/06/03 10:14:24 andersg@0x63.nu +10 -0
  Added XBOX subarch

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

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

  include/asm-i386/mach-xbox/mach_pci_blacklist.h
    1.0 03/06/03 10:14:07 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/06/03 10:14:07 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/06/03 10:14:06 andersg@0x63.nu +79 -0

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

  arch/i386/mach-xbox/setup.c
    1.0 03/06/03 10:14:06 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.0 03/06/03 10:14:06 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/06/03 10:14:05 andersg@0x63.nu +5 -0

  include/asm-i386/timex.h
    1.5 03/06/03 10:14:05 andersg@0x63.nu +9 -5
    Added XBOX subarch

  arch/i386/pci/direct.c
    1.15 03/06/03 10:14:05 andersg@0x63.nu +4 -0
    Added XBOX subarch
    Added a mach-hook for blacklisting pci-devices. The xbox hangs solid
    if you touch some pci devices.

  arch/i386/mach-xbox/Makefile
    1.0 03/06/03 10:14:05 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/06/03 10:14:05 andersg@0x63.nu +5 -0
    Added XBOX subarch
    There is some strange interaction when paging is off, that makes 1.1 xboxen
    crash while decompressing kernel, unless decompressor is compiled without
    optimization.

  arch/i386/Makefile
    1.52 03/06/03 10:14:05 andersg@0x63.nu +4 -0
    Added XBOX subarch

  arch/i386/Kconfig
    1.58 03/06/03 10:14:05 andersg@0x63.nu +19 -2
    Added XBOX subarch


 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                           |   14 ++-
 10 files changed, 188 insertions(+), 7 deletions(-)


diff -Nru a/arch/i386/Kconfig b/arch/i386/Kconfig
--- a/arch/i386/Kconfig	Tue Jun  3 10:17:30 2003
+++ b/arch/i386/Kconfig	Tue Jun  3 10:17:30 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
@@ -395,6 +411,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
@@ -1090,7 +1107,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
@@ -1571,7 +1588,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	Tue Jun  3 10:17:30 2003
+++ b/arch/i386/Makefile	Tue Jun  3 10:17:30 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	Tue Jun  3 10:17:30 2003
+++ b/arch/i386/boot/compressed/Makefile	Tue Jun  3 10:17:30 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	Tue Jun  3 10:17:30 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	Tue Jun  3 10:17:30 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	Tue Jun  3 10:17:30 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	Tue Jun  3 10:17:30 2003
+++ b/arch/i386/pci/direct.c	Tue Jun  3 10:17:30 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) || (dev > 31) || (fn > 7) || (reg > 255))
 		return -EINVAL;
 
+	if (mach_pci_is_blacklisted(bus,dev,fn))
+		return -EINVAL;
+	
 	spin_lock_irqsave(&pci_config_lock, flags);
 
 	outl(PCI_CONF1_ADDRESS(bus, dev, fn, 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	Tue Jun  3 10:17:30 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	Tue Jun  3 10:17:30 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	Tue Jun  3 10:17:30 2003
+++ b/include/asm-i386/timex.h	Tue Jun  3 10:17:30 2003
@@ -12,11 +12,15 @@
 #ifdef CONFIG_X86_PC9800
    extern int CLOCK_TICK_RATE;
 #else
-#ifdef CONFIG_MELAN
-#  define CLOCK_TICK_RATE 1189200 /* AMD Elan has different frequency! */
-#else
-#  define CLOCK_TICK_RATE 1193180 /* Underlying HZ */
-#endif
+#  ifdef CONFIG_MELAN
+#    define CLOCK_TICK_RATE 1189200 /* AMD Elan has different frequency! */
+#  else
+#    ifdef CONFIG_X86_XBOX
+#      define CLOCK_TICK_RATE 1124998 /* so has the Xbox */
+#    else 
+#      define CLOCK_TICK_RATE 1193180 /* Underlying HZ */
+#    endif
+#  endif
 #endif
 
 #define CLOCK_TICK_FACTOR	20	/* Factor of both 1000000 and CLOCK_TICK_RATE */

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


This BitKeeper patch contains the following changesets:
1.1266
## Wrapped with uu ##


M(R!5<V5R.@EA;F1E<G-G"B,@2&]S=#H),'@V,RYN=0HC(%)O;W0Z"2]D871A
M+V1E=B]K97)N96PO8FLO>&)O>"TR+C4*"B,@4&%T8V@@=F5R<SH),2XS"B,@
M4&%T8V@@='EP93H)4D5'54Q!4@H*/3T@0VAA;F=E4V5T(#T]"G1O<G9A;&1S
M0&%T:&QO;BYT<F%N<VUE=&$N8V]M?$-H86YG95-E='PR,# R,#(P-3$W,S U
M-GPQ-C T-WQC,60Q,6$T,65D,#(T.#8T"G1O<G9A;&1S0&AO;64N=')A;G-M
M971A+F-O;7Q#:&%N9V53971\,C P,S V,#,P,3(X-35\-38S.#@*1" Q+C$R
M-C8@,#,O,#8O,#,@,3 Z,30Z,C0K,#(Z,# @86YD97)S9T P>#8S+FYU("LQ
M," M, I"('1O<G9A;&1S0&%T:&QO;BYT<F%N<VUE=&$N8V]M?$-H86YG95-E
M='PR,# R,#(P-3$W,S U-GPQ-C T-WQC,60Q,6$T,65D,#(T.#8T"D,*8R!!
M9&1E9"!80D]8('-U8F%R8V@*2R U,3,Q.0I0($-H86YG95-E= HM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T*"C!A
M, H^(&%N9&5R<V= ,'@V,RYN=7QI;F-L=61E+V%S;2UI,S@V+VUA8V@M>&)O
M>"]M86-H7W!C:5]B;&%C:VQI<W0N:'PR,# S,#8P,S X,30P-WPQ,S V.7QA
M-#,P,65A-C4X835F8V4U(&%N9&5R<V= ,'@V,RYN=7QI;F-L=61E+V%S;2UI
M,S@V+VUA8V@M>&)O>"]M86-H7W!C:5]B;&%C:VQI<W0N:'PR,# S,#8P,S X
M,30P.'PQ-34Q,0H^(&%N9&5R<V= ,'@V,RYN=7QA<F-H+VDS.#8O;6%C:"UX
M8F]X+TUA:V5F:6QE?#(P,#,P-C S,#@Q-# U?#,Q-30S?#AC,S@R.&5D.6$U
M,C$R.3(@86YD97)S9T P>#8S+FYU?&%R8V@O:3,X-B]M86-H+7AB;W@O36%K
M969I;&5\,C P,S V,#,P.#$T,#9\,#4R,S0*/B!T;W)V86QD<T!A=&AL;VXN
M=')A;G-M971A+F-O;7QA<F-H+VDS.#8O8F]O="]C;VUP<F5S<V5D+TUA:V5F
M:6QE?#(P,#(P,C U,3<T,#(P?#$T,C@Y?&5E9#(T,V,S9C0U8F5F-B!A;F1E
M<G-G0#!X-C,N;G5\87)C:"]I,S@V+V)O;W0O8V]M<')E<W-E9"]-86ME9FEL
M97PR,# S,#8P,S X,30P-7PP,#(R.0H^('1O<G9A;&1S0&%T:&QO;BYT<F%N
M<VUE=&$N8V]M?&%R8V@O:3,X-B]-86ME9FEL97PR,# R,#(P-3$W-# R,'PQ
M.#<Q,'PQ8CAA83%F,&,T,&$Q9&)F(&%N9&5R<V= ,'@V,RYN=7QA<F-H+VDS
M.#8O36%K969I;&5\,C P,S V,#,P.#$T,#5\,C(U.30*/B!A;F1E<G-G0#!X
M-C,N;G5\87)C:"]I,S@V+VUA8V@M>&)O>"]S971U<"YC?#(P,#,P-C S,#@Q
M-# V?#(R-# Y?#0Q,SAB,C1D,S@U-34U-&8@86YD97)S9T P>#8S+FYU?&%R
M8V@O:3,X-B]M86-H+7AB;W@O<V5T=7 N8WPR,# S,#8P,S X,30P-WPS-38T
M. H^('II<'!E;$!L:6YU>"UM-CAK+F]R9UMT;W)V86QD<UU\87)C:"]I,S@V
M+TMC;VYF:6=\,C P,C$P,S P-#,R,3A\,C0V.#A\-C$R,S$X,&%B.3$U-S8P
M8R!A;F1E<G-G0#!X-C,N;G5\87)C:"]I,S@V+TMC;VYF:6=\,C P,S V,#,P
M.#$T,#5\,30X,C8*/B!T;W)V86QD<T!A=&AL;VXN=')A;G-M971A+F-O;7QI
M;F-L=61E+V%S;2UI,S@V+W1I;65X+FA\,C P,C R,#4Q-S,Y-#1\-C,X-C)\
M86$U9F0Q868Y,69E-3!F-R!A;F1E<G-G0#!X-C,N;G5\:6YC;'5D92]A<VTM
M:3,X-B]T:6UE>"YH?#(P,#,P-C S,#@Q-# U?#8Q-38T"CX@86YD97)S9T P
M>#8S+FYU?&%R8V@O:3,X-B]M86-H+7AB;W@O<F5B;V]T+F-\,C P,S V,#,P
M.#$T,#9\-#,P,#)\-C=D-#(X,C,T9#4X9#,Y(&%N9&5R<V= ,'@V,RYN=7QA
M<F-H+VDS.#8O;6%C:"UX8F]X+W)E8F]O="YC?#(P,#,P-C S,#@Q-# W?#,S
M.34Y"CX@;6]C:&5L0'-E9V9A=6QT+F]S9&PN;W)G?&%R8V@O:3,X-B]K97)N
M96PO<&-I+V1I<F5C="YC?#(P,#(P-#$V,34P.#,P?#0T-S,R?#,X-V,U-V0P
M.3!A9#0X.#@@86YD97)S9T P>#8S+FYU?&%R8V@O:3,X-B]P8VDO9&ER96-T
M+F-\,C P,S V,#,P.#$T,#5\-30S,3(*/B!A;F1E<G-G0#!X-C,N;G5\:6YC
M;'5D92]A<VTM:3,X-B]M86-H+61E9F%U;'0O;6%C:%]P8VE?8FQA8VML:7-T
M+FA\,C P,S V,#,P.#$T,#=\,S0P-S)\,F4T93(T8S,Q86$U9C8V-R!A;F1E
M<G-G0#!X-C,N;G5\:6YC;'5D92]A<VTM:3,X-B]M86-H+61E9F%U;'0O;6%C
M:%]P8VE?8FQA8VML:7-T+FA\,C P,S V,#,P.#$T,#A\,3 R,S(*"CT](&%R
M8V@O:3,X-B]M86-H+7AB;W@O36%K969I;&4@/3T*3F5W(&9I;&4Z(&%R8V@O
M:3,X-B]M86-H+7AB;W@O36%K969I;&4*5B T"@IA;F1E<G-G0#!X-C,N;G5\
M87)C:"]I,S@V+VUA8V@M>&)O>"]-86ME9FEL97PR,# S,#8P,S X,30P-7PS
M,34T,WPX8S,X,CAE9#EA-3(Q,CDR"D0@,2XP(# S+S V+S S(#$P.C$T.C U
M*S R.C P(&%N9&5R<V= ,'@V,RYN=2 K," M, I"('1O<G9A;&1S0&%T:&QO
M;BYT<F%N<VUE=&$N8V]M?$-H86YG95-E='PR,# R,#(P-3$W,S U-GPQ-C T
M-WQC,60Q,6$T,65D,#(T.#8T"F,@0FET2V5E<&5R(&9I;&4@+V1A=&$O9&5V
M+VME<FYE;"]B:R]X8F]X+3(N-2]A<F-H+VDS.#8O;6%C:"UX8F]X+TUA:V5F
M:6QE"DL@,S$U-#,*4"!A<F-H+VDS.#8O;6%C:"UX8F]X+TUA:V5F:6QE"E(@
M.&,S.#(X960Y834R,3(Y,@I8(#!X.#(Q"BTM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+0H*"F%N9&5R<V= ,'@V,RYN
M=7QA<F-H+VDS.#8O;6%C:"UX8F]X+TUA:V5F:6QE?#(P,#,P-C S,#@Q-# U
M?#,Q-30S?#AC,S@R.&5D.6$U,C$R.3(*1" Q+C$@,#,O,#8O,#,@,3 Z,30Z
M,#4K,#(Z,# @86YD97)S9T P>#8S+FYU("LU("TP"D(@=&]R=F%L9'- 871H
M;&]N+G1R86YS;65T82YC;VU\0VAA;F=E4V5T?#(P,#(P,C U,3<S,#4V?#$V
M,#0W?&,Q9#$Q830Q960P,C0X-C0*0PI&(#$*2R U,C,T"D\@+7)W+7)W+7(M
M+0I0(&%R8V@O:3,X-B]M86-H+7AB;W@O36%K969I;&4*+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM"@I)," U"B,*
M(R!-86ME9FEL92!F;W(@=&AE(&QI;G5X(&ME<FYE;"X*(PI<"F]B:BUY"0D)
M"3H]('-E='5P+F\@<F5B;V]T+F\*"CT](&%R8V@O:3,X-B]M86-H+7AB;W@O
M<F5B;V]T+F,@/3T*3F5W(&9I;&4Z(&%R8V@O:3,X-B]M86-H+7AB;W@O<F5B
M;V]T+F,*5B T"@IA;F1E<G-G0#!X-C,N;G5\87)C:"]I,S@V+VUA8V@M>&)O
M>"]R96)O;W0N8WPR,# S,#8P,S X,30P-GPT,S P,GPV-V0T,C@R,S1D-3AD
M,SD*1" Q+C @,#,O,#8O,#,@,3 Z,30Z,#8K,#(Z,# @86YD97)S9T P>#8S
M+FYU("LP("TP"D(@=&]R=F%L9'- 871H;&]N+G1R86YS;65T82YC;VU\0VAA
M;F=E4V5T?#(P,#(P,C U,3<S,#4V?#$V,#0W?&,Q9#$Q830Q960P,C0X-C0*
M8R!":71+965P97(@9FEL92 O9&%T82]D978O:V5R;F5L+V)K+WAB;W@M,BXU
M+V%R8V@O:3,X-B]M86-H+7AB;W@O<F5B;V]T+F,*2R T,S P,@I0(&%R8V@O
M:3,X-B]M86-H+7AB;W@O<F5B;V]T+F,*4B V-V0T,C@R,S1D-3AD,SD*6" P
M>#@R,0HM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2T*"@IA;F1E<G-G0#!X-C,N;G5\87)C:"]I,S@V+VUA8V@M>&)O
M>"]R96)O;W0N8WPR,# S,#8P,S X,30P-GPT,S P,GPV-V0T,C@R,S1D-3AD
M,SD*1" Q+C$@,#,O,#8O,#,@,3 Z,30Z,#8K,#(Z,# @86YD97)S9T P>#8S
M+FYU("LU,2 M, I"('1O<G9A;&1S0&%T:&QO;BYT<F%N<VUE=&$N8V]M?$-H
M86YG95-E='PR,# R,#(P-3$W,S U-GPQ-C T-WQC,60Q,6$T,65D,#(T.#8T
M"D,*1B Q"DL@,S,Y-3D*3R M<G<M<G<M<BTM"E @87)C:"]I,S@V+VUA8V@M
M>&)O>"]R96)O;W0N8PHM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2T*"DDP(#4Q"B\J"B J(&%R8V@O:3,X-B]M86-H
M+7AB;W@O<F5B;V]T+F,@"B J($]L:79I97(@1F%U8VAO;B \;VQI=FEE<BYF
M875C:&]N0&9R964N9G(^"B J($%N9&5R<R!'=7-T869S<V]N(#QA;F1E<G-G
M0#!X-C,N;G4^"B J"B J+PI<"B-I;F-L=61E(#QA<VTO:6\N:#X*7 HO*B!W
M92!D;VXG="!U<V4@86YY(&]F('1H;W-E+"!B=70@9&UI7W-C86XN8R!N965D
M<R G96T@*B\*=F]I9" H*G!M7W!O=V5R7V]F9BDH=F]I9"D["FEN="!R96)O
M;W1?=&AR=5]B:6]S.PI<"B-D969I;F4@6$)/6%]334)?24]?0D%312 P>$,P
M,# *(V1E9FEN92!80D]87U--0E](3U-47T%$1%)%4U,@(" @(" @*#!X-" K
M(%A"3UA?4TU"7TE/7T)!4T4I"B-D969I;F4@6$)/6%]334)?2$]35%]#3TU-
M04Y$(" @(" @("@P>#@@*R!80D]87U--0E])3U]"05-%*0HC9&5F:6YE(%A"
M3UA?4TU"7TA/4U1?1$%402 @(" @(" @(" H,'@V("L@6$)/6%]334)?24]?
M0D%312D*(V1E9FEN92!80D]87U--0E]'3$]"04Q?14Y!0DQ%(" @(" @("@P
M>#(@*R!80D]87U--0E])3U]"05-%*0I<"B-D969I;F4@6$)/6%]024-?041$
M4D534R P>#$P"EP*(V1E9FEN92!334-?0TU$7U!/5T52(#!X,#(*(V1E9FEN
M92!334-?4U5"0TU$7U!/5T527U)%4T54(#!X,#$*(V1E9FEN92!334-?4U5"
M0TU$7U!/5T527T-90TQ%(#!X-# *(V1E9FEN92!334-?4U5"0TU$7U!/5T52
M7T]&1B P>#@P"EP*7 IS=&%T:6,@=F]I9"!X8F]X7W!I8U]C;60H=3@@8V]M
M;6%N9"D*>PH);W5T=U]P*"@H6$)/6%]024-?041$4D534RD@/#P@,2DL6$)/
M6%]334)?2$]35%]!1$1215-3*3L*(" @(" @("!O=71B7W H4TU#7T--1%]0
M3U=%4BP@6$)/6%]334)?2$]35%]#3TU-04Y$*3L*(" @(" @("!O=71W7W H
M8V]M;6%N9"P@6$)/6%]334)?2$]35%]$051!*3L*(" @(" @("!O=71W7W H
M:6YW*%A"3UA?4TU"7TE/7T)!4T4I+%A"3UA?4TU"7TE/7T)!4T4I.PH@(" @
M(" @(&]U=&)?<"@P>#!A+%A"3UA?4TU"7T=,3T)!3%]%3D%"3$4I.PI]"EP*
M=F]I9"!M86-H:6YE7W)E<W1A<G0H8VAA<B J(%]?=6YU<V5D*0I["@EP<FEN
M=&LH2T523E])3D9/(")396YD:6YG(%!/5T527U)%4T54('1O(%A"3U@M4$E#
M+EQN(BD["@EX8F]X7W!I8U]C;60H4TU#7U-50D--1%]03U=%4E]215-%5"D[
M(" *?0I<"G9O:60@;6%C:&EN95]P;W=E<E]O9F8H=F]I9"D*>PH)<')I;G1K
M*$M%4DY?24Y&3R B4V5N9&EN9R!03U=%4E]/1D8@=&\@6$)/6"U024,N7&XB
M*3L*"7AB;WA?<&EC7V-M9"A334-?4U5"0TU$7U!/5T527T]&1BD[(" *?0I<
M"G9O:60@;6%C:&EN95]H86QT*'9O:60I"GL*?0H*/3T@87)C:"]I,S@V+VUA
M8V@M>&)O>"]S971U<"YC(#T]"DYE=R!F:6QE.B!A<F-H+VDS.#8O;6%C:"UX
M8F]X+W-E='5P+F,*5B T"@IA;F1E<G-G0#!X-C,N;G5\87)C:"]I,S@V+VUA
M8V@M>&)O>"]S971U<"YC?#(P,#,P-C S,#@Q-# V?#(R-# Y?#0Q,SAB,C1D
M,S@U-34U-&8*1" Q+C @,#,O,#8O,#,@,3 Z,30Z,#8K,#(Z,# @86YD97)S
M9T P>#8S+FYU("LP("TP"D(@=&]R=F%L9'- 871H;&]N+G1R86YS;65T82YC
M;VU\0VAA;F=E4V5T?#(P,#(P,C U,3<S,#4V?#$V,#0W?&,Q9#$Q830Q960P
M,C0X-C0*8R!":71+965P97(@9FEL92 O9&%T82]D978O:V5R;F5L+V)K+WAB
M;W@M,BXU+V%R8V@O:3,X-B]M86-H+7AB;W@O<V5T=7 N8PI+(#(R-# Y"E @
M87)C:"]I,S@V+VUA8V@M>&)O>"]S971U<"YC"E(@-#$S.&(R-&0S.#4U-34T
M9@I8(#!X.#(Q"BTM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+0H*"F%N9&5R<V= ,'@V,RYN=7QA<F-H+VDS.#8O;6%C
M:"UX8F]X+W-E='5P+F-\,C P,S V,#,P.#$T,#9\,C(T,#E\-#$S.&(R-&0S
M.#4U-34T9@I$(#$N,2 P,R\P-B\P,R Q,#HQ-#HP-BLP,CHP,"!A;F1E<G-G
M0#!X-C,N;G4@*S<Y("TP"D(@=&]R=F%L9'- 871H;&]N+G1R86YS;65T82YC
M;VU\0VAA;F=E4V5T?#(P,#(P,C U,3<S,#4V?#$V,#0W?&,Q9#$Q830Q960P
M,C0X-C0*0PI&(#$*2R S-38T. I/("UR=RUR=RUR+2T*4"!A<F-H+VDS.#8O
M;6%C:"UX8F]X+W-E='5P+F,*+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM"@I)," W.0HO*@H@*@E-86-H:6YE('-P
M96-I9FEC('-E='5P(&9O<B!X8F]X"B J+PI<"B-I;F-L=61E(#QL:6YU>"]C
M;VYF:6<N:#X*(VEN8VQU9&4@/&QI;G5X+W-M<"YH/@HC:6YC;'5D92 \;&EN
M=7@O:6YI="YH/@HC:6YC;'5D92 \;&EN=7@O:7)Q+F@^"B-I;F-L=61E(#QL
M:6YU>"]I;G1E<G)U<'0N:#X*(VEN8VQU9&4@/&%S;2]A<F-H7VAO;VMS+F@^
M"EP*+RHJ"B J('!R95]I;G1R7VEN:71?:&]O:R M(&EN:71I86QI<V%T:6]N
M('!R:6]R('1O('-E='1I;F<@=7 @:6YT97)R=7!T('9E8W1O<G,*("H*("H@
M1&5S8W)I<'1I;VXZ"B J"5!E<F9O<FT@86YY(&YE8V5S<V%R>2!I;G1E<G)U
M<'0@:6YI=&EA;&ES871I;VX@<')I;W(@=&\@<V5T=&EN9R!U< H@*@ET:&4@
M(F]R9&EN87)Y(B!I;G1E<G)U<'0@8V%L;"!G871E<RX@($9O<B!L96=A8WD@
M<F5A<V]N<RP@=&AE($E300H@*@EI;G1E<G)U<'1S('-H;W5L9"!B92!I;FET
M:6%L:7-E9"!H97)E(&EF('1H92!M86-H:6YE(&5M=6QA=&5S(&$@4$,*("H)
M:6X@86YY('=A>2X*("HJ+PIV;VED(%]?:6YI="!P<F5?:6YT<E]I;FET7VAO
M;VLH=F]I9"D*>PH):6YI=%])4T%?:7)Q<R@I.PI]"EP*+RHJ"B J(&EN=')?
M:6YI=%]H;V]K("T@<&]S="!G871E('-E='5P(&EN=&5R<G5P="!I;FET:6%L
M:7-A=&EO;@H@*@H@*B!$97-C<FEP=&EO;CH*("H)1FEL;"!I;B!A;GD@:6YT
M97)R=7!T<R!T:&%T(&UA>2!H879E(&)E96X@;&5F="!O=70@8GD@=&AE(&=E
M;F5R86P*("H):6YI=%])4E$H*2!R;W5T:6YE+B @:6YT97)R=7!T<R!H879I
M;F<@=&\@9&\@=VET:"!T:&4@;6%C:&EN92!R871H97(*("H)=&AA;B!T:&4@
M9&5V:6-E<R!O;B!T:&4@22]/(&)U<R H;&EK92!!4$E#(&EN=&5R<G5P=',@
M:6X@:6YT96P@35 *("H)<WES=&5M<RD@87)E('-T87)T960@:&5R92X*("HJ
M+PIV;VED(%]?:6YI="!I;G1R7VEN:71?:&]O:RAV;VED*0I["B-I9F1E9B!#
M3TY&24=?6#@V7TQ/0T%,7T%024,*"6%P:6-?:6YT<E]I;FET*"D["B-E;F1I
M9@I<"GT*7 HO*BH*("H@<')E7W-E='5P7V%R8VA?:&]O:R M(&AO;VL@8V%L
M;&5D('!R:6]R('1O(&%N>2!S971U<%]A<F-H*"D@97AE8W5T:6]N"B J"B J
M($1E<V-R:7!T:6]N.@H@*@EG96YE<F%L;'D@=7-E9"!T;R!A8W1I=F%T92!A
M;GD@;6%C:&EN92!S<&5C:69I8R!I9&5N=&EF:6-A=&EO;@H@*@ER;W5T:6YE
M<R!T:&%T(&UA>2!B92!N965D960@8F5F;W)E('-E='5P7V%R8V@H*2!R=6YS
M+B @3VX@5DE35U,*("H)=&AI<R!I<R!U<V5D('1O(&=E="!T:&4@8F]A<F0@
M<F5V:7-I;VX@86YD('1Y<&4N"B J*B\*=F]I9"!?7VEN:70@<')E7W-E='5P
M7V%R8VA?:&]O:RAV;VED*0I["GT*7 HO*BH*("H@=')A<%]I;FET7VAO;VL@
M+2!I;FET:6%L:7-E('-Y<W1E;2!S<&5C:69I8R!T<F%P<PH@*@H@*B!$97-C
M<FEP=&EO;CH*("H)0V%L;&5D(&%S('1H92!F:6YA;"!A8W0@;V8@=')A<%]I
M;FET*"DN("!5<V5D(&EN(%9)4U=3('1O(&EN:71I86QI<V4*("H)=&AE('9A
M<FEO=7,@8F]A<F0@<W!E8VEF:6,@05!)0R!T<F%P<RX*("HJ+PIV;VED(%]?
M:6YI="!T<F%P7VEN:71?:&]O:RAV;VED*0I["GT*7 IS=&%T:6,@<W1R=6-T
M(&ER<6%C=&EO;B!I<G$P(" ]('L@=&EM97)?:6YT97)R=7!T+"!305])3E1%
M4E)54%0L(# L(")T:6UE<B(L($Y53$PL($Y53$Q].PI<"B\J*@H@*B!T:6UE
M7VEN:71?:&]O:R M(&1O(&%N>2!S<&5C:69I8R!I;FET:6%L:7-A=&EO;G,@
M9F]R('1H92!S>7-T96T@=&EM97(N"B J"B J($1E<V-R:7!T:6]N.@H@*@E-
M=7-T('!L=6<@=&AE('-Y<W1E;2!T:6UE<B!I;G1E<G)U<'0@<V]U<F-E(&%T
M($A:(&EN=&\@=&AE($E242!L:7-T960*("H):6X@:7)Q7W9E8W1O<G,N:#I4
M24U%4E])4E$*("HJ+PIV;VED(%]?:6YI="!T:6UE7VEN:71?:&]O:RAV;VED
M*0I["@ES971U<%]I<G$H,"P@)FER<3 I.PI]"EP*"CT](&EN8VQU9&4O87-M
M+6DS.#8O;6%C:"UD969A=6QT+VUA8VA?<&-I7V)L86-K;&ES="YH(#T]"DYE
M=R!F:6QE.B!I;F-L=61E+V%S;2UI,S@V+VUA8V@M9&5F875L="]M86-H7W!C
M:5]B;&%C:VQI<W0N: I6(#0*"F%N9&5R<V= ,'@V,RYN=7QI;F-L=61E+V%S
M;2UI,S@V+VUA8V@M9&5F875L="]M86-H7W!C:5]B;&%C:VQI<W0N:'PR,# S
M,#8P,S X,30P-WPS-# W,GPR931E,C1C,S%A835F-C8W"D0@,2XP(# S+S V
M+S S(#$P.C$T.C W*S R.C P(&%N9&5R<V= ,'@V,RYN=2 K," M, I"('1O
M<G9A;&1S0&%T:&QO;BYT<F%N<VUE=&$N8V]M?$-H86YG95-E='PR,# R,#(P
M-3$W,S U-GPQ-C T-WQC,60Q,6$T,65D,#(T.#8T"F,@0FET2V5E<&5R(&9I
M;&4@+V1A=&$O9&5V+VME<FYE;"]B:R]X8F]X+3(N-2]I;F-L=61E+V%S;2UI
M,S@V+VUA8V@M9&5F875L="]M86-H7W!C:5]B;&%C:VQI<W0N: I+(#,T,#<R
M"E @:6YC;'5D92]A<VTM:3,X-B]M86-H+61E9F%U;'0O;6%C:%]P8VE?8FQA
M8VML:7-T+F@*4B R931E,C1C,S%A835F-C8W"E@@,'@X,C$*+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM"@H*86YD
M97)S9T P>#8S+FYU?&EN8VQU9&4O87-M+6DS.#8O;6%C:"UD969A=6QT+VUA
M8VA?<&-I7V)L86-K;&ES="YH?#(P,#,P-C S,#@Q-# W?#,T,#<R?#)E-&4R
M-&,S,6%A-68V-C<*1" Q+C$@,#,O,#8O,#,@,3 Z,30Z,#<K,#(Z,# @86YD
M97)S9T P>#8S+FYU("LV("TP"D(@=&]R=F%L9'- 871H;&]N+G1R86YS;65T
M82YC;VU\0VAA;F=E4V5T?#(P,#(P,C U,3<S,#4V?#$V,#0W?&,Q9#$Q830Q
M960P,C0X-C0*0PI&(#$*2R Q,#(S,@I/("UR=RUR=RUR+2T*4"!I;F-L=61E
M+V%S;2UI,S@V+VUA8V@M9&5F875L="]M86-H7W!C:5]B;&%C:VQI<W0N: HM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2T*"DDP(#8*(VEF;F1E9B!?7T%335]-04-(7U!#25]"3$%#2TQ)4U1?2 HC
M9&5F:6YE(%]?05--7TU!0TA?4$-)7T),04-+3$E35%]("EP*(V1E9FEN92!M
M86-H7W!C:5]I<U]B;&%C:VQI<W1E9"AB=7,L9&5V+&9N*2 P"EP*(V5N9&EF
M"@H]/2!I;F-L=61E+V%S;2UI,S@V+VUA8V@M>&)O>"]M86-H7W!C:5]B;&%C
M:VQI<W0N:" ]/0I.97<@9FEL93H@:6YC;'5D92]A<VTM:3,X-B]M86-H+7AB
M;W@O;6%C:%]P8VE?8FQA8VML:7-T+F@*5B T"@IA;F1E<G-G0#!X-C,N;G5\
M:6YC;'5D92]A<VTM:3,X-B]M86-H+7AB;W@O;6%C:%]P8VE?8FQA8VML:7-T
M+FA\,C P,S V,#,P.#$T,#=\,3,P-CE\830S,#%E838U.&$U9F-E-0I$(#$N
M," P,R\P-B\P,R Q,#HQ-#HP-RLP,CHP,"!A;F1E<G-G0#!X-C,N;G4@*S @
M+3 *0B!T;W)V86QD<T!A=&AL;VXN=')A;G-M971A+F-O;7Q#:&%N9V53971\
M,C P,C R,#4Q-S,P-39\,38P-#=\8S%D,3%A-#%E9# R-#@V- IC($)I=$ME
M97!E<B!F:6QE("]D871A+V1E=B]K97)N96PO8FLO>&)O>"TR+C4O:6YC;'5D
M92]A<VTM:3,X-B]M86-H+7AB;W@O;6%C:%]P8VE?8FQA8VML:7-T+F@*2R Q
M,S V.0I0(&EN8VQU9&4O87-M+6DS.#8O;6%C:"UX8F]X+VUA8VA?<&-I7V)L
M86-K;&ES="YH"E(@830S,#%E838U.&$U9F-E-0I8(#!X.#(Q"BTM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+0H*"F%N
M9&5R<V= ,'@V,RYN=7QI;F-L=61E+V%S;2UI,S@V+VUA8V@M>&)O>"]M86-H
M7W!C:5]B;&%C:VQI<W0N:'PR,# S,#8P,S X,30P-WPQ,S V.7QA-#,P,65A
M-C4X835F8V4U"D0@,2XQ(# S+S V+S S(#$P.C$T.C W*S R.C P(&%N9&5R
M<V= ,'@V,RYN=2 K-B M, I"('1O<G9A;&1S0&%T:&QO;BYT<F%N<VUE=&$N
M8V]M?$-H86YG95-E='PR,# R,#(P-3$W,S U-GPQ-C T-WQC,60Q,6$T,65D
M,#(T.#8T"D,*1B Q"DL@,34U,3$*3R M<G<M<G<M<BTM"E @:6YC;'5D92]A
M<VTM:3,X-B]M86-H+7AB;W@O;6%C:%]P8VE?8FQA8VML:7-T+F@*+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM"@I)
M," V"B-I9FYD968@7U]!4TU?34%#2%]00TE?0DQ!0TM,25-47T@*(V1E9FEN
M92!?7T%335]-04-(7U!#25]"3$%#2TQ)4U1?2 I<"B-D969I;F4@;6%C:%]P
M8VE?:7-?8FQA8VML:7-T960H8G5S+&1E=BQF;BD@*" H8G5S/C$I('Q\("AB
M=7,F)BAD979\?&9N*2D@?'P@*"AB=7,]/3 @)B8@9&5V/3TP*2 F)B H*&9N
M/3TQ*7Q\*&9N/3TR*2DI("D*7 HC96YD:68*"CT](&%R8V@O:3,X-B]P8VDO
M9&ER96-T+F,@/3T*;6]C:&5L0'-E9V9A=6QT+F]S9&PN;W)G?&%R8V@O:3,X
M-B]K97)N96PO<&-I+V1I<F5C="YC?#(P,#(P-#$V,34P.#,P?#0T-S,R?#,X
M-V,U-V0P.3!A9#0X.#@*9W)E9T!K<F]A:"YC;VU;9W)E9UU\87)C:"]I,S@V
M+W!C:2]D:7)E8W0N8WPR,# S,#(R,#(R,C,S-7PT-C,U- I$(#$N,34@,#,O
M,#8O,#,@,3 Z,30Z,#4K,#(Z,# @86YD97)S9T P>#8S+FYU("LT("TP"D(@
M=&]R=F%L9'- 871H;&]N+G1R86YS;65T82YC;VU\0VAA;F=E4V5T?#(P,#(P
M,C U,3<S,#4V?#$V,#0W?&,Q9#$Q830Q960P,C0X-C0*0PIC($%D9&5D(%A"
M3U@@<W5B87)C: IC($%D9&5D(&$@;6%C:"UH;V]K(&9O<B!B;&%C:VQI<W1I
M;F<@<&-I+61E=FEC97,N(%1H92!X8F]X(&AA;F=S('-O;&ED"F,@:68@>6]U
M('1O=6-H('-O;64@<&-I(&1E=FEC97,N"DL@-30S,3(*3R M<G<M<G<M<BTM
M"E @87)C:"]I,S@V+W!C:2]D:7)E8W0N8PHM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T*"DDV(#$*(VEN8VQU9&4@
M(FUA8VA?<&-I7V)L86-K;&ES="YH(@I),C(@,PH):68@*&UA8VA?<&-I7VES
M7V)L86-K;&ES=&5D*&)U<RQD978L9FXI*0H)"7)E='5R;B M14E.5D%,.PH)
M"@H]/2!A<F-H+VDS.#8O36%K969I;&4@/3T*=&]R=F%L9'- 871H;&]N+G1R
M86YS;65T82YC;VU\87)C:"]I,S@V+TUA:V5F:6QE?#(P,#(P,C U,3<T,#(P
M?#$X-S$P?#%B.&%A,68P8S0P83%D8F8*86MP;4!D:6=E;RYC;VU;=&]R=F%L
M9'-=?&%R8V@O:3,X-B]-86ME9FEL97PR,# S,#4P.# U,3,Q-7PQ,CDV.0I$
M(#$N-3(@,#,O,#8O,#,@,3 Z,30Z,#4K,#(Z,# @86YD97)S9T P>#8S+FYU
M("LT("TP"D(@=&]R=F%L9'- 871H;&]N+G1R86YS;65T82YC;VU\0VAA;F=E
M4V5T?#(P,#(P,C U,3<S,#4V?#$V,#0W?&,Q9#$Q830Q960P,C0X-C0*0PIC
M($%D9&5D(%A"3U@@<W5B87)C: I+(#(R-3DT"D\@+7)W+7)W+7(M+0I0(&%R
M8V@O:3,X-B]-86ME9FEL90HM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2T*"DDU-2 T"B,@6&)O>"!S=6)A<F-H('-U
M<'!O<G0*;69L86=S+20H0T].1DE'7U@X-E]80D]8*0DZ/2 M26EN8VQU9&4O
M87-M+6DS.#8O;6%C:"UX8F]X"FUC;W)E+20H0T].1DE'7U@X-E]80D]8*0DZ
M/2!M86-H+7AB;W@*7 H*/3T@87)C:"]I,S@V+V)O;W0O8V]M<')E<W-E9"]-
M86ME9FEL92 ]/0IT;W)V86QD<T!A=&AL;VXN=')A;G-M971A+F-O;7QA<F-H
M+VDS.#8O8F]O="]C;VUP<F5S<V5D+TUA:V5F:6QE?#(P,#(P,C U,3<T,#(P
M?#$T,C@Y?&5E9#(T,V,S9C0U8F5F-@IS86U ;6%R<RYR879N8F]R9RYO<F=\
M87)C:"]I,S@V+V)O;W0O8V]M<')E<W-E9"]-86ME9FEL97PR,# S,#,P.3(Q
M-#<T,7PU,S0R-PI$(#$N,3<@,#,O,#8O,#,@,3 Z,30Z,#4K,#(Z,# @86YD
M97)S9T P>#8S+FYU("LU("TP"D(@=&]R=F%L9'- 871H;&]N+G1R86YS;65T
M82YC;VU\0VAA;F=E4V5T?#(P,#(P,C U,3<S,#4V?#$V,#0W?&,Q9#$Q830Q
M960P,C0X-C0*0PIC($%D9&5D(%A"3U@@<W5B87)C: IC(%1H97)E(&ES('-O
M;64@<W1R86YG92!I;G1E<F%C=&EO;B!W:&5N('!A9VEN9R!I<R!O9F8L('1H
M870@;6%K97,@,2XQ('AB;WAE;@IC(&-R87-H('=H:6QE(&1E8V]M<')E<W-I
M;F<@:V5R;F5L+"!U;FQE<W,@9&5C;VUP<F5S<V]R(&ES(&-O;7!I;&5D('=I
M=&AO=70*8R!O<'1I;6EZ871I;VXN"DL@,C(Y"D\@+7)W+7)W+7(M+0I0(&%R
M8V@O:3,X-B]B;V]T+V-O;7!R97-S960O36%K969I;&4*+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM"@I)-R U"FEF
M97$@*"0H0T].1DE'7U@X-E]80D]8*2QY*0HC6%A8($-O;7!I;&EN9R!W:71H
M(&]P=&EM:7IA=&EO;B!M86ME<R Q+C$M>&)O>&5N( HC(" @(&-R87-H('=H
M:6QE(&1E8V]M<')E<W-I;F<@=&AE(&ME<FYE; I#1DQ!1U-?;6ES8RYO(" @
M.CT@+4\P"F5N9&EF"@H]/2!I;F-L=61E+V%S;2UI,S@V+W1I;65X+F@@/3T*
M=&]R=F%L9'- 871H;&]N+G1R86YS;65T82YC;VU\:6YC;'5D92]A<VTM:3,X
M-B]T:6UE>"YH?#(P,#(P,C U,3<S.30T?#8S.#8R?&%A-69D,6%F.3%F934P
M9C<*86QA;D!L>&]R9W5K+G5K=74N;W)G+G5K6W1O<G9A;&1S77QI;F-L=61E
M+V%S;2UI,S@V+W1I;65X+FA\,C P,S S,C(P,C(V,C5\-3,Y,#0*1" Q+C4@
M,#,O,#8O,#,@,3 Z,30Z,#4K,#(Z,# @86YD97)S9T P>#8S+FYU("LY("TU
M"D(@=&]R=F%L9'- 871H;&]N+G1R86YS;65T82YC;VU\0VAA;F=E4V5T?#(P
M,#(P,C U,3<S,#4V?#$V,#0W?&,Q9#$Q830Q960P,C0X-C0*0PIC($%D9&5D
M(%A"3U@@<W5B87)C: I+(#8Q-38T"D\@+7)W+7)W+7(M+0I0(&EN8VQU9&4O
M87-M+6DS.#8O=&EM97@N: HM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2T*"D0Q-2 U"DDQ.2 Y"B,@(&EF9&5F($-/
M3D9)1U]-14Q!3@HC(" @(&1E9FEN92!#3$]#2U]424-+7U)!5$4@,3$X.3(P
M," O*B!!340@16QA;B!H87,@9&EF9F5R96YT(&9R97%U96YC>2$@*B\*(R @
M96QS90HC(" @(&EF9&5F($-/3D9)1U]8.#9?6$)/6 HC(" @(" @9&5F:6YE
M($-,3T-+7U1)0TM?4D%412 Q,3(T.3DX("\J('-O(&AA<R!T:&4@6&)O>" J
M+PHC(" @(&5L<V4@"B,@(" @("!D969I;F4@0TQ/0TM?5$E#2U]2051%(#$Q
M.3,Q.# @+RH@56YD97)L>6EN9R!(6B J+PHC(" @(&5N9&EF"B,@(&5N9&EF
M"@H]/2!A<F-H+VDS.#8O2V-O;F9I9R ]/0IZ:7!P96Q ;&EN=7@M;38X:RYO
M<F=;=&]R=F%L9'-=?&%R8V@O:3,X-B]+8V]N9FEG?#(P,#(Q,#,P,#0S,C$X
M?#(T-C@X?#8Q,C,Q.#!A8CDQ-3<V,&,*86MP;4!D:6=E;RYC;VU;=&]R=F%L
M9'-=?&%R8V@O:3,X-B]+8V]N9FEG?#(P,#,P-3 X,#4Q,S$U?#(X-38Q"D0@
M,2XU." P,R\P-B\P,R Q,#HQ-#HP-2LP,CHP,"!A;F1E<G-G0#!X-C,N;G4@
M*S$Y("TR"D(@=&]R=F%L9'- 871H;&]N+G1R86YS;65T82YC;VU\0VAA;F=E
M4V5T?#(P,#(P,C U,3<S,#4V?#$V,#0W?&,Q9#$Q830Q960P,C0X-C0*0PIC
M($%D9&5D(%A"3U@@<W5B87)C: I+(#$T.#(V"D\@+7)W+7)W+7(M+0I0(&%R
M8V@O:3,X-B]+8V]N9FEG"BTM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+0H*230U(#$V"F-O;F9I9R!8.#9?6$)/6 H)
M8F]O;" B6$)O>"!'86UI;F<@4WES=&5M(@H):&5L< H)("!4:&ES(&]P=&EO
M;B!I<R!N965D960@=&\@;6%K92!,:6YU>"!B;V]T(&]N(%A";W@@1V%M:6YG
M(%-Y<W1E;7,N"@D@( H)("!4:&4@6$)O>"!C86X@8F4@8V]N<VED97)E9"!A
M<R!A('-T86YD87)D(%!#('=I=&@@82!#;W!P97)M:6YE+6)A<V5D($-E;&5R
M;VX@-S,S($U(>BP*"2 @241%(&AA<F1D<FEV92P@1%9$+"!%=&AE<FYE="P@
M55-"(&%N9"!G<F%P:&EC<RX@"@D@( H)("!4;R!B;V]T('1H92!K97)N96P@
M>6]U(&YE960@(E]R;VUW96QL(BP@96ET:&5R('5S960@87,@82!R97!L86-E
M;65N="!"24]3("AC<F]M=V5L;"D*"2 @;W(@87,@82!B;V]T;&]A9&5R+@H)
M(" *"2 @1F]R(&UO<F4@:6YF;W)M871I;VX@<V5E(&AT=' Z+R]X8F]X+6QI
M;G5X+G-O=7)C969O<F=E+FYE="\@"@D@( H)("!)9B!Y;W4@9&\@;F]T('-P
M96-I9FEC86QL>2!N965D(&$@:V5R;F5L(&9O<B!80D]8(&UA8VAI;F4L"@D@
M('-A>2!.(&AE<F4@;W1H97)W:7-E('1H92!K97)N96P@>6]U(&)U:6QD('=I
M;&P@;F]T(&)E(&)O;W1A8FQE+@I<"DDS.3<@,0H)9&5P96YD<R!O;B A6#@V
M7UA"3U@*1#$P.3,@,0I),3 Y,R Q"@ED97!E;F1S(&]N("$H6#@V7U9)4U=3
M('Q\(%@X-E]63UE!1T52('Q\(%@X-E]80D]8*0I$,34W-" Q"DDQ-3<T(#$*
M"61E<&5N9',@;VX@(2A8.#9?5DE35U,@?'P@6#@V7U9/64%'15(@?'P@6#@V
B7UA"3U@I"@HC(%!A=&-H(&-H96-K<W5M/38P,F8W9&8Y"@  
 

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

* Re: [PATCH] Support for mach-xbox (updated)
  2003-06-03  9:11 [PATCH] Support for mach-xbox (updated) Anders Gustafsson
@ 2003-06-03 12:59 ` Dave Jones
  2003-06-03 13:05   ` Anders Gustafsson
  2003-06-03 15:47   ` [PATCH] Support for mach-xbox (updated AGAIN) Anders Gustafsson
  0 siblings, 2 replies; 4+ messages in thread
From: Dave Jones @ 2003-06-03 12:59 UTC (permalink / raw)
  To: Anders Gustafsson; +Cc: linux-kernel, Sam Ravnborg, mikpe, torvalds

On Tue, Jun 03, 2003 at 11:11:13AM +0200, Anders Gustafsson wrote:
 > Updated according to Sam and Mikaels comments.

you missed one 8-)

 > +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);
 > +}

Last 4 lines all use spaces instead of tabs.

 >  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

curious. does it matter which version of gcc you used ?
this sounds like a band-aid for something else that needs fixing.

 		Dave


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

* Re: [PATCH] Support for mach-xbox (updated)
  2003-06-03 12:59 ` Dave Jones
@ 2003-06-03 13:05   ` Anders Gustafsson
  2003-06-03 15:47   ` [PATCH] Support for mach-xbox (updated AGAIN) Anders Gustafsson
  1 sibling, 0 replies; 4+ messages in thread
From: Anders Gustafsson @ 2003-06-03 13:05 UTC (permalink / raw)
  To: Dave Jones, linux-kernel, Sam Ravnborg, mikpe, torvalds

On Tue, Jun 03, 2003 at 01:59:40PM +0100, Dave Jones wrote:
> Last 4 lines all use spaces instead of tabs.

darn.

>  >  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
> 
> curious. does it matter which version of gcc you used ?

Yes, only works with gcc3+

> this sounds like a band-aid for something else that needs fixing.

It sort of is (hence the XXX in the comment). But it's only when paging is
off. As soon as kernel is running everything is rock solid. It's probably
related to changed memoryaccess patterns.

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

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

* [PATCH] Support for mach-xbox (updated AGAIN)
  2003-06-03 12:59 ` Dave Jones
  2003-06-03 13:05   ` Anders Gustafsson
@ 2003-06-03 15:47   ` Anders Gustafsson
  1 sibling, 0 replies; 4+ messages in thread
From: Anders Gustafsson @ 2003-06-03 15:47 UTC (permalink / raw)
  To: Dave Jones; +Cc: linux-kernel, Sam Ravnborg, mikpe, torvalds

On Tue, Jun 03, 2003 at 01:59:40PM +0100, Dave Jones wrote:
> On Tue, Jun 03, 2003 at 11:11:13AM +0200, Anders Gustafsson wrote:
>  > Updated according to Sam and Mikaels comments.
> 
> you missed one 8-)
> 
...
> 
> Last 4 lines all use spaces instead of tabs.

Fixed in this version.

In the tradition of new subarches this patch will be resent to lkml a couple
of hundred times :)

-- 
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.1266 03/06/03 17:39:41 andersg@0x63.nu +10 -0
  Added XBOX subarch

  include/asm-i386/mach-xbox/mach_pci_blacklist.h
    1.1 03/06/03 17:39:29 andersg@0x63.nu +6 -0

  include/asm-i386/mach-xbox/mach_pci_blacklist.h
    1.0 03/06/03 17:39:29 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/06/03 17:39:28 andersg@0x63.nu +6 -0

  arch/i386/mach-xbox/setup.c
    1.1 03/06/03 17:39:28 andersg@0x63.nu +79 -0

  include/asm-i386/mach-default/mach_pci_blacklist.h
    1.0 03/06/03 17:39:28 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/06/03 17:39:28 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/06/03 17:39:27 andersg@0x63.nu +51 -0

  arch/i386/mach-xbox/Makefile
    1.1 03/06/03 17:39:27 andersg@0x63.nu +5 -0

  include/asm-i386/timex.h
    1.5 03/06/03 17:39:27 andersg@0x63.nu +9 -5
    Added XBOX subarch

  arch/i386/pci/direct.c
    1.15 03/06/03 17:39:27 andersg@0x63.nu +4 -0
    Added XBOX subarch
    Added a mach-hook for blacklisting pci-devices. The xbox hangs solid
    if you touch some pci devices.

  arch/i386/mach-xbox/reboot.c
    1.0 03/06/03 17:39:27 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/06/03 17:39:27 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/06/03 17:39:27 andersg@0x63.nu +5 -0
    Added XBOX subarch
    There is some strange interaction when paging is off, that makes 1.1 xboxen
    crash while decompressing kernel, unless decompressor is compiled without
    optimization.

  arch/i386/Makefile
    1.52 03/06/03 17:39:27 andersg@0x63.nu +4 -0
    Added XBOX subarch

  arch/i386/Kconfig
    1.58 03/06/03 17:39:26 andersg@0x63.nu +19 -2
    Added XBOX subarch


 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                           |   14 ++-
 10 files changed, 188 insertions(+), 7 deletions(-)


diff -Nru a/arch/i386/Kconfig b/arch/i386/Kconfig
--- a/arch/i386/Kconfig	Tue Jun  3 17:40:27 2003
+++ b/arch/i386/Kconfig	Tue Jun  3 17:40:27 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
@@ -395,6 +411,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
@@ -1090,7 +1107,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
@@ -1571,7 +1588,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	Tue Jun  3 17:40:27 2003
+++ b/arch/i386/Makefile	Tue Jun  3 17:40:27 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	Tue Jun  3 17:40:27 2003
+++ b/arch/i386/boot/compressed/Makefile	Tue Jun  3 17:40:27 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	Tue Jun  3 17:40:27 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	Tue Jun  3 17:40:27 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	Tue Jun  3 17:40:27 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	Tue Jun  3 17:40:27 2003
+++ b/arch/i386/pci/direct.c	Tue Jun  3 17:40:27 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) || (dev > 31) || (fn > 7) || (reg > 255))
 		return -EINVAL;
 
+	if (mach_pci_is_blacklisted(bus,dev,fn))
+		return -EINVAL;
+	
 	spin_lock_irqsave(&pci_config_lock, flags);
 
 	outl(PCI_CONF1_ADDRESS(bus, dev, fn, 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	Tue Jun  3 17:40:27 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	Tue Jun  3 17:40:27 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	Tue Jun  3 17:40:27 2003
+++ b/include/asm-i386/timex.h	Tue Jun  3 17:40:27 2003
@@ -12,11 +12,15 @@
 #ifdef CONFIG_X86_PC9800
    extern int CLOCK_TICK_RATE;
 #else
-#ifdef CONFIG_MELAN
-#  define CLOCK_TICK_RATE 1189200 /* AMD Elan has different frequency! */
-#else
-#  define CLOCK_TICK_RATE 1193180 /* Underlying HZ */
-#endif
+#  ifdef CONFIG_MELAN
+#    define CLOCK_TICK_RATE 1189200 /* AMD Elan has different frequency! */
+#  else
+#    ifdef CONFIG_X86_XBOX
+#      define CLOCK_TICK_RATE 1124998 /* so has the Xbox */
+#    else 
+#      define CLOCK_TICK_RATE 1193180 /* Underlying HZ */
+#    endif
+#  endif
 #endif
 
 #define CLOCK_TICK_FACTOR	20	/* Factor of both 1000000 and CLOCK_TICK_RATE */

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


This BitKeeper patch contains the following changesets:
1.1266
## Wrapped with uu ##


M(R!5<V5R.@EA;F1E<G-G"B,@2&]S=#H),'@V,RYN=0HC(%)O;W0Z"2]D871A
M+V1E=B]K97)N96PO8FLO>&)O>"TR+C4*"B,@4&%T8V@@=F5R<SH),2XS"B,@
M4&%T8V@@='EP93H)4D5'54Q!4@H*/3T@0VAA;F=E4V5T(#T]"G1O<G9A;&1S
M0&%T:&QO;BYT<F%N<VUE=&$N8V]M?$-H86YG95-E='PR,# R,#(P-3$W,S U
M-GPQ-C T-WQC,60Q,6$T,65D,#(T.#8T"G1O<G9A;&1S0&AO;64N=')A;G-M
M971A+F-O;7Q#:&%N9V53971\,C P,S V,#,P,3(X-35\-38S.#@*1" Q+C$R
M-C8@,#,O,#8O,#,@,3<Z,SDZ-#$K,#(Z,# @86YD97)S9T P>#8S+FYU("LQ
M," M, I"('1O<G9A;&1S0&%T:&QO;BYT<F%N<VUE=&$N8V]M?$-H86YG95-E
M='PR,# R,#(P-3$W,S U-GPQ-C T-WQC,60Q,6$T,65D,#(T.#8T"D,*8R!!
M9&1E9"!80D]8('-U8F%R8V@*2R U,38T. I0($-H86YG95-E= HM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T*"C!A
M, H^(&%N9&5R<V= ,'@V,RYN=7QI;F-L=61E+V%S;2UI,S@V+VUA8V@M>&)O
M>"]M86-H7W!C:5]B;&%C:VQI<W0N:'PR,# S,#8P,S$U,SDR.7PQ,C0R-WQE
M.3(U-S W.3<Q.#4W-F0W(&%N9&5R<V= ,'@V,RYN=7QI;F-L=61E+V%S;2UI
M,S@V+VUA8V@M>&)O>"]M86-H7W!C:5]B;&%C:VQI<W0N:'PR,# S,#8P,S$U
M,SDS,'PQ-34Q,0H^(&%N9&5R<V= ,'@V,RYN=7QA<F-H+VDS.#8O;6%C:"UX
M8F]X+TUA:V5F:6QE?#(P,#,P-C S,34S.3(W?#$V-S$Y?&)A.3,X,68W-#(R
M-3%F-C,@86YD97)S9T P>#8S+FYU?&%R8V@O:3,X-B]M86-H+7AB;W@O36%K
M969I;&5\,C P,S V,#,Q-3,Y,CA\,#4R,S0*/B!T;W)V86QD<T!A=&AL;VXN
M=')A;G-M971A+F-O;7QA<F-H+VDS.#8O8F]O="]C;VUP<F5S<V5D+TUA:V5F
M:6QE?#(P,#(P,C U,3<T,#(P?#$T,C@Y?&5E9#(T,V,S9C0U8F5F-B!A;F1E
M<G-G0#!X-C,N;G5\87)C:"]I,S@V+V)O;W0O8V]M<')E<W-E9"]-86ME9FEL
M97PR,# S,#8P,S$U,SDR-WPP,#(R.0H^('1O<G9A;&1S0&%T:&QO;BYT<F%N
M<VUE=&$N8V]M?&%R8V@O:3,X-B]-86ME9FEL97PR,# R,#(P-3$W-# R,'PQ
M.#<Q,'PQ8CAA83%F,&,T,&$Q9&)F(&%N9&5R<V= ,'@V,RYN=7QA<F-H+VDS
M.#8O36%K969I;&5\,C P,S V,#,Q-3,Y,C=\,C(U.30*/B!A;F1E<G-G0#!X
M-C,N;G5\87)C:"]I,S@V+VUA8V@M>&)O>"]S971U<"YC?#(P,#,P-C S,34S
M.3(X?#(U,S4V?#EC-V(T9C Q9#DP,6(Y83D@86YD97)S9T P>#8S+FYU?&%R
M8V@O:3,X-B]M86-H+7AB;W@O<V5T=7 N8WPR,# S,#8P,S$U,SDR.7PS-38T
M. H^('II<'!E;$!L:6YU>"UM-CAK+F]R9UMT;W)V86QD<UU\87)C:"]I,S@V
M+TMC;VYF:6=\,C P,C$P,S P-#,R,3A\,C0V.#A\-C$R,S$X,&%B.3$U-S8P
M8R!A;F1E<G-G0#!X-C,N;G5\87)C:"]I,S@V+TMC;VYF:6=\,C P,S V,#,Q
M-3,Y,C9\,30X,C8*/B!T;W)V86QD<T!A=&AL;VXN=')A;G-M971A+F-O;7QI
M;F-L=61E+V%S;2UI,S@V+W1I;65X+FA\,C P,C R,#4Q-S,Y-#1\-C,X-C)\
M86$U9F0Q868Y,69E-3!F-R!A;F1E<G-G0#!X-C,N;G5\:6YC;'5D92]A<VTM
M:3,X-B]T:6UE>"YH?#(P,#,P-C S,34S.3(W?#8Q-38T"CX@86YD97)S9T P
M>#8S+FYU?&%R8V@O:3,X-B]M86-H+7AB;W@O<F5B;V]T+F-\,C P,S V,#,Q
M-3,Y,C=\,#,Y-#!\83,V-V$Y8F0Y-V-D-&%C,"!A;F1E<G-G0#!X-C,N;G5\
M87)C:"]I,S@V+VUA8V@M>&)O>"]R96)O;W0N8WPR,# S,#8P,S$U,SDR.'PS
M,CDS.0H^(&UO8VAE;$!S96=F875L="YO<V1L+F]R9WQA<F-H+VDS.#8O:V5R
M;F5L+W!C:2]D:7)E8W0N8WPR,# R,#0Q-C$U,#@S,'PT-#<S,GPS.#=C-3=D
M,#DP860T.#@X(&%N9&5R<V= ,'@V,RYN=7QA<F-H+VDS.#8O<&-I+V1I<F5C
M="YC?#(P,#,P-C S,34S.3(W?#4T,S$R"CX@86YD97)S9T P>#8S+FYU?&EN
M8VQU9&4O87-M+6DS.#8O;6%C:"UD969A=6QT+VUA8VA?<&-I7V)L86-K;&ES
M="YH?#(P,#,P-C S,34S.3(X?# R.3<V?&)F,#5A8V(R,3$S,#@U,6,@86YD
M97)S9T P>#8S+FYU?&EN8VQU9&4O87-M+6DS.#8O;6%C:"UD969A=6QT+VUA
M8VA?<&-I7V)L86-K;&ES="YH?#(P,#,P-C S,34S.3(Y?#$P,C,R"@H]/2!A
M<F-H+VDS.#8O;6%C:"UX8F]X+TUA:V5F:6QE(#T]"DYE=R!F:6QE.B!A<F-H
M+VDS.#8O;6%C:"UX8F]X+TUA:V5F:6QE"E8@- H*86YD97)S9T P>#8S+FYU
M?&%R8V@O:3,X-B]M86-H+7AB;W@O36%K969I;&5\,C P,S V,#,Q-3,Y,C=\
M,38W,3E\8F$Y,S@Q9C<T,C(U,68V,PI$(#$N," P,R\P-B\P,R Q-SHS.3HR
M-RLP,CHP,"!A;F1E<G-G0#!X-C,N;G4@*S @+3 *0B!T;W)V86QD<T!A=&AL
M;VXN=')A;G-M971A+F-O;7Q#:&%N9V53971\,C P,C R,#4Q-S,P-39\,38P
M-#=\8S%D,3%A-#%E9# R-#@V- IC($)I=$ME97!E<B!F:6QE("]D871A+V1E
M=B]K97)N96PO8FLO>&)O>"TR+C4O87)C:"]I,S@V+VUA8V@M>&)O>"]-86ME
M9FEL90I+(#$V-S$Y"E @87)C:"]I,S@V+VUA8V@M>&)O>"]-86ME9FEL90I2
M(&)A.3,X,68W-#(R-3%F-C,*6" P>#@R,0HM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T*"@IA;F1E<G-G0#!X-C,N
M;G5\87)C:"]I,S@V+VUA8V@M>&)O>"]-86ME9FEL97PR,# S,#8P,S$U,SDR
M-WPQ-C<Q.7QB83DS.#%F-S0R,C4Q9C8S"D0@,2XQ(# S+S V+S S(#$W.C,Y
M.C(W*S R.C P(&%N9&5R<V= ,'@V,RYN=2 K-2 M, I"('1O<G9A;&1S0&%T
M:&QO;BYT<F%N<VUE=&$N8V]M?$-H86YG95-E='PR,# R,#(P-3$W,S U-GPQ
M-C T-WQC,60Q,6$T,65D,#(T.#8T"D,*1B Q"DL@-3(S- I/("UR=RUR=RUR
M+2T*4"!A<F-H+VDS.#8O;6%C:"UX8F]X+TUA:V5F:6QE"BTM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+0H*23 @-0HC
M"B,@36%K969I;&4@9F]R('1H92!L:6YU>"!K97)N96PN"B,*7 IO8FHM>0D)
M"0DZ/2!S971U<"YO(')E8F]O="YO"@H]/2!A<F-H+VDS.#8O;6%C:"UX8F]X
M+W)E8F]O="YC(#T]"DYE=R!F:6QE.B!A<F-H+VDS.#8O;6%C:"UX8F]X+W)E
M8F]O="YC"E8@- H*86YD97)S9T P>#8S+FYU?&%R8V@O:3,X-B]M86-H+7AB
M;W@O<F5B;V]T+F-\,C P,S V,#,Q-3,Y,C=\,#,Y-#!\83,V-V$Y8F0Y-V-D
M-&%C, I$(#$N," P,R\P-B\P,R Q-SHS.3HR-RLP,CHP,"!A;F1E<G-G0#!X
M-C,N;G4@*S @+3 *0B!T;W)V86QD<T!A=&AL;VXN=')A;G-M971A+F-O;7Q#
M:&%N9V53971\,C P,C R,#4Q-S,P-39\,38P-#=\8S%D,3%A-#%E9# R-#@V
M- IC($)I=$ME97!E<B!F:6QE("]D871A+V1E=B]K97)N96PO8FLO>&)O>"TR
M+C4O87)C:"]I,S@V+VUA8V@M>&)O>"]R96)O;W0N8PI+(#,Y-# *4"!A<F-H
M+VDS.#8O;6%C:"UX8F]X+W)E8F]O="YC"E(@83,V-V$Y8F0Y-V-D-&%C, I8
M(#!X.#(Q"BTM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+0H*"F%N9&5R<V= ,'@V,RYN=7QA<F-H+VDS.#8O;6%C:"UX
M8F]X+W)E8F]O="YC?#(P,#,P-C S,34S.3(W?# S.30P?&$S-C=A.6)D.3=C
M9#1A8S *1" Q+C$@,#,O,#8O,#,@,3<Z,SDZ,C<K,#(Z,# @86YD97)S9T P
M>#8S+FYU("LU,2 M, I"('1O<G9A;&1S0&%T:&QO;BYT<F%N<VUE=&$N8V]M
M?$-H86YG95-E='PR,# R,#(P-3$W,S U-GPQ-C T-WQC,60Q,6$T,65D,#(T
M.#8T"D,*1B Q"DL@,S(Y,SD*3R M<G<M<G<M<BTM"E @87)C:"]I,S@V+VUA
M8V@M>&)O>"]R96)O;W0N8PHM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2T*"DDP(#4Q"B\J"B J(&%R8V@O:3,X-B]M
M86-H+7AB;W@O<F5B;V]T+F,@"B J($]L:79I97(@1F%U8VAO;B \;VQI=FEE
M<BYF875C:&]N0&9R964N9G(^"B J($%N9&5R<R!'=7-T869S<V]N(#QA;F1E
M<G-G0#!X-C,N;G4^"B J"B J+PI<"B-I;F-L=61E(#QA<VTO:6\N:#X*7 HO
M*B!W92!D;VXG="!U<V4@86YY(&]F('1H;W-E+"!B=70@9&UI7W-C86XN8R!N
M965D<R G96T@*B\*=F]I9" H*G!M7W!O=V5R7V]F9BDH=F]I9"D["FEN="!R
M96)O;W1?=&AR=5]B:6]S.PI<"B-D969I;F4@6$)/6%]334)?24]?0D%312 P
M>$,P,# *(V1E9FEN92!80D]87U--0E](3U-47T%$1%)%4U,@(" @(" @*#!X
M-" K(%A"3UA?4TU"7TE/7T)!4T4I"B-D969I;F4@6$)/6%]334)?2$]35%]#
M3TU-04Y$(" @(" @("@P>#@@*R!80D]87U--0E])3U]"05-%*0HC9&5F:6YE
M(%A"3UA?4TU"7TA/4U1?1$%402 @(" @(" @(" H,'@V("L@6$)/6%]334)?
M24]?0D%312D*(V1E9FEN92!80D]87U--0E]'3$]"04Q?14Y!0DQ%(" @(" @
M*#!X,B K(%A"3UA?4TU"7TE/7T)!4T4I"EP*(V1E9FEN92!80D]87U!)0U]!
M1$1215-3(#!X,3 *7 HC9&5F:6YE(%--0U]#341?4$]715(@,'@P,@HC9&5F
M:6YE(%--0U]354)#341?4$]715)?4D53150@,'@P,0HC9&5F:6YE(%--0U]3
M54)#341?4$]715)?0UE#3$4@,'@T, HC9&5F:6YE(%--0U]354)#341?4$]7
M15)?3T9&(#!X.# *7 I<"G-T871I8R!V;VED('AB;WA?<&EC7V-M9"AU."!C
M;VUM86YD*0I["@EO=71W7W H*"A80D]87U!)0U]!1$1215-3*2 \/" Q*2Q8
M0D]87U--0E](3U-47T%$1%)%4U,I.PH);W5T8E]P*%--0U]#341?4$]715(L
M(%A"3UA?4TU"7TA/4U1?0T]-34%.1"D["@EO=71W7W H8V]M;6%N9"P@6$)/
M6%]334)?2$]35%]$051!*3L*"6]U='=?<"AI;G<H6$)/6%]334)?24]?0D%3
M12DL6$)/6%]334)?24]?0D%312D["@EO=71B7W H,'@P82Q80D]87U--0E]'
M3$]"04Q?14Y!0DQ%*3L*?0I<"G9O:60@;6%C:&EN95]R97-T87)T*&-H87(@
M*B!?7W5N=7-E9"D*>PH)<')I;G1K*$M%4DY?24Y&3R B4V5N9&EN9R!03U=%
M4E]215-%5"!T;R!80D]8+5!)0RY<;B(I.PH)>&)O>%]P:6-?8VUD*%--0U]3
M54)#341?4$]715)?4D53150I.R @"GT*7 IV;VED(&UA8VAI;F5?<&]W97)?
M;V9F*'9O:60I"GL*"7!R:6YT:RA+15).7TE.1D\@(E-E;F1I;F<@4$]715)?
M3T9&('1O(%A"3U@M4$E#+EQN(BD["@EX8F]X7W!I8U]C;60H4TU#7U-50D--
M1%]03U=%4E]/1D8I.R @"GT*7 IV;VED(&UA8VAI;F5?:&%L="AV;VED*0I[
M"GT*"CT](&%R8V@O:3,X-B]M86-H+7AB;W@O<V5T=7 N8R ]/0I.97<@9FEL
M93H@87)C:"]I,S@V+VUA8V@M>&)O>"]S971U<"YC"E8@- H*86YD97)S9T P
M>#8S+FYU?&%R8V@O:3,X-B]M86-H+7AB;W@O<V5T=7 N8WPR,# S,#8P,S$U
M,SDR.'PR-3,U-GPY8S=B-&8P,60Y,#%B.6$Y"D0@,2XP(# S+S V+S S(#$W
M.C,Y.C(X*S R.C P(&%N9&5R<V= ,'@V,RYN=2 K," M, I"('1O<G9A;&1S
M0&%T:&QO;BYT<F%N<VUE=&$N8V]M?$-H86YG95-E='PR,# R,#(P-3$W,S U
M-GPQ-C T-WQC,60Q,6$T,65D,#(T.#8T"F,@0FET2V5E<&5R(&9I;&4@+V1A
M=&$O9&5V+VME<FYE;"]B:R]X8F]X+3(N-2]A<F-H+VDS.#8O;6%C:"UX8F]X
M+W-E='5P+F,*2R R-3,U-@I0(&%R8V@O:3,X-B]M86-H+7AB;W@O<V5T=7 N
M8PI2(#EC-V(T9C Q9#DP,6(Y83D*6" P>#@R,0HM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T*"@IA;F1E<G-G0#!X
M-C,N;G5\87)C:"]I,S@V+VUA8V@M>&)O>"]S971U<"YC?#(P,#,P-C S,34S
M.3(X?#(U,S4V?#EC-V(T9C Q9#DP,6(Y83D*1" Q+C$@,#,O,#8O,#,@,3<Z
M,SDZ,C@K,#(Z,# @86YD97)S9T P>#8S+FYU("LW.2 M, I"('1O<G9A;&1S
M0&%T:&QO;BYT<F%N<VUE=&$N8V]M?$-H86YG95-E='PR,# R,#(P-3$W,S U
M-GPQ-C T-WQC,60Q,6$T,65D,#(T.#8T"D,*1B Q"DL@,S4V-#@*3R M<G<M
M<G<M<BTM"E @87)C:"]I,S@V+VUA8V@M>&)O>"]S971U<"YC"BTM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+0H*23 @
M-SD*+RH*("H)36%C:&EN92!S<&5C:69I8R!S971U<"!F;W(@>&)O> H@*B\*
M7 HC:6YC;'5D92 \;&EN=7@O8V]N9FEG+F@^"B-I;F-L=61E(#QL:6YU>"]S
M;7 N:#X*(VEN8VQU9&4@/&QI;G5X+VEN:70N:#X*(VEN8VQU9&4@/&QI;G5X
M+VER<2YH/@HC:6YC;'5D92 \;&EN=7@O:6YT97)R=7!T+F@^"B-I;F-L=61E
M(#QA<VTO87)C:%]H;V]K<RYH/@I<"B\J*@H@*B!P<F5?:6YT<E]I;FET7VAO
M;VL@+2!I;FET:6%L:7-A=&EO;B!P<FEO<B!T;R!S971T:6YG('5P(&EN=&5R
M<G5P="!V96-T;W)S"B J"B J($1E<V-R:7!T:6]N.@H@*@E097)F;W)M(&%N
M>2!N96-E<W-A<GD@:6YT97)R=7!T(&EN:71I86QI<V%T:6]N('!R:6]R('1O
M('-E='1I;F<@=7 *("H)=&AE(")O<F1I;F%R>2(@:6YT97)R=7!T(&-A;&P@
M9V%T97,N("!&;W(@;&5G86-Y(')E87-O;G,L('1H92!)4T$*("H):6YT97)R
M=7!T<R!S:&]U;&0@8F4@:6YI=&EA;&ES960@:&5R92!I9B!T:&4@;6%C:&EN
M92!E;75L871E<R!A(%!#"B J"6EN(&%N>2!W87DN"B J*B\*=F]I9"!?7VEN
M:70@<')E7VEN=')?:6YI=%]H;V]K*'9O:60I"GL*"6EN:71?25-!7VER<7,H
M*3L*?0I<"B\J*@H@*B!I;G1R7VEN:71?:&]O:R M('!O<W0@9V%T92!S971U
M<"!I;G1E<G)U<'0@:6YI=&EA;&ES871I;VX*("H*("H@1&5S8W)I<'1I;VXZ
M"B J"49I;&P@:6X@86YY(&EN=&5R<G5P=',@=&AA="!M87D@:&%V92!B965N
M(&QE9G0@;W5T(&)Y('1H92!G96YE<F%L"B J"6EN:71?25)1*"D@<F]U=&EN
M92X@(&EN=&5R<G5P=',@:&%V:6YG('1O(&1O('=I=&@@=&AE(&UA8VAI;F4@
M<F%T:&5R"B J"71H86X@=&AE(&1E=FEC97,@;VX@=&AE($DO3R!B=7,@*&QI
M:V4@05!)0R!I;G1E<G)U<'1S(&EN(&EN=&5L($U0"B J"7-Y<W1E;7,I(&%R
M92!S=&%R=&5D(&AE<F4N"B J*B\*=F]I9"!?7VEN:70@:6YT<E]I;FET7VAO
M;VLH=F]I9"D*>PHC:69D968@0T].1DE'7U@X-E],3T-!3%]!4$E#"@EA<&EC
M7VEN=')?:6YI="@I.PHC96YD:68*7 I]"EP*+RHJ"B J('!R95]S971U<%]A
M<F-H7VAO;VL@+2!H;V]K(&-A;&QE9"!P<FEO<B!T;R!A;GD@<V5T=7!?87)C
M:"@I(&5X96-U=&EO;@H@*@H@*B!$97-C<FEP=&EO;CH*("H)9V5N97)A;&QY
M('5S960@=&\@86-T:79A=&4@86YY(&UA8VAI;F4@<W!E8VEF:6,@:61E;G1I
M9FEC871I;VX*("H)<F]U=&EN97,@=&AA="!M87D@8F4@;F5E9&5D(&)E9F]R
M92!S971U<%]A<F-H*"D@<G5N<RX@($]N(%9)4U=3"B J"71H:7,@:7,@=7-E
M9"!T;R!G970@=&AE(&)O87)D(')E=FES:6]N(&%N9"!T>7!E+@H@*BHO"G9O
M:60@7U]I;FET('!R95]S971U<%]A<F-H7VAO;VLH=F]I9"D*>PI]"EP*+RHJ
M"B J('1R87!?:6YI=%]H;V]K("T@:6YI=&EA;&ES92!S>7-T96T@<W!E8VEF
M:6,@=')A<',*("H*("H@1&5S8W)I<'1I;VXZ"B J"4-A;&QE9"!A<R!T:&4@
M9FEN86P@86-T(&]F('1R87!?:6YI="@I+B @57-E9"!I;B!625-74R!T;R!I
M;FET:6%L:7-E"B J"71H92!V87)I;W5S(&)O87)D('-P96-I9FEC($%024,@
M=')A<',N"B J*B\*=F]I9"!?7VEN:70@=')A<%]I;FET7VAO;VLH=F]I9"D*
M>PI]"EP*<W1A=&EC('-T<G5C="!I<G%A8W1I;VX@:7)Q," @/2![('1I;65R
M7VEN=&5R<G5P="P@4T%?24Y415)255!4+" P+" B=&EM97(B+"!.54Q,+"!.
M54Q,?3L*7 HO*BH*("H@=&EM95]I;FET7VAO;VL@+2!D;R!A;GD@<W!E8VEF
M:6,@:6YI=&EA;&ES871I;VYS(&9O<B!T:&4@<WES=&5M('1I;65R+@H@*@H@
M*B!$97-C<FEP=&EO;CH*("H)375S="!P;'5G('1H92!S>7-T96T@=&EM97(@
M:6YT97)R=7!T('-O=7)C92!A="!(6B!I;G1O('1H92!)4E$@;&ES=&5D"B J
M"6EN(&ER<5]V96-T;W)S+F@Z5$E-15)?25)1"B J*B\*=F]I9"!?7VEN:70@
M=&EM95]I;FET7VAO;VLH=F]I9"D*>PH)<V5T=7!?:7)Q*# L("9I<G$P*3L*
M?0I<"@H]/2!I;F-L=61E+V%S;2UI,S@V+VUA8V@M9&5F875L="]M86-H7W!C
M:5]B;&%C:VQI<W0N:" ]/0I.97<@9FEL93H@:6YC;'5D92]A<VTM:3,X-B]M
M86-H+61E9F%U;'0O;6%C:%]P8VE?8FQA8VML:7-T+F@*5B T"@IA;F1E<G-G
M0#!X-C,N;G5\:6YC;'5D92]A<VTM:3,X-B]M86-H+61E9F%U;'0O;6%C:%]P
M8VE?8FQA8VML:7-T+FA\,C P,S V,#,Q-3,Y,CA\,#(Y-S9\8F8P-6%C8C(Q
M,3,P.#4Q8PI$(#$N," P,R\P-B\P,R Q-SHS.3HR."LP,CHP,"!A;F1E<G-G
M0#!X-C,N;G4@*S @+3 *0B!T;W)V86QD<T!A=&AL;VXN=')A;G-M971A+F-O
M;7Q#:&%N9V53971\,C P,C R,#4Q-S,P-39\,38P-#=\8S%D,3%A-#%E9# R
M-#@V- IC($)I=$ME97!E<B!F:6QE("]D871A+V1E=B]K97)N96PO8FLO>&)O
M>"TR+C4O:6YC;'5D92]A<VTM:3,X-B]M86-H+61E9F%U;'0O;6%C:%]P8VE?
M8FQA8VML:7-T+F@*2R R.3<V"E @:6YC;'5D92]A<VTM:3,X-B]M86-H+61E
M9F%U;'0O;6%C:%]P8VE?8FQA8VML:7-T+F@*4B!B9C U86-B,C$Q,S X-3%C
M"E@@,'@X,C$*+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM"@H*86YD97)S9T P>#8S+FYU?&EN8VQU9&4O87-M+6DS
M.#8O;6%C:"UD969A=6QT+VUA8VA?<&-I7V)L86-K;&ES="YH?#(P,#,P-C S
M,34S.3(X?# R.3<V?&)F,#5A8V(R,3$S,#@U,6,*1" Q+C$@,#,O,#8O,#,@
M,3<Z,SDZ,C@K,#(Z,# @86YD97)S9T P>#8S+FYU("LV("TP"D(@=&]R=F%L
M9'- 871H;&]N+G1R86YS;65T82YC;VU\0VAA;F=E4V5T?#(P,#(P,C U,3<S
M,#4V?#$V,#0W?&,Q9#$Q830Q960P,C0X-C0*0PI&(#$*2R Q,#(S,@I/("UR
M=RUR=RUR+2T*4"!I;F-L=61E+V%S;2UI,S@V+VUA8V@M9&5F875L="]M86-H
M7W!C:5]B;&%C:VQI<W0N: HM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2T*"DDP(#8*(VEF;F1E9B!?7T%335]-04-(
M7U!#25]"3$%#2TQ)4U1?2 HC9&5F:6YE(%]?05--7TU!0TA?4$-)7T),04-+
M3$E35%]("EP*(V1E9FEN92!M86-H7W!C:5]I<U]B;&%C:VQI<W1E9"AB=7,L
M9&5V+&9N*2 P"EP*(V5N9&EF"@H]/2!I;F-L=61E+V%S;2UI,S@V+VUA8V@M
M>&)O>"]M86-H7W!C:5]B;&%C:VQI<W0N:" ]/0I.97<@9FEL93H@:6YC;'5D
M92]A<VTM:3,X-B]M86-H+7AB;W@O;6%C:%]P8VE?8FQA8VML:7-T+F@*5B T
M"@IA;F1E<G-G0#!X-C,N;G5\:6YC;'5D92]A<VTM:3,X-B]M86-H+7AB;W@O
M;6%C:%]P8VE?8FQA8VML:7-T+FA\,C P,S V,#,Q-3,Y,CE\,3(T,C=\93DR
M-3<P-SDW,3@U-S9D-PI$(#$N," P,R\P-B\P,R Q-SHS.3HR.2LP,CHP,"!A
M;F1E<G-G0#!X-C,N;G4@*S @+3 *0B!T;W)V86QD<T!A=&AL;VXN=')A;G-M
M971A+F-O;7Q#:&%N9V53971\,C P,C R,#4Q-S,P-39\,38P-#=\8S%D,3%A
M-#%E9# R-#@V- IC($)I=$ME97!E<B!F:6QE("]D871A+V1E=B]K97)N96PO
M8FLO>&)O>"TR+C4O:6YC;'5D92]A<VTM:3,X-B]M86-H+7AB;W@O;6%C:%]P
M8VE?8FQA8VML:7-T+F@*2R Q,C0R-PI0(&EN8VQU9&4O87-M+6DS.#8O;6%C
M:"UX8F]X+VUA8VA?<&-I7V)L86-K;&ES="YH"E(@93DR-3<P-SDW,3@U-S9D
M-PI8(#!X.#(Q"BTM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+0H*"F%N9&5R<V= ,'@V,RYN=7QI;F-L=61E+V%S;2UI
M,S@V+VUA8V@M>&)O>"]M86-H7W!C:5]B;&%C:VQI<W0N:'PR,# S,#8P,S$U
M,SDR.7PQ,C0R-WQE.3(U-S W.3<Q.#4W-F0W"D0@,2XQ(# S+S V+S S(#$W
M.C,Y.C(Y*S R.C P(&%N9&5R<V= ,'@V,RYN=2 K-B M, I"('1O<G9A;&1S
M0&%T:&QO;BYT<F%N<VUE=&$N8V]M?$-H86YG95-E='PR,# R,#(P-3$W,S U
M-GPQ-C T-WQC,60Q,6$T,65D,#(T.#8T"D,*1B Q"DL@,34U,3$*3R M<G<M
M<G<M<BTM"E @:6YC;'5D92]A<VTM:3,X-B]M86-H+7AB;W@O;6%C:%]P8VE?
M8FQA8VML:7-T+F@*+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM"@I)," V"B-I9FYD968@7U]!4TU?34%#2%]00TE?
M0DQ!0TM,25-47T@*(V1E9FEN92!?7T%335]-04-(7U!#25]"3$%#2TQ)4U1?
M2 I<"B-D969I;F4@;6%C:%]P8VE?:7-?8FQA8VML:7-T960H8G5S+&1E=BQF
M;BD@*" H8G5S/C$I('Q\("AB=7,F)BAD979\?&9N*2D@?'P@*"AB=7,]/3 @
M)B8@9&5V/3TP*2 F)B H*&9N/3TQ*7Q\*&9N/3TR*2DI("D*7 HC96YD:68*
M"CT](&%R8V@O:3,X-B]P8VDO9&ER96-T+F,@/3T*;6]C:&5L0'-E9V9A=6QT
M+F]S9&PN;W)G?&%R8V@O:3,X-B]K97)N96PO<&-I+V1I<F5C="YC?#(P,#(P
M-#$V,34P.#,P?#0T-S,R?#,X-V,U-V0P.3!A9#0X.#@*9W)E9T!K<F]A:"YC
M;VU;9W)E9UU\87)C:"]I,S@V+W!C:2]D:7)E8W0N8WPR,# S,#(R,#(R,C,S
M-7PT-C,U- I$(#$N,34@,#,O,#8O,#,@,3<Z,SDZ,C<K,#(Z,# @86YD97)S
M9T P>#8S+FYU("LT("TP"D(@=&]R=F%L9'- 871H;&]N+G1R86YS;65T82YC
M;VU\0VAA;F=E4V5T?#(P,#(P,C U,3<S,#4V?#$V,#0W?&,Q9#$Q830Q960P
M,C0X-C0*0PIC($%D9&5D(%A"3U@@<W5B87)C: IC($%D9&5D(&$@;6%C:"UH
M;V]K(&9O<B!B;&%C:VQI<W1I;F<@<&-I+61E=FEC97,N(%1H92!X8F]X(&AA
M;F=S('-O;&ED"F,@:68@>6]U('1O=6-H('-O;64@<&-I(&1E=FEC97,N"DL@
M-30S,3(*3R M<G<M<G<M<BTM"E @87)C:"]I,S@V+W!C:2]D:7)E8W0N8PHM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2T*"DDV(#$*(VEN8VQU9&4@(FUA8VA?<&-I7V)L86-K;&ES="YH(@I),C(@
M,PH):68@*&UA8VA?<&-I7VES7V)L86-K;&ES=&5D*&)U<RQD978L9FXI*0H)
M"7)E='5R;B M14E.5D%,.PH)"@H]/2!A<F-H+VDS.#8O36%K969I;&4@/3T*
M=&]R=F%L9'- 871H;&]N+G1R86YS;65T82YC;VU\87)C:"]I,S@V+TUA:V5F
M:6QE?#(P,#(P,C U,3<T,#(P?#$X-S$P?#%B.&%A,68P8S0P83%D8F8*86MP
M;4!D:6=E;RYC;VU;=&]R=F%L9'-=?&%R8V@O:3,X-B]-86ME9FEL97PR,# S
M,#4P.# U,3,Q-7PQ,CDV.0I$(#$N-3(@,#,O,#8O,#,@,3<Z,SDZ,C<K,#(Z
M,# @86YD97)S9T P>#8S+FYU("LT("TP"D(@=&]R=F%L9'- 871H;&]N+G1R
M86YS;65T82YC;VU\0VAA;F=E4V5T?#(P,#(P,C U,3<S,#4V?#$V,#0W?&,Q
M9#$Q830Q960P,C0X-C0*0PIC($%D9&5D(%A"3U@@<W5B87)C: I+(#(R-3DT
M"D\@+7)W+7)W+7(M+0I0(&%R8V@O:3,X-B]-86ME9FEL90HM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T*"DDU-2 T
M"B,@6&)O>"!S=6)A<F-H('-U<'!O<G0*;69L86=S+20H0T].1DE'7U@X-E]8
M0D]8*0DZ/2 M26EN8VQU9&4O87-M+6DS.#8O;6%C:"UX8F]X"FUC;W)E+20H
M0T].1DE'7U@X-E]80D]8*0DZ/2!M86-H+7AB;W@*7 H*/3T@87)C:"]I,S@V
M+V)O;W0O8V]M<')E<W-E9"]-86ME9FEL92 ]/0IT;W)V86QD<T!A=&AL;VXN
M=')A;G-M971A+F-O;7QA<F-H+VDS.#8O8F]O="]C;VUP<F5S<V5D+TUA:V5F
M:6QE?#(P,#(P,C U,3<T,#(P?#$T,C@Y?&5E9#(T,V,S9C0U8F5F-@IS86U 
M;6%R<RYR879N8F]R9RYO<F=\87)C:"]I,S@V+V)O;W0O8V]M<')E<W-E9"]-
M86ME9FEL97PR,# S,#,P.3(Q-#<T,7PU,S0R-PI$(#$N,3<@,#,O,#8O,#,@
M,3<Z,SDZ,C<K,#(Z,# @86YD97)S9T P>#8S+FYU("LU("TP"D(@=&]R=F%L
M9'- 871H;&]N+G1R86YS;65T82YC;VU\0VAA;F=E4V5T?#(P,#(P,C U,3<S
M,#4V?#$V,#0W?&,Q9#$Q830Q960P,C0X-C0*0PIC($%D9&5D(%A"3U@@<W5B
M87)C: IC(%1H97)E(&ES('-O;64@<W1R86YG92!I;G1E<F%C=&EO;B!W:&5N
M('!A9VEN9R!I<R!O9F8L('1H870@;6%K97,@,2XQ('AB;WAE;@IC(&-R87-H
M('=H:6QE(&1E8V]M<')E<W-I;F<@:V5R;F5L+"!U;FQE<W,@9&5C;VUP<F5S
M<V]R(&ES(&-O;7!I;&5D('=I=&AO=70*8R!O<'1I;6EZ871I;VXN"DL@,C(Y
M"D\@+7)W+7)W+7(M+0I0(&%R8V@O:3,X-B]B;V]T+V-O;7!R97-S960O36%K
M969I;&4*+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM"@I)-R U"FEF97$@*"0H0T].1DE'7U@X-E]80D]8*2QY*0HC
M6%A8($-O;7!I;&EN9R!W:71H(&]P=&EM:7IA=&EO;B!M86ME<R Q+C$M>&)O
M>&5N( HC(" @(&-R87-H('=H:6QE(&1E8V]M<')E<W-I;F<@=&AE(&ME<FYE
M; I#1DQ!1U-?;6ES8RYO(" @.CT@+4\P"F5N9&EF"@H]/2!I;F-L=61E+V%S
M;2UI,S@V+W1I;65X+F@@/3T*=&]R=F%L9'- 871H;&]N+G1R86YS;65T82YC
M;VU\:6YC;'5D92]A<VTM:3,X-B]T:6UE>"YH?#(P,#(P,C U,3<S.30T?#8S
M.#8R?&%A-69D,6%F.3%F934P9C<*86QA;D!L>&]R9W5K+G5K=74N;W)G+G5K
M6W1O<G9A;&1S77QI;F-L=61E+V%S;2UI,S@V+W1I;65X+FA\,C P,S S,C(P
M,C(V,C5\-3,Y,#0*1" Q+C4@,#,O,#8O,#,@,3<Z,SDZ,C<K,#(Z,# @86YD
M97)S9T P>#8S+FYU("LY("TU"D(@=&]R=F%L9'- 871H;&]N+G1R86YS;65T
M82YC;VU\0VAA;F=E4V5T?#(P,#(P,C U,3<S,#4V?#$V,#0W?&,Q9#$Q830Q
M960P,C0X-C0*0PIC($%D9&5D(%A"3U@@<W5B87)C: I+(#8Q-38T"D\@+7)W
M+7)W+7(M+0I0(&EN8VQU9&4O87-M+6DS.#8O=&EM97@N: HM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T*"D0Q-2 U
M"DDQ.2 Y"B,@(&EF9&5F($-/3D9)1U]-14Q!3@HC(" @(&1E9FEN92!#3$]#
M2U]424-+7U)!5$4@,3$X.3(P," O*B!!340@16QA;B!H87,@9&EF9F5R96YT
M(&9R97%U96YC>2$@*B\*(R @96QS90HC(" @(&EF9&5F($-/3D9)1U]8.#9?
M6$)/6 HC(" @(" @9&5F:6YE($-,3T-+7U1)0TM?4D%412 Q,3(T.3DX("\J
M('-O(&AA<R!T:&4@6&)O>" J+PHC(" @(&5L<V4@"B,@(" @("!D969I;F4@
M0TQ/0TM?5$E#2U]2051%(#$Q.3,Q.# @+RH@56YD97)L>6EN9R!(6B J+PHC
M(" @(&5N9&EF"B,@(&5N9&EF"@H]/2!A<F-H+VDS.#8O2V-O;F9I9R ]/0IZ
M:7!P96Q ;&EN=7@M;38X:RYO<F=;=&]R=F%L9'-=?&%R8V@O:3,X-B]+8V]N
M9FEG?#(P,#(Q,#,P,#0S,C$X?#(T-C@X?#8Q,C,Q.#!A8CDQ-3<V,&,*86MP
M;4!D:6=E;RYC;VU;=&]R=F%L9'-=?&%R8V@O:3,X-B]+8V]N9FEG?#(P,#,P
M-3 X,#4Q,S$U?#(X-38Q"D0@,2XU." P,R\P-B\P,R Q-SHS.3HR-BLP,CHP
M,"!A;F1E<G-G0#!X-C,N;G4@*S$Y("TR"D(@=&]R=F%L9'- 871H;&]N+G1R
M86YS;65T82YC;VU\0VAA;F=E4V5T?#(P,#(P,C U,3<S,#4V?#$V,#0W?&,Q
M9#$Q830Q960P,C0X-C0*0PIC($%D9&5D(%A"3U@@<W5B87)C: I+(#$T.#(V
M"D\@+7)W+7)W+7(M+0I0(&%R8V@O:3,X-B]+8V]N9FEG"BTM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+0H*230U(#$V
M"F-O;F9I9R!8.#9?6$)/6 H)8F]O;" B6$)O>"!'86UI;F<@4WES=&5M(@H)
M:&5L< H)("!4:&ES(&]P=&EO;B!I<R!N965D960@=&\@;6%K92!,:6YU>"!B
M;V]T(&]N(%A";W@@1V%M:6YG(%-Y<W1E;7,N"@D@( H)("!4:&4@6$)O>"!C
M86X@8F4@8V]N<VED97)E9"!A<R!A('-T86YD87)D(%!#('=I=&@@82!#;W!P
M97)M:6YE+6)A<V5D($-E;&5R;VX@-S,S($U(>BP*"2 @241%(&AA<F1D<FEV
M92P@1%9$+"!%=&AE<FYE="P@55-"(&%N9"!G<F%P:&EC<RX@"@D@( H)("!4
M;R!B;V]T('1H92!K97)N96P@>6]U(&YE960@(E]R;VUW96QL(BP@96ET:&5R
M('5S960@87,@82!R97!L86-E;65N="!"24]3("AC<F]M=V5L;"D*"2 @;W(@
M87,@82!B;V]T;&]A9&5R+@H)(" *"2 @1F]R(&UO<F4@:6YF;W)M871I;VX@
M<V5E(&AT=' Z+R]X8F]X+6QI;G5X+G-O=7)C969O<F=E+FYE="\@"@D@( H)
M("!)9B!Y;W4@9&\@;F]T('-P96-I9FEC86QL>2!N965D(&$@:V5R;F5L(&9O
M<B!80D]8(&UA8VAI;F4L"@D@('-A>2!.(&AE<F4@;W1H97)W:7-E('1H92!K
M97)N96P@>6]U(&)U:6QD('=I;&P@;F]T(&)E(&)O;W1A8FQE+@I<"DDS.3<@
M,0H)9&5P96YD<R!O;B A6#@V7UA"3U@*1#$P.3,@,0I),3 Y,R Q"@ED97!E
M;F1S(&]N("$H6#@V7U9)4U=3('Q\(%@X-E]63UE!1T52('Q\(%@X-E]80D]8
M*0I$,34W-" Q"DDQ-3<T(#$*"61E<&5N9',@;VX@(2A8.#9?5DE35U,@?'P@
M6#@V7U9/64%'15(@?'P@6#@V7UA"3U@I"@HC(%!A=&-H(&-H96-K<W5M/31D
'.64W96-D"@  
 

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

end of thread, other threads:[~2003-06-03 15:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-06-03  9:11 [PATCH] Support for mach-xbox (updated) Anders Gustafsson
2003-06-03 12:59 ` Dave Jones
2003-06-03 13:05   ` Anders Gustafsson
2003-06-03 15:47   ` [PATCH] Support for mach-xbox (updated AGAIN) 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).