~kris/9p

9hist

5f2a65731e6b8719e39a418354a8be588374e214 — David du Colombier 35 years ago b858cdf
Plan 9 from Bell Labs 1991-06-25
8 files changed, 484 insertions(+), 453 deletions(-)

M pc/l.s
A pc/main.c
M pc/mem.h
M pc/mmu.c
M pc/trap.c
M port/tcpinput.c
M power/boot.h
M power/trap.c
M pc/l.s => pc/l.s +22 -13
@@ 1,10 1,26 @@
#include "mem.h"

GLOBL	gdtptr(SB),$6

	DATA	gdtptr+0(SB)/2, $(6*8)
	DATA	gdtptr+2(SB)/4, $gdt(SB)

/*
 *  boot processor
 */
TEXT	start(SB),$0

	/* clear bss */
	CLI			/* disable interrupts */
	MOVW	$NULLSEL,IDTR	/* force shutdown on error */

	/* point data segment at low memory */
	XORL	AX,AX
	MOVW	AX,DS

	/* load gdt address (valid after paging) */
	LEAL	gdtptr(SB),AX
	MOVL	-KZERO(AX),GDTR

	CALL	main(SB)
	/* never returns */



@@ 116,19 132,12 @@ TEXT	invtrap(SB),$0
 */
alltrap:

	PUSHL	DS
	PUSHAL
	MOVL	$KDSEL, AX
	MOVW	AX, DS
	CALL	trap(SB)
	POPAL
	ADDL	$#8,SP		/* pop the trap and error codes */
	POPL	DS
	ADDL	$8,SP		/* pop the trap and error codes */
	IRETL

/*
 *  stubs
 */
TEXT	main(SB),$0

	RET

TEXT	trap(SB),$0

	RET

A pc/main.c => pc/main.c +15 -0
@@ 0,0 1,15 @@
main(void)
{
}

trap(void)
{
}

edata(void)
{
}

end(void)
{
}

M pc/mem.h => pc/mem.h +58 -77
@@ 1,57 1,75 @@
#define SELGDT	(0<<3)	/* selector is in gdt */
#define	SELLDT	(1<<3)	/* selector is in ldt */
/*
 * Memory and machine-specific definitions.  Used in C and assembler.
 */

#define SELECTOR(i, t, p)	(((i)<<4) | (t) | (p))
/*
 * Sizes
 */

#define	BI2BY		8			/* bits per byte */
#define BI2WD		32			/* bits per word */
#define	BY2WD		4			/* bytes per word */
#define	BY2PG		4096			/* bytes per page */
#define	WD2PG		(BY2PG/BY2WD)		/* words per page */
#define	PGSHIFT		13			/* log(BY2PG) */
#define PGROUND(s)	(((s)+(BY2PG-1))&~(BY2PG-1))

#define	MAXMACH		1			/* max # cpus system can run */

/*
 *  segment descriptor/gate
 * Time (???)
 * Clock frequency is 68.3900 HZ
 */
typedef struct Segdesc	Segdesc;
struct Segdesc
{
	ulong	d0;
	ulong	d1;
};
#define SEGDATA	(0x10<<8)	/* data/stack segment */
#define SEGEXEC	(0x18<<8)	/* executable segment */
#define SEGCG	(0x0C<<8)	/* call gate */
#define	SEGIG	(0x0E<<8)	/* interrupt gate */
#define SEGTG	(0x0F<<8)	/* task gate */

#define SEGP	(1<<15)		/* segment present */
#define SEGPL(x) ((x)<<13)	/* priority level */
#define SEGB	(1<<22)		/* granularity 1==4k (for expand-down) */
#define SEGG	(1<<23)		/* granularity 1==4k (for other) */
#define SEGE	(1<<10)		/* expand down */
#define SEGW	(1<<9)		/* writable (for data/stack) */
#define	SEGR	(1<<9)		/* readable (for code) */
#define SEGD	(1<<22)		/* default 1==32bit (for code) */

#define	HZ		(68)			/* clock frequency */
#define	MS2HZ		(1000/HZ)		/* millisec per clock tick */
#define	TK2SEC(t)	((t)*100/6839)		/* ticks to seconds */
#define	TK2MS(t)	((((ulong)(t))*100000)/6839)	/* ticks to milliseconds */
#define	MS2TK(t)	((((ulong)(t))*6839)/100000)	/* milliseconds to ticks */

/*
 *  gate initializers
 * Fundamental addresses
 */
#define TRAPGATE(s,o,p)	{ (o)&0xFFFF0000|SEGP|SEGPL(p)|SEGTG, (o)&0xFFFF|((s)<<16) }
#define INTRGATE(s,o,p)	{ (o)&0xFFFF0000|SEGP|SEGPL(p)|SEGIG, (o)&0xFFFF|((s)<<16) }
#define CALLGATE(s,o,p)	{ (o)&0xFFFF0000|SEGP|SEGPL(p)|SEGCG, (o)&0xFFFF|((s)<<16) }

#define	USERADDR	0xC0000000
#define	UREGADDR	(USERADDR+BY2PG-4*16)

/*
 *  segment descriptor initializers
 * Address spaces
 *
 * User is at 0-2GB
 * Kernel is at 2GB-4GB
 */
#define	DATASEG(p) 	{ SEGG|SEGB|(0xF<<16)|SEGP|SEGPL(p)|SEGDATA|SEGW, 0xFFFF }
#define	EXECSEG(p) 	{ SEGG|SEGD|(0xF<<16)|SEGP|SEGPL(p)|SEGEXEC|SEGR, 0xFFFF }

#define	UZERO	0			/* base of user address space */
#define	UTZERO	(UZERO+BY2PG)		/* first address in user text */
#define	TSTKTOP	USERADDR		/* end of new stack in sysexec */
#define TSTKSIZ 10
#define	USTKTOP	(TSTKTOP-TSTKSIZ*BY2PG)	/* byte just beyond user stack */
#define	KZERO	0x80000000		/* base of kernel address space */
#define	KTZERO	KZERO			/* first address in kernel text */
#define	USTKSIZE	(4*1024*1024)	/* size of user stack */

#define	MACHSIZE	4096

#define isphys(x) ((x)&KZERO)

/*
 *  known segments (in GDT) and their selectors
 */
enum
{
	NULLSEG=0,	/* null segment */
	KESEG=	1,	/* kernel executable */	
	KDSEG=	2,	/* kernel data/stack */
	UESEG=	3,	/* user executable */
	UDSEG=	4,	/* user data/stack */
	SYSGATE=5,	/* system call gate */
};

#define	NULLSEG	0	/* null segment */
#define	KESEG	1	/* kernel executable */	
#define	KDSEG	2	/* kernel data/stack */
#define	UESEG	3	/* user executable */
#define	UDSEG	4	/* user data/stack */
#define	SYSGATE	5	/* system call gate */

#define SELGDT	(0<<3)	/* selector is in gdt */
#define	SELLDT	(1<<3)	/* selector is in ldt */

#define SELECTOR(i, t, p)	(((i)<<4) | (t) | (p))

#define NULLSEL	SELECTOR(NULLSEG, SELGDT, 0)
#define KESEL	SELECTOR(KESEG, SELGDT, 0)
#define KDSEL	SELECTOR(KDSEG, SELGDT, 0)


@@ 60,40 78,3 @@ enum
#define UDSEL	SELECTOR(UDSEG, SELGDT, 3)
#define USSEL	SELECTOR(UDSEG, SELGDT, 3)

/*
 *  task state segment.  Plan 9 ignores all the task switching goo and just
 *  uses the tss for esp0 and ss0 on gate's into the kernel, interrupts,
 *  and exceptions.  The rest is completely ignored.
 *
 *  This means that we only need one tss in the whole system.
 */
typedef struct Tss	Tss;
struct Tss
{
	ulong	backlink;	/* unused */
	ulong	esp0;		/* pl0 stack pointer */
	ulong	ss0;		/* pl0 stack selector */
	ulong	esp1;		/* pl1 stack pointer */
	ulong	ss1;		/* pl1 stack selector */
	ulong	esp2;		/* pl2 stack pointer */
	ulong	ss2;		/* pl2 stack selector */
	ulong	cr3;		/* page table descriptor */
	ulong	eip;		/* instruction pointer */
	ulong	eflags;		/* processor flags */
	ulong	eax;		/* general (hah?) registers */
	ulong 	ecx;
	ulong	edx;
	ulong	ebx;
	ulong	esp;
	ulong	ebp;
	ulong	esi;
	ulong	edi;
	ulong	es;		/* segment selectors */
	ulong	cs;
	ulong	ss;
	ulong	ds;
	ulong	fs;
	ulong	gs;
	ulong	ldt;		/* local descriptor table */
	ulong	iomap;		/* io map base */
};

M pc/mmu.c => pc/mmu.c +75 -1
@@ 6,6 6,81 @@
#include	"io.h"

/*
 *  segment descriptor/gate
 */
typedef struct Segdesc	Segdesc;
struct Segdesc
{
	ulong	d0;
	ulong	d1;
};
#define SEGDATA	(0x10<<8)	/* data/stack segment */
#define SEGEXEC	(0x18<<8)	/* executable segment */
#define SEGCG	(0x0C<<8)	/* call gate */
#define	SEGIG	(0x0E<<8)	/* interrupt gate */
#define SEGTG	(0x0F<<8)	/* task gate */

