changeset 407:e64eb9ff27b9

Use unstable infrastructure to back off non-unstable kernel to 2.6.25 (where powerpc works) and bring back binutils 2.18 build as unstable version.
author Rob Landley <rob@landley.net>
date Fri, 10 Oct 2008 02:43:44 -0500
parents 763712cce21f
children 5d8f87345656
files cross-compiler.sh download.sh sources/patches/alt-linux-2.6.23-rc3-fixuml sources/patches/alt-linux-2.6.25-shutup.patch sources/patches/alt-linux-2.6.25-umlwarn.patch sources/patches/alt-linux-fixppclink.patch sources/patches/alt-linux-noperl.patch sources/patches/alt-linux-ppcqemu.patch sources/patches/linux-2.6.26-noperl.patch sources/patches/linux-ppcqemu.patch
diffstat 10 files changed, 2361 insertions(+), 640 deletions(-) [+]
line wrap: on
line diff
--- a/cross-compiler.sh	Wed Oct 08 01:10:12 2008 -0500
+++ b/cross-compiler.sh	Fri Oct 10 02:43:44 2008 -0500
@@ -15,7 +15,8 @@
 # Build and install binutils
 
 setupfor binutils build-binutils &&
-"${CURSRC}/configure" --prefix="${CROSS}" --host=${CROSS_HOST} \
+AR=ar AS=as LD=ld NM=nm OBJDUMP=objdump OBJCOPY=objcopy \
+	"${CURSRC}/configure" --prefix="${CROSS}" --host=${CROSS_HOST} \
 	--target=${CROSS_TARGET} --with-lib-path=lib --disable-nls \
 	--disable-shared --disable-multilib --program-prefix="${ARCH}-" \
 	$BINUTILS_FLAGS &&
--- a/download.sh	Wed Oct 08 01:10:12 2008 -0500
+++ b/download.sh	Fri Oct 10 02:43:44 2008 -0500
@@ -22,19 +22,19 @@
 # then cut and paste the sha1 from the output and run it again to confirm.
 
 # Required for cross compile toolchain
-URL=http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.5.tar.bz2 \
-SHA1=037c3ac83ba4da1ad4da91c0e485f97821767c2e \
+URL=http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.10.tar.bz2 \
+SHA1=2911e1c01cd75d7e0fad2afb8329cd8ad1e742fb \
 UNSTABLE=http://kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.27-rc7.tar.bz2 \
 download || dienow
 
 URL=http://www.uclibc.org/downloads/uClibc-0.9.29.tar.bz2 \
 SHA1=1c5a36dc2cfa58b41db413190e45675c44ca4691 \
-#UNSTABLE=http://uclibc.org/downloads/uClibc-0.9.30-rc1.tar.bz2 \
-UNSTABLE=http://uclibc.org/downloads/snapshots/uClibc-20080928.tar.bz2 \
+UNSTABLE=http://uclibc.org/downloads/snapshots/uClibc-20081007.tar.bz2 \
 download || dienow
 
 URL=ftp://ftp.gnu.org/gnu/binutils/binutils-2.17.tar.bz2 \
 SHA1=a557686eef68362ea31a3aa41ce274e3eeae1ef0 \
+UNSTABLE=ftp://ftp.gnu.org/gnu/binutils/binutils-2.18.tar.bz2 \
 download || dienow
 
 URL=ftp://ftp.gnu.org/gnu/gcc/gcc-4.1.2/gcc-core-4.1.2.tar.bz2 \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sources/patches/alt-linux-2.6.23-rc3-fixuml	Fri Oct 10 02:43:44 2008 -0500