#define SEGP	(1<<15)		/* segment present */
#define SEGPL(x) ((x)<<13)	/* priority level */
#define SEGB	(1<<22)		/* granularity 1==4k (for expand-down) */
#define SEGG	(1<<23)		/* granularity 1==4k (for other) */
#define SEGE	(1<<10)		/* expand down */
#define SEGW	(1<<9)		/* writable (for data/stack) */
#define	SEGR	(1<<9)		/* readable (for code) */
#define SEGD	(1<<22)		/* default 1==32bit (for code) */

/*
 *  gate initializers
 */
#define TRAPGATE(s,o,p)	{ (o)&0xFFFF0000|SEGP|SEGPL(p)|SEGTG, (o)&0xFFFF|((s)<<16) }
#define INTRGATE(s,o,p)	{ (o)&0xFFFF0000|SEGP|SEGPL(p)|SEGIG, (o)&0xFFFF|((s)<<16) }
#define CALLGATE(s,o,p)	{ (o)&0xFFFF0000|SEGP|SEGPL(p)|SEGCG, (o)&0xFFFF|((s)<<16) }

/*
 *  segment descriptor initializers
 */
#define	DATASEG(p) 	{ SEGG|SEGB|(0xF<<16)|SEGP|SEGPL(p)|SEGDATA|SEGW, 0xFFFF }
#define	EXECSEG(p) 	{ SEGG|SEGD|(0xF<<16)|SEGP|SEGPL(p)|SEGEXEC|SEGR, 0xFFFF }

/*
 *  task state segment.  Plan 9 ignores all the task switching goo and just
 *  uses the tss for esp0 and ss0 on gate's into the kernel, interrupts,
 *  and exceptions.  The rest is completely ignored.
 *
 *  This means that we only need one tss in the whole system.
 */
typedef struct Tss	Tss;
struct Tss
{
	ulong	backlink;	/* unused */
	ulong	esp0;		/* pl0 stack pointer */
	ulong	ss0;		/* pl0 stack selector */
	ulong	esp1;		/* pl1 stack pointer */
	ulong	ss1;		/* pl1 stack selector */
	ulong	esp2;		/* pl2 stack pointer */
	ulong	ss2;		/* pl2 stack selector */
	ulong	cr3;		/* page table descriptor */
	ulong	eip;		/* instruction pointer */
	ulong	eflags;		/* processor flags */
	ulong	eax;		/* general (hah?) registers */
	ulong 	ecx;
	ulong	edx;
	ulong	ebx;
	ulong	esp;
	ulong	ebp;
	ulong	esi;
	ulong	edi;
	ulong	es;		/* segment selectors */
	ulong	cs;
	ulong	ss;
	ulong	ds;
	ulong	fs;
	ulong	gs;
	ulong	ldt;		/* local descriptor table */
	ulong	iomap;		/* io map base */
};

/*
 *  global descriptor table describing all segments
 */
Segdesc gdt[1024] =


@@ 16,5 91,4 @@ Segdesc gdt[1024] =
[UESEG]		EXECSEG(3),		/* user code */
[UDSEG]		DATASEG(3),		/* user data/stack */
[SYSGATE]	CALLGATE(KESEG, syscall, 3),	/* call gate for system calls */
		{ 0, 0},		/* the rest */
};

M pc/trap.c => pc/trap.c +0 -5
@@ 70,11 70,6 @@ Segdesc ilt[256] =
uchar	traptab[4096];

/*
 *  set up some basic vectored interrupts
 */