@@ -0,0 +1,1 @@
+linux-2.6.23-rc3-fixuml
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sources/patches/alt-linux-2.6.25-shutup.patch	Fri Oct 10 02:43:44 2008 -0500
@@ -0,0 +1,1 @@
+linux-2.6.25-shutup.patch
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sources/patches/alt-linux-2.6.25-umlwarn.patch	Fri Oct 10 02:43:44 2008 -0500
@@ -0,0 +1,1 @@
+linux-2.6.25-umlwarn.patch
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sources/patches/alt-linux-fixppclink.patch	Fri Oct 10 02:43:44 2008 -0500
@@ -0,0 +1,84 @@
+--- linux-2.6.26/arch/powerpc/kernel/vmlinux.lds.S	2008-07-13 16:51:29.000000000 -0500
++++ linux-2.6.27-rc2/arch/powerpc/kernel/vmlinux.lds.S	2008-08-05 23:49:54.000000000 -0500
+@@ -9,6 +9,25 @@
+ 
+ ENTRY(_stext)
+ 
++PHDRS {
++	kernel PT_LOAD FLAGS(7); /* RWX */
++	notes PT_NOTE FLAGS(0);
++	dummy PT_NOTE FLAGS(0);
++
++	/* binutils < 2.18 has a bug that makes it misbehave when taking an
++	   ELF file with all segments at load address 0 as input.  This
++	   happens when running "strip" on vmlinux, because of the AT() magic
++	   in this linker script.  People using GCC >= 4.2 won't run into
++	   this problem, because the "build-id" support will put some data
++	   into the "notes" segment (at a non-zero load address).
++
++	   To work around this, we force some data into both the "dummy"
++	   segment and the kernel segment, so the dummy segment will get a
++	   non-zero load address.  It's not enough to always create the
++	   "notes" segment, since if nothing gets assigned to it, its load
++	   address will be zero.  */
++}
++
+ #ifdef CONFIG_PPC64
+ OUTPUT_ARCH(powerpc:common64)
+ jiffies = jiffies_64;
+@@ -35,7 +54,7 @@
+ 		ALIGN_FUNCTION();
+ 		*(.text.head)
+ 		_text = .;
+-		*(.text .fixup .text.init.refok .exit.text.refok)
++		*(.text .fixup .text.init.refok .exit.text.refok __ftr_alt_*)
+ 		SCHED_TEXT
+ 		LOCK_TEXT
+ 		KPROBES_TEXT
+@@ -50,7 +69,7 @@
+ 		. = ALIGN(PAGE_SIZE);
+ 		_etext = .;
+ 		PROVIDE32 (etext = .);
+-	}
++	} :kernel
+ 
+ 	/* Read-only data */
+ 	RODATA
+@@ -62,9 +81,13 @@
+ 		__stop___ex_table = .;
+ 	}
+ 
+-	NOTES
++	NOTES :kernel :notes
+ 
+-	BUG_TABLE
++	/* The dummy segment contents for the bug workaround mentioned above
++	   near PHDRS.  */
++	.dummy : AT(ADDR(.dummy) - LOAD_OFFSET) {
++		LONG(0xf177)
++	} :kernel :dummy
+ 
+ /*
+  * Init sections discarded at runtime
+@@ -76,7 +99,7 @@
+ 		_sinittext = .;
+ 		INIT_TEXT
+ 		_einittext = .;
+-	}
++	} :kernel
+ 
+ 	/* .exit.text is discarded at runtime, not link time,
+ 	 * to deal with references from __bug_table
+@@ -127,6 +150,12 @@
+ 		*(__ftr_fixup)
+ 		__stop___ftr_fixup = .;
+ 	}
++	. = ALIGN(8);
++	__lwsync_fixup : AT(ADDR(__lwsync_fixup) - LOAD_OFFSET) {
++		__start___lwsync_fixup = .;
++		*(__lwsync_fixup)
++		__stop___lwsync_fixup = .;
++	}
+ #ifdef CONFIG_PPC64
+ 	. = ALIGN(8);
+ 	__fw_ftr_fixup : AT(ADDR(__fw_ftr_fixup) - LOAD_OFFSET) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sources/patches/alt-linux-noperl.patch	Fri Oct 10 02:43:44 2008 -0500
@@ -0,0 +1,631 @@
+diff -ru linux-2.6.26/kernel/Makefile linux-2.6.26-new/kernel/Makefile
+--- linux-2.6.26/kernel/Makefile	2008-07-13 16:51:29.000000000 -0500
++++ linux-2.6.26-new/kernel/Makefile	2008-07-25 11:46:15.000000000 -0500
+@@ -95,8 +95,3 @@
+ 
+ $(obj)/time.o: $(obj)/timeconst.h
+ 
+-quiet_cmd_timeconst  = TIMEC   $@
+-      cmd_timeconst  = $(PERL) $< $(CONFIG_HZ) > $@
+-targets += timeconst.h
+-$(obj)/timeconst.h: $(src)/timeconst.pl FORCE
+-	$(call if_changed,timeconst)
+diff -ru linux-2.6.26/kernel/timeconst.pl linux-2.6.26-new/kernel/timeconst.pl
+--- linux-2.6.26/kernel/timeconst.pl	2008-07-13 16:51:29.000000000 -0500
++++ linux-2.6.26-new/kernel/timeconst.pl	2008-07-25 12:01:27.000000000 -0500
+@@ -11,150 +11,12 @@
+ #
+ 
+ #
+-# Usage: timeconst.pl HZ > timeconst.h
++# Usage: timeconst.pl HZ... > timeconst.h
+ #
+ 
+ # Precomputed values for systems without Math::BigInt
+ # Generated by:
+ # timeconst.pl --can 24 32 48 64 100 122 128 200 250 256 300 512 1000 1024 1200
+-%canned_values = (
+-	24 => [
+-		'0xa6aaaaab','0x2aaaaaa',26,
+-		125,3,
+-		'0xc49ba5e4','0x1fbe76c8b4',37,
+-		3,125,
+-		'0xa2c2aaab','0xaaaa',16,
+-		125000,3,
+-		'0xc9539b89','0x7fffbce4217d',47,
+-		3,125000,
+-	], 32 => [
+-		'0xfa000000','0x6000000',27,
+-		125,4,
+-		'0x83126e98','0xfdf3b645a',36,
+-		4,125,
+-		'0xf4240000','0x0',17,
+-		31250,1,
+-		'0x8637bd06','0x3fff79c842fa',46,
+-		1,31250,
+-	], 48 => [
+-		'0xa6aaaaab','0x6aaaaaa',27,
+-		125,6,
+-		'0xc49ba5e4','0xfdf3b645a',36,
+-		6,125,
+-		'0xa2c2aaab','0x15555',17,
+-		62500,3,
+-		'0xc9539b89','0x3fffbce4217d',46,
+-		3,62500,
+-	], 64 => [
+-		'0xfa000000','0xe000000',28,
+-		125,8,
+-		'0x83126e98','0x7ef9db22d',35,
+-		8,125,
+-		'0xf4240000','0x0',18,
+-		15625,1,
+-		'0x8637bd06','0x1fff79c842fa',45,
+-		1,15625,
+-	], 100 => [
+-		'0xa0000000','0x0',28,
+-		10,1,
+-		'0xcccccccd','0x733333333',35,
+-		1,10,
+-		'0x9c400000','0x0',18,
+-		10000,1,
+-		'0xd1b71759','0x1fff2e48e8a7',45,
+-		1,10000,
+-	], 122 => [
+-		'0x8325c53f','0xfbcda3a',28,
+-		500,61,
+-		'0xf9db22d1','0x7fbe76c8b',35,
+-		61,500,
+-		'0x8012e2a0','0x3ef36',18,
+-		500000,61,
+-		'0xffda4053','0x1ffffbce4217',45,
+-		61,500000,
+-	], 128 => [
+-		'0xfa000000','0x1e000000',29,
+-		125,16,
+-		'0x83126e98','0x3f7ced916',34,
+-		16,125,
+-		'0xf4240000','0x40000',19,
+-		15625,2,
+-		'0x8637bd06','0xfffbce4217d',44,
+-		2,15625,
+-	], 200 => [
+-		'0xa0000000','0x0',29,
+-		5,1,
+-		'0xcccccccd','0x333333333',34,
+-		1,5,
+-		'0x9c400000','0x0',19,
+-		5000,1,
+-		'0xd1b71759','0xfff2e48e8a7',44,
+-		1,5000,
+-	], 250 => [
+-		'0x80000000','0x0',29,
+-		4,1,
+-		'0x80000000','0x180000000',33,
+-		1,4,
+-		'0xfa000000','0x0',20,
+-		4000,1,
+-		'0x83126e98','0x7ff7ced9168',43,
+-		1,4000,
+-	], 256 => [
+-		'0xfa000000','0x3e000000',30,
+-		125,32,
+-		'0x83126e98','0x1fbe76c8b',33,
+-		32,125,
+-		'0xf4240000','0xc0000',20,
+-		15625,4,
+-		'0x8637bd06','0x7ffde7210be',43,
+-		4,15625,
+-	], 300 => [
+-		'0xd5555556','0x2aaaaaaa',30,
+-		10,3,
+-		'0x9999999a','0x1cccccccc',33,
+-		3,10,
+-		'0xd0555556','0xaaaaa',20,
+-		10000,3,
+-		'0x9d495183','0x7ffcb923a29',43,
+-		3,10000,
+-	], 512 => [
+-		'0xfa000000','0x7e000000',31,
+-		125,64,
+-		'0x83126e98','0xfdf3b645',32,
+-		64,125,
+-		'0xf4240000','0x1c0000',21,
+-		15625,8,
+-		'0x8637bd06','0x3ffef39085f',42,
+-		8,15625,
+-	], 1000 => [
+-		'0x80000000','0x0',31,
+-		1,1,
+-		'0x80000000','0x0',31,
+-		1,1,
+-		'0xfa000000','0x0',22,
+-		1000,1,
+-		'0x83126e98','0x1ff7ced9168',41,
+-		1,1000,
+-	], 1024 => [
+-		'0xfa000000','0xfe000000',32,
+-		125,128,
+-		'0x83126e98','0x7ef9db22',31,
+-		128,125,
+-		'0xf4240000','0x3c0000',22,
+-		15625,16,
+-		'0x8637bd06','0x1fff79c842f',41,
+-		16,15625,
+-	], 1200 => [
+-		'0xd5555556','0xd5555555',32,
+-		5,6,
+-		'0x9999999a','0x66666666',31,
+-		6,5,
+-		'0xd0555556','0x2aaaaa',22,
+-		2500,3,
+-		'0x9d495183','0x1ffcb923a29',41,
+-		3,2500,
+-	]
+-);
+ 
+ $has_bigint = eval 'use Math::BigInt qw(bgcd); 1;';
+ 
+@@ -252,8 +114,7 @@
+ 	my $s, $m, $a, $g;
+ 
+ 	if (!$has_bigint) {
+-		die "$0: HZ == $hz not canned and ".
+-		    "Math::BigInt not available\n";
++		die "$0: Math::BigInt not available\n";
+ 	}
+ 
+ 	# MSEC conversions
+@@ -283,21 +144,7 @@
+ 	my($hz, @val) = @_;
+ 	my $pfx, $bit, $suf, $s, $m, $a;
+ 
+-	print "/* Automatically generated by kernel/timeconst.pl */\n";
+-	print "/* Conversion constants for HZ == $hz */\n";
+-	print "\n";
+-	print "#ifndef KERNEL_TIMECONST_H\n";
+-	print "#define KERNEL_TIMECONST_H\n";
+-	print "\n";
+-
+-	print "#include <linux/param.h>\n";
+-	print "#include <linux/types.h>\n";
+-
+-	print "\n";
+-	print "#if HZ != $hz\n";
+-	print "#error \"kernel/timeconst.h has the wrong HZ value!\"\n";
+-	print "#endif\n";
+-	print "\n";
++	print "HZ == $hz\n";
+ 
+ 	foreach $pfx ('HZ_TO_MSEC','MSEC_TO_HZ',
+ 		      'HZ_TO_USEC','USEC_TO_HZ') {
+@@ -311,8 +158,7 @@
+ 		}
+ 	}
+ 
+-	print "\n";
+-	print "#endif /* KERNEL_TIMECONST_H */\n";
++	print "\n#elif ";
+ }
+ 
+ # Pretty-print Perl values
+@@ -332,47 +178,36 @@
+ 	return join(',', @l);
+ }
+ 
+-($hz) = @ARGV;
++print "/* Conversion constants for HZ */\n";
++print "/* DO NOT EDIT!  Automatically generated by:\n";
++print "   kernel/timeconst.pl @ARGV\n */\n";
++print "\n";
++print "#ifndef KERNEL_TIMECONST_H\n";
++print "#define KERNEL_TIMECONST_H\n";
++print "\n";
++
++print "#include <linux/param.h>\n";
++print "#include <linux/types.h>\n";
++
++print "\n";
++print "#if ";
++
++foreach $hz (@ARGV)
++{
+ 
+-# Use this to generate the %canned_values structure
+-if ($hz eq '--can') {
+-	shift(@ARGV);
+-	@hzlist = sort {$a <=> $b} (@ARGV);
+-
+-	print "# Precomputed values for systems without Math::BigInt\n";
+-	print "# Generated by:\n";
+-	print "# timeconst.pl --can ", join(' ', @hzlist), "\n";
+-	print "\%canned_values = (\n";
+-	my $pf = "\t";
+-	foreach $hz (@hzlist) {
+-		my @values = compute_values($hz);
+-		print "$pf$hz => [\n";
+-		while (scalar(@values)) {
+-			my $bit;
+-			foreach $bit (32) {
+-				my $m = shift(@values);
+-				my $a = shift(@values);
+-				my $s = shift(@values);
+-				print "\t\t", perlvals($m,$a,$s), ",\n";
+-			}
+-			my $n = shift(@values);
+-			my $d = shift(@values);
+-			print "\t\t", perlvals($n,$d), ",\n";
+-		}
+-		print "\t]";
+-		$pf = ', ';
+-	}
+-	print "\n);\n";
+-} else {
+ 	$hz += 0;			# Force to number
+ 	if ($hz < 1) {
+ 		die "Usage: $0 HZ\n";
+ 	}
+ 
+-	@val = @{$canned_values{$hz}};
+-	if (!defined(@val)) {
+-		@val = compute_values($hz);
+-	}
++	@val = compute_values($hz);
+ 	output($hz, @val);
+ }
++
++print "1\n";
++print "#error \"kernel/timeconst.h has unknown HZ value!\"\n";
++print "#endif\n";
++print "\n";
++print "#endif /* KERNEL_TIMECONST_H */\n";
++
+ exit 0;
+--- /dev/null	2007-10-16 17:06:33.000000000 -0500
++++ linux-2.6.26-new/kernel/timeconst.h	2008-07-25 12:02:02.000000000 -0500
+@@ -0,0 +1,346 @@
++/* Conversion constants for HZ */
++/* DO NOT EDIT!  Automatically generated by:
++   kernel/timeconst.pl 24 32 48 64 100 122 128 200 250 256 300 512 1000 1024 1200
++ */
++
++#ifndef KERNEL_TIMECONST_H
++#define KERNEL_TIMECONST_H
++
++#include <linux/param.h>
++#include <linux/types.h>
++
++#if HZ == 24
++#define HZ_TO_MSEC_MUL32        U64_C(0xa6aaaaab)
++#define HZ_TO_MSEC_ADJ32        U64_C(0x2aaaaaa)
++#define HZ_TO_MSEC_SHR32        26
++#define HZ_TO_MSEC_NUM          U64_C(125)
++#define HZ_TO_MSEC_DEN          U64_C(3)
++#define MSEC_TO_HZ_MUL32        U64_C(0xc49ba5e4)
++#define MSEC_TO_HZ_ADJ32        U64_C(0x1fbe76c8b4)
++#define MSEC_TO_HZ_SHR32        37
++#define MSEC_TO_HZ_NUM          U64_C(3)
++#define MSEC_TO_HZ_DEN          U64_C(125)
++#define HZ_TO_USEC_MUL32        U64_C(0xa2c2aaab)
++#define HZ_TO_USEC_ADJ32        U64_C(0xaaaa)
++#define HZ_TO_USEC_SHR32        16
++#define HZ_TO_USEC_NUM          U64_C(125000)
++#define HZ_TO_USEC_DEN          U64_C(3)
++#define USEC_TO_HZ_MUL32        U64_C(0xc9539b89)
++#define USEC_TO_HZ_ADJ32        U64_C(0x7fffbce4217d)
++#define USEC_TO_HZ_SHR32        47
++#define USEC_TO_HZ_NUM          U64_C(3)
++#define USEC_TO_HZ_DEN          U64_C(125000)
++
++#elif HZ == 32
++#define HZ_TO_MSEC_MUL32        U64_C(0xfa000000)
++#define HZ_TO_MSEC_ADJ32        U64_C(0x6000000)
++#define HZ_TO_MSEC_SHR32        27
++#define HZ_TO_MSEC_NUM          U64_C(125)
++#define HZ_TO_MSEC_DEN          U64_C(4)
++#define MSEC_TO_HZ_MUL32        U64_C(0x83126e98)
++#define MSEC_TO_HZ_ADJ32        U64_C(0xfdf3b645a)
++#define MSEC_TO_HZ_SHR32        36
++#define MSEC_TO_HZ_NUM          U64_C(4)
++#define MSEC_TO_HZ_DEN          U64_C(125)
++#define HZ_TO_USEC_MUL32        U64_C(0xf4240000)
++#define HZ_TO_USEC_ADJ32        U64_C(0x0)
++#define HZ_TO_USEC_SHR32        17
++#define HZ_TO_USEC_NUM          U64_C(31250)
++#define HZ_TO_USEC_DEN          U64_C(1)
++#define USEC_TO_HZ_MUL32        U64_C(0x8637bd06)
++#define USEC_TO_HZ_ADJ32        U64_C(0x3fff79c842fa)
++#define USEC_TO_HZ_SHR32        46
++#define USEC_TO_HZ_NUM          U64_C(1)
++#define USEC_TO_HZ_DEN          U64_C(31250)
++
++#elif HZ == 48
++#define HZ_TO_MSEC_MUL32        U64_C(0xa6aaaaab)
++#define HZ_TO_MSEC_ADJ32        U64_C(0x6aaaaaa)
++#define HZ_TO_MSEC_SHR32        27
++#define HZ_TO_MSEC_NUM          U64_C(125)
++#define HZ_TO_MSEC_DEN          U64_C(6)
++#define MSEC_TO_HZ_MUL32        U64_C(0xc49ba5e4)
++#define MSEC_TO_HZ_ADJ32        U64_C(0xfdf3b645a)
++#define MSEC_TO_HZ_SHR32        36
++#define MSEC_TO_HZ_NUM          U64_C(6)
++#define MSEC_TO_HZ_DEN          U64_C(125)
++#define HZ_TO_USEC_MUL32        U64_C(0xa2c2aaab)
++#define HZ_TO_USEC_ADJ32        U64_C(0x15555)
++#define HZ_TO_USEC_SHR32        17
++#define HZ_TO_USEC_NUM          U64_C(62500)
++#define HZ_TO_USEC_DEN          U64_C(3)
++#define USEC_TO_HZ_MUL32        U64_C(0xc9539b89)
++#define USEC_TO_HZ_ADJ32        U64_C(0x3fffbce4217d)
++#define USEC_TO_HZ_SHR32        46
++#define USEC_TO_HZ_NUM          U64_C(3)
++#define USEC_TO_HZ_DEN          U64_C(62500)
++
++#elif HZ == 64
++#define HZ_TO_MSEC_MUL32        U64_C(0xfa000000)
++#define HZ_TO_MSEC_ADJ32        U64_C(0xe000000)
++#define HZ_TO_MSEC_SHR32        28
++#define HZ_TO_MSEC_NUM          U64_C(125)
++#define HZ_TO_MSEC_DEN          U64_C(8)
++#define MSEC_TO_HZ_MUL32        U64_C(0x83126e98)
++#define MSEC_TO_HZ_ADJ32        U64_C(0x7ef9db22d)
++#define MSEC_TO_HZ_SHR32        35
++#define MSEC_TO_HZ_NUM          U64_C(8)
++#define MSEC_TO_HZ_DEN          U64_C(125)
++#define HZ_TO_USEC_MUL32        U64_C(0xf4240000)
++#define HZ_TO_USEC_ADJ32        U64_C(0x0)
++#define HZ_TO_USEC_SHR32        18
++#define HZ_TO_USEC_NUM          U64_C(15625)
++#define HZ_TO_USEC_DEN          U64_C(1)
++#define USEC_TO_HZ_MUL32        U64_C(0x8637bd06)
++#define USEC_TO_HZ_ADJ32        U64_C(0x1fff79c842fa)
++#define USEC_TO_HZ_SHR32        45
++#define USEC_TO_HZ_NUM          U64_C(1)
++#define USEC_TO_HZ_DEN          U64_C(15625)
++
++#elif HZ == 100
++#define HZ_TO_MSEC_MUL32        U64_C(0xa0000000)
++#define HZ_TO_MSEC_ADJ32        U64_C(0x0)
++#define HZ_TO_MSEC_SHR32        28
++#define HZ_TO_MSEC_NUM          U64_C(10)
++#define HZ_TO_MSEC_DEN          U64_C(1)
++#define MSEC_TO_HZ_MUL32        U64_C(0xcccccccd)
++#define MSEC_TO_HZ_ADJ32        U64_C(0x733333333)
++#define MSEC_TO_HZ_SHR32        35
++#define MSEC_TO_HZ_NUM          U64_C(1)
++#define MSEC_TO_HZ_DEN          U64_C(10)
++#define HZ_TO_USEC_MUL32        U64_C(0x9c400000)
++#define HZ_TO_USEC_ADJ32        U64_C(0x0)
++#define HZ_TO_USEC_SHR32        18
++#define HZ_TO_USEC_NUM          U64_C(10000)
++#define HZ_TO_USEC_DEN          U64_C(1)
++#define USEC_TO_HZ_MUL32        U64_C(0xd1b71759)
++#define USEC_TO_HZ_ADJ32        U64_C(0x1fff2e48e8a7)
++#define USEC_TO_HZ_SHR32        45
++#define USEC_TO_HZ_NUM          U64_C(1)
++#define USEC_TO_HZ_DEN          U64_C(10000)
++
++#elif HZ == 122
++#define HZ_TO_MSEC_MUL32        U64_C(0x8325c53f)
++#define HZ_TO_MSEC_ADJ32        U64_C(0xfbcda3a)
++#define HZ_TO_MSEC_SHR32        28
++#define HZ_TO_MSEC_NUM          U64_C(500)
++#define HZ_TO_MSEC_DEN          U64_C(61)
++#define MSEC_TO_HZ_MUL32        U64_C(0xf9db22d1)
++#define MSEC_TO_HZ_ADJ32        U64_C(0x7fbe76c8b)
++#define MSEC_TO_HZ_SHR32        35
++#define MSEC_TO_HZ_NUM          U64_C(61)
++#define MSEC_TO_HZ_DEN          U64_C(500)
++#define HZ_TO_USEC_MUL32        U64_C(0x8012e2a0)
++#define HZ_TO_USEC_ADJ32        U64_C(0x3ef36)
++#define HZ_TO_USEC_SHR32        18
++#define HZ_TO_USEC_NUM          U64_C(500000)
++#define HZ_TO_USEC_DEN          U64_C(61)
++#define USEC_TO_HZ_MUL32        U64_C(0xffda4053)
++#define USEC_TO_HZ_ADJ32        U64_C(0x1ffffbce4217)
++#define USEC_TO_HZ_SHR32        45
++#define USEC_TO_HZ_NUM          U64_C(61)
++#define USEC_TO_HZ_DEN          U64_C(500000)
++
++#elif HZ == 128
++#define HZ_TO_MSEC_MUL32        U64_C(0xfa000000)
++#define HZ_TO_MSEC_ADJ32        U64_C(0x1e000000)
++#define HZ_TO_MSEC_SHR32        29
++#define HZ_TO_MSEC_NUM          U64_C(125)
++#define HZ_TO_MSEC_DEN          U64_C(16)
++#define MSEC_TO_HZ_MUL32        U64_C(0x83126e98)
++#define MSEC_TO_HZ_ADJ32        U64_C(0x3f7ced916)
++#define MSEC_TO_HZ_SHR32        34
++#define MSEC_TO_HZ_NUM          U64_C(16)
++#define MSEC_TO_HZ_DEN          U64_C(125)
++#define HZ_TO_USEC_MUL32        U64_C(0xf4240000)
++#define HZ_TO_USEC_ADJ32        U64_C(0x40000)
++#define HZ_TO_USEC_SHR32        19
++#define HZ_TO_USEC_NUM          U64_C(15625)
++#define HZ_TO_USEC_DEN          U64_C(2)
++#define USEC_TO_HZ_MUL32        U64_C(0x8637bd06)
++#define USEC_TO_HZ_ADJ32        U64_C(0xfffbce4217d)
++#define USEC_TO_HZ_SHR32        44
++#define USEC_TO_HZ_NUM          U64_C(2)
++#define USEC_TO_HZ_DEN          U64_C(15625)
++
++#elif HZ == 200
++#define HZ_TO_MSEC_MUL32        U64_C(0xa0000000)
++#define HZ_TO_MSEC_ADJ32        U64_C(0x0)
++#define HZ_TO_MSEC_SHR32        29
++#define HZ_TO_MSEC_NUM          U64_C(5)
++#define HZ_TO_MSEC_DEN          U64_C(1)
++#define MSEC_TO_HZ_MUL32        U64_C(0xcccccccd)
++#define MSEC_TO_HZ_ADJ32        U64_C(0x333333333)
++#define MSEC_TO_HZ_SHR32        34
++#define MSEC_TO_HZ_NUM          U64_C(1)
++#define MSEC_TO_HZ_DEN          U64_C(5)
++#define HZ_TO_USEC_MUL32        U64_C(0x9c400000)
++#define HZ_TO_USEC_ADJ32        U64_C(0x0)
++#define HZ_TO_USEC_SHR32        19
++#define HZ_TO_USEC_NUM          U64_C(5000)
++#define HZ_TO_USEC_DEN          U64_C(1)
++#define USEC_TO_HZ_MUL32        U64_C(0xd1b71759)
++#define USEC_TO_HZ_ADJ32        U64_C(0xfff2e48e8a7)
++#define USEC_TO_HZ_SHR32        44
++#define USEC_TO_HZ_NUM          U64_C(1)
++#define USEC_TO_HZ_DEN          U64_C(5000)
++
++#elif HZ == 250
++#define HZ_TO_MSEC_MUL32        U64_C(0x80000000)
++#define HZ_TO_MSEC_ADJ32        U64_C(0x0)
++#define HZ_TO_MSEC_SHR32        29
++#define HZ_TO_MSEC_NUM          U64_C(4)
++#define HZ_TO_MSEC_DEN          U64_C(1)
++#define MSEC_TO_HZ_MUL32        U64_C(0x80000000)
++#define MSEC_TO_HZ_ADJ32        U64_C(0x180000000)
++#define MSEC_TO_HZ_SHR32        33
++#define MSEC_TO_HZ_NUM          U64_C(1)
++#define MSEC_TO_HZ_DEN          U64_C(4)
++#define HZ_TO_USEC_MUL32        U64_C(0xfa000000)
++#define HZ_TO_USEC_ADJ32        U64_C(0x0)
++#define HZ_TO_USEC_SHR32        20
++#define HZ_TO_USEC_NUM          U64_C(4000)
++#define HZ_TO_USEC_DEN          U64_C(1)
++#define USEC_TO_HZ_MUL32        U64_C(0x83126e98)
++#define USEC_TO_HZ_ADJ32        U64_C(0x7ff7ced9168)
++#define USEC_TO_HZ_SHR32        43
++#define USEC_TO_HZ_NUM          U64_C(1)
++#define USEC_TO_HZ_DEN          U64_C(4000)
++
++#elif HZ == 256
++#define HZ_TO_MSEC_MUL32        U64_C(0xfa000000)
++#define HZ_TO_MSEC_ADJ32        U64_C(0x3e000000)
++#define HZ_TO_MSEC_SHR32        30
++#define HZ_TO_MSEC_NUM          U64_C(125)
++#define HZ_TO_MSEC_DEN          U64_C(32)
++#define MSEC_TO_HZ_MUL32        U64_C(0x83126e98)
++#define MSEC_TO_HZ_ADJ32        U64_C(0x1fbe76c8b)
++#define MSEC_TO_HZ_SHR32        33
++#define MSEC_TO_HZ_NUM          U64_C(32)
++#define MSEC_TO_HZ_DEN          U64_C(125)
++#define HZ_TO_USEC_MUL32        U64_C(0xf4240000)
++#define HZ_TO_USEC_ADJ32        U64_C(0xc0000)
++#define HZ_TO_USEC_SHR32        20
++#define HZ_TO_USEC_NUM          U64_C(15625)
++#define HZ_TO_USEC_DEN          U64_C(4)
++#define USEC_TO_HZ_MUL32        U64_C(0x8637bd06)
++#define USEC_TO_HZ_ADJ32        U64_C(0x7ffde7210be)
++#define USEC_TO_HZ_SHR32        43
++#define USEC_TO_HZ_NUM          U64_C(4)
++#define USEC_TO_HZ_DEN          U64_C(15625)
++
++#elif HZ == 300
++#define HZ_TO_MSEC_MUL32        U64_C(0xd5555556)
++#define HZ_TO_MSEC_ADJ32        U64_C(0x2aaaaaaa)
++#define HZ_TO_MSEC_SHR32        30
++#define HZ_TO_MSEC_NUM          U64_C(10)
++#define HZ_TO_MSEC_DEN          U64_C(3)
++#define MSEC_TO_HZ_MUL32        U64_C(0x9999999a)
++#define MSEC_TO_HZ_ADJ32        U64_C(0x1cccccccc)
++#define MSEC_TO_HZ_SHR32        33
++#define MSEC_TO_HZ_NUM          U64_C(3)
++#define MSEC_TO_HZ_DEN          U64_C(10)
++#define HZ_TO_USEC_MUL32        U64_C(0xd0555556)
++#define HZ_TO_USEC_ADJ32        U64_C(0xaaaaa)
++#define HZ_TO_USEC_SHR32        20
++#define HZ_TO_USEC_NUM          U64_C(10000)
++#define HZ_TO_USEC_DEN          U64_C(3)
++#define USEC_TO_HZ_MUL32        U64_C(0x9d495183)
++#define USEC_TO_HZ_ADJ32        U64_C(0x7ffcb923a29)
++#define USEC_TO_HZ_SHR32        43
++#define USEC_TO_HZ_NUM          U64_C(3)
++#define USEC_TO_HZ_DEN          U64_C(10000)
++
++#elif HZ == 512
++#define HZ_TO_MSEC_MUL32        U64_C(0xfa000000)
++#define HZ_TO_MSEC_ADJ32        U64_C(0x7e000000)
++#define HZ_TO_MSEC_SHR32        31
++#define HZ_TO_MSEC_NUM          U64_C(125)
++#define HZ_TO_MSEC_DEN          U64_C(64)
++#define MSEC_TO_HZ_MUL32        U64_C(0x83126e98)
++#define MSEC_TO_HZ_ADJ32        U64_C(0xfdf3b645)
++#define MSEC_TO_HZ_SHR32        32
++#define MSEC_TO_HZ_NUM          U64_C(64)
++#define MSEC_TO_HZ_DEN          U64_C(125)
++#define HZ_TO_USEC_MUL32        U64_C(0xf4240000)
++#define HZ_TO_USEC_ADJ32        U64_C(0x1c0000)
++#define HZ_TO_USEC_SHR32        21
++#define HZ_TO_USEC_NUM          U64_C(15625)
++#define HZ_TO_USEC_DEN          U64_C(8)
++#define USEC_TO_HZ_MUL32        U64_C(0x8637bd06)
++#define USEC_TO_HZ_ADJ32        U64_C(0x3ffef39085f)
++#define USEC_TO_HZ_SHR32        42
++#define USEC_TO_HZ_NUM          U64_C(8)
++#define USEC_TO_HZ_DEN          U64_C(15625)
++
++#elif HZ == 1000
++#define HZ_TO_MSEC_MUL32        U64_C(0x80000000)
++#define HZ_TO_MSEC_ADJ32        U64_C(0x0)
++#define HZ_TO_MSEC_SHR32        31
++#define HZ_TO_MSEC_NUM          U64_C(1)
++#define HZ_TO_MSEC_DEN          U64_C(1)
++#define MSEC_TO_HZ_MUL32        U64_C(0x80000000)
++#define MSEC_TO_HZ_ADJ32        U64_C(0x0)
++#define MSEC_TO_HZ_SHR32        31
++#define MSEC_TO_HZ_NUM          U64_C(1)
++#define MSEC_TO_HZ_DEN          U64_C(1)
++#define HZ_TO_USEC_MUL32        U64_C(0xfa000000)
++#define HZ_TO_USEC_ADJ32        U64_C(0x0)
++#define HZ_TO_USEC_SHR32        22
++#define HZ_TO_USEC_NUM          U64_C(1000)
++#define HZ_TO_USEC_DEN          U64_C(1)
++#define USEC_TO_HZ_MUL32        U64_C(0x83126e98)
++#define USEC_TO_HZ_ADJ32        U64_C(0x1ff7ced9168)
++#define USEC_TO_HZ_SHR32        41
++#define USEC_TO_HZ_NUM          U64_C(1)
++#define USEC_TO_HZ_DEN          U64_C(1000)
++
++#elif HZ == 1024
++#define HZ_TO_MSEC_MUL32        U64_C(0xfa000000)
++#define HZ_TO_MSEC_ADJ32        U64_C(0xfe000000)
++#define HZ_TO_MSEC_SHR32        32
++#define HZ_TO_MSEC_NUM          U64_C(125)
++#define HZ_TO_MSEC_DEN          U64_C(128)
++#define MSEC_TO_HZ_MUL32        U64_C(0x83126e98)
++#define MSEC_TO_HZ_ADJ32        U64_C(0x7ef9db22)
++#define MSEC_TO_HZ_SHR32        31
++#define MSEC_TO_HZ_NUM          U64_C(128)
++#define MSEC_TO_HZ_DEN          U64_C(125)
++#define HZ_TO_USEC_MUL32        U64_C(0xf4240000)
++#define HZ_TO_USEC_ADJ32        U64_C(0x3c0000)
++#define HZ_TO_USEC_SHR32        22
++#define HZ_TO_USEC_NUM          U64_C(15625)
++#define HZ_TO_USEC_DEN          U64_C(16)
++#define USEC_TO_HZ_MUL32        U64_C(0x8637bd06)
++#define USEC_TO_HZ_ADJ32        U64_C(0x1fff79c842f)
++#define USEC_TO_HZ_SHR32        41
++#define USEC_TO_HZ_NUM          U64_C(16)
++#define USEC_TO_HZ_DEN          U64_C(15625)
++
++#elif HZ == 1200
++#define HZ_TO_MSEC_MUL32        U64_C(0xd5555556)
++#define HZ_TO_MSEC_ADJ32        U64_C(0xd5555555)
++#define HZ_TO_MSEC_SHR32        32
++#define HZ_TO_MSEC_NUM          U64_C(5)
++#define HZ_TO_MSEC_DEN          U64_C(6)
++#define MSEC_TO_HZ_MUL32        U64_C(0x9999999a)
++#define MSEC_TO_HZ_ADJ32        U64_C(0x66666666)
++#define MSEC_TO_HZ_SHR32        31
++#define MSEC_TO_HZ_NUM          U64_C(6)
++#define MSEC_TO_HZ_DEN          U64_C(5)
++#define HZ_TO_USEC_MUL32        U64_C(0xd0555556)
++#define HZ_TO_USEC_ADJ32        U64_C(0x2aaaaa)
++#define HZ_TO_USEC_SHR32        22
++#define HZ_TO_USEC_NUM          U64_C(2500)
++#define HZ_TO_USEC_DEN          U64_C(3)
++#define USEC_TO_HZ_MUL32        U64_C(0x9d495183)
++#define USEC_TO_HZ_ADJ32        U64_C(0x1ffcb923a29)
++#define USEC_TO_HZ_SHR32        41
++#define USEC_TO_HZ_NUM          U64_C(3)
++#define USEC_TO_HZ_DEN          U64_C(2500)
++
++#elif 1
++#error "kernel/timeconst.h has unknown HZ value!"
++#endif
++
++#endif /* KERNEL_TIMECONST_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sources/patches/alt-linux-ppcqemu.patch	Fri Oct 10 02:43:44 2008 -0500
@@ -0,0 +1,1633 @@
+From miltonm@bga.com Sat Sep 22 09:08:31 2007
+From: Milton Miller <miltonm@bga.com>
+Subject: [PATCH 1/2] qemu platform, v2
+Date: Sat, 22 Sep 2007 09:08:31 +1000
+X-Patchwork-ID: 13689
+
+Here is the second rev of patches to boot a arch powerpc kernel on
+qemu with the prep architecture.
+
+The goal is to provide an environment for use with the existing qemu
+hardware suppplied hardware, as oposed to changing the qemu
+machine description.
+
+This patch contains only the kernel portion.  While the diff was
+generated against for-2.6.24, this first patch applies cleanly
+to 2.6.23-rc7.  With the rom image created in the next patch,
+a kernel built by this patch should boot when using qemu -kernel.
+
+I debated putting this in the embedded6xx tree, especially when I
+discovered that the bridge is suposedly a '105, but saw no advantage
+in the end.
+
+pci config space is now working, however cirrusfb causes crashes
+and ohci times out, so at least pci memory is likely still broken.
+
+ide and serial work, floppy and parallel are untested.
+
+I added a defconfig based on chrp32; hardware options still need
+tweaking (eg isa ne2k).
+
+
+---
+Index: kernel/arch/powerpc/platforms/Kconfig
+===================================================================
+--- kernel.orig/arch/powerpc/platforms/Kconfig	2007-09-19 02:32:54.000000000 -0500
++++ kernel/arch/powerpc/platforms/Kconfig	2007-09-19 02:41:00.000000000 -0500
+@@ -46,6 +46,7 @@ source "arch/powerpc/platforms/chrp/Kcon
+ source "arch/powerpc/platforms/52xx/Kconfig"
+ source "arch/powerpc/platforms/powermac/Kconfig"
+ source "arch/powerpc/platforms/prep/Kconfig"
++source "arch/powerpc/platforms/qemu/Kconfig"
+ source "arch/powerpc/platforms/maple/Kconfig"
+ source "arch/powerpc/platforms/pasemi/Kconfig"
+ source "arch/powerpc/platforms/ps3/Kconfig"
+Index: kernel/arch/powerpc/platforms/qemu/Kconfig
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ kernel/arch/powerpc/platforms/qemu/Kconfig	2007-09-20 14:12:57.000000000 -0500
+@@ -0,0 +1,10 @@
++config PPC_QEMU
++	bool "QEMU emulated PowerPC Reference Platform (PReP) system"
++	depends on PPC_MULTIPLATFORM && PPC32
++	select PPC_I8259
++	select PPC_INDIRECT_PCI
++	select PPC_UDBG_16550
++	select PPC_NATIVE
++	select WANT_DEVICE_TREE
++	default n
++
+Index: kernel/arch/powerpc/platforms/qemu/Makefile
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ kernel/arch/powerpc/platforms/qemu/Makefile	2007-09-19 02:41:00.000000000 -0500
+@@ -0,0 +1,2 @@
++obj-y			+= setup.o
++obj-$(CONFIG_PCI)	+= pci.o
+Index: kernel/arch/powerpc/platforms/qemu/pci.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ kernel/arch/powerpc/platforms/qemu/pci.c	2007-09-19 02:56:36.000000000 -0500
+@@ -0,0 +1,133 @@
++/*
++ * prep Port to arch/powerpc:
++ * Copyright 2007 David Gibson, IBM Corporation.
++ *
++ * prep Port to qemu:
++ * Copyright 2007 Milton Miller, IBM Corporation.
++ *
++ * Based on OpenHackware 0.4
++ * Copyright (c) 2004-2005 Jocelyn Mayer
++ *
++ * pci config based on arch/powerpc/platforms/chrp/pci.c GoldenGate code
++ *
++ */
++
++#include <linux/init.h>
++
++#include <asm/io.h>
++#include <asm/prom.h>
++#include <asm/pci-bridge.h>
++#include <asm/udbg.h>
++
++static volatile void __iomem *qemu_config_addr(struct pci_bus *bus,
++	unsigned int devfn, int off)
++{
++	int dev, fn;
++	struct pci_controller *hose = bus->sysdata;
++
++	if (!hose->cfg_data)
++		return NULL;
++
++	if (bus->number != 0)
++		return NULL;
++
++	dev = devfn >> 3;
++	fn = devfn & 7;
++
++	if (dev < 11 || dev > 21)
++		return NULL;
++
++	return hose->cfg_data + ((1 << dev) | (fn << 8) | off);
++}
++
++int qemu_read_config(struct pci_bus *bus, unsigned int devfn, int off,
++			   int len, u32 *val)
++{
++	volatile void __iomem *cfg_data = qemu_config_addr(bus, devfn, off);
++
++	if (cfg_data == NULL)
++		return PCIBIOS_DEVICE_NOT_FOUND;
++
++	/*
++	 * Note: the caller has already checked that off is
++	 * suitably aligned and that len is 1, 2 or 4.
++	 */
++	switch (len) {
++	case 1:
++		*val =  in_8(cfg_data);
++		break;
++	case 2:
++		*val = in_le16(cfg_data);
++		break;
++	default:
++		*val = in_le32(cfg_data);
++		break;
++	}
++	return PCIBIOS_SUCCESSFUL;
++}
++
++int qemu_write_config(struct pci_bus *bus, unsigned int devfn, int off,
++			    int len, u32 val)
++{
++	volatile void __iomem *cfg_data = qemu_config_addr(bus, devfn, off);
++
++	if (cfg_data == NULL)
++		return PCIBIOS_DEVICE_NOT_FOUND;
++
++	/*
++	 * Note: the caller has already checked that off is
++	 * suitably aligned and that len is 1, 2 or 4.
++	 */
++	switch (len) {
++	case 1:
++		out_8(cfg_data, val);
++		break;
++	case 2:
++		out_le16(cfg_data, val);
++		break;
++	default:
++		out_le32(cfg_data, val);
++		break;
++	}
++	return PCIBIOS_SUCCESSFUL;
++}
++
++static struct pci_ops qemu_pci_ops =
++{
++	qemu_read_config,
++	qemu_write_config
++};
++
++void __init qemu_find_bridges(void)
++{
++	struct device_node *phb;
++	struct pci_controller *hose;
++
++	phb = of_find_node_by_type(NULL, "pci");
++	if (!phb) {
++		printk(KERN_ERR "PReP: Cannot find PCI bridge OF node\n");
++		return;
++	}
++
++	hose = pcibios_alloc_controller(phb);
++	if (!hose)
++		return;
++
++	pci_process_bridge_OF_ranges(hose, phb, 1);
++
++#define PREP_PCI_DRAM_OFFSET 	0x80000000
++
++	pci_dram_offset = PREP_PCI_DRAM_OFFSET;
++	ISA_DMA_THRESHOLD = 0x00ffffff;
++	DMA_MODE_READ = 0x44;
++	DMA_MODE_WRITE = 0x48;
++
++	hose->cfg_data = ioremap(0x80800000, 1 << 22);
++
++	hose->ops = &qemu_pci_ops;
++
++	udbg_init_uart(hose->io_base_virt + 0x3f8, 0, 0);
++	register_early_udbg_console();
++	printk(KERN_INFO "qemu_find_bridges: config at %p\n", hose->cfg_data);
++}
++
+Index: kernel/arch/powerpc/platforms/qemu/setup.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ kernel/arch/powerpc/platforms/qemu/setup.c	2007-09-19 02:41:00.000000000 -0500
+@@ -0,0 +1,178 @@
++/*
++ * Copyright (C) 1995  Linus Torvalds
++ * Adapted from 'alpha' version by Gary Thomas
++ * Modified by Cort Dougan (cort@cs.nmt.edu)
++ *
++ * Support for PReP (Motorola MTX/MVME)
++ * by Troy Benjegerdes (hozer@drgw.net)
++ *
++ * Port to arch/powerpc:
++ * Copyright 2007 David Gibson, IBM Corporation.
++ *
++ * Port to qemu:
++ * Copyright 2007 Milton Miller, IBM Corporation.
++ *
++ * Some information based on OpenHackware 0.4
++ * Copyright (c) 2004-2005 Jocelyn Mayer
++ *
++ */
++
++#include <linux/init.h>
++#include <linux/seq_file.h>
++#include <linux/initrd.h>
++#include <linux/ide.h>
++
++#include <asm/io.h>
++#include <asm/prom.h>
++#include <asm/pci-bridge.h>
++/* #include <asm/mpic.h> */
++#include <asm/i8259.h>
++#include <asm/time.h>
++#include <asm/udbg.h>
++
++static const char *qemu_model = "(unknown)";
++
++extern void qemu_find_bridges(void);
++
++/* cpuinfo code common to all IBM PReP */
++static void qemu_ibm_cpuinfo(struct seq_file *m)
++{
++	seq_printf(m, "machine\t\t: PReP %s\n", qemu_model);
++}
++
++#define NVRAM_AS0 0x74
++#define NVRAM_AS1 0x75
++#define NVRAM_DAT 0x77
++
++static unsigned char qemu_nvram_read_val(int addr)
++{
++	outb(NVRAM_AS0, addr & 0xff);
++	outb(NVRAM_AS1, (addr >> 8) & 0xff);
++	return inb(NVRAM_DAT);
++}
++
++
++static void qemu_nvram_write_val(int addr, unsigned char val)
++{
++	outb(NVRAM_AS0, addr & 0xff);
++	outb(NVRAM_AS1, (addr >> 8) & 0xff);
++	outb(NVRAM_DAT, val);
++}
++
++
++static void __init qemu_setup_arch(void)
++{
++	struct device_node *root;
++	const char *model;
++
++	root = of_find_node_by_path("/");
++	model = of_get_property(root, "model", NULL);
++	of_node_put(root);
++	if (model)
++		qemu_model = model;
++
++	/* Lookup PCI host bridges */
++	qemu_find_bridges();
++
++	/* Read in NVRAM data */
++/* 	init_qemu_nvram(); */
++}
++
++static void __init qemu_init_IRQ(void)
++{
++	struct device_node *pic = NULL;
++	unsigned long int_ack = 0;
++
++	pic = of_find_node_by_type(NULL, "i8259");
++	if (!pic) {
++		printk(KERN_ERR "No interrupt controller found!\n");
++		return;
++	}
++
++	/* polling */
++	i8259_init(pic, int_ack);
++	//ppc_md.get_irq = i8259_irq;
++
++	/* set default host */
++	irq_set_default_host(i8259_get_host());
++}
++
++#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
++/*
++ * IDE stuff.
++ */
++static int qemu_ide_default_irq(unsigned long base)
++{
++	switch (base) {
++	case 0x1f0: return 13;
++	case 0x170: return 13;
++	case 0x1e8: return 11;
++	case 0x168: return 10;
++	case 0xfff0: return 14;		/* MCP(N)750 ide0 */
++	case 0xffe0: return 15;		/* MCP(N)750 ide1 */
++	default: return 0;
++	}
++}
++
++static unsigned long qemu_ide_default_io_base(int index)
++{
++	switch (index) {
++	case 0: return 0x1f0;
++	case 1: return 0x170;
++	case 2: return 0x1e8;
++	case 3: return 0x168;
++	default:
++		return 0;
++	}
++}
++#endif
++
++#if 0
++static int __init prep_request_io(void)
++{
++#ifdef CONFIG_NVRAM
++	request_region(PREP_NVRAM_AS0, 0x8, "nvram");
++#endif
++	request_region(0x00,0x20,"dma1");
++	request_region(0x40,0x20,"timer");
++	request_region(0x80,0x10,"dma page reg");
++	request_region(0xc0,0x20,"dma2");
++
++	return 0;
++}
++device_initcall(prep_request_io);
++#endif
++
++
++static int __init qemu_probe(void)
++{
++	if (!of_flat_dt_is_compatible(of_get_flat_dt_root(), "qemu-prep"))
++		return 0;
++
++#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
++//	ppc_ide_md.default_irq = qemu_ide_default_irq;
++//	ppc_ide_md.default_io_base = qemu_ide_default_io_base;
++#endif
++
++	return 1;
++}
++
++define_machine(qemu) {
++	.name			= "QEMU",
++	.probe			= qemu_probe,
++	.setup_arch		= qemu_setup_arch,
++	.progress		= udbg_progress,
++	.show_cpuinfo		= qemu_ibm_cpuinfo,
++	.init_IRQ		= qemu_init_IRQ,
++/* 	.pcibios_fixup		= qemu_pcibios_fixup, */
++/*	.restart		= qemu_restart, */
++/*	.power_off		= qemu_halt, */
++/*	.halt			= qemu_halt, */
++/* 	.time_init		= todc_time_init, */
++/* 	.set_rtc_time		= todc_set_rtc_time, */
++/* 	.get_rtc_time		= todc_get_rtc_time, */
++	.calibrate_decr		= generic_calibrate_decr,
++ 	.nvram_read_val		= qemu_nvram_read_val,
++ 	.nvram_write_val	= qemu_nvram_write_val,
++	.phys_mem_access_prot	= pci_phys_mem_access_prot,
++};
+Index: kernel/arch/powerpc/platforms/Makefile
+===================================================================
+--- kernel.orig/arch/powerpc/platforms/Makefile	2007-09-19 02:32:54.000000000 -0500
++++ kernel/arch/powerpc/platforms/Makefile	2007-09-19 02:41:00.000000000 -0500
+@@ -17,6 +17,7 @@ obj-$(CONFIG_PPC_82xx)		+= 82xx/
+ obj-$(CONFIG_PPC_83xx)		+= 83xx/
+ obj-$(CONFIG_PPC_85xx)		+= 85xx/
+ obj-$(CONFIG_PPC_86xx)		+= 86xx/
++obj-$(CONFIG_PPC_QEMU)		+= qemu/
+ obj-$(CONFIG_PPC_PSERIES)	+= pseries/
+ obj-$(CONFIG_PPC_ISERIES)	+= iseries/
+ obj-$(CONFIG_PPC_MAPLE)		+= maple/
+Index: kernel/arch/powerpc/configs/qemu_defconfig
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ kernel/arch/powerpc/configs/qemu_defconfig	2007-09-19 02:41:00.000000000 -0500
+@@ -0,0 +1,1217 @@
++#
++# Automatically generated make config: don't edit
++# Linux kernel version: 2.6.23-rc6
++# Tue Sep 18 15:18:32 2007
++#
++# CONFIG_PPC64 is not set
++
++#
++# Processor support
++#
++CONFIG_6xx=y
++# CONFIG_PPC_85xx is not set
++# CONFIG_PPC_8xx is not set
++# CONFIG_40x is not set
++# CONFIG_44x is not set
++# CONFIG_E200 is not set
++CONFIG_PPC_FPU=y
++# CONFIG_ALTIVEC is not set
++CONFIG_PPC_STD_MMU=y
++CONFIG_PPC_STD_MMU_32=y
++# CONFIG_PPC_MM_SLICES is not set
++# CONFIG_SMP is not set
++CONFIG_PPC32=y
++CONFIG_PPC_MERGE=y
++CONFIG_MMU=y
++CONFIG_GENERIC_HARDIRQS=y
++CONFIG_IRQ_PER_CPU=y
++CONFIG_RWSEM_XCHGADD_ALGORITHM=y
++CONFIG_ARCH_HAS_ILOG2_U32=y
++CONFIG_GENERIC_HWEIGHT=y
++CONFIG_GENERIC_CALIBRATE_DELAY=y
++CONFIG_GENERIC_FIND_NEXT_BIT=y
++# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
++CONFIG_PPC=y
++CONFIG_EARLY_PRINTK=y
++CONFIG_GENERIC_NVRAM=y
++CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
++CONFIG_ARCH_MAY_HAVE_PC_FDC=y
++CONFIG_PPC_OF=y
++CONFIG_OF=y
++CONFIG_PPC_UDBG_16550=y
++# CONFIG_GENERIC_TBSYNC is not set
++CONFIG_AUDIT_ARCH=y
++CONFIG_GENERIC_BUG=y
++# CONFIG_DEFAULT_UIMAGE is not set
++# CONFIG_PPC_DCR_NATIVE is not set
++# CONFIG_PPC_DCR_MMIO is not set
++CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
++
++#
++# General setup
++#
++CONFIG_EXPERIMENTAL=y
++CONFIG_BROKEN_ON_SMP=y
++CONFIG_INIT_ENV_ARG_LIMIT=32
++CONFIG_LOCALVERSION=""
++# CONFIG_LOCALVERSION_AUTO is not set
++CONFIG_SWAP=y
++CONFIG_SYSVIPC=y
++CONFIG_SYSVIPC_SYSCTL=y
++CONFIG_POSIX_MQUEUE=y
++# CONFIG_BSD_PROCESS_ACCT is not set
++# CONFIG_TASKSTATS is not set
++# CONFIG_USER_NS is not set
++# CONFIG_AUDIT is not set
++CONFIG_IKCONFIG=y
++CONFIG_IKCONFIG_PROC=y
++CONFIG_LOG_BUF_SHIFT=15
++CONFIG_SYSFS_DEPRECATED=y
++# CONFIG_RELAY is not set
++CONFIG_BLK_DEV_INITRD=y
++CONFIG_INITRAMFS_SOURCE=""
++# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
++CONFIG_SYSCTL=y
++# CONFIG_EMBEDDED is not set
++CONFIG_SYSCTL_SYSCALL=y
++CONFIG_KALLSYMS=y
++# CONFIG_KALLSYMS_ALL is not set
++# CONFIG_KALLSYMS_EXTRA_PASS is not set
++CONFIG_HOTPLUG=y
++CONFIG_PRINTK=y
++CONFIG_BUG=y
++CONFIG_ELF_CORE=y
++CONFIG_BASE_FULL=y
++CONFIG_FUTEX=y
++CONFIG_ANON_INODES=y
++CONFIG_EPOLL=y
++CONFIG_SIGNALFD=y
++CONFIG_TIMERFD=y
++CONFIG_EVENTFD=y
++CONFIG_SHMEM=y
++CONFIG_VM_EVENT_COUNTERS=y
++CONFIG_SLAB=y
++# CONFIG_SLUB is not set
++# CONFIG_SLOB is not set
++CONFIG_RT_MUTEXES=y
++# CONFIG_TINY_SHMEM is not set
++CONFIG_BASE_SMALL=0
++CONFIG_MODULES=y
++CONFIG_MODULE_UNLOAD=y
++CONFIG_MODULE_FORCE_UNLOAD=y
++# CONFIG_MODVERSIONS is not set
++# CONFIG_MODULE_SRCVERSION_ALL is not set
++CONFIG_KMOD=y
++CONFIG_BLOCK=y
++CONFIG_LBD=y
++# CONFIG_BLK_DEV_IO_TRACE is not set
++# CONFIG_LSF is not set
++# CONFIG_BLK_DEV_BSG is not set
++
++#
++# IO Schedulers
++#
++CONFIG_IOSCHED_NOOP=y
++CONFIG_IOSCHED_AS=y
++CONFIG_IOSCHED_DEADLINE=y
++CONFIG_IOSCHED_CFQ=y
++CONFIG_DEFAULT_AS=y
++# CONFIG_DEFAULT_DEADLINE is not set
++# CONFIG_DEFAULT_CFQ is not set
++# CONFIG_DEFAULT_NOOP is not set
++CONFIG_DEFAULT_IOSCHED="anticipatory"
++
++#
++# Platform support
++#
++CONFIG_PPC_MULTIPLATFORM=y
++# CONFIG_EMBEDDED6xx is not set
++# CONFIG_PPC_82xx is not set
++# CONFIG_PPC_83xx is not set
++# CONFIG_PPC_86xx is not set
++CONFIG_CLASSIC32=y
++# CONFIG_PPC_CHRP is not set
++# CONFIG_PPC_MPC52xx is not set
++# CONFIG_PPC_MPC5200 is not set
++# CONFIG_PPC_EFIKA is not set
++# CONFIG_PPC_LITE5200 is not set
++# CONFIG_PPC_PMAC is not set
++CONFIG_PPC_QEMU=y
++# CONFIG_PPC_CELL is not set
++# CONFIG_PPC_CELL_NATIVE is not set
++# CONFIG_PQ2ADS is not set
++CONFIG_PPC_NATIVE=y
++# CONFIG_MPIC is not set
++# CONFIG_MPIC_WEIRD is not set
++CONFIG_PPC_I8259=y
++# CONFIG_PPC_RTAS is not set
++# CONFIG_MMIO_NVRAM is not set
++# CONFIG_PPC_MPC106 is not set
++# CONFIG_PPC_970_NAP is not set
++# CONFIG_PPC_INDIRECT_IO is not set
++# CONFIG_GENERIC_IOMAP is not set
++# CONFIG_CPU_FREQ is not set
++# CONFIG_TAU is not set
++# CONFIG_CPM2 is not set
++# CONFIG_FSL_ULI1575 is not set
++
++#
++# Kernel options
++#
++CONFIG_HIGHMEM=y
++# CONFIG_HZ_100 is not set
++CONFIG_HZ_250=y
++# CONFIG_HZ_300 is not set
++# CONFIG_HZ_1000 is not set
++CONFIG_HZ=250
++CONFIG_PREEMPT_NONE=y
++# CONFIG_PREEMPT_VOLUNTARY is not set
++# CONFIG_PREEMPT is not set
++CONFIG_BINFMT_ELF=y
++CONFIG_BINFMT_MISC=y
++CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
++# CONFIG_KEXEC is not set
++CONFIG_ARCH_FLATMEM_ENABLE=y
++CONFIG_ARCH_POPULATES_NODE_MAP=y
++CONFIG_SELECT_MEMORY_MODEL=y
++CONFIG_FLATMEM_MANUAL=y
++# CONFIG_DISCONTIGMEM_MANUAL is not set
++# CONFIG_SPARSEMEM_MANUAL is not set
++CONFIG_FLATMEM=y
++CONFIG_FLAT_NODE_MEM_MAP=y
++# CONFIG_SPARSEMEM_STATIC is not set
++CONFIG_SPLIT_PTLOCK_CPUS=4
++# CONFIG_RESOURCES_64BIT is not set
++CONFIG_ZONE_DMA_FLAG=1
++CONFIG_BOUNCE=y
++CONFIG_VIRT_TO_BUS=y
++CONFIG_PROC_DEVICETREE=y
++# CONFIG_CMDLINE_BOOL is not set
++# CONFIG_PM is not set
++CONFIG_SUSPEND_UP_POSSIBLE=y
++CONFIG_HIBERNATION_UP_POSSIBLE=y
++CONFIG_SECCOMP=y
++CONFIG_WANT_DEVICE_TREE=y
++CONFIG_DEVICE_TREE="qemu.dts"
++CONFIG_ISA_DMA_API=y
++
++#
++# Bus options
++#
++CONFIG_ZONE_DMA=y
++CONFIG_GENERIC_ISA_DMA=y
++CONFIG_PPC_INDIRECT_PCI=y
++CONFIG_PCI=y
++CONFIG_PCI_DOMAINS=y
++CONFIG_PCI_SYSCALL=y
++# CONFIG_PCIEPORTBUS is not set
++CONFIG_ARCH_SUPPORTS_MSI=y
++# CONFIG_PCI_MSI is not set
++# CONFIG_PCI_DEBUG is not set
++
++#
++# PCCARD (PCMCIA/CardBus) support
++#
++# CONFIG_PCCARD is not set
++# CONFIG_HOTPLUG_PCI is not set
++
++#
++# Advanced setup
++#
++# CONFIG_ADVANCED_OPTIONS is not set
++
++#
++# Default settings for advanced configuration options are used
++#
++CONFIG_HIGHMEM_START=0xfe000000
++CONFIG_LOWMEM_SIZE=0x30000000
++CONFIG_KERNEL_START=0xc0000000
++CONFIG_TASK_SIZE=0x80000000
++CONFIG_BOOT_LOAD=0x00800000
++
++#
++# Networking
++#
++CONFIG_NET=y
++
++#
++# Networking options
++#
++CONFIG_PACKET=y
++# CONFIG_PACKET_MMAP is not set
++CONFIG_UNIX=y
++# CONFIG_NET_KEY is not set
++CONFIG_INET=y
++CONFIG_IP_MULTICAST=y
++# CONFIG_IP_ADVANCED_ROUTER is not set
++CONFIG_IP_FIB_HASH=y
++# CONFIG_IP_PNP is not set
++# CONFIG_NET_IPIP is not set
++# CONFIG_NET_IPGRE is not set
++# CONFIG_IP_MROUTE is not set
++# CONFIG_ARPD is not set
++CONFIG_SYN_COOKIES=y
++# CONFIG_INET_AH is not set
++# CONFIG_INET_ESP is not set
++# CONFIG_INET_IPCOMP is not set
++# CONFIG_INET_XFRM_TUNNEL is not set
++# CONFIG_INET_TUNNEL is not set
++# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
++# CONFIG_INET_XFRM_MODE_TUNNEL is not set
++# CONFIG_INET_XFRM_MODE_BEET is not set
++CONFIG_INET_DIAG=y
++CONFIG_INET_TCP_DIAG=y
++# CONFIG_TCP_CONG_ADVANCED is not set
++CONFIG_TCP_CONG_CUBIC=y
++CONFIG_DEFAULT_TCP_CONG="cubic"
++# CONFIG_TCP_MD5SIG is not set
++# CONFIG_IP_VS is not set
++# CONFIG_IPV6 is not set
++# CONFIG_INET6_XFRM_TUNNEL is not set
++# CONFIG_INET6_TUNNEL is not set
++# CONFIG_NETWORK_SECMARK is not set
++CONFIG_NETFILTER=y
++# CONFIG_NETFILTER_DEBUG is not set
++
++#
++# Core Netfilter Configuration
++#
++# CONFIG_NETFILTER_NETLINK is not set
++CONFIG_NF_CONNTRACK_ENABLED=m
++CONFIG_NF_CONNTRACK=m
++# CONFIG_NF_CT_ACCT is not set
++# CONFIG_NF_CONNTRACK_MARK is not set
++# CONFIG_NF_CONNTRACK_EVENTS is not set
++# CONFIG_NF_CT_PROTO_SCTP is not set
++# CONFIG_NF_CT_PROTO_UDPLITE is not set
++# CONFIG_NF_CONNTRACK_AMANDA is not set
++CONFIG_NF_CONNTRACK_FTP=m
++# CONFIG_NF_CONNTRACK_H323 is not set
++CONFIG_NF_CONNTRACK_IRC=m
++# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
++# CONFIG_NF_CONNTRACK_PPTP is not set
++# CONFIG_NF_CONNTRACK_SANE is not set
++CONFIG_NF_CONNTRACK_SIP=m
++CONFIG_NF_CONNTRACK_TFTP=m
++CONFIG_NETFILTER_XTABLES=m
++# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
++# CONFIG_NETFILTER_XT_TARGET_MARK is not set
++# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
++# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
++# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
++# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
++# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
++# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
++# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
++# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
++# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
++# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
++# CONFIG_NETFILTER_XT_MATCH_ESP is not set
++# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
++# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
++# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
++# CONFIG_NETFILTER_XT_MATCH_MAC is not set
++# CONFIG_NETFILTER_XT_MATCH_MARK is not set
++# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
++# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
++# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
++# CONFIG_NETFILTER_XT_MATCH_REALM is not set
++# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
++# CONFIG_NETFILTER_XT_MATCH_STATE is not set
++# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
++# CONFIG_NETFILTER_XT_MATCH_STRING is not set
++# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
++# CONFIG_NETFILTER_XT_MATCH_U32 is not set
++# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
++
++#
++# IP: Netfilter Configuration
++#
++CONFIG_NF_CONNTRACK_IPV4=m
++CONFIG_NF_CONNTRACK_PROC_COMPAT=y
++# CONFIG_IP_NF_QUEUE is not set
++CONFIG_IP_NF_IPTABLES=m
++# CONFIG_IP_NF_MATCH_IPRANGE is not set
++# CONFIG_IP_NF_MATCH_TOS is not set
++# CONFIG_IP_NF_MATCH_RECENT is not set
++# CONFIG_IP_NF_MATCH_ECN is not set
++# CONFIG_IP_NF_MATCH_AH is not set
++# CONFIG_IP_NF_MATCH_TTL is not set
++# CONFIG_IP_NF_MATCH_OWNER is not set
++# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
++CONFIG_IP_NF_FILTER=m
++CONFIG_IP_NF_TARGET_REJECT=m
++CONFIG_IP_NF_TARGET_LOG=m
++# CONFIG_IP_NF_TARGET_ULOG is not set
++CONFIG_NF_NAT=m
++CONFIG_NF_NAT_NEEDED=y
++CONFIG_IP_NF_TARGET_MASQUERADE=m
++CONFIG_IP_NF_TARGET_REDIRECT=m
++# CONFIG_IP_NF_TARGET_NETMAP is not set
++# CONFIG_IP_NF_TARGET_SAME is not set
++# CONFIG_NF_NAT_SNMP_BASIC is not set
++CONFIG_NF_NAT_FTP=m
++CONFIG_NF_NAT_IRC=m
++CONFIG_NF_NAT_TFTP=m
++# CONFIG_NF_NAT_AMANDA is not set
++# CONFIG_NF_NAT_PPTP is not set
++# CONFIG_NF_NAT_H323 is not set
++CONFIG_NF_NAT_SIP=m
++# CONFIG_IP_NF_MANGLE is not set
++# CONFIG_IP_NF_RAW is not set
++# CONFIG_IP_NF_ARPTABLES is not set
++# CONFIG_IP_DCCP is not set
++# CONFIG_IP_SCTP is not set
++# CONFIG_TIPC is not set
++# CONFIG_ATM is not set
++# CONFIG_BRIDGE is not set
++# CONFIG_VLAN_8021Q is not set
++# CONFIG_DECNET is not set
++# CONFIG_LLC2 is not set
++# CONFIG_IPX is not set
++# CONFIG_ATALK is not set
++# CONFIG_X25 is not set
++# CONFIG_LAPB is not set
++# CONFIG_ECONET is not set
++# CONFIG_WAN_ROUTER is not set
++
++#
++# QoS and/or fair queueing
++#
++# CONFIG_NET_SCHED is not set
++
++#
++# Network testing
++#
++# CONFIG_NET_PKTGEN is not set
++# CONFIG_HAMRADIO is not set
++# CONFIG_IRDA is not set
++# CONFIG_BT is not set
++# CONFIG_AF_RXRPC is not set
++
++#
++# Wireless
++#
++# CONFIG_CFG80211 is not set
++# CONFIG_WIRELESS_EXT is not set
++# CONFIG_MAC80211 is not set
++# CONFIG_IEEE80211 is not set
++# CONFIG_RFKILL is not set
++# CONFIG_NET_9P is not set
++
++#
++# Device Drivers
++#
++
++#
++# Generic Driver Options
++#
++# CONFIG_STANDALONE is not set
++CONFIG_PREVENT_FIRMWARE_BUILD=y
++# CONFIG_FW_LOADER is not set
++# CONFIG_DEBUG_DRIVER is not set
++# CONFIG_DEBUG_DEVRES is not set
++# CONFIG_SYS_HYPERVISOR is not set
++# CONFIG_CONNECTOR is not set
++# CONFIG_MTD is not set
++CONFIG_OF_DEVICE=y
++# CONFIG_PARPORT is not set
++CONFIG_BLK_DEV=y
++CONFIG_BLK_DEV_FD=y
++# CONFIG_BLK_CPQ_DA is not set
++# CONFIG_BLK_CPQ_CISS_DA is not set
++# CONFIG_BLK_DEV_DAC960 is not set
++# CONFIG_BLK_DEV_UMEM is not set
++# CONFIG_BLK_DEV_COW_COMMON is not set
++CONFIG_BLK_DEV_LOOP=y
++# CONFIG_BLK_DEV_CRYPTOLOOP is not set
++# CONFIG_BLK_DEV_NBD is not set
++# CONFIG_BLK_DEV_SX8 is not set
++# CONFIG_BLK_DEV_UB is not set
++CONFIG_BLK_DEV_RAM=y
++CONFIG_BLK_DEV_RAM_COUNT=16
++CONFIG_BLK_DEV_RAM_SIZE=4096
++CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
++# CONFIG_CDROM_PKTCDVD is not set
++# CONFIG_ATA_OVER_ETH is not set
++CONFIG_MISC_DEVICES=y
++# CONFIG_PHANTOM is not set
++# CONFIG_EEPROM_93CX6 is not set
++# CONFIG_SGI_IOC4 is not set
++# CONFIG_TIFM_CORE is not set
++CONFIG_IDE=y
++CONFIG_BLK_DEV_IDE=y
++
++#
++# Please see Documentation/ide.txt for help/info on IDE drives
++#
++# CONFIG_BLK_DEV_IDE_SATA is not set
++CONFIG_BLK_DEV_IDEDISK=y
++CONFIG_IDEDISK_MULTI_MODE=y
++CONFIG_BLK_DEV_IDECD=y
++# CONFIG_BLK_DEV_IDETAPE is not set
++# CONFIG_BLK_DEV_IDEFLOPPY is not set
++# CONFIG_IDE_TASK_IOCTL is not set
++CONFIG_IDE_PROC_FS=y
++
++#
++# IDE chipset support/bugfixes
++#
++CONFIG_IDE_GENERIC=y
++CONFIG_BLK_DEV_IDEPCI=y
++CONFIG_IDEPCI_SHARE_IRQ=y
++CONFIG_IDEPCI_PCIBUS_ORDER=y
++# CONFIG_BLK_DEV_OFFBOARD is not set
++CONFIG_BLK_DEV_GENERIC=y
++# CONFIG_BLK_DEV_OPTI621 is not set
++CONFIG_BLK_DEV_IDEDMA_PCI=y
++# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
++# CONFIG_IDEDMA_ONLYDISK is not set
++# CONFIG_BLK_DEV_AEC62XX is not set
++# CONFIG_BLK_DEV_ALI15X3 is not set
++# CONFIG_BLK_DEV_AMD74XX is not set
++# CONFIG_BLK_DEV_CMD64X is not set
++# CONFIG_BLK_DEV_TRIFLEX is not set
++# CONFIG_BLK_DEV_CY82C693 is not set
++# CONFIG_BLK_DEV_CS5520 is not set
++# CONFIG_BLK_DEV_CS5530 is not set
++# CONFIG_BLK_DEV_HPT34X is not set
++# CONFIG_BLK_DEV_HPT366 is not set
++# CONFIG_BLK_DEV_JMICRON is not set
++# CONFIG_BLK_DEV_SC1200 is not set
++# CONFIG_BLK_DEV_PIIX is not set
++# CONFIG_BLK_DEV_IT8213 is not set
++# CONFIG_BLK_DEV_IT821X is not set
++# CONFIG_BLK_DEV_NS87415 is not set
++# CONFIG_BLK_DEV_PDC202XX_OLD is not set
++# CONFIG_BLK_DEV_PDC202XX_NEW is not set
++# CONFIG_BLK_DEV_SVWKS is not set
++# CONFIG_BLK_DEV_SIIMAGE is not set
++# CONFIG_BLK_DEV_SL82C105 is not set
++# CONFIG_BLK_DEV_SLC90E66 is not set
++# CONFIG_BLK_DEV_TRM290 is not set
++# CONFIG_BLK_DEV_VIA82CXXX is not set
++# CONFIG_BLK_DEV_TC86C001 is not set
++# CONFIG_IDE_ARM is not set
++CONFIG_BLK_DEV_IDEDMA=y
++# CONFIG_IDEDMA_IVB is not set
++# CONFIG_BLK_DEV_HD is not set
++
++#
++# SCSI device support
++#
++# CONFIG_RAID_ATTRS is not set
++# CONFIG_SCSI is not set
++# CONFIG_SCSI_DMA is not set
++# CONFIG_SCSI_NETLINK is not set
++# CONFIG_ATA is not set
++# CONFIG_MD is not set
++
++#
++# Fusion MPT device support
++#
++# CONFIG_FUSION is not set
++
++#
++# IEEE 1394 (FireWire) support
++#
++# CONFIG_FIREWIRE is not set
++# CONFIG_IEEE1394 is not set
++# CONFIG_I2O is not set
++# CONFIG_MACINTOSH_DRIVERS is not set
++CONFIG_NETDEVICES=y
++# CONFIG_NETDEVICES_MULTIQUEUE is not set
++# CONFIG_DUMMY is not set
++# CONFIG_BONDING is not set
++# CONFIG_MACVLAN is not set
++# CONFIG_EQUALIZER is not set
++# CONFIG_TUN is not set
++# CONFIG_ARCNET is not set
++# CONFIG_PHYLIB is not set
++CONFIG_NET_ETHERNET=y
++CONFIG_MII=y
++# CONFIG_HAPPYMEAL is not set
++# CONFIG_SUNGEM is not set
++# CONFIG_CASSINI is not set
++# CONFIG_NET_VENDOR_3COM is not set
++# CONFIG_NET_TULIP is not set
++# CONFIG_HP100 is not set
++CONFIG_NET_PCI=y
++CONFIG_PCNET32=y
++# CONFIG_PCNET32_NAPI is not set
++# CONFIG_AMD8111_ETH is not set
++# CONFIG_ADAPTEC_STARFIRE is not set
++# CONFIG_B44 is not set
++# CONFIG_FORCEDETH is not set
++# CONFIG_DGRS is not set
++# CONFIG_EEPRO100 is not set
++# CONFIG_E100 is not set
++# CONFIG_FEALNX is not set
++# CONFIG_NATSEMI is not set
++CONFIG_NE2K_PCI=m
++CONFIG_8139CP=y
++CONFIG_8139TOO=y
++# CONFIG_8139TOO_PIO is not set
++# CONFIG_8139TOO_TUNE_TWISTER is not set
++# CONFIG_8139TOO_8129 is not set
++# CONFIG_8139_OLD_RX_RESET is not set
++# CONFIG_SIS900 is not set
++# CONFIG_EPIC100 is not set
++# CONFIG_SUNDANCE is not set
++# CONFIG_TLAN is not set
++# CONFIG_VIA_RHINE is not set
++# CONFIG_SC92031 is not set
++# CONFIG_NETDEV_1000 is not set
++# CONFIG_NETDEV_10000 is not set
++# CONFIG_TR is not set
++
++#
++# Wireless LAN
++#
++# CONFIG_WLAN_PRE80211 is not set
++# CONFIG_WLAN_80211 is not set
++
++#
++# USB Network Adapters
++#
++# CONFIG_USB_CATC is not set
++# CONFIG_USB_KAWETH is not set
++# CONFIG_USB_PEGASUS is not set
++# CONFIG_USB_RTL8150 is not set
++# CONFIG_USB_USBNET_MII is not set
++# CONFIG_USB_USBNET is not set
++# CONFIG_WAN is not set
++# CONFIG_FDDI is not set
++# CONFIG_HIPPI is not set
++CONFIG_PPP=m
++CONFIG_PPP_MULTILINK=y
++CONFIG_PPP_FILTER=y
++CONFIG_PPP_ASYNC=m
++CONFIG_PPP_SYNC_TTY=m
++CONFIG_PPP_DEFLATE=m
++CONFIG_PPP_BSDCOMP=m
++CONFIG_PPP_MPPE=m
++CONFIG_PPPOE=m
++# CONFIG_PPPOL2TP is not set
++# CONFIG_SLIP is not set
++CONFIG_SLHC=m
++# CONFIG_SHAPER is not set
++# CONFIG_NETCONSOLE is not set
++# CONFIG_NETPOLL is not set
++# CONFIG_NET_POLL_CONTROLLER is not set
++# CONFIG_ISDN is not set
++# CONFIG_PHONE is not set
++
++#
++# Input device support
++#
++CONFIG_INPUT=y
++# CONFIG_INPUT_FF_MEMLESS is not set
++# CONFIG_INPUT_POLLDEV is not set
++
++#
++# Userland interfaces
++#
++CONFIG_INPUT_MOUSEDEV=y
++CONFIG_INPUT_MOUSEDEV_PSAUX=y
++CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
++CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
++# CONFIG_INPUT_JOYDEV is not set
++CONFIG_INPUT_TSDEV=m
++CONFIG_INPUT_TSDEV_SCREEN_X=240
++CONFIG_INPUT_TSDEV_SCREEN_Y=320
++CONFIG_INPUT_EVDEV=y
++# CONFIG_INPUT_EVBUG is not set
++
++#
++# Input Device Drivers
++#
++CONFIG_INPUT_KEYBOARD=y
++CONFIG_KEYBOARD_ATKBD=y
++# CONFIG_KEYBOARD_SUNKBD is not set
++# CONFIG_KEYBOARD_LKKBD is not set
++# CONFIG_KEYBOARD_XTKBD is not set
++# CONFIG_KEYBOARD_NEWTON is not set
++# CONFIG_KEYBOARD_STOWAWAY is not set
++CONFIG_INPUT_MOUSE=y
++CONFIG_MOUSE_PS2=y
++CONFIG_MOUSE_PS2_ALPS=y
++CONFIG_MOUSE_PS2_LOGIPS2PP=y
++CONFIG_MOUSE_PS2_SYNAPTICS=y
++CONFIG_MOUSE_PS2_LIFEBOOK=y
++CONFIG_MOUSE_PS2_TRACKPOINT=y
++# CONFIG_MOUSE_PS2_TOUCHKIT is not set
++# CONFIG_MOUSE_SERIAL is not set
++# CONFIG_MOUSE_APPLETOUCH is not set
++# CONFIG_MOUSE_VSXXXAA is not set
++# CONFIG_INPUT_JOYSTICK is not set
++CONFIG_INPUT_TABLET=y
++# CONFIG_TABLET_USB_ACECAD is not set
++# CONFIG_TABLET_USB_AIPTEK is not set
++# CONFIG_TABLET_USB_GTCO is not set
++# CONFIG_TABLET_USB_KBTAB is not set
++# CONFIG_TABLET_USB_WACOM is not set
++# CONFIG_INPUT_TOUCHSCREEN is not set
++CONFIG_INPUT_MISC=y
++# CONFIG_INPUT_ATI_REMOTE is not set
++# CONFIG_INPUT_ATI_REMOTE2 is not set
++# CONFIG_INPUT_KEYSPAN_REMOTE is not set
++# CONFIG_INPUT_POWERMATE is not set
++# CONFIG_INPUT_YEALINK is not set
++CONFIG_INPUT_UINPUT=y
++
++#
++# Hardware I/O ports
++#
++CONFIG_SERIO=y
++CONFIG_SERIO_I8042=y
++# CONFIG_SERIO_SERPORT is not set
++# CONFIG_SERIO_PCIPS2 is not set
++CONFIG_SERIO_LIBPS2=y
++# CONFIG_SERIO_RAW is not set
++# CONFIG_GAMEPORT is not set
++
++#
++# Character devices
++#
++CONFIG_VT=y
++CONFIG_VT_CONSOLE=y
++CONFIG_HW_CONSOLE=y
++# CONFIG_VT_HW_CONSOLE_BINDING is not set
++# CONFIG_SERIAL_NONSTANDARD is not set
++
++#
++# Serial drivers
++#
++CONFIG_SERIAL_8250=y
++CONFIG_SERIAL_8250_CONSOLE=y
++CONFIG_SERIAL_8250_PCI=y
++CONFIG_SERIAL_8250_NR_UARTS=4
++CONFIG_SERIAL_8250_RUNTIME_UARTS=4
++# CONFIG_SERIAL_8250_EXTENDED is not set
++
++#
++# Non-8250 serial port support
++#
++# CONFIG_SERIAL_UARTLITE is not set
++CONFIG_SERIAL_CORE=y
++CONFIG_SERIAL_CORE_CONSOLE=y
++# CONFIG_SERIAL_JSM is not set
++# CONFIG_SERIAL_OF_PLATFORM is not set
++CONFIG_UNIX98_PTYS=y
++CONFIG_LEGACY_PTYS=y
++CONFIG_LEGACY_PTY_COUNT=256
++# CONFIG_IPMI_HANDLER is not set
++# CONFIG_WATCHDOG is not set
++CONFIG_HW_RANDOM=m
++CONFIG_NVRAM=y
++CONFIG_GEN_RTC=y
++# CONFIG_GEN_RTC_X is not set
++# CONFIG_R3964 is not set
++# CONFIG_APPLICOM is not set
++# CONFIG_AGP is not set
++# CONFIG_DRM is not set
++# CONFIG_RAW_DRIVER is not set
++# CONFIG_TCG_TPM is not set
++CONFIG_DEVPORT=y
++CONFIG_I2C=y
++CONFIG_I2C_BOARDINFO=y
++# CONFIG_I2C_CHARDEV is not set
++
++#
++# I2C Algorithms
++#
++CONFIG_I2C_ALGOBIT=y
++# CONFIG_I2C_ALGOPCF is not set
++# CONFIG_I2C_ALGOPCA is not set
++
++#
++# I2C Hardware Bus support
++#
++# CONFIG_I2C_ALI1535 is not set
++# CONFIG_I2C_ALI1563 is not set
++# CONFIG_I2C_ALI15X3 is not set
++# CONFIG_I2C_AMD756 is not set
++# CONFIG_I2C_AMD8111 is not set
++# CONFIG_I2C_I801 is not set
++# CONFIG_I2C_I810 is not set
++# CONFIG_I2C_PIIX4 is not set
++# CONFIG_I2C_MPC is not set
++# CONFIG_I2C_NFORCE2 is not set
++# CONFIG_I2C_OCORES is not set
++# CONFIG_I2C_PARPORT_LIGHT is not set
++# CONFIG_I2C_PROSAVAGE is not set
++# CONFIG_I2C_SAVAGE4 is not set
++# CONFIG_I2C_SIMTEC is not set
++# CONFIG_I2C_SIS5595 is not set
++# CONFIG_I2C_SIS630 is not set
++# CONFIG_I2C_SIS96X is not set
++# CONFIG_I2C_TAOS_EVM is not set
++# CONFIG_I2C_STUB is not set
++# CONFIG_I2C_TINY_USB is not set
++# CONFIG_I2C_VIA is not set
++# CONFIG_I2C_VIAPRO is not set
++# CONFIG_I2C_VOODOO3 is not set
++
++#
++# Miscellaneous I2C Chip support
++#
++# CONFIG_SENSORS_DS1337 is not set
++# CONFIG_SENSORS_DS1374 is not set
++# CONFIG_DS1682 is not set
++# CONFIG_SENSORS_EEPROM is not set
++# CONFIG_SENSORS_PCF8574 is not set
++# CONFIG_SENSORS_PCA9539 is not set
++# CONFIG_SENSORS_PCF8591 is not set
++# CONFIG_SENSORS_M41T00 is not set
++# CONFIG_SENSORS_MAX6875 is not set
++# CONFIG_SENSORS_TSL2550 is not set
++# CONFIG_I2C_DEBUG_CORE is not set
++# CONFIG_I2C_DEBUG_ALGO is not set
++# CONFIG_I2C_DEBUG_BUS is not set
++# CONFIG_I2C_DEBUG_CHIP is not set
++
++#
++# SPI support
++#
++# CONFIG_SPI is not set
++# CONFIG_SPI_MASTER is not set
++# CONFIG_W1 is not set
++# CONFIG_POWER_SUPPLY is not set
++# CONFIG_HWMON is not set
++
++#
++# Multifunction device drivers
++#
++# CONFIG_MFD_SM501 is not set
++
++#
++# Multimedia devices
++#
++# CONFIG_VIDEO_DEV is not set
++# CONFIG_DVB_CORE is not set
++# CONFIG_DAB is not set
++
++#
++# Graphics support
++#
++# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
++
++#
++# Display device support
++#
++CONFIG_DISPLAY_SUPPORT=m
++
++#
++# Display hardware drivers
++#
++# CONFIG_VGASTATE is not set
++# CONFIG_VIDEO_OUTPUT_CONTROL is not set
++# CONFIG_FB is not set
++# CONFIG_FB_IBM_GXT4500 is not set
++
++#
++# Console display driver support
++#
++CONFIG_VGA_CONSOLE=y
++# CONFIG_VGACON_SOFT_SCROLLBACK is not set
++CONFIG_DUMMY_CONSOLE=y
++
++#
++# Sound
++#
++# CONFIG_SOUND is not set
++CONFIG_HID_SUPPORT=y
++CONFIG_HID=y
++# CONFIG_HID_DEBUG is not set
++
++#
++# USB Input Devices
++#
++CONFIG_USB_HID=y
++# CONFIG_USB_HIDINPUT_POWERBOOK is not set
++# CONFIG_HID_FF is not set
++# CONFIG_USB_HIDDEV is not set
++CONFIG_USB_SUPPORT=y
++CONFIG_USB_ARCH_HAS_HCD=y
++CONFIG_USB_ARCH_HAS_OHCI=y
++CONFIG_USB_ARCH_HAS_EHCI=y
++CONFIG_USB=y
++# CONFIG_USB_DEBUG is not set
++
++#
++# Miscellaneous USB options
++#
++CONFIG_USB_DEVICEFS=y
++CONFIG_USB_DEVICE_CLASS=y
++# CONFIG_USB_DYNAMIC_MINORS is not set
++# CONFIG_USB_OTG is not set
++
++#
++# USB Host Controller Drivers
++#
++# CONFIG_USB_EHCI_HCD is not set
++# CONFIG_USB_ISP116X_HCD is not set
++CONFIG_USB_OHCI_HCD=y
++# CONFIG_USB_OHCI_HCD_PPC_OF is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
++# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
++CONFIG_USB_OHCI_LITTLE_ENDIAN=y
++# CONFIG_USB_UHCI_HCD is not set
++# CONFIG_USB_SL811_HCD is not set
++# CONFIG_USB_R8A66597_HCD is not set
++
++#
++# USB Device Class drivers
++#
++# CONFIG_USB_ACM is not set
++# CONFIG_USB_PRINTER is not set
++
++#
++# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
++#
++
++#
++# may also be needed; see USB_STORAGE Help for more information
++#
++# CONFIG_USB_LIBUSUAL is not set
++
++#
++# USB Imaging devices
++#
++# CONFIG_USB_MDC800 is not set
++CONFIG_USB_MON=y
++
++#
++# USB port drivers
++#
++
++#
++# USB Serial Converter support
++#
++# CONFIG_USB_SERIAL is not set
++
++#
++# USB Miscellaneous drivers
++#
++# CONFIG_USB_EMI62 is not set
++# CONFIG_USB_EMI26 is not set
++# CONFIG_USB_ADUTUX is not set
++# CONFIG_USB_AUERSWALD is not set
++# CONFIG_USB_RIO500 is not set
++# CONFIG_USB_LEGOTOWER is not set
++# CONFIG_USB_LCD is not set
++# CONFIG_USB_BERRY_CHARGE is not set
++# CONFIG_USB_LED is not set
++# CONFIG_USB_CYPRESS_CY7C63 is not set
++# CONFIG_USB_CYTHERM is not set
++# CONFIG_USB_PHIDGET is not set
++# CONFIG_USB_IDMOUSE is not set
++# CONFIG_USB_FTDI_ELAN is not set
++# CONFIG_USB_APPLEDISPLAY is not set
++# CONFIG_USB_LD is not set
++# CONFIG_USB_TRANCEVIBRATOR is not set
++# CONFIG_USB_IOWARRIOR is not set
++# CONFIG_USB_TEST is not set
++
++#
++# USB DSL modem support
++#
++
++#
++# USB Gadget Support
++#
++# CONFIG_USB_GADGET is not set
++# CONFIG_MMC is not set
++# CONFIG_NEW_LEDS is not set
++# CONFIG_INFINIBAND is not set
++# CONFIG_EDAC is not set
++# CONFIG_RTC_CLASS is not set
++
++#
++# DMA Engine support
++#
++# CONFIG_DMA_ENGINE is not set
++
++#
++# DMA Clients
++#
++
++#
++# DMA Devices
++#
++
++#
++# Userspace I/O
++#
++# CONFIG_UIO is not set
++
++#
++# File systems
++#
++CONFIG_EXT2_FS=y
++# CONFIG_EXT2_FS_XATTR is not set
++# CONFIG_EXT2_FS_XIP is not set
++CONFIG_EXT3_FS=y
++CONFIG_EXT3_FS_XATTR=y
++# CONFIG_EXT3_FS_POSIX_ACL is not set
++# CONFIG_EXT3_FS_SECURITY is not set
++# CONFIG_EXT4DEV_FS is not set
++CONFIG_JBD=y
++# CONFIG_JBD_DEBUG is not set
++CONFIG_FS_MBCACHE=y
++# CONFIG_REISERFS_FS is not set
++# CONFIG_JFS_FS is not set
++# CONFIG_FS_POSIX_ACL is not set
++# CONFIG_XFS_FS is not set
++# CONFIG_GFS2_FS is not set
++# CONFIG_OCFS2_FS is not set
++# CONFIG_MINIX_FS is not set
++# CONFIG_ROMFS_FS is not set
++CONFIG_INOTIFY=y
++CONFIG_INOTIFY_USER=y
++# CONFIG_QUOTA is not set
++CONFIG_DNOTIFY=y
++# CONFIG_AUTOFS_FS is not set
++# CONFIG_AUTOFS4_FS is not set
++# CONFIG_FUSE_FS is not set
++
++#
++# CD-ROM/DVD Filesystems
++#
++CONFIG_ISO9660_FS=y
++# CONFIG_JOLIET is not set
++# CONFIG_ZISOFS is not set
++# CONFIG_UDF_FS is not set
++
++#
++# DOS/FAT/NT Filesystems
++#
++CONFIG_FAT_FS=m
++CONFIG_MSDOS_FS=m
++CONFIG_VFAT_FS=m
++CONFIG_FAT_DEFAULT_CODEPAGE=437
++CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
++# CONFIG_NTFS_FS is not set
++
++#
++# Pseudo filesystems
++#
++CONFIG_PROC_FS=y
++CONFIG_PROC_KCORE=y
++CONFIG_PROC_SYSCTL=y
++CONFIG_SYSFS=y
++CONFIG_TMPFS=y
++# CONFIG_TMPFS_POSIX_ACL is not set
++# CONFIG_HUGETLB_PAGE is not set
++CONFIG_RAMFS=y
++# CONFIG_CONFIGFS_FS is not set
++
++#
++# Miscellaneous filesystems
++#
++# CONFIG_ADFS_FS is not set
++# CONFIG_AFFS_FS is not set
++# CONFIG_HFS_FS is not set
++# CONFIG_HFSPLUS_FS is not set
++# CONFIG_BEFS_FS is not set
++# CONFIG_BFS_FS is not set
++# CONFIG_EFS_FS is not set
++# CONFIG_CRAMFS is not set
++# CONFIG_VXFS_FS is not set
++# CONFIG_HPFS_FS is not set
++# CONFIG_QNX4FS_FS is not set
++# CONFIG_SYSV_FS is not set
++# CONFIG_UFS_FS is not set
++
++#
++# Network File Systems
++#
++# CONFIG_NFS_FS is not set
++# CONFIG_NFSD is not set
++# CONFIG_SMB_FS is not set
++# CONFIG_CIFS is not set
++# CONFIG_NCP_FS is not set
++# CONFIG_CODA_FS is not set
++# CONFIG_AFS_FS is not set
++
++#
++# Partition Types
++#
++CONFIG_PARTITION_ADVANCED=y
++# CONFIG_ACORN_PARTITION is not set
++# CONFIG_OSF_PARTITION is not set
++# CONFIG_AMIGA_PARTITION is not set
++# CONFIG_ATARI_PARTITION is not set
++CONFIG_MAC_PARTITION=y
++CONFIG_MSDOS_PARTITION=y
++# CONFIG_BSD_DISKLABEL is not set
++# CONFIG_MINIX_SUBPARTITION is not set
++# CONFIG_SOLARIS_X86_PARTITION is not set
++# CONFIG_UNIXWARE_DISKLABEL is not set
++# CONFIG_LDM_PARTITION is not set
++# CONFIG_SGI_PARTITION is not set
++# CONFIG_ULTRIX_PARTITION is not set
++# CONFIG_SUN_PARTITION is not set
++# CONFIG_KARMA_PARTITION is not set
++# CONFIG_EFI_PARTITION is not set
++# CONFIG_SYSV68_PARTITION is not set
++
++#
++# Native Language Support
++#
++CONFIG_NLS=y
++CONFIG_NLS_DEFAULT="iso8859-1"
++# CONFIG_NLS_CODEPAGE_437 is not set
++# CONFIG_NLS_CODEPAGE_737 is not set
++# CONFIG_NLS_CODEPAGE_775 is not set
++# CONFIG_NLS_CODEPAGE_850 is not set
++# CONFIG_NLS_CODEPAGE_852 is not set
++# CONFIG_NLS_CODEPAGE_855 is not set
++# CONFIG_NLS_CODEPAGE_857 is not set
++# CONFIG_NLS_CODEPAGE_860 is not set
++# CONFIG_NLS_CODEPAGE_861 is not set
++# CONFIG_NLS_CODEPAGE_862 is not set
++# CONFIG_NLS_CODEPAGE_863 is not set
++# CONFIG_NLS_CODEPAGE_864 is not set
++# CONFIG_NLS_CODEPAGE_865 is not set
++# CONFIG_NLS_CODEPAGE_866 is not set
++# CONFIG_NLS_CODEPAGE_869 is not set
++# CONFIG_NLS_CODEPAGE_936 is not set
++# CONFIG_NLS_CODEPAGE_950 is not set
++# CONFIG_NLS_CODEPAGE_932 is not set
++# CONFIG_NLS_CODEPAGE_949 is not set
++# CONFIG_NLS_CODEPAGE_874 is not set
++# CONFIG_NLS_ISO8859_8 is not set
++# CONFIG_NLS_CODEPAGE_1250 is not set
++# CONFIG_NLS_CODEPAGE_1251 is not set
++CONFIG_NLS_ASCII=y
++CONFIG_NLS_ISO8859_1=m
++# CONFIG_NLS_ISO8859_2 is not set
++# CONFIG_NLS_ISO8859_3 is not set
++# CONFIG_NLS_ISO8859_4 is not set
++# CONFIG_NLS_ISO8859_5 is not set
++# CONFIG_NLS_ISO8859_6 is not set
++# CONFIG_NLS_ISO8859_7 is not set
++# CONFIG_NLS_ISO8859_9 is not set
++# CONFIG_NLS_ISO8859_13 is not set
++# CONFIG_NLS_ISO8859_14 is not set
++# CONFIG_NLS_ISO8859_15 is not set
++# CONFIG_NLS_KOI8_R is not set
++# CONFIG_NLS_KOI8_U is not set
++# CONFIG_NLS_UTF8 is not set
++
++#
++# Distributed Lock Manager
++#
++# CONFIG_DLM is not set
++# CONFIG_UCC_SLOW is not set
++
++#
++# Library routines
++#
++CONFIG_BITREVERSE=y
++CONFIG_CRC_CCITT=m
++# CONFIG_CRC16 is not set
++# CONFIG_CRC_ITU_T is not set
++CONFIG_CRC32=y
++# CONFIG_CRC7 is not set
++# CONFIG_LIBCRC32C is not set
++CONFIG_ZLIB_INFLATE=m
++CONFIG_ZLIB_DEFLATE=m
++CONFIG_PLIST=y
++CONFIG_HAS_IOMEM=y
++CONFIG_HAS_IOPORT=y
++CONFIG_HAS_DMA=y
++
++#
++# Instrumentation Support
++#
++# CONFIG_PROFILING is not set
++# CONFIG_KPROBES is not set
++
++#
++# Kernel hacking
++#
++# CONFIG_PRINTK_TIME is not set
++CONFIG_ENABLE_MUST_CHECK=y
++CONFIG_MAGIC_SYSRQ=y
++# CONFIG_UNUSED_SYMBOLS is not set
++# CONFIG_DEBUG_FS is not set
++# CONFIG_HEADERS_CHECK is not set
++CONFIG_DEBUG_KERNEL=y
++# CONFIG_DEBUG_SHIRQ is not set
++CONFIG_DETECT_SOFTLOCKUP=y
++CONFIG_SCHED_DEBUG=y
++# CONFIG_SCHEDSTATS is not set
++# CONFIG_TIMER_STATS is not set
++# CONFIG_DEBUG_SLAB is not set
++# CONFIG_DEBUG_RT_MUTEXES is not set
++# CONFIG_RT_MUTEX_TESTER is not set
++# CONFIG_DEBUG_SPINLOCK is not set
++CONFIG_DEBUG_MUTEXES=y
++CONFIG_DEBUG_SPINLOCK_SLEEP=y
++# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
++# CONFIG_DEBUG_KOBJECT is not set
++# CONFIG_DEBUG_HIGHMEM is not set
++CONFIG_DEBUG_BUGVERBOSE=y
++# CONFIG_DEBUG_INFO is not set
++# CONFIG_DEBUG_VM is not set
++# CONFIG_DEBUG_LIST is not set
++CONFIG_FORCED_INLINING=y
++# CONFIG_RCU_TORTURE_TEST is not set
++# CONFIG_FAULT_INJECTION is not set
++# CONFIG_DEBUG_STACKOVERFLOW is not set
++# CONFIG_DEBUG_STACK_USAGE is not set
++# CONFIG_DEBUG_PAGEALLOC is not set
++CONFIG_DEBUGGER=y
++CONFIG_XMON=y
++CONFIG_XMON_DEFAULT=y
++CONFIG_XMON_DISASSEMBLY=y
++# CONFIG_BDI_SWITCH is not set
++# CONFIG_BOOTX_TEXT is not set
++# CONFIG_PPC_EARLY_DEBUG is not set
++
++#
++# Security options
++#
++# CONFIG_KEYS is not set
++# CONFIG_SECURITY is not set
++CONFIG_CRYPTO=y
++CONFIG_CRYPTO_ALGAPI=m
++CONFIG_CRYPTO_BLKCIPHER=m
++CONFIG_CRYPTO_MANAGER=m
++# CONFIG_CRYPTO_HMAC is not set
++# CONFIG_CRYPTO_XCBC is not set
++# CONFIG_CRYPTO_NULL is not set
++# CONFIG_CRYPTO_MD4 is not set
++# CONFIG_CRYPTO_MD5 is not set
++CONFIG_CRYPTO_SHA1=m
++# CONFIG_CRYPTO_SHA256 is not set
++# CONFIG_CRYPTO_SHA512 is not set
++# CONFIG_CRYPTO_WP512 is not set
++# CONFIG_CRYPTO_TGR192 is not set
++# CONFIG_CRYPTO_GF128MUL is not set
++CONFIG_CRYPTO_ECB=m
++CONFIG_CRYPTO_CBC=m
++CONFIG_CRYPTO_PCBC=m
++# CONFIG_CRYPTO_LRW is not set
++# CONFIG_CRYPTO_CRYPTD is not set
++# CONFIG_CRYPTO_DES is not set
++# CONFIG_CRYPTO_FCRYPT is not set
++# CONFIG_CRYPTO_BLOWFISH is not set
++# CONFIG_CRYPTO_TWOFISH is not set
++# CONFIG_CRYPTO_SERPENT is not set
++# CONFIG_CRYPTO_AES is not set
++# CONFIG_CRYPTO_CAST5 is not set
++# CONFIG_CRYPTO_CAST6 is not set
++# CONFIG_CRYPTO_TEA is not set
++CONFIG_CRYPTO_ARC4=m
++# CONFIG_CRYPTO_KHAZAD is not set
++# CONFIG_CRYPTO_ANUBIS is not set
++# CONFIG_CRYPTO_DEFLATE is not set
++# CONFIG_CRYPTO_MICHAEL_MIC is not set
++# CONFIG_CRYPTO_CRC32C is not set
++# CONFIG_CRYPTO_CAMELLIA is not set
++# CONFIG_CRYPTO_TEST is not set
++# CONFIG_CRYPTO_HW is not set
+
+--- linux-2.6.23/arch/powerpc/Kconfig	2007-10-09 15:31:38.000000000 -0500
++++ linux/arch/powerpc/Kconfig	2007-10-27 18:22:07.000000000 -0500
+@@ -387,7 +387,7 @@
+ 
+ config ISA
+ 	bool "Support for ISA-bus hardware"
+-	depends on PPC_PREP || PPC_CHRP
++	depends on PPC_PREP || PPC_CHRP || PPC_QEMU
+ 	select PPC_I8259
+ 	help
+ 	  Find out whether you have ISA slots on your motherboard.  ISA is the
--- a/sources/patches/linux-2.6.26-noperl.patch	Wed Oct 08 01:10:12 2008 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,631 +0,0 @@
-diff -ru linux-2.6.26/kernel/Makefile linux-2.6.26-new/kernel/Makefile
---- linux-2.6.26/kernel/Makefile	2008-07-13 16:51:29.000000000 -0500
-+++ linux-2.6.26-new/kernel/Makefile	2008-07-25 11:46:15.000000000 -0500
-@@ -95,8 +95,3 @@
- 
- $(obj)/time.o: $(obj)/timeconst.h
- 
--quiet_cmd_timeconst  = TIMEC   $@
--      cmd_timeconst  = $(PERL) $< $(CONFIG_HZ) > $@
--targets += timeconst.h
--$(obj)/timeconst.h: $(src)/timeconst.pl FORCE
--	$(call if_changed,timeconst)
-diff -ru linux-2.6.26/kernel/timeconst.pl linux-2.6.26-new/kernel/timeconst.pl
---- linux-2.6.26/kernel/timeconst.pl	2008-07-13 16:51:29.000000000 -0500
-+++ linux-2.6.26-new/kernel/timeconst.pl	2008-07-25 12:01:27.000000000 -0500
-@@ -11,150 +11,12 @@
- #
- 
- #
--# Usage: timeconst.pl HZ > timeconst.h
-+# Usage: timeconst.pl HZ... > timeconst.h
- #
- 
- # Precomputed values for systems without Math::BigInt
- # Generated by:
- # timeconst.pl --can 24 32 48 64 100 122 128 200 250 256 300 512 1000 1024 1200
--%canned_values = (
--	24 => [
--		'0xa6aaaaab','0x2aaaaaa',26,
--		125,3,
--		'0xc49ba5e4','0x1fbe76c8b4',37,
--		3,125,
--		'0xa2c2aaab','0xaaaa',16,
--		125000,3,
--		'0xc9539b89','0x7fffbce4217d',47,
--		3,125000,
--	], 32 => [
--		'0xfa000000','0x6000000',27,
--		125,4,
--		'0x83126e98','0xfdf3b645a',36,
--		4,125,
--		'0xf4240000','0x0',17,
--		31250,1,
--		'0x8637bd06','0x3fff79c842fa',46,
--		1,31250,
--	], 48 => [
--		'0xa6aaaaab','0x6aaaaaa',27,
--		125,6,
--		'0xc49ba5e4','0xfdf3b645a',36,
--		6,125,
--		'0xa2c2aaab','0x15555',17,
--		62500,3,
--		'0xc9539b89','0x3fffbce4217d',46,
--		3,62500,
--	], 64 => [
--		'0xfa000000','0xe000000',28,
--		125,8,
--		'0x83126e98','0x7ef9db22d',35,
--		8,125,
--		'0xf4240000','0x0',18,
--		15625,1,
--		'0x8637bd06','0x1fff79c842fa',45,
--		1,15625,
--	], 100 => [
--		'0xa0000000','0x0',28,
--		10,1,
--		'0xcccccccd','0x733333333',35,
--		1,10,
--		'0x9c400000','0x0',18,
--		10000,1,
--		'0xd1b71759','0x1fff2e48e8a7',45,
--		1,10000,
--	], 122 => [
--		'0x8325c53f','0xfbcda3a',28,
--		500,61,
--		'0xf9db22d1','0x7fbe76c8b',35,
--		61,500,
--		'0x8012e2a0','0x3ef36',18,
--		500000,61,
--		'0xffda4053','0x1ffffbce4217',45,
--		61,500000,
--	], 128 => [
--		'0xfa000000','0x1e000000',29,
--		125,16,
--		'0x83126e98','0x3f7ced916',34,
--		16,125,
--		'0xf4240000','0x40000',19,
--		15625,2,
--		'0x8637bd06','0xfffbce4217d',44,
--		2,15625,
--	], 200 => [
--		'0xa0000000','0x0',29,
--		5,1,
--		'0xcccccccd','0x333333333',34,
--		1,5,
--		'0x9c400000','0x0',19,
--		5000,1,
--		'0xd1b71759','0xfff2e48e8a7',44,
--		1,5000,
--	], 250 => [
--		'0x80000000','0x0',29,
--		4,1,
--		'0x80000000','0x180000000',33,
--		1,4,
--		'0xfa000000','0x0',20,
--		4000,1,
--		'0x83126e98','0x7ff7ced9168',43,
--		1,4000,
--	], 256 => [
--		'0xfa000000','0x3e000000',30,
--		125,32,
--		'0x83126e98','0x1fbe76c8b',33,
--		32,125,
--		'0xf4240000','0xc0000',20,
--		15625,4,
--		'0x8637bd06','0x7ffde7210be',43,
--		4,15625,
--	], 300 => [
--		'0xd5555556','0x2aaaaaaa',30,
--		10,3,
--		'0x9999999a','0x1cccccccc',33,
--		3,10,
--		'0xd0555556','0xaaaaa',20,
--		10000,3,
--		'0x9d495183','0x7ffcb923a29',43,
--		3,10000,
--	], 512 => [
--		'0xfa000000','0x7e000000',31,
--		125,64,
--		'0x83126e98','0xfdf3b645',32,
--		64,125,
--		'0xf4240000','0x1c0000',21,
--		15625,8,
--		'0x8637bd06','0x3ffef39085f',42,
--		8,15625,
--	], 1000 => [
--		'0x80000000','0x0',31,
--		1,1,
--		'0x80000000','0x0',31,
--		1,1,
--		'0xfa000000','0x0',22,
--		1000,1,
--		'0x83126e98','0x1ff7ced9168',41,
--		1,1000,
--	], 1024 => [
--		'0xfa000000','0xfe000000',32,
--		125,128,
--		'0x83126e98','0x7ef9db22',31,
--		128,125,
--		'0xf4240000','0x3c0000',22,
--		15625,16,
--		'0x8637bd06','0x1fff79c842f',41,
--		16,15625,
--	], 1200 => [
--		'0xd5555556','0xd5555555',32,
--		5,6,
--		'0x9999999a','0x66666666',31,
--		6,5,
--		'0xd0555556','0x2aaaaa',22,
--		2500,3,
--		'0x9d495183','0x1ffcb923a29',41,
--		3,2500,
--	]
--);
- 
- $has_bigint = eval 'use Math::BigInt qw(bgcd); 1;';
- 
-@@ -252,8 +114,7 @@
- 	my $s, $m, $a, $g;
- 
- 	if (!$has_bigint) {
--		die "$0: HZ == $hz not canned and ".
--		    "Math::BigInt not available\n";
-+		die "$0: Math::BigInt not available\n";
- 	}
- 
- 	# MSEC conversions
-@@ -283,21 +144,7 @@
- 	my($hz, @val) = @_;
- 	my $pfx, $bit, $suf, $s, $m, $a;
- 
--	print "/* Automatically generated by kernel/timeconst.pl */\n";
--	print "/* Conversion constants for HZ == $hz */\n";
--	print "\n";
--	print "#ifndef KERNEL_TIMECONST_H\n";
--	print "#define KERNEL_TIMECONST_H\n";
--	print "\n";
--
--	print "#include <linux/param.h>\n";
--	print "#include <linux/types.h>\n";
--
--	print "\n";
--	print "#if HZ != $hz\n";
--	print "#error \"kernel/timeconst.h has the wrong HZ value!\"\n";
--	print "#endif\n";
--	print "\n";
-+	print "HZ == $hz\n";
- 
- 	foreach $pfx ('HZ_TO_MSEC','MSEC_TO_HZ',
- 		      'HZ_TO_USEC','USEC_TO_HZ') {
-@@ -311,8 +158,7 @@
- 		}
- 	}
- 
--	print "\n";
--	print "#endif /* KERNEL_TIMECONST_H */\n";
-+	print "\n#elif ";
- }
- 
- # Pretty-print Perl values
-@@ -332,47 +178,36 @@
- 	return join(',', @l);
- }
- 
--($hz) = @ARGV;
-+print "/* Conversion constants for HZ */\n";
-+print "/* DO NOT EDIT!  Automatically generated by:\n";
-+print "   kernel/timeconst.pl @ARGV\n */\n";
-+print "\n";
-+print "#ifndef KERNEL_TIMECONST_H\n";
-+print "#define KERNEL_TIMECONST_H\n";
-+print "\n";
-+
-+print "#include <linux/param.h>\n";
-+print "#include <linux/types.h>\n";
-+
-+print "\n";
-+print "#if ";
-+
-+foreach $hz (@ARGV)
-+{
- 
--# Use this to generate the %canned_values structure
--if ($hz eq '--can') {
--	shift(@ARGV);
--	@hzlist = sort {$a <=> $b} (@ARGV);
--
--	print "# Precomputed values for systems without Math::BigInt\n";
--	print "# Generated by:\n";
--	print "# timeconst.pl --can ", join(' ', @hzlist), "\n";
--	print "\%canned_values = (\n";
--	my $pf = "\t";
--	foreach $hz (@hzlist) {
--		my @values = compute_values($hz);
--		print "$pf$hz => [\n";
--		while (scalar(@values)) {
--			my $bit;
--			foreach $bit (32) {
--				my $m = shift(@values);
--				my $a = shift(@values);
--				my $s = shift(@values);
--				print "\t\t", perlvals($m,$a,$s), ",\n";
--			}
--			my $n = shift(@values);
--			my $d = shift(@values);
--			print "\t\t", perlvals($n,$d), ",\n";
--		}
--		print "\t]";
--		$pf = ', ';
--	}
--	print "\n);\n";
--} else {
- 	$hz += 0;			# Force to number
- 	if ($hz < 1) {
- 		die "Usage: $0 HZ\n";
- 	}
- 
--	@val = @{$canned_values{$hz}};
--	if (!defined(@val)) {
--		@val = compute_values($hz);
--	}
-+	@val = compute_values($hz);
- 	output($hz, @val);
- }
-+
-+print "1\n";
-+print "#error \"kernel/timeconst.h has unknown HZ value!\"\n";
-+print "#endif\n";
-+print "\n";
-+print "#endif /* KERNEL_TIMECONST_H */\n";
-+
- exit 0;
---- /dev/null	2007-10-16 17:06:33.000000000 -0500
-+++ linux-2.6.26-new/kernel/timeconst.h	2008-07-25 12:02:02.000000000 -0500
-@@ -0,0 +1,346 @@
-+/* Conversion constants for HZ */
-+/* DO NOT EDIT!  Automatically generated by:
-+   kernel/timeconst.pl 24 32 48 64 100 122 128 200 250 256 300 512 1000 1024 1200
-+ */
-+
-+#ifndef KERNEL_TIMECONST_H
-+#define KERNEL_TIMECONST_H
-+
-+#include <linux/param.h>
-+#include <linux/types.h>
-+
-+#if HZ == 24
-+#define HZ_TO_MSEC_MUL32        U64_C(0xa6aaaaab)
-+#define HZ_TO_MSEC_ADJ32        U64_C(0x2aaaaaa)
-+#define HZ_TO_MSEC_SHR32        26
-+#define HZ_TO_MSEC_NUM          U64_C(125)
-+#define HZ_TO_MSEC_DEN          U64_C(3)
-+#define MSEC_TO_HZ_MUL32        U64_C(0xc49ba5e4)
-+#define MSEC_TO_HZ_ADJ32        U64_C(0x1fbe76c8b4)
-+#define MSEC_TO_HZ_SHR32        37
-+#define MSEC_TO_HZ_NUM          U64_C(3)
-+#define MSEC_TO_HZ_DEN          U64_C(125)
-+#define HZ_TO_USEC_MUL32        U64_C(0xa2c2aaab)
-+#define HZ_TO_USEC_ADJ32        U64_C(0xaaaa)
-+#define HZ_TO_USEC_SHR32        16
-+#define HZ_TO_USEC_NUM          U64_C(125000)
-+#define HZ_TO_USEC_DEN          U64_C(3)
-+#define USEC_TO_HZ_MUL32        U64_C(0xc9539b89)
-+#define USEC_TO_HZ_ADJ32        U64_C(0x7fffbce4217d)
-+#define USEC_TO_HZ_SHR32        47
-+#define USEC_TO_HZ_NUM          U64_C(3)
-+#define USEC_TO_HZ_DEN          U64_C(125000)
-+
-+#elif HZ == 32
-+#define HZ_TO_MSEC_MUL32        U64_C(0xfa000000)
-+#define HZ_TO_MSEC_ADJ32        U64_C(0x6000000)
-+#define HZ_TO_MSEC_SHR32        27
-+#define HZ_TO_MSEC_NUM          U64_C(125)
-+#define HZ_TO_MSEC_DEN          U64_C(4)
-+#define MSEC_TO_HZ_MUL32        U64_C(0x83126e98)
-+#define MSEC_TO_HZ_ADJ32        U64_C(0xfdf3b645a)
-+#define MSEC_TO_HZ_SHR32        36
-+#define MSEC_TO_HZ_NUM          U64_C(4)
-+#define MSEC_TO_HZ_DEN          U64_C(125)
-+#define HZ_TO_USEC_MUL32        U64_C(0xf4240000)
-+#define HZ_TO_USEC_ADJ32        U64_C(0x0)
-+#define HZ_TO_USEC_SHR32        17
-+#define HZ_TO_USEC_NUM          U64_C(31250)
-+#define HZ_TO_USEC_DEN          U64_C(1)
-+#define USEC_TO_HZ_MUL32        U64_C(0x8637bd06)
-+#define USEC_TO_HZ_ADJ32        U64_C(0x3fff79c842fa)
-+#define USEC_TO_HZ_SHR32        46
-+#define USEC_TO_HZ_NUM          U64_C(1)
-+#define USEC_TO_HZ_DEN          U64_C(31250)
-+
-+#elif HZ == 48
-+#define HZ_TO_MSEC_MUL32        U64_C(0xa6aaaaab)
-+#define HZ_TO_MSEC_ADJ32        U64_C(0x6aaaaaa)
-+#define HZ_TO_MSEC_SHR32        27
-+#define HZ_TO_MSEC_NUM          U64_C(125)
-+#define HZ_TO_MSEC_DEN          U64_C(6)
-+#define MSEC_TO_HZ_MUL32        U64_C(0xc49ba5e4)
-+#define MSEC_TO_HZ_ADJ32        U64_C(0xfdf3b645a)
-+#define MSEC_TO_HZ_SHR32        36
-+#define MSEC_TO_HZ_NUM          U64_C(6)
-+#define MSEC_TO_HZ_DEN          U64_C(125)
-+#define HZ_TO_USEC_MUL32        U64_C(0xa2c2aaab)
-+#define HZ_TO_USEC_ADJ32        U64_C(0x15555)
-+#define HZ_TO_USEC_SHR32        17
-+#define HZ_TO_USEC_NUM          U64_C(62500)
-+#define HZ_TO_USEC_DEN          U64_C(3)
-+#define USEC_TO_HZ_MUL32        U64_C(0xc9539b89)
-+#define USEC_TO_HZ_ADJ32        U64_C(0x3fffbce4217d)
-+#define USEC_TO_HZ_SHR32        46
-+#define USEC_TO_HZ_NUM          U64_C(3)
-+#define USEC_TO_HZ_DEN          U64_C(62500)
-+
-+#elif HZ == 64
-+#define HZ_TO_MSEC_MUL32        U64_C(0xfa000000)
-+#define HZ_TO_MSEC_ADJ32        U64_C(0xe000000)
-+#define HZ_TO_MSEC_SHR32        28
-+#define HZ_TO_MSEC_NUM          U64_C(125)
-+#define HZ_TO_MSEC_DEN          U64_C(8)
-+#define MSEC_TO_HZ_MUL32        U64_C(0x83126e98)
-+#define MSEC_TO_HZ_ADJ32        U64_C(0x7ef9db22d)
-+#define MSEC_TO_HZ_SHR32        35
-+#define MSEC_TO_HZ_NUM          U64_C(8)
-+#define MSEC_TO_HZ_DEN          U64_C(125)
-+#define HZ_TO_USEC_MUL32        U64_C(0xf4240000)
-+#define HZ_TO_USEC_ADJ32        U64_C(0x0)
-+#define HZ_TO_USEC_SHR32        18
-+#define HZ_TO_USEC_NUM          U64_C(15625)
-+#define HZ_TO_USEC_DEN          U64_C(1)
-+#define USEC_TO_HZ_MUL32        U64_C(0x8637bd06)
-+#define USEC_TO_HZ_ADJ32        U64_C(0x1fff79c842fa)
-+#define USEC_TO_HZ_SHR32        45
-+#define USEC_TO_HZ_NUM          U64_C(1)
-+#define USEC_TO_HZ_DEN          U64_C(15625)
-+
-+#elif HZ == 100
-+#define HZ_TO_MSEC_MUL32        U64_C(0xa0000000)
-+#define HZ_TO_MSEC_ADJ32        U64_C(0x0)
-+#define HZ_TO_MSEC_SHR32        28
-+#define HZ_TO_MSEC_NUM          U64_C(10)
-+#define HZ_TO_MSEC_DEN          U64_C(1)
-+#define MSEC_TO_HZ_MUL32        U64_C(0xcccccccd)
-+#define MSEC_TO_HZ_ADJ32        U64_C(0x733333333)
-+#define MSEC_TO_HZ_SHR32        35
-+#define MSEC_TO_HZ_NUM          U64_C(1)
-+#define MSEC_TO_HZ_DEN          U64_C(10)
-+#define HZ_TO_USEC_MUL32        U64_C(0x9c400000)
-+#define HZ_TO_USEC_ADJ32        U64_C(0x0)
-+#define HZ_TO_USEC_SHR32        18
-+#define HZ_TO_USEC_NUM          U64_C(10000)
-+#define HZ_TO_USEC_DEN          U64_C(1)
-+#define USEC_TO_HZ_MUL32        U64_C(0xd1b71759)
-+#define USEC_TO_HZ_ADJ32        U64_C(0x1fff2e48e8a7)
-+#define USEC_TO_HZ_SHR32        45
-+#define USEC_TO_HZ_NUM          U64_C(1)
-+#define USEC_TO_HZ_DEN          U64_C(10000)
-+
-+#elif HZ == 122
-+#define HZ_TO_MSEC_MUL32        U64_C(0x8325c53f)
-+#define HZ_TO_MSEC_ADJ32        U64_C(0xfbcda3a)
-+#define HZ_TO_MSEC_SHR32        28
-+#define HZ_TO_MSEC_NUM          U64_C(500)
-+#define HZ_TO_MSEC_DEN          U64_C(61)
-+#define MSEC_TO_HZ_MUL32        U64_C(0xf9db22d1)
-+#define MSEC_TO_HZ_ADJ32        U64_C(0x7fbe76c8b)
-+#define MSEC_TO_HZ_SHR32        35
-+#define MSEC_TO_HZ_NUM          U64_C(61)
-+#define MSEC_TO_HZ_DEN          U64_C(500)
-+#define HZ_TO_USEC_MUL32        U64_C(0x8012e2a0)
-+#define HZ_TO_USEC_ADJ32        U64_C(0x3ef36)
-+#define HZ_TO_USEC_SHR32        18
-+#define HZ_TO_USEC_NUM          U64_C(500000)
-+#define HZ_TO_USEC_DEN          U64_C(61)
-+#define USEC_TO_HZ_MUL32        U64_C(0xffda4053)
-+#define USEC_TO_HZ_ADJ32        U64_C(0x1ffffbce4217)
-+#define USEC_TO_HZ_SHR32        45
-+#define USEC_TO_HZ_NUM          U64_C(61)
-+#define USEC_TO_HZ_DEN          U64_C(500000)
-+
-+#elif HZ == 128
-+#define HZ_TO_MSEC_MUL32        U64_C(0xfa000000)
-+#define HZ_TO_MSEC_ADJ32        U64_C(0x1e000000)
-+#define HZ_TO_MSEC_SHR32        29
-+#define HZ_TO_MSEC_NUM          U64_C(125)
-+#define HZ_TO_MSEC_DEN          U64_C(16)
-+#define MSEC_TO_HZ_MUL32        U64_C(0x83126e98)
-+#define MSEC_TO_HZ_ADJ32        U64_C(0x3f7ced916)
-+#define MSEC_TO_HZ_SHR32        34
-+#define MSEC_TO_HZ_NUM          U64_C(16)
-+#define MSEC_TO_HZ_DEN          U64_C(125)
-+#define HZ_TO_USEC_MUL32        U64_C(0xf4240000)
-+#define HZ_TO_USEC_ADJ32        U64_C(0x40000)
-+#define HZ_TO_USEC_SHR32        19
-+#define HZ_TO_USEC_NUM          U64_C(15625)
-+#define HZ_TO_USEC_DEN          U64_C(2)
-+#define USEC_TO_HZ_MUL32        U64_C(0x8637bd06)
-+#define USEC_TO_HZ_ADJ32        U64_C(0xfffbce4217d)
-+#define USEC_TO_HZ_SHR32        44
-+#define USEC_TO_HZ_NUM          U64_C(2)
-+#define USEC_TO_HZ_DEN          U64_C(15625)
-+
-+#elif HZ == 200
-+#define HZ_TO_MSEC_MUL32        U64_C(0xa0000000)
-+#define HZ_TO_MSEC_ADJ32        U64_C(0x0)
-+#define HZ_TO_MSEC_SHR32        29
-+#define HZ_TO_MSEC_NUM          U64_C(5)
-+#define HZ_TO_MSEC_DEN          U64_C(1)
-+#define MSEC_TO_HZ_MUL32        U64_C(0xcccccccd)
-+#define MSEC_TO_HZ_ADJ32        U64_C(0x333333333)
-+#define MSEC_TO_HZ_SHR32        34
-+#define MSEC_TO_HZ_NUM          U64_C(1)
-+#define MSEC_TO_HZ_DEN          U64_C(5)
-+#define HZ_TO_USEC_MUL32        U64_C(0x9c400000)
-+#define HZ_TO_USEC_ADJ32        U64_C(0x0)
-+#define HZ_TO_USEC_SHR32        19
-+#define HZ_TO_USEC_NUM          U64_C(5000)
-+#define HZ_TO_USEC_DEN          U64_C(1)
-+#define USEC_TO_HZ_MUL32        U64_C(0xd1b71759)
-+#define USEC_TO_HZ_ADJ32        U64_C(0xfff2e48e8a7)
-+#define USEC_TO_HZ_SHR32        44
-+#define USEC_TO_HZ_NUM          U64_C(1)
-+#define USEC_TO_HZ_DEN          U64_C(5000)
-+
-+#elif HZ == 250
-+#define HZ_TO_MSEC_MUL32        U64_C(0x80000000)
-+#define HZ_TO_MSEC_ADJ32        U64_C(0x0)
-+#define HZ_TO_MSEC_SHR32        29
-+#define HZ_TO_MSEC_NUM          U64_C(4)
-+#define HZ_TO_MSEC_DEN          U64_C(1)
-+#define MSEC_TO_HZ_MUL32        U64_C(0x80000000)
-+#define MSEC_TO_HZ_ADJ32        U64_C(0x180000000)
-+#define MSEC_TO_HZ_SHR32        33
-+#define MSEC_TO_HZ_NUM          U64_C(1)
-+#define MSEC_TO_HZ_DEN          U64_C(4)
-+#define HZ_TO_USEC_MUL32        U64_C(0xfa000000)
-+#define HZ_TO_USEC_ADJ32        U64_C(0x0)
-+#define HZ_TO_USEC_SHR32        20
-+#define HZ_TO_USEC_NUM          U64_C(4000)
-+#define HZ_TO_USEC_DEN          U64_C(1)
-+#define USEC_TO_HZ_MUL32        U64_C(0x83126e98)
-+#define USEC_TO_HZ_ADJ32        U64_C(0x7ff7ced9168)
-+#define USEC_TO_HZ_SHR32        43
-+#define USEC_TO_HZ_NUM          U64_C(1)
-+#define USEC_TO_HZ_DEN          U64_C(4000)
-+
-+#elif HZ == 256
-+#define HZ_TO_MSEC_MUL32        U64_C(0xfa000000)
-+#define HZ_TO_MSEC_ADJ32        U64_C(0x3e000000)
-+#define HZ_TO_MSEC_SHR32        30
-+#define HZ_TO_MSEC_NUM          U64_C(125)
-+#define HZ_TO_MSEC_DEN          U64_C(32)
-+#define MSEC_TO_HZ_MUL32        U64_C(0x83126e98)
-+#define MSEC_TO_HZ_ADJ32        U64_C(0x1fbe76c8b)
-+#define MSEC_TO_HZ_SHR32        33
-+#define MSEC_TO_HZ_NUM          U64_C(32)
-+#define MSEC_TO_HZ_DEN          U64_C(125)
-+#define HZ_TO_USEC_MUL32        U64_C(0xf4240000)
-+#define HZ_TO_USEC_ADJ32        U64_C(0xc0000)
-+#define HZ_TO_USEC_SHR32        20
-+#define HZ_TO_USEC_NUM          U64_C(15625)
-+#define HZ_TO_USEC_DEN          U64_C(4)
-+#define USEC_TO_HZ_MUL32        U64_C(0x8637bd06)
-+#define USEC_TO_HZ_ADJ32        U64_C(0x7ffde7210be)
-+#define USEC_TO_HZ_SHR32        43
-+#define USEC_TO_HZ_NUM          U64_C(4)
-+#define USEC_TO_HZ_DEN          U64_C(15625)
-+
-+#elif HZ == 300
-+#define HZ_TO_MSEC_MUL32        U64_C(0xd5555556)
-+#define HZ_TO_MSEC_ADJ32        U64_C(0x2aaaaaaa)
-+#define HZ_TO_MSEC_SHR32        30
-+#define HZ_TO_MSEC_NUM          U64_C(10)
-+#define HZ_TO_MSEC_DEN          U64_C(3)
-+#define MSEC_TO_HZ_MUL32        U64_C(0x9999999a)
-+#define MSEC_TO_HZ_ADJ32        U64_C(0x1cccccccc)
-+#define MSEC_TO_HZ_SHR32        33
-+#define MSEC_TO_HZ_NUM          U64_C(3)
-+#define MSEC_TO_HZ_DEN          U64_C(10)
-+#define HZ_TO_USEC_MUL32        U64_C(0xd0555556)
-+#define HZ_TO_USEC_ADJ32        U64_C(0xaaaaa)
-+#define HZ_TO_USEC_SHR32        20
-+#define HZ_TO_USEC_NUM          U64_C(10000)
-+#define HZ_TO_USEC_DEN          U64_C(3)
-+#define USEC_TO_HZ_MUL32        U64_C(0x9d495183)
-+#define USEC_TO_HZ_ADJ32        U64_C(0x7ffcb923a29)
-+#define USEC_TO_HZ_SHR32        43
-+#define USEC_TO_HZ_NUM          U64_C(3)
-+#define USEC_TO_HZ_DEN          U64_C(10000)
-+
-+#elif HZ == 512
-+#define HZ_TO_MSEC_MUL32        U64_C(0xfa000000)
-+#define HZ_TO_MSEC_ADJ32        U64_C(0x7e000000)
-+#define HZ_TO_MSEC_SHR32        31
-+#define HZ_TO_MSEC_NUM          U64_C(125)
-+#define HZ_TO_MSEC_DEN          U64_C(64)
-+#define MSEC_TO_HZ_MUL32        U64_C(0x83126e98)
-+#define MSEC_TO_HZ_ADJ32        U64_C(0xfdf3b645)
-+#define MSEC_TO_HZ_SHR32        32
-+#define MSEC_TO_HZ_NUM          U64_C(64)
-+#define MSEC_TO_HZ_DEN          U64_C(125)
-+#define HZ_TO_USEC_MUL32        U64_C(0xf4240000)
-+#define HZ_TO_USEC_ADJ32        U64_C(0x1c0000)
-+#define HZ_TO_USEC_SHR32        21
-+#define HZ_TO_USEC_NUM          U64_C(15625)
-+#define HZ_TO_USEC_DEN          U64_C(8)
-+#define USEC_TO_HZ_MUL32        U64_C(0x8637bd06)
-+#define USEC_TO_HZ_ADJ32        U64_C(0x3ffef39085f)
-+#define USEC_TO_HZ_SHR32        42
-+#define USEC_TO_HZ_NUM          U64_C(8)
-+#define USEC_TO_HZ_DEN          U64_C(15625)
-+
-+#elif HZ == 1000
-+#define HZ_TO_MSEC_MUL32        U64_C(0x80000000)
-+#define HZ_TO_MSEC_ADJ32        U64_C(0x0)
-+#define HZ_TO_MSEC_SHR32        31
-+#define HZ_TO_MSEC_NUM          U64_C(1)
-+#define HZ_TO_MSEC_DEN          U64_C(1)
-+#define MSEC_TO_HZ_MUL32        U64_C(0x80000000)
-+#define MSEC_TO_HZ_ADJ32        U64_C(0x0)
-+#define MSEC_TO_HZ_SHR32        31
-+#define MSEC_TO_HZ_NUM          U64_C(1)
-+#define MSEC_TO_HZ_DEN          U64_C(1)
-+#define HZ_TO_USEC_MUL32        U64_C(0xfa000000)
-+#define HZ_TO_USEC_ADJ32        U64_C(0x0)
-+#define HZ_TO_USEC_SHR32        22
-+#define HZ_TO_USEC_NUM          U64_C(1000)
-+#define HZ_TO_USEC_DEN          U64_C(1)
-+#define USEC_TO_HZ_MUL32        U64_C(0x83126e98)
-+#define USEC_TO_HZ_ADJ32        U64_C(0x1ff7ced9168)
-+#define USEC_TO_HZ_SHR32        41
-+#define USEC_TO_HZ_NUM          U64_C(1)
-+#define USEC_TO_HZ_DEN          U64_C(1000)
-+
-+#elif HZ == 1024
-+#define HZ_TO_MSEC_MUL32        U64_C(0xfa000000)
-+#define HZ_TO_MSEC_ADJ32        U64_C(0xfe000000)
-+#define HZ_TO_MSEC_SHR32        32
-+#define HZ_TO_MSEC_NUM          U64_C(125)
-+#define HZ_TO_MSEC_DEN          U64_C(128)
-+#define MSEC_TO_HZ_MUL32        U64_C(0x83126e98)
-+#define MSEC_TO_HZ_ADJ32        U64_C(0x7ef9db22)
-+#define MSEC_TO_HZ_SHR32        31
-+#define MSEC_TO_HZ_NUM          U64_C(128)
-+#define MSEC_TO_HZ_DEN          U64_C(125)
-+#define HZ_TO_USEC_MUL32        U64_C(0xf4240000)
-+#define HZ_TO_USEC_ADJ32        U64_C(0x3c0000)
-+#define HZ_TO_USEC_SHR32        22
-+#define HZ_TO_USEC_NUM          U64_C(15625)
-+#define HZ_TO_USEC_DEN          U64_C(16)
-+#define USEC_TO_HZ_MUL32        U64_C(0x8637bd06)
-+#define USEC_TO_HZ_ADJ32        U64_C(0x1fff79c842f)
-+#define USEC_TO_HZ_SHR32        41
-+#define USEC_TO_HZ_NUM          U64_C(16)
-+#define USEC_TO_HZ_DEN          U64_C(15625)
-+
-+#elif HZ == 1200
-+#define HZ_TO_MSEC_MUL32        U64_C(0xd5555556)
-+#define HZ_TO_MSEC_ADJ32        U64_C(0xd5555555)
-+#define HZ_TO_MSEC_SHR32        32
-+#define HZ_TO_MSEC_NUM          U64_C(5)
-+#define HZ_TO_MSEC_DEN          U64_C(6)
-+#define MSEC_TO_HZ_MUL32        U64_C(0x9999999a)
-+#define MSEC_TO_HZ_ADJ32        U64_C(0x66666666)
-+#define MSEC_TO_HZ_SHR32        31
-+#define MSEC_TO_HZ_NUM          U64_C(6)
-+#define MSEC_TO_HZ_DEN          U64_C(5)
-+#define HZ_TO_USEC_MUL32        U64_C(0xd0555556)
-+#define HZ_TO_USEC_ADJ32        U64_C(0x2aaaaa)
-+#define HZ_TO_USEC_SHR32        22
-+#define HZ_TO_USEC_NUM          U64_C(2500)
-+#define HZ_TO_USEC_DEN          U64_C(3)
-+#define USEC_TO_HZ_MUL32        U64_C(0x9d495183)
-+#define USEC_TO_HZ_ADJ32        U64_C(0x1ffcb923a29)
-+#define USEC_TO_HZ_SHR32        41
-+#define USEC_TO_HZ_NUM          U64_C(3)
-+#define USEC_TO_HZ_DEN          U64_C(2500)
-+
-+#elif 1
-+#error "kernel/timeconst.h has unknown HZ value!"
-+#endif
-+
-+#endif /* KERNEL_TIMECONST_H */
--- a/sources/patches/linux-ppcqemu.patch	Wed Oct 08 01:10:12 2008 -0500
+++ b/sources/patches/linux-ppcqemu.patch	Fri Oct 10 02:43:44 2008 -0500
@@ -41,7 +41,7 @@
 +source "arch/powerpc/platforms/qemu/Kconfig"
  source "arch/powerpc/platforms/maple/Kconfig"
  source "arch/powerpc/platforms/pasemi/Kconfig"
- source "arch/powerpc/platforms/ps3/Kconfig"
+ source "arch/powerpc/platforms/celleb/Kconfig"
 Index: kernel/arch/powerpc/platforms/qemu/Kconfig
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
@@ -300,7 +300,7 @@
 +
 +	/* polling */
 +	i8259_init(pic, int_ack);
-+	//ppc_md.get_irq = i8259_irq;
++	ppc_md.get_irq = i8259_irq;
 +
 +	/* set default host */
 +	irq_set_default_host(i8259_get_host());
@@ -359,8 +359,8 @@
 +		return 0;
 +
 +#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
-+//	ppc_ide_md.default_irq = qemu_ide_default_irq;
-+//	ppc_ide_md.default_io_base = qemu_ide_default_io_base;
++	ppc_ide_md.default_irq = qemu_ide_default_irq;
++	ppc_ide_md.default_io_base = qemu_ide_default_io_base;
 +#endif
 +
 +	return 1;