trapinit(

/*
 *  j-random uncaught trap or interrupt
 */
void

M port/tcpinput.c => port/tcpinput.c +0 -1
@@ 657,7 657,6 @@ add_reseq(Tcpctl *tcb, char tos, Tcp *seg, Block *bp, ushort length)
	qlock(&reseqlock);
	if(!reseqfree) {
		qunlock(&reseqlock);
		print("tcp: no resequence descriptors\n");
		freeb(bp);
		return;
	}

M power/boot.h => power/boot.h +312 -356
@@ 1,6 1,6 @@
ulong bootcode[]={
	0x000000407,
	0x000005638,
	0x000005588,
	0x0000007d0,
	0x000001190,
	0x000000000,


@@ 25,24 25,24 @@ ulong bootcode[]={
	0x0afa00018,
	0x023c282e1,
	0x0afa20004,
	0x00c000a83,
	0x00c000a73,
	0x0afa00008,
	0x023c382e9,
	0x0afa30004,
	0x020020001,
	0x00c000a83,
	0x00c000a73,
	0x0afa20008,
	0x023c382f1,
	0x0afa30004,
	0x020020001,
	0x00c000a83,
	0x00c000a73,
	0x0afa20008,
	0x023c282f9,
	0x0afa20004,
	0x020040001,
	0x0afa40008,
	0x0200201b6,
	0x00c000a6a,
	0x00c000a5f,
	0x0afa2000c,
	0x004210004,
	0x0afa1001c,


@@ 52,13 52,13 @@ ulong bootcode[]={
	0x08fa20028,
	0x000000027,
	0x08c420000,
	0x00c000a43,
	0x00c000a3b,
	0x0afa20004,
	0x0afa10014,
	0x08fa40028,
	0x000000027,
	0x08c840000,
	0x00c000a43,
	0x00c000a3b,
	0x0afa40004,
	0x0afa10010,
	0x08fa4001c,


@@ 70,7 70,7 @@ ulong bootcode[]={
	0x000000027,
	0x0afa30008,
	0x08fa40010,
	0x00c000a9c,
	0x00c000a87,
	0x0afa4000c,
	0x08fa30014,
	0x000000027,


@@ 80,14 80,14 @@ ulong bootcode[]={
	0x00c0008d0,
	0x0afa20004,
	0x08fa3001c,
	0x00c000a65,
	0x00c000a5b,
	0x0afa30004,
	0x023c38314,
	0x0afa30004,
	0x020040001,
	0x0afa40008,
	0x0200301b6,
	0x00c000a6a,
	0x00c000a5f,
	0x0afa3000c,
	0x004210004,
	0x0afa1001c,


@@ 95,7 95,7 @@ ulong bootcode[]={
	0x00c0008d0,
	0x0afa20004,
	0x023c48336,
	0x00c000a43,
	0x00c000a3b,
	0x0afa40004,
	0x0afa10014,
	0x08fa4001c,


@@ 103,7 103,7 @@ ulong bootcode[]={
	0x0afa40004,
	0x0afa20008,
	0x08fa40014,
	0x00c000a9c,
	0x00c000a87,
	0x0afa4000c,
	0x004210004,
	0x000000027,


@@ 111,7 111,7 @@ ulong bootcode[]={
	0x00c0008d0,
	0x0afa20004,
	0x08fa3001c,
	0x00c000a65,
	0x00c000a5b,
	0x0afa30004,
	0x08fa20028,
	0x000000027,


@@ 143,12 143,12 @@ ulong bootcode[]={
	0x023c28026,
	0x0afa20004,
	0x023c3834c,
	0x00c000a03,
	0x00c0009fc,
	0x0afa30008,
	0x023c298d2,
	0x0afa20004,
	0x023c38357,
	0x00c000a03,
	0x00c0009fc,
	0x0afa30008,
	0x08fa60028,
	0x08fa20024,


@@ 165,14 165,14 @@ ulong bootcode[]={
	0x000000027,
	0x018a00003,
	0x000000027,
	0x00c000a65,
	0x00c000a5b,
	0x0afa50004,
	0x08fc3801a,
	0x000000027,
	0x018600004,
	0x000000027,
	0x08fc2801a,
	0x00c000a65,
	0x00c000a5b,
	0x0afa20004,
	0x0afc0801a,
	0x0afc08006,


@@ 184,20 184,20 @@ ulong bootcode[]={
	0x000000027,
	0x0afa50004,
	0x08cc30000,
	0x00c000a03,
	0x00c0009fc,
	0x0afa30008,
	0x023c28026,
	0x0afa20004,
	0x08fa30028,
	0x000000027,
	0x08c630004,
	0x00c000a03,
	0x00c0009fc,
	0x0afa30008,
	0x00800049f,
	0x000000027,
	0x0afa50004,
	0x08cc30000,
	0x00c000a03,
	0x00c0009fc,
	0x0afa30008,
	0x00800049f,
	0x000000027,


@@ 206,7 206,7 @@ ulong bootcode[]={
	0x023c3835f,
	0x0afa30004,
	0x020020002,
	0x00c000a83,
	0x00c000a73,
	0x0afa20008,
	0x08fa20000,
	0x000000027,


@@ 224,7 224,7 @@ ulong bootcode[]={
	0x000000027,
	0x0afa30004,
	0x08fa40028,
	0x00c0009ed,
	0x00c0009e9,
	0x0afa40008,
	0x08fa50014,
	0x0142000a5,


@@ 248,7 248,7 @@ ulong bootcode[]={
	0x023c28395,
	0x0afa20004,
	0x020040002,
	0x00c000a83,
	0x00c000a73,
	0x0afa40008,
	0x004210008,
	0x000000027,


@@ 264,12 264,12 @@ ulong bootcode[]={
	0x023c483af,
	0x0afa40008,
	0x02003000d,
	0x00c000a9c,
	0x00c000a87,
	0x0afa3000c,
	0x08fa50020,
	0x00421000a,
	0x000000027,
	0x00c000a65,
	0x00c000a5b,
	0x0afa50004,
	0x023c383bd,
	0x00c0008be,


@@ 282,12 282,12 @@ ulong bootcode[]={
	0x023c483cb,
	0x0afa40008,
	0x02003000c,
	0x00c000a9c,
	0x00c000a87,
	0x0afa3000c,
	0x08fa50020,
	0x00421000a,
	0x000000027,
	0x00c000a65,
	0x00c000a5b,
	0x0afa50004,
	0x023c383d8,
	0x00c0008be,


@@ 300,12 300,12 @@ ulong bootcode[]={
	0x023c483e5,
	0x0afa40008,
	0x02003000c,
	0x00c000a9c,
	0x00c000a87,
	0x0afa3000c,
	0x00421000b,
	0x000000027,
	0x08fa20020,
	0x00c000a65,
	0x00c000a5b,
	0x0afa20004,
	0x023c383f2,
	0x00c0008be,


@@ 319,7 319,7 @@ ulong bootcode[]={
	0x023c283ff,
	0x0afa20004,
	0x020040002,
	0x00c000a83,
	0x00c000a73,
	0x0afa40008,
	0x004210008,
	0x0afa10018,


@@ 333,12 333,12 @@ ulong bootcode[]={
	0x023c38425,
	0x0afa30004,
	0x020040002,
	0x00c000a83,
	0x00c000a73,
	0x0afa40008,
	0x00421000c,
	0x0afa1001c,
	0x08fa20018,
	0x00c000a65,
	0x00c000a5b,
	0x0afa20004,
	0x023c28433,
	0x0afa20004,


@@ 351,7 351,7 @@ ulong bootcode[]={
	0x08fa40014,
	0x000000027,
	0x08c840004,
	0x00c000a43,
	0x00c000a3b,
	0x0afa40004,
	0x0afa10010,
	0x08fa4001c,


@@ 363,15 363,15 @@ ulong bootcode[]={
	0x000000027,
	0x0afa20008,
	0x08fa40010,
	0x00c000a9c,
	0x00c000a87,
	0x0afa4000c,
	0x004210012,
	0x000000027,
	0x08fa2001c,
	0x00c000a65,
	0x00c000a5b,
	0x0afa20004,
	0x08fa30018,
	0x00c000a65,
	0x00c000a5b,
	0x0afa30004,
	0x08fa30014,
	0x000000027,


@@ 404,7 404,7 @@ ulong bootcode[]={
	0x023c28457,
	0x0afa20004,
	0x020040002,
	0x00c000a83,
	0x00c000a73,
	0x0afa40008,
	0x004210008,
	0x0afc1801e,


@@ 419,12 419,12 @@ ulong bootcode[]={
	0x023c4846d,
	0x0afa40008,
	0x02003000a,
	0x00c000a9c,
	0x00c000a87,
	0x0afa3000c,
	0x08fc5801e,
	0x00421000a,
	0x000000027,
	0x00c000a65,
	0x00c000a5b,
	0x0afa50004,
	0x023c38478,
	0x00c0008be,


@@ 437,12 437,12 @@ ulong bootcode[]={
	0x023c48483,
	0x0afa40008,
	0x020030017,
	0x00c000a9c,
	0x00c000a87,
	0x0afa3000c,
	0x00421000b,
	0x000000027,
	0x08fc2801e,
	0x00c000a65,
	0x00c000a5b,
	0x0afa20004,
	0x023c3849b,
	0x00c0008be,


@@ 454,12 454,12 @@ ulong bootcode[]={
	0x020020001,
	0x0afc280ce,
	0x0200307d0,
	0x00c000a8d,
	0x00c000a7b,
	0x0afa30004,
	0x023c384b3,
	0x0afa30004,
	0x020040002,
	0x00c000a83,
	0x00c000a73,
	0x0afa40008,
	0x004210008,
	0x0afa10054,


@@ 473,12 473,12 @@ ulong bootcode[]={
	0x023c284d3,
	0x0afa20004,
	0x020040002,
	0x00c000a83,
	0x00c000a73,
	0x0afa40008,
	0x00421000c,
	0x0afc1801a,
	0x08fa30054,
	0x00c000a65,
	0x00c000a5b,
	0x0afa30004,
	0x023c384de,
	0x0afa30004,


@@ 496,7 496,7 @@ ulong bootcode[]={
	0x00c0009b1,
	0x0afa2000c,
	0x023a40014,
	0x00c000a43,
	0x00c000a3b,
	0x0afa40004,
	0x0afa10010,
	0x08fc4801a,


@@ 504,15 504,15 @@ ulong bootcode[]={
	0x0afa40004,
	0x0afa20008,
	0x08fa40010,
	0x00c000a9c,
	0x00c000a87,
	0x0afa4000c,
	0x004210010,
	0x000000027,
	0x08fc2801a,
	0x00c000a65,
	0x00c000a5b,
	0x0afa20004,
	0x08fa30054,
	0x00c000a65,
	0x00c000a5b,
	0x0afa30004,
	0x02002ffff,
	0x0afc2801a,


@@ 549,7 549,7 @@ ulong bootcode[]={
	0x08fa500d0,
	0x014200007,
	0x000000027,
	0x00c000a65,
	0x00c000a5b,
	0x0afa50004,
	0x08fa20000,
	0x023bd00d4,


@@ 562,14 562,14 @@ ulong bootcode[]={
	0x023c28509,
	0x0afa20010,
	0x023c4850a,
	0x00c000a7e,
	0x00c000a6f,
	0x0afa40014,
	0x004210004,
	0x000000027,
	0x023c2850b,
	0x00c0008d0,
	0x0afa20004,
	0x00c000a79,
	0x00c000a6b,
	0x000000027,
	0x02003ffff,
	0x01023002f,


@@ 577,7 577,7 @@ ulong bootcode[]={
	0x010200022,
	0x000000027,
	0x023a20018,
	0x00c000a97,
	0x00c000a83,
	0x0afa20004,
	0x083a3002c,
	0x000000027,


@@ 593,7 593,7 @@ ulong bootcode[]={
	0x00c00098c,
	0x0afa20008,
	0x020030bb8,
	0x00c000a8d,
	0x00c000a7b,
	0x0afa30004,
	0x020020002,
	0x0afa20004,


@@ 603,7 603,7 @@ ulong bootcode[]={
	0x023c2857b,
	0x0afa20004,
	0x020030002,
	0x00c000a83,
	0x00c000a73,
	0x0afa30008,
	0x08fa20000,
	0x000000027,


@@ 615,7 615,7 @@ ulong bootcode[]={
	0x0afa20008,
	0x023c38535,
	0x0afa3000c,
	0x00c000a4f,
	0x00c000a47,
	0x0afa00010,
	0x023c28545,
	0x00c0008d0,


@@ 637,14 637,14 @@ ulong bootcode[]={
	0x023c297d2,
	0x0afa20004,
	0x023c487d2,
	0x00c000ae9,
	0x00c000ad3,
	0x0afa40008,
	0x08fa30024,
	0x023c487d2,
	0x0afa30004,
	0x0afa40008,
	0x0afa1001c,
	0x00c000a9c,
	0x00c000a87,
	0x0afa1000c,
	0x08fa5001c,
	0x000000027,


@@ 666,7 666,7 @@ ulong bootcode[]={
	0x0afa20004,
	0x0afa40008,
	0x020021000,
	0x00c000a88,
	0x00c000a77,
	0x0afa2000c,
	0x01c200008,
	0x000000027,


@@ 687,7 687,7 @@ ulong bootcode[]={
	0x023c497d2,
	0x0afa40008,
	0x0afa1001c,
	0x00c000f10,
	0x00c000efa,
	0x0afa1000c,
	0x014200022,
	0x000000027,


@@ 756,14 756,14 @@ ulong bootcode[]={
	0x023c397d2,
	0x0afa30004,
	0x023c487d2,
	0x00c000ae9,
	0x00c000ad3,
	0x0afa40008,
	0x08fa20024,
	0x023c487d2,
	0x0afa20004,
	0x0afa40008,
	0x0afa1001c,
	0x00c000a9c,
	0x00c000a87,
	0x0afa1000c,
	0x08fa4001c,
	0x000000027,


@@ 781,7 781,7 @@ ulong bootcode[]={
	0x0afa20004,
	0x0afa40008,
	0x020021000,
	0x00c000a88,
	0x00c000a77,
	0x0afa2000c,
	0x01c200008,
	0x000000027,


@@ 796,7 796,7 @@ ulong bootcode[]={
	0x0afa30004,
	0x023c497d2,
	0x0afa40008,
	0x00c000f10,
	0x00c000efa,
	0x0afa1000c,
	0x014200008,
	0x000000027,


@@ 919,7 919,7 @@ ulong bootcode[]={
	0x020040001,
	0x0afa40008,
	0x0200201b6,
	0x00c000a6a,
	0x00c000a5f,
	0x0afa2000c,
	0x004210004,
	0x0afa10148,


@@ 934,11 934,11 @@ ulong bootcode[]={
	0x00c0009b1,
	0x0afa2000c,
	0x023c387d2,
	0x00c000a43,
	0x00c000a3b,
	0x0afa30004,
	0x0afa10014,
	0x023c487d2,
	0x00c000a43,
	0x00c000a3b,
	0x0afa40004,
	0x0afa10010,
	0x08fa40148,


@@ 946,7 946,7 @@ ulong bootcode[]={
	0x0afa40004,
	0x0afa30008,
	0x08fa40010,
	0x00c000a9c,
	0x00c000a87,
	0x0afa4000c,
	0x08fa30014,
	0x000000027,


@@ 956,14 956,14 @@ ulong bootcode[]={
	0x00c0008d0,
	0x0afa20004,
	0x08fa30148,
	0x00c000a65,
	0x00c000a5b,
	0x0afa30004,
	0x023c386ab,
	0x0afa30004,
	0x020040001,
	0x0afa40008,
	0x0200301b6,
	0x00c000a6a,
	0x00c000a5f,
	0x0afa3000c,
	0x004210004,
	0x0afa10148,


@@ 978,11 978,11 @@ ulong bootcode[]={
	0x00c0009b1,
	0x0afa3000c,
	0x023c287d2,
	0x00c000a43,
	0x00c000a3b,
	0x0afa20004,
	0x0afa10014,
	0x023c487d2,
	0x00c000a43,
	0x00c000a3b,
	0x0afa40004,
	0x0afa10010,
	0x08fa40148,


@@ 990,7 990,7 @@ ulong bootcode[]={
	0x0afa40004,
	0x0afa30008,
	0x08fa40010,
	0x00c000a9c,
	0x00c000a87,
	0x0afa4000c,
	0x08fa30014,
	0x000000027,


@@ 1000,7 1000,7 @@ ulong bootcode[]={
	0x00c0008d0,
	0x0afa20004,
	0x08fa30148,
	0x00c000a65,
	0x00c000a5b,
	0x0afa30004,
	0x023c286c3,
	0x00c000967,


@@ 1009,7 1009,7 @@ ulong bootcode[]={
	0x0afa20004,
	0x023c486ce,
	0x0afa40008,
	0x00c000a60,
	0x00c000a57,
	0x0afa0000c,
	0x004210004,
	0x000000027,


@@ 1025,7 1025,7 @@ ulong bootcode[]={
	0x023c486d7,
	0x0afa40010,
	0x023c286d8,
	0x00c000a7e,
	0x00c000a6f,
	0x0afa20014,
	0x004210004,
	0x000000027,


@@ 1038,7 1038,7 @@ ulong bootcode[]={
	0x023c286e7,
	0x0afa20004,
	0x023a40058,
	0x00c000a92,
	0x00c000a7f,
	0x0afa40008,
	0x004210004,
	0x000000027,


@@ 1048,12 1048,12 @@ ulong bootcode[]={
	0x023a30058,
	0x0afa30004,
	0x023a200cc,
	0x00c0011e0,
	0x00c0011ca,
	0x0afa20008,
	0x023c286f0,
	0x0afa20004,
	0x020040001,
	0x00c000a83,
	0x00c000a73,
	0x0afa40008,
	0x0afa10148,
	0x023a20058,


@@ 1064,7 1064,7 @@ ulong bootcode[]={
	0x00c0009b1,
	0x0afa2000c,
	0x023a20058,
	0x00c000a43,
	0x00c000a3b,
	0x0afa20004,
	0x0afa10014,
	0x08fa20148,


@@ 1072,10 1072,10 @@ ulong bootcode[]={
	0x0afa20004,
	0x0afa30008,
	0x08fa20014,
	0x00c000a9c,
	0x00c000a87,
	0x0afa2000c,
	0x08fa30148,
	0x00c000a65,
	0x00c000a5b,
	0x0afa30004,
	0x023c286fc,
	0x00c000967,


@@ 1095,13 1095,13 @@ ulong bootcode[]={
	0x023a20018,
	0x0afa30004,
	0x0afa20008,
	0x00c000a60,
	0x00c000a57,
	0x0afa0000c,
	0x08fc3812a,
	0x023c2870d,
	0x0afa30004,
	0x0afa20008,
	0x00c000a60,
	0x00c000a57,
	0x0afa0000c,
	0x08fc58022,
	0x000000027,


@@ 1122,7 1122,7 @@ ulong bootcode[]={
	0x0afa30004,
	0x023c28748,
	0x0afa20008,
	0x00c000a60,
	0x00c000a57,
	0x0afa0000c,
	0x08fa30154,
	0x000000027,


@@ 1134,7 1134,7 @@ ulong bootcode[]={
	0x0afa30008,
	0x023c28769,
	0x0afa2000c,
	0x00c000a4f,
	0x00c000a47,
	0x0afa00010,
	0x023c3877c,
	0x00c0008d0,


@@ 1147,7 1147,7 @@ ulong bootcode[]={
	0x0afa30004,
	0x023c28777,
	0x0afa20008,
	0x00c000a4f,
	0x00c000a47,
	0x0afa0000c,
	0x023c3877c,
	0x00c0008d0,


@@ 1160,7 1160,7 @@ ulong bootcode[]={
	0x00c000967,
	0x0afa30004,
	0x0200203e8,
	0x00c000a8d,
	0x00c000a7b,
	0x0afa20004,
	0x08fc68006,
	0x08fa20144,


@@ 1216,7 1216,7 @@ ulong bootcode[]={
	0x023bdffac,
	0x0afbf0000,
	0x023a20014,
	0x00c000a6f,
	0x00c000a63,
	0x0afa20004,
	0x020030002,
	0x0afa30004,


@@ 1234,7 1234,7 @@ ulong bootcode[]={
	0x023bdffac,
	0x0afbf0000,
	0x023a30014,
	0x00c000a6f,
	0x00c000a63,
	0x0afa30004,
	0x020020002,
	0x0afa20004,


@@ 1265,7 1265,7 @@ ulong bootcode[]={
	0x023a30010,
	0x0afa30008,
	0x08fa40120,
	0x00c000a88,
	0x00c000a77,
	0x0afa4000c,
	0x014200003,
	0x000012825,


@@ 1287,7 1287,7 @@ ulong bootcode[]={
	0x08fa3011c,
	0x023a20010,
	0x0afa30004,
	0x00c000a03,
	0x00c0009fc,
	0x0afa20008,
	0x08fa50110,
	0x000000027,


@@ 1376,7 1376,7 @@ ulong bootcode[]={
	0x00800094f,
	0x02484ffff,
	0x08fa30014,
	0x00c000a5b,
	0x00c000a53,
	0x0afa30004,
	0x08fa20000,
	0x000000027,


@@ 1392,14 1392,14 @@ ulong bootcode[]={
	0x023a41020,
	0x0afa3000c,
	0x024840004,
	0x00c00129d,
	0x00c001284,
	0x0afa40010,
	0x023a6001c,
	0x020020001,
	0x0afa20004,
	0x0afa60008,
	0x000261023,
	0x00c000a9c,
	0x00c000a87,
	0x0afa2000c,
	0x0afa10014,
	0x00421000c,


@@ 1429,14 1429,14 @@ ulong bootcode[]={
	0x023a41024,
	0x0afa3000c,
	0x024840004,
	0x00c00129d,
	0x00c001284,
	0x0afa40010,
	0x08fa21020,
	0x023a6001c,
	0x0afa20004,
	0x0afa60008,
	0x000261023,
	0x00c000a9c,
	0x00c000a87,
	0x0afa2000c,
	0x0afa10014,
	0x00421000c,


@@ 1468,7 1468,7 @@ ulong bootcode[]={
	0x023a40024,
	0x0afa2000c,
	0x024840004,
	0x00c00129d,
	0x00c001284,
	0x0afa40010,
	0x08fa20014,
	0x000000027,


@@ 1480,10 1480,9 @@ ulong bootcode[]={
	0x000000027,
	0x000400008,
	0x023bd001c,
	0x023bdfffc,
	0x08fa70010,
	0x08fa6000c,
	0x08fa50008,
	0x08fa7000c,
	0x08fa60008,
	0x08fa50004,
	0x000000027,
	0x024e7ffff,
	0x004e00007,


@@ 1492,11 1491,10 @@ ulong bootcode[]={
	0x000061025,
	0x080420000,
	0x000000027,
	0x01062000f,
	0x01062000d,
	0x024c60001,
	0x004e10004,
	0x004e10003,
	0x000000027,
	0x023bd0004,
	0x003e00008,
	0x000000825,
	0x080a10000,


@@ 1505,42 1503,36 @@ ulong bootcode[]={
	0x000010e03,
	0x000021600,
	0x000021603,
	0x023bd0004,
	0x003e00008,
	0x000220823,
	0x000051825,
	0x080630000,
	0x000000027,
	0x01460ffe5,
	0x01460ffe7,
	0x024a50001,
	0x023bd0004,
	0x003e00008,
	0x000000825,
	0x023bdfffc,
	0x08fa30008,
	0x08fa2000c,
	0x08fa30004,
	0x08fa20008,
	0x000000027,
	0x080410000,
	0x080640000,
	0x01020000c,
	0x01020000b,
	0x000000027,
	0x024630001,
	0x01024fffa,
	0x024420001,
	0x00024082b,
	0x014200004,
	0x014200003,
	0x000000027,
	0x023bd0004,
	0x003e00008,
	0x02001ffff,
	0x003e00008,
	0x023bd0004,
	0x023bd0004,
	0x000000027,
	0x003e00008,
	0x00024082b,
	0x023bdfffc,
	0x08fa30008,
	0x08fa4000c,
	0x08fa30004,
	0x08fa40008,
	0x000000027,
	0x000830826,
	0x030210003,


@@ 1557,9 1549,9 @@ ulong bootcode[]={
	0x024630001,
	0x014a0fff8,
	0x024840001,
	0x08fa10008,
	0x08fa10004,
	0x003e00008,
	0x023bd0004,
	0x000000027,
	0x08c850000,
	0x024840004,
	0x000a60824,


@@ 1572,42 1564,42 @@ ulong bootcode[]={
	0x030a200ff,
	0x01440fff5,
	0x0ac65fffc,
	0x08fa10008,
	0x08fa10004,
	0x003e00008,
	0x023bd0004,
	0x000000027,
	0x000050e02,
	0x0a061fffc,
	0x000052c02,
	0x0a065fffd,
	0x0a060fffe,
	0x08fa10008,
	0x08fa10004,
	0x003e00008,
	0x023bd0004,
	0x000000027,
	0x000052e02,
	0x0a065fffc,
	0x0a060fffd,
	0x08fa10008,
	0x08fa10004,
	0x003e00008,
	0x023bd0004,
	0x000000027,
	0x0a060fffc,
	0x08fa10008,
	0x08fa10004,
	0x003e00008,
	0x023bd0004,
	0x000000027,
	0x080850000,
	0x000000027,
	0x0a0650000,
	0x024630001,
	0x014a0fffb,
	0x024840001,
	0x08fa10008,
	0x08fa10004,
	0x003e00008,
	0x023bd0004,
	0x000000027,
	0x023bdfff4,
	0x0afbf0000,
	0x08fa20010,
	0x000000027,
	0x0afa20004,
	0x00c00180c,
	0x00c0017e7,
	0x0afa00008,
	0x08fa30010,
	0x08fa20000,


@@ 1620,82 1612,68 @@ ulong bootcode[]={
	0x023a30010,
	0x0afa20004,
	0x024630004,
	0x00c000a74,
	0x00c000a67,
	0x0afa30008,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd000c,
	0x023bdfffc,
	0x020010008,
	0x00000000c,
	0x003e00008,
	0x023bd0004,
	0x023bdfffc,
	0x000000027,
	0x020010002,
	0x00000000c,
	0x003e00008,
	0x023bd0004,
	0x023bdfffc,
	0x000000027,
	0x020010004,
	0x00000000c,
	0x003e00008,
	0x023bd0004,
	0x023bdfffc,
	0x000000027,
	0x020010016,
	0x00000000c,
	0x003e00008,
	0x023bd0004,
	0x023bdfffc,
	0x000000027,
	0x020010001,
	0x00000000c,
	0x003e00008,
	0x023bd0004,
	0x023bdfffc,
	0x000000027,
	0x020010007,
	0x00000000c,
	0x003e00008,
	0x023bd0004,
	0x023bdfffc,
	0x000000027,
	0x020010009,
	0x00000000c,
	0x003e00008,
	0x023bd0004,
	0x023bdfffc,
	0x000000027,
	0x02001000d,
	0x00000000c,
	0x003e00008,
	0x023bd0004,
	0x023bdfffc,
	0x000000027,
	0x02001000e,
	0x00000000c,
	0x003e00008,
	0x023bd0004,
	0x023bdfffc,
	0x000000027,
	0x02001000f,
	0x00000000c,
	0x003e00008,
	0x023bd0004,
	0x023bdfffc,
	0x000000027,
	0x020010011,
	0x00000000c,
	0x003e00008,
	0x023bd0004,
	0x023bdfffc,
	0x000000027,
	0x020010012,
	0x00000000c,
	0x003e00008,
	0x023bd0004,
	0x023bdfffc,
	0x000000027,
	0x020010013,
	0x00000000c,
	0x003e00008,
	0x023bd0004,
	0x023bdfffc,
	0x000000027,
	0x020010014,
	0x00000000c,
	0x003e00008,
	0x023bd0004,
	0x000000027,
	0x023bdffe4,
	0x0afbf0000,
	0x023c280ea,


@@ 1713,7 1691,7 @@ ulong bootcode[]={
	0x08fa2002c,
	0x000000027,
	0x08c420000,
	0x00c000a88,
	0x00c000a77,
	0x0afa2000c,
	0x014200015,
	0x0afa10018,


@@ 1749,7 1727,7 @@ ulong bootcode[]={
	0x08fa40028,
	0x000000027,
	0x0afa40008,
	0x00c000f10,
	0x00c000efa,
	0x0afa1000c,
	0x014200009,
	0x0afa10018,


@@ 1759,7 1737,7 @@ ulong bootcode[]={
	0x00c00098c,
	0x0afa30008,
	0x023c28121,
	0x008000abb,
	0x008000aa5,
	0x0afa20010,
	0x08fa3002c,
	0x000000027,


@@ 1859,7 1837,7 @@ ulong bootcode[]={
	0x024a20008,
	0x0afa20008,
	0x020030040,
	0x00c0018c5,
	0x00c00189a,
	0x0afa3000c,
	0x08fa20010,
	0x000000027,


@@ 1885,7 1863,7 @@ ulong bootcode[]={
	0x024a20008,
	0x0afa20008,
	0x02003001c,
	0x00c0018c5,
	0x00c00189a,
	0x0afa3000c,
	0x08fa20010,
	0x02003001c,


@@ 1896,7 1874,7 @@ ulong bootcode[]={
	0x000000027,
	0x024420024,
	0x0afa20008,
	0x00c0018c5,
	0x00c00189a,
	0x0afa3000c,
	0x08fa20010,
	0x02003001c,


@@ 1907,7 1885,7 @@ ulong bootcode[]={
	0x000000027,
	0x024420040,
	0x0afa20008,
	0x00c0018c5,
	0x00c00189a,
	0x0afa3000c,
	0x08fa20010,
	0x000000027,


@@ 2039,7 2017,7 @@ ulong bootcode[]={
	0x024a3000e,
	0x0afa30008,
	0x02002001c,
	0x00c0018c5,
	0x00c00189a,
	0x0afa2000c,
	0x08fa30010,
	0x08fa2001c,


@@ 2188,7 2166,7 @@ ulong bootcode[]={
	0x024a2000e,
	0x0afa20008,
	0x02003001c,
	0x00c0018c5,
	0x00c00189a,
	0x0afa3000c,
	0x08fa70018,
	0x08fa20010,


@@ 2268,7 2246,7 @@ ulong bootcode[]={
	0x000000027,
	0x0afa20008,
	0x08ca3000c,
	0x00c0018c5,
	0x00c00189a,
	0x0afa3000c,
	0x08fa20018,
	0x08fa30010,


@@ 2412,7 2390,7 @@ ulong bootcode[]={
	0x000000027,
	0x0afa20008,
	0x08ca3000c,
	0x00c0018c5,
	0x00c00189a,
	0x0afa3000c,
	0x08fa20018,
	0x08fa30010,


@@ 2543,7 2521,7 @@ ulong bootcode[]={
	0x024a30008,
	0x0afa30008,
	0x020020074,
	0x00c0018c5,
	0x00c00189a,
	0x0afa2000c,
	0x08fa30010,
	0x08fa2001c,


@@ 2599,7 2577,7 @@ ulong bootcode[]={
	0x024a20008,
	0x0afa20008,
	0x020030074,
	0x00c0018c5,
	0x00c00189a,
	0x0afa3000c,
	0x08fa20010,
	0x000000027,


@@ 2647,7 2625,7 @@ ulong bootcode[]={
	0x024a2000e,
	0x0afa20008,
	0x02003001c,
	0x00c0018c5,
	0x00c00189a,
	0x0afa3000c,
	0x08fa20010,
	0x000000027,


@@ 2684,7 2662,7 @@ ulong bootcode[]={
	0x08fa30018,
	0x000000027,
	0x0afa30008,
	0x00c0018c5,
	0x00c00189a,
	0x0afa2000c,
	0x08fa30010,
	0x02002001c,


@@ 2695,7 2673,7 @@ ulong bootcode[]={
	0x000000027,
	0x02463001c,
	0x0afa30008,
	0x00c0018c5,
	0x00c00189a,
	0x0afa2000c,
	0x08fa30010,
	0x02002001c,


@@ 2706,7 2684,7 @@ ulong bootcode[]={
	0x000000027,
	0x024630038,
	0x0afa30008,
	0x00c0018c5,
	0x00c00189a,
	0x0afa2000c,
	0x08fa40018,
	0x08fa30010,


@@ 2916,17 2894,17 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000f42,
	0x008000f2c,
	0x0a4c20008,
	0x024c20008,
	0x0afa20004,
	0x0afa50010,
	0x0afa50008,
	0x020020040,
	0x00c0018c5,
	0x00c00189a,
	0x0afa2000c,
	0x08fa30010,
	0x008000f42,
	0x008000f2c,
	0x024650040,
	0x090a20000,
	0x090a30001,


@@ 2941,7 2919,7 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02002001c,
	0x00c0018c5,
	0x00c00189a,
	0x0afa2000c,
	0x08fa30010,
	0x08fa2001c,


@@ 2951,7 2929,7 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02002001c,
	0x00c0018c5,
	0x00c00189a,
	0x0afa2000c,
	0x08fa30010,
	0x08fa2001c,


@@ 2961,10 2939,10 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02002001c,
	0x00c0018c5,
	0x00c00189a,
	0x0afa2000c,
	0x08fa30010,
	0x008000f42,
	0x008000f2c,
	0x02465001c,
	0x02003003e,
	0x00062202a,


@@ 2992,7 2970,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000f42,
	0x008000f2c,
	0x0a4c20002,
	0x090a20000,
	0x090a30001,


@@ 3009,7 2987,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000f42,
	0x008000f2c,
	0x0a4c2000c,
	0x090a20000,
	0x090a30001,


@@ 3050,7 3028,7 @@ ulong bootcode[]={
	0x000031e00,
	0x000431025,
	0x024a50004,
	0x008000f42,
	0x008000f2c,
	0x0acc20010,
	0x090a20000,
	0x090a30001,


@@ 3065,10 3043,10 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02002001c,
	0x00c0018c5,
	0x00c00189a,
	0x0afa2000c,
	0x08fa30010,
	0x008000f42,
	0x008000f2c,
	0x02465001c,
	0x02003003f,
	0x010430040,


@@ 3122,7 3100,7 @@ ulong bootcode[]={
	0x000031e00,
	0x000431025,
	0x024a50004,
	0x008000f42,
	0x008000f2c,
	0x0acc20010,
	0x090a20000,
	0x090a30001,


@@ 3134,7 3112,7 @@ ulong bootcode[]={
	0x024a30002,
	0x024650001,
	0x080630000,
	0x008000f42,
	0x008000f2c,
	0x0a0c3002a,
	0x090a20000,
	0x090a30001,


@@ 3175,7 3153,7 @@ ulong bootcode[]={
	0x000031e00,
	0x000431025,
	0x024a50004,
	0x008000f42,
	0x008000f2c,
	0x0acc20010,
	0x090a20000,
	0x090a30001,


@@ 3190,7 3168,7 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02002001c,
	0x00c0018c5,
	0x00c00189a,
	0x0afa2000c,
	0x08fa6001c,
	0x08fa30010,


@@ 3214,7 3192,7 @@ ulong bootcode[]={
	0x024a30004,
	0x024650001,
	0x080630000,
	0x008000f42,
	0x008000f2c,
	0x0a0c3002a,
	0x02003004a,
	0x00062202a,


@@ 3260,7 3238,7 @@ ulong bootcode[]={
	0x024650001,
	0x0acc50010,
	0x08cc3000c,
	0x008000f42,
	0x008000f2c,
	0x000a32821,
	0x090a20000,
	0x090a30001,


@@ 3293,7 3271,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000f42,
	0x008000f2c,
	0x0acc2000c,
	0x090a20000,
	0x090a30001,


@@ 3334,7 3312,7 @@ ulong bootcode[]={
	0x000031e00,
	0x000431025,
	0x024a50004,
	0x008000f42,
	0x008000f2c,
	0x0acc20010,
	0x090a20000,
	0x090a30001,


@@ 3371,7 3349,7 @@ ulong bootcode[]={
	0x024650001,
	0x0acc50010,
	0x08cc3000c,
	0x008000f42,
	0x008000f2c,
	0x000a32821,
	0x020030047,
	0x01043001d,


@@ 3393,7 3371,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000f42,
	0x008000f2c,
	0x0a4c20002,
	0x090a20000,
	0x090a30001,


@@ 3402,7 3380,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000f42,
	0x008000f2c,
	0x0a4c20002,
	0x090a20000,
	0x090a30001,


@@ 3419,7 3397,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000f42,
	0x008000f2c,
	0x0acc2000c,
	0x090a20000,
	0x090a30001,


@@ 3428,7 3406,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000f42,
	0x008000f2c,
	0x0a4c20002,
	0x02003004e,
	0x00062202a,


@@ 3462,10 3440,10 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x020020074,
	0x00c0018c5,
	0x00c00189a,
	0x0afa2000c,
	0x08fa30010,
	0x008000f42,
	0x008000f2c,
	0x024650074,
	0x090a20000,
	0x090a30001,


@@ 3474,7 3452,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000f42,
	0x008000f2c,
	0x0a4c20002,
	0x090a20000,
	0x090a30001,


@@ 3483,7 3461,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000f42,
	0x008000f2c,
	0x0a4c20002,
	0x090a20000,
	0x090a30001,


@@ 3498,10 3476,10 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x020020074,
	0x00c0018c5,
	0x00c00189a,
	0x0afa2000c,
	0x08fa30010,
	0x008000f42,
	0x008000f2c,
	0x024650074,
	0x02003004f,
	0x010430025,


@@ 3537,10 3515,10 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02002001c,
	0x00c0018c5,
	0x00c00189a,
	0x0afa2000c,
	0x08fa30010,
	0x008000f42,
	0x008000f2c,
	0x02465001c,
	0x090a20000,
	0x090a30001,


@@ 3549,7 3527,7 @@ ulong bootcode[]={
	0x000031a00,
	0x000431025,
	0x024a50002,
	0x008000f42,
	0x008000f2c,
	0x0a4c20002,
	0x023bdffec,
	0x0afbf0000,


@@ 3560,7 3538,7 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02003001c,
	0x00c0018c5,
	0x00c00189a,
	0x0afa3000c,
	0x08fa20010,
	0x08fa3001c,


@@ 3570,7 3548,7 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02003001c,
	0x00c0018c5,
	0x00c00189a,
	0x0afa3000c,
	0x08fa20010,
	0x08fa3001c,


@@ 3580,7 3558,7 @@ ulong bootcode[]={
	0x0afa50010,
	0x0afa50008,
	0x02003001c,
	0x00c0018c5,
	0x00c00189a,
	0x0afa3000c,
	0x08fa5001c,
	0x08fa20010,


@@ 3704,16 3682,14 @@ ulong bootcode[]={
	0x000000027,
	0x000400008,
	0x023bd0014,
	0x023bdfffc,
	0x08fc780ca,
	0x083a2000b,
	0x083a20007,
	0x028e3001e,
	0x03042007f,
	0x000022e00,
	0x000052e03,
	0x014600004,
	0x014600003,
	0x023c68146,
	0x023bd0004,
	0x003e00008,
	0x020010001,
	0x000051e00,


@@ 3734,10 3710,9 @@ ulong bootcode[]={
	0x000021600,
	0x000021603,
	0x000021080,
	0x08fa4000c,
	0x08fa40008,
	0x000431021,
	0x000000825,
	0x023bd0004,
	0x003e00008,
	0x0ac440000,
	0x023bdffcc,


@@ 3799,7 3774,7 @@ ulong bootcode[]={
	0x02002000a,
	0x014a20003,
	0x000000027,
	0x0080012ae,
	0x008001295,
	0x0afc080de,
	0x020020009,
	0x014a2ffd2,


@@ 3809,7 3784,7 @@ ulong bootcode[]={
	0x024630007,
	0x0201cfff8,
	0x0007c1824,
	0x0080012ae,
	0x008001295,
	0x0afc380de,
	0x02007fc18,
	0x0200bfc18,


@@ 3823,7 3798,7 @@ ulong bootcode[]={
	0x000052e03,
	0x014a00003,
	0x000000027,
	0x0080012ae,
	0x008001295,
	0x024c6ffff,
	0x02002002e,
	0x014a20007,


@@ 3832,7 3807,7 @@ ulong bootcode[]={
	0x014e20002,
	0x000000027,
	0x000003825,
	0x0080012e7,
	0x0080012ce,
	0x000005825,
	0x028a20031,
	0x014400025,


@@ 3854,11 3829,11 @@ ulong bootcode[]={
	0x000000027,
	0x014a0ffe4,
	0x000083825,
	0x0080012ae,
	0x008001295,
	0x024c6ffff,
	0x014a0ffe0,
	0x000085825,
	0x0080012ae,
	0x008001295,
	0x024c6ffff,
	0x02002000a,
	0x001020018,


@@ 3871,7 3846,7 @@ ulong bootcode[]={
	0x000000027,
	0x000052e00,
	0x000052e03,
	0x008001303,
	0x0080012ea,
	0x02468ffd0,
	0x020030030,
	0x014a30006,


@@ 3879,7 3854,7 @@ ulong bootcode[]={
	0x02003fc18,
	0x010e30003,
	0x000000027,
	0x008001302,
	0x0080012e9,
	0x000000027,
	0x02002002a,
	0x014a20009,


@@ 3888,9 3863,9 @@ ulong bootcode[]={
	0x02002fc18,
	0x014e20003,
	0x025290004,
	0x0080012e7,
	0x0080012ce,
	0x000053825,
	0x0080012e7,
	0x0080012ce,
	0x000055825,
	0x030a5007f,
	0x0afa90044,


@@ 3923,9 3898,9 @@ ulong bootcode[]={
	0x000000027,
	0x08fa40028,
	0x000011023,
	0x0080012e7,
	0x0080012ce,
	0x000825025,
	0x0080012ae,
	0x008001295,
	0x001214821,
	0x023bdfff0,
	0x0afbf0000,


@@ 3943,13 3918,13 @@ ulong bootcode[]={
	0x0afa30004,
	0x0afa40008,
	0x08fa3001c,
	0x00c00144b,
	0x00c001432,
	0x0afa3000c,
	0x08fa20000,
	0x000000027,
	0x000400008,
	0x023bd0010,
	0x008001363,
	0x00800134a,
	0x000042023,
	0x023bdffa8,
	0x0afbf0000,


@@ 4042,7 4017,7 @@ ulong bootcode[]={
	0x02002fc18,
	0x0afa30008,
	0x0afa2000c,
	0x00c001358,
	0x00c00133f,
	0x0afa70010,
	0x08fa10028,
	0x08fa20000,


@@ 4061,12 4036,12 @@ ulong bootcode[]={
	0x024a5ffff,
	0x001651021,
	0x020040030,
	0x0080013bf,
	0x0080013a6,
	0x0a0440000,
	0x024a5ffff,
	0x001651021,
	0x020040078,
	0x0080013db,
	0x0080013c2,
	0x0a0440000,
	0x030e30040,
	0x01060001e,


@@ 4088,27 4063,27 @@ ulong bootcode[]={
	0x000000027,
	0x01d000003,
	0x000000027,
	0x0080013b0,
	0x008001397,
	0x000000027,
	0x01d400003,
	0x000000027,
	0x0080013b0,
	0x008001397,
	0x000000027,
	0x030e20040,
	0x01440ffa0,
	0x024a5ffff,
	0x00149001b,
	0x0080013a5,
	0x00800138c,
	0x000003010,
	0x00149001b,
	0x0080013ec,
	0x0080013d3,
	0x000005012,
	0x0200d0001,
	0x00800139d,
	0x008001384,
	0x0000a5023,
	0x08caa0000,
	0x020030004,
	0x008001398,
	0x00800137f,
	0x0afa30028,
	0x08ca20000,
	0x000000027,


@@ 4120,15 4095,15 @@ ulong bootcode[]={
	0x000031c03,
	0x020020004,
	0x0afa20028,
	0x008001398,
	0x00800137f,
	0x000035025,
	0x08caa0000,
	0x020030004,
	0x008001398,
	0x00800137f,
	0x0afa30028,
	0x08caa0000,
	0x020030004,
	0x008001398,
	0x00800137f,
	0x0afa30028,
	0x020030030,
	0x01043000a,


@@ 4136,11 4111,11 @@ ulong bootcode[]={
	0x020030048,
	0x010430003,
	0x000000027,
	0x008001395,
	0x00800137c,
	0x000000027,
	0x08ca80000,
	0x020030004,
	0x008001398,
	0x00800137f,
	0x0afa30028,
	0x08ca30000,
	0x000000027,


@@ 4150,14 4125,14 @@ ulong bootcode[]={
	0x03042ffff,
	0x020030004,
	0x0afa30028,
	0x008001398,
	0x00800137f,
	0x000025025,
	0x008001385,
	0x00800136c,
	0x02009000a,
	0x0200e0001,
	0x008001385,
	0x00800136c,
	0x020090010,
	0x008001385,
	0x00800136c,
	0x020090008,
	0x020030075,
	0x011230006,


@@ 4165,15 4140,15 @@ ulong bootcode[]={
	0x020030078,
	0x01123fff7,
	0x000000027,
	0x008001385,
	0x00800136c,
	0x000000027,
	0x02009000a,
	0x008001385,
	0x00800136c,
	0x034e70020,
	0x023bdfff0,
	0x0afbf0000,
	0x08fa30014,
	0x00c000a43,
	0x00c000a3b,
	0x0afa30004,
	0x08fac0014,
	0x08faa0018,


@@ 4198,7 4173,7 @@ ulong bootcode[]={
	0x000000027,
	0x01ce00003,
	0x000000027,
	0x00800145b,
	0x008001442,
	0x000000027,
	0x000c9202b,
	0x010800005,


@@ 4216,7 4191,7 @@ ulong bootcode[]={
	0x02003fc18,
	0x010e3ffe3,
	0x000000027,
	0x00800145b,
	0x008001442,
	0x024e7ffff,
	0x020020009,
	0x01562fff9,


@@ 4227,7 4202,7 @@ ulong bootcode[]={
	0x02003fc18,
	0x010e3ffd8,
	0x0afc880de,
	0x00800145b,
	0x008001442,
	0x024e7ffff,
	0x02002fc18,
	0x011420003,


@@ 4252,7 4227,7 @@ ulong bootcode[]={
	0x0a0640000,
	0x025080001,
	0x024a50001,
	0x008001490,
	0x008001477,
	0x0afc880de,
	0x000aa202a,
	0x01080ffba,


@@ 4267,7 4242,7 @@ ulong bootcode[]={
	0x0a0440000,
	0x025080001,
	0x024a50001,
	0x00800149f,
	0x008001486,
	0x0afc880de,
	0x023bdffec,
	0x0afbf0000,


@@ 4282,7 4257,7 @@ ulong bootcode[]={
	0x0afa30004,
	0x0afa00008,
	0x02002fc18,
	0x00c00144b,
	0x00c001432,
	0x0afa2000c,
	0x08fa20000,
	0x023bd0014,


@@ 4300,7 4275,7 @@ ulong bootcode[]={
	0x08fa3001c,
	0x02002fc18,
	0x0afa30008,
	0x00c00144b,
	0x00c001432,
	0x0afa2000c,
	0x08fa20000,
	0x023bd0014,


@@ 4320,13 4295,12 @@ ulong bootcode[]={
	0x000000027,
	0x0afa3000c,
	0x08fa20024,
	0x00c001358,
	0x00c00133f,
	0x0afa20010,
	0x08fa20000,
	0x023bd0014,
	0x000400008,
	0x020010004,
	0x023bdfffc,
	0x08fc5805e,
	0x08fc280da,
	0x000000027,


@@ 4337,62 4311,51 @@ ulong bootcode[]={
	0x0afc2805e,
	0x020040025,
	0x0a0a40000,
	0x023bd0004,
	0x003e00008,
	0x000000825,
	0x023bdfffc,
	0x08fa30018,
	0x08fa30014,
	0x020020068,
	0x00043202a,
	0x01480001b,
	0x014800016,
	0x000000027,
	0x010620016,
	0x010620012,
	0x000000027,
	0x020020023,
	0x010620010,
	0x01062000d,
	0x000000027,
	0x02002002b,
	0x01062000a,
	0x010620008,
	0x000000027,
	0x02002002d,
	0x010620004,
	0x010620003,
	0x000000027,
	0x023bd0004,
	0x003e00008,
	0x000000825,
	0x023bd0004,
	0x003e00008,
	0x02001fffe,
	0x023bd0004,
	0x003e00008,
	0x02001ffff,
	0x023bd0004,
	0x003e00008,
	0x02001fffc,
	0x023bd0004,
	0x003e00008,
	0x02001fff0,
	0x02002006c,
	0x01062000a,
	0x010620008,
	0x000000027,
	0x020020075,
	0x010620004,
	0x010620003,
	0x000000027,
	0x023bd0004,
	0x003e00008,
	0x000000825,
	0x023bd0004,
	0x003e00008,
	0x02001ffe0,
	0x08fa20014,
	0x08fa20010,
	0x000000027,
	0x030420008,
	0x010400004,
	0x010400003,
	0x000000027,
	0x023bd0004,
	0x003e00008,
	0x02001ffc0,
	0x023bd0004,
	0x003e00008,
	0x02001fff8,
	0x023bdff60,


@@ 4406,7 4369,7 @@ ulong bootcode[]={
	0x0e7a6004c,
	0x0e7a70004,
	0x0e7a60008,
	0x00c00193d,
	0x00c001911,
	0x000000027,
	0x01020000e,
	0x000000027,


@@ 4417,7 4380,7 @@ ulong bootcode[]={
	0x0afa30008,
	0x0afa2000c,
	0x08fa300b0,
	0x00c001358,
	0x00c00133f,
	0x0afa30010,
	0x08fa20000,
	0x023bd00a0,


@@ 4428,7 4391,7 @@ ulong bootcode[]={
	0x020030001,
	0x0e7a10004,
	0x0e7a00008,
	0x00c00196d,
	0x00c001941,
	0x0afa3000c,
	0x01020000e,
	0x000000027,


@@ 4439,7 4402,7 @@ ulong bootcode[]={
	0x0afa30008,
	0x0afa2000c,
	0x08fa300b0,
	0x00c001358,
	0x00c00133f,
	0x0afa30010,
	0x08fa20000,
	0x023bd00a0,


@@ 4450,7 4413,7 @@ ulong bootcode[]={
	0x02003ffff,
	0x0e7a10004,
	0x0e7a00008,
	0x00c00196d,
	0x00c001941,
	0x0afa3000c,
	0x08fad00b4,
	0x08fac00ac,


@@ 4464,7 4427,7 @@ ulong bootcode[]={
	0x0afa30008,
	0x0afa2000c,
	0x08fa300b0,
	0x00c001358,
	0x00c00133f,
	0x0afa30010,
	0x08fa20000,
	0x023bd00a0,


@@ 4508,7 4471,7 @@ ulong bootcode[]={
	0x023a20034,
	0x0e7a10004,
	0x0e7a00008,
	0x00c00183e,
	0x00c001813,
	0x0afa2000c,
	0x08fa20034,
	0x04444f800,


@@ 4532,7 4495,7 @@ ulong bootcode[]={
	0x000023043,
	0x0afa60030,
	0x000061023,
	0x00c0017e3,
	0x00c0017be,
	0x0afa20004,
	0x0c7a30048,
	0x0c7a2004c,


@@ 4544,7 4507,7 @@ ulong bootcode[]={
	0x08fa30034,
	0x000000027,
	0x000431023,
	0x00c0017e3,
	0x00c0017be,
	0x0afa20004,
	0x08fad00b4,
	0x023ae0078,


@@ 4567,7 4530,7 @@ ulong bootcode[]={
	0x08fa30034,
	0x000000027,
	0x000431023,
	0x00c0017e3,
	0x00c0017be,
	0x0afa20004,
	0x08fad00b4,
	0x08fac00ac,


@@ 4576,7 4539,7 @@ ulong bootcode[]={
	0x0c7a2003c,
	0x000000027,
	0x046201182,
	0x0080015cc,
	0x0080015a7,
	0x023ae0078,
	0x0c7c180e2,
	0x0c7c080e6,


@@ 4593,7 4556,7 @@ ulong bootcode[]={
	0x08fa30034,
	0x000000027,
	0x000431023,
	0x00c0017e3,
	0x00c0017be,
	0x0afa20004,
	0x08fad00b4,
	0x08fac00ac,


@@ 4602,7 4565,7 @@ ulong bootcode[]={
	0x0c7a2003c,
	0x000000027,
	0x046201182,
	0x0080015e3,
	0x0080015be,
	0x023ae0078,
	0x02003fc18,
	0x015830002,


@@ 4637,7 4600,7 @@ ulong bootcode[]={
	0x0200cffff,
	0x0afac00ac,
	0x0200d0065,
	0x008001590,
	0x00800156b,
	0x0afad00b4,
	0x0c7a70048,
	0x0c7a6004c,


@@ 4651,7 4614,7 @@ ulong bootcode[]={
	0x08fa30034,
	0x02002ffff,
	0x000431023,
	0x00c0017e3,
	0x00c0017be,
	0x0afa20004,
	0x08fad00b4,
	0x023ae0078,


@@ 4673,7 4636,7 @@ ulong bootcode[]={
	0x000671823,
	0x004600134,
	0x0afa7002c,
	0x00c0017e3,
	0x00c0017be,
	0x0afa30004,
	0x0c7a30040,
	0x0c7a20044,


@@ 4682,7 4645,7 @@ ulong bootcode[]={
	0x046201083,
	0x0e7a30004,
	0x0e7a20008,
	0x00c0017a1,
	0x00c00177c,
	0x000000027,
	0x08fad00b4,
	0x023ae0078,


@@ 4740,7 4703,7 @@ ulong bootcode[]={
	0x024e70001,
	0x02484fff6,
	0x0a0440001,
	0x008001673,
	0x00800164e,
	0x024c6ffff,
	0x010e00007,
	0x0200b0001,


@@ 4808,7 4771,7 @@ ulong bootcode[]={
	0x020030030,
	0x0a0430000,
	0x024e7ffff,
	0x0080016ba,
	0x008001695,
	0x024c60001,
	0x019000013,
	0x000000027,


@@ 4828,7 4791,7 @@ ulong bootcode[]={
	0x0256b0001,
	0x0a0430000,
	0x02508ffff,
	0x0080016cb,
	0x0080016a6,
	0x024c60001,
	0x08fa300b0,
	0x000000027,


@@ 4857,7 4820,7 @@ ulong bootcode[]={
	0x0afa30008,
	0x0afa2000c,
	0x08fa300b0,
	0x00c001358,
	0x00c00133f,
	0x0afa30010,
	0x08fa20000,
	0x023bd00a0,


@@ 4913,19 4876,19 @@ ulong bootcode[]={
	0x000001810,
	0x024630030,
	0x0a0430000,
	0x0080016f2,
	0x0080016cd,
	0x024c60001,
	0x000061825,
	0x001231021,
	0x02003002b,
	0x0a0430000,
	0x008001713,
	0x0080016ee,
	0x024c60001,
	0x000061025,
	0x001221821,
	0x020020065,
	0x0a0620000,
	0x008001709,
	0x0080016e4,
	0x024c60001,
	0x020030067,
	0x011a30006,


@@ 4933,7 4896,7 @@ ulong bootcode[]={
	0x020030068,
	0x011a30003,
	0x000000027,
	0x0080016ec,
	0x0080016c7,
	0x000000027,
	0x024c7ffff,
	0x004e00006,


@@ 4953,11 4916,11 @@ ulong bootcode[]={
	0x000000027,
	0x01107ff93,
	0x000073025,
	0x0080016ec,
	0x0080016c7,
	0x024c60001,
	0x008001751,
	0x00800172c,
	0x02508ffff,
	0x008001749,
	0x008001724,
	0x024e7ffff,
	0x08fa30034,
	0x02002ffff,


@@ 4967,7 4930,7 @@ ulong bootcode[]={
	0x000003825,
	0x08fa30034,
	0x0200d0068,
	0x0080016a7,
	0x008001682,
	0x001835023,
	0x08fa200b0,
	0x000000027,


@@ 4978,7 4941,7 @@ ulong bootcode[]={
	0x001221821,
	0x02002002b,
	0x0a0620000,
	0x008001698,
	0x008001673,
	0x024c60001,
	0x0c7c180e2,
	0x0c7c080e6,


@@ 4988,7 4951,7 @@ ulong bootcode[]={
	0x0e7a60044,
	0x0e7a70004,
	0x0e7a60008,
	0x00c0017a1,
	0x00c00177c,
	0x000000027,
	0x08fad00b4,
	0x023ae0078,


@@ 5015,14 4978,14 @@ ulong bootcode[]={
	0x046222181,
	0x0e7a70040,
	0x0e7a60044,
	0x00800166a,
	0x008001645,
	0x000000027,
	0x008001606,
	0x0080015e1,
	0x0258cffff,
	0x020020001,
	0x0afa20014,
	0x025ad0020,
	0x008001590,
	0x00800156b,
	0x0afad00b4,
	0x023bdffe8,
	0x0afbf0000,


@@ 5039,7 5002,7 @@ ulong bootcode[]={
	0x04624c081,
	0x0e7a30004,
	0x0e7a20008,
	0x00c00188c,
	0x00c001861,
	0x0afa2000c,
	0x04620c032,
	0x000000027,


@@ 5068,7 5031,7 @@ ulong bootcode[]={
	0x023a2001c,
	0x0e7a30004,
	0x0e7a20008,
	0x00c00188c,
	0x00c001861,
	0x0afa2000c,
	0x0c7a1001c,
	0x0c7a00020,


@@ 5084,7 5047,7 @@ ulong bootcode[]={
	0x04624c081,
	0x0e7a30004,
	0x0e7a20008,
	0x00c0017a1,
	0x00c00177c,
	0x000000027,
	0x08fa20000,
	0x023bd000c,


@@ 5097,7 5060,7 @@ ulong bootcode[]={
	0x004810008,
	0x000000027,
	0x000041023,
	0x00c0017e3,
	0x00c0017be,
	0x0afa20004,
	0x08fa20000,
	0x023bd0014,


@@ 5118,12 5081,12 @@ ulong bootcode[]={
	0x000042843,
	0x0afa50010,
	0x000851823,
	0x00c0017e3,
	0x00c0017be,
	0x0afa30004,
	0x0e7a10008,
	0x0e7a0000c,
	0x08fa20010,
	0x00c0017e3,
	0x00c0017be,
	0x0afa20004,
	0x0c7a30008,
	0x0c7a2000c,


@@ 5131,9 5094,8 @@ ulong bootcode[]={
	0x023bd0014,
	0x000400008,
	0x046220002,
	0x023bdfffc,
	0x083a4000f,
	0x08fa30008,
	0x083a4000b,
	0x08fa30004,
	0x01080000a,
	0x000000027,
	0x080610000,


@@ 5144,15 5106,14 @@ ulong bootcode[]={
	0x000000027,
	0x02461ffff,
	0x003e00008,
	0x023bd0004,
	0x000000027,
	0x030610003,
	0x010200008,
	0x010200007,
	0x000000027,
	0x080610000,
	0x000000027,
	0x01420fffa,
	0x024630001,
	0x023bd0004,
	0x003e00008,
	0x02461ffff,
	0x03c06ff00,


@@ 5161,24 5122,20 @@ ulong bootcode[]={
	0x000000027,
	0x000a60824,
	0x000a71024,
	0x010200010,
	0x01020000d,
	0x024630004,
	0x01040000b,
	0x010400009,
	0x030a1ff00,
	0x010200006,
	0x010200005,
	0x030a200ff,
	0x01440fff5,
	0x000000027,
	0x023bd0004,
	0x003e00008,
	0x02461ffff,
	0x023bd0004,
	0x003e00008,
	0x02461fffe,
	0x023bd0004,
	0x003e00008,
	0x02461fffd,
	0x023bd0004,
	0x003e00008,
	0x02461fffc,
	0x023bdfff4,


@@ 5314,12 5271,11 @@ ulong bootcode[]={
	0x08fa4000c,
	0x000000027,
	0x000821024,
	0x0080018ad,
	0x008001882,
	0x0afa2000c,
	0x023bdfffc,
	0x08fa30010,
	0x08fa40008,
	0x08fa5000c,
	0x08fa3000c,
	0x08fa40004,
	0x08fa50008,
	0x000833021,
	0x028620004,
	0x000a4082b,


@@ 5375,9 5331,9 @@ ulong bootcode[]={
	0x0a0880000,
	0x014e5fffc,
	0x024840001,
	0x08fa10008,
	0x08fa10004,
	0x003e00008,
	0x023bd0004,
	0x000000027,
	0x014400028,
	0x000000027,
	0x000e60826,


@@ 5425,7 5381,7 @@ ulong bootcode[]={
	0x000000027,
	0x0a0c8ffff,
	0x024c6ffff,
	0x00800192c,
	0x008001900,
	0x024e7ffff,
	0x023bdfff4,
	0x03c027ff0,


@@ 5455,7 5411,7 @@ ulong bootcode[]={
	0x000000825,
	0x0e7a50004,
	0x0e7a40008,
	0x00c00196d,
	0x00c001941,
	0x0afa0000c,
	0x014200005,
	0x000000027,


@@ 5638,13 5594,13 @@ ulong bootcode[]={
	0x000010000,
	0x002000000,
	0x000000000,
	0x0000052b8,
	0x0000053d4,
	0x000004dc0,
	0x0000054b0,
	0x000005304,
	0x00000534c,
	0x00000539c,
	0x000005254,
	0x000005368,
	0x000004d5c,
	0x00000541c,
	0x0000052a0,
	0x0000052e8,
	0x000005338,
	0x000000000,
	0x000000000,
	0x000000000,


@@ 6025,6 5981,6 @@ ulong bootcode[]={
	0x020726562,
	0x06f6f7400,
	0x000000000,
	0x00005e28,
	0x00005d78,
	0x0,
};

M power/trap.c => power/trap.c +2 -0
@@ 519,6 519,8 @@ syscall(Ureg *aur)
			msg = "sys: odd stack";
			goto Bad;
		}
		if(((ulong*)ur->pc)[-2] != 0x23bdfffc)	/* new calling convention: look for ADD $-4, SP */
			sp -= BY2WD;
		if(sp<(USTKTOP-BY2PG) || sp>(USTKTOP-5*BY2WD))
			validaddr(sp, 5*BY2WD, 0);
		ret = (*systab[r1])((ulong*)(sp+2*BY2WD));