From 6a8b27b4cf6fedcf8f5e8ab4af6f6b1ba5dc54fd Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Wed, 9 Jan 1991 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1991-01-09 --- gnot/dat.h | 2 +- gnot/fns.h | 3 +- gnot/lock.c | 3 +- port/devlance.c | 30 +- port/devnonet.c | 9 +- port/proc.c | 52 +- power/dat.h | 10 +- power/main.c | 1 + ss/boot.c | 51 +- ss/boot.h | 1488 ++++++++++++++++++++++++++--------------------- ss/dat.h | 9 +- ss/devbit.c | 3 +- ss/l.s | 8 + ss/lock.c | 1 - ss/main.c | 24 +- ss/mmu.c | 19 +- ss/trap.c | 11 +- 17 files changed, 946 insertions(+), 778 deletions(-) diff --git a/gnot/dat.h b/gnot/dat.h index 40530f22637665b596a770e5397f6baaab843e90..53799cfb8709292e7699760797a6a076239b7a39 100644 --- a/gnot/dat.h +++ b/gnot/dat.h @@ -332,7 +332,7 @@ struct Proc ulong pid; int nchild; QLock wait; /* exiting children to be waited for */ - ulong waitmsg; + Waitmsg waitmsg; /* this is large but must be addressable */ Proc *child; Proc *parent; Pgrp *pgrp; diff --git a/gnot/fns.h b/gnot/fns.h index f44afe16793bd001aceab7c19708206a4a2ab7a1..4a4c635645dd52d8ca4b2437becd0cfebeb48905 100644 --- a/gnot/fns.h +++ b/gnot/fns.h @@ -202,4 +202,5 @@ Chan *walk(Chan*, char*, int); #define evenaddr(x) /* 68020 doesn't care */ -#define USED(x) if(x) +#define USED(x) if(x) +#define SET(x) x = 0 diff --git a/gnot/lock.c b/gnot/lock.c index bd760bd1dd0d6e83a8ab567153cdf684a448401b..57de545ddd157b77effff38f1bbc414274789fee 100644 --- a/gnot/lock.c +++ b/gnot/lock.c @@ -36,8 +36,7 @@ lock(Lock *l) return; } ll->key = 0; -dumpstack(); - panic("lock loop %lux pc %lux held by pc %lux\n", l, ((ulong*)&l)[PCOFF], l->pc); + print("lock loop %lux pc %lux held by pc %lux\n", l, ((ulong*)&l)[PCOFF], l->pc); } int diff --git a/port/devlance.c b/port/devlance.c index 0835a0147aad07c00820da66704035bf3ade608c..b9d454dc578ea52b309f8aa922d468ca40384f94 100644 --- a/port/devlance.c +++ b/port/devlance.c @@ -175,13 +175,6 @@ static SoftLance l; #define STRT 0x2 #define INIT 0x1 -/* - * LANCE CSR3 - */ -#define BSWP 0x4 -#define ACON 0x2 -#define BCON 0x1 - /* * flag bits from a buffer descriptor in the rcv/xmt rings */ @@ -342,9 +335,7 @@ lanceoput(Queue *q, Block *bp ) * Wait till we get an output buffer */ if(TSUCC(l.tc) == l.tl){ - print("lance obuf sleep"); sleep(&l.tr, isobuf, (void *)0); - print("done"); } p = &l.tp[l.tc]; @@ -422,13 +413,6 @@ lancereset(void) lancesetup(&l); } - *l.rap = 0; - print("csr0 %lux\n", *l.rdp); - *l.rap = 1; - print("csr1 %lux\n", *l.rdp); - *l.rap = 2; - print("csr2 %lux\n", *l.rdp); - /* * stop the lance */ @@ -521,16 +505,14 @@ lancestart(void) */ wbflush(); *l.rap = 3; - *l.rdp = BSWP; + *l.rdp = l.busctl; /* * initialize lance, turn on interrupts, turn on transmit and rcv. */ wbflush(); - print("starting lance\n"); *l.rap = 0; *l.rdp = INEA|INIT|STRT; /**/ - print("lance started\n"); } /* @@ -746,16 +728,6 @@ lanceintr(void) */ if(csr & (BABL|MISS|MERR)){ print("lance err %ux\n", csr); - print("aser %lux asevar %lux\n", getw2(0x60000008), getw2(0x6000000C)); - *l.rap = 0; - *l.rdp = STOP; -delay(100); - *l.rap = 0; - print("csr0 %lux\n", *l.rdp); - *l.rap = 1; - print("csr1 %lux\n", *l.rdp); - *l.rap = 2; - print("csr2 %lux\n", *l.rdp); } if(csr & IDON){ diff --git a/port/devnonet.c b/port/devnonet.c index e47f0d198648839e5206435278f420e233a04def..cc7b77f632712cd46962beb8da6a73733f86bd77 100644 --- a/port/devnonet.c +++ b/port/devnonet.c @@ -554,8 +554,9 @@ nonetoput(Queue *q, Block *bp) mp->first = 0; } mp->inuse = 0; - } else - qunlock(&cp->mlock); + } + qunlock(&cp->mlock); + nexterror(); } /* @@ -593,8 +594,9 @@ nonetoput(Queue *q, Block *bp) sendmsg(cp, mp); tsleep(&mp->r, acked, mp, MSrexmit); if(retries++ > 100) - errors("to many nonet rexmits"); + errors("too many nonet rexmits"); } + poperror(); /* * free buffer @@ -603,7 +605,6 @@ nonetoput(Queue *q, Block *bp) mp->first = 0; mp->inuse = 0; wakeup(&cp->r); - poperror(); } /* diff --git a/port/proc.c b/port/proc.c index cca7c15b9d4798aa4fce9c536dccbdb37054e472..c70b3a6fea6d27e06916664d5b6396733efab2bd 100644 --- a/port/proc.c +++ b/port/proc.c @@ -317,17 +317,24 @@ postnote(Proc *p, int dolock, char *n, int flag) if(dolock) lock(&p->debug); - k = kmap(p->upage); - up = (User*)VA(k); + if(p != u->p){ + k = kmap(p->upage); + up = (User*)VA(k); + }else{ + SET(k); + up = u; + } if(flag!=NUser && (up->notify==0 || up->notified)) up->nnote = 0; /* force user's hand */ else if(up->nnote == NNOTE-1){ - kunmap(k); + if(up != u) + kunmap(k); return 0; } strcpy(up->note[up->nnote].msg, n); up->note[up->nnote++].flag = flag; - kunmap(k); + if(up != u) + kunmap(k); if(dolock) unlock(&p->debug); if(r = p->r){ /* assign = */ @@ -387,16 +394,13 @@ addbroken(Proc *c) int freebroken(void) { - int n; - + int i, n; lock(&broken); n = broken.n; - while(broken.n > 0){ - ready(broken.p[0]); - memcpy(&broken.p[0], &broken.p[1], sizeof(Proc*)*(NBROKEN-1)); - --broken.n; - } + for(i=0; ip; mypid = c->pid; - if(s) - strcpy(status, s); - else - status[0] = 0; if(freemem){ freesegs(-1); closepgrp(c->pgrp); @@ -452,19 +450,18 @@ pexit(char *s, int freemem) qlock(&p->wait); lock(&p->wait.queue); if(p->pid==c->parentpid && !p->exiting){ - w.pid = mypid; - strcpy(w.msg, status); - wp = &w.time[TUser]; + if(s) + strcpy(p->waitmsg.msg, s); + else + p->waitmsg.msg[0] = 0; + p->waitmsg.pid = mypid; + wp = &p->waitmsg.time[TUser]; up = &c->time[TUser]; ucp = &c->time[TCUser]; *wp++ = TK2MS(*up++ + *ucp++); *wp++ = TK2MS(*up++ + *ucp ); *wp = TK2MS(*up ); p->child = c; - /* - * Pass info through back door, to avoid huge Proc's - */ - p->waitmsg = (((ulong)&w)&(BY2PG-1)); c->state = Exiting; if(p->state == Inwait) ready(p); @@ -495,7 +492,6 @@ ulong pwait(Waitmsg *w) { Proc *c, *p; - KMap *k; ulong cpid; p = u->p; @@ -518,11 +514,9 @@ again: goto again; } p->child = 0; - k = kmap(c->upage); if(w) - *w = *(Waitmsg*)(p->waitmsg|VA(k)); - cpid = ((Waitmsg*)(p->waitmsg|VA(k)))->pid; - kunmap(k); + *w = p->waitmsg; + cpid = p->waitmsg.pid; p->time[TCUser] += c->time[TUser] + c->time[TCUser]; p->time[TCSys] += c->time[TSys] + c->time[TCSys]; p->time[TCReal] += c->time[TReal]; diff --git a/power/dat.h b/power/dat.h index 1d56ebcaf0ad7ea766cea7c39a2d50e481c7651a..088ca069b39c9b5af398c4278743b1b93d0dc796 100644 --- a/power/dat.h +++ b/power/dat.h @@ -326,7 +326,7 @@ struct Proc ulong pid; int nchild; QLock wait; /* exiting children to be waited for */ - ulong waitmsg; + Waitmsg waitmsg; /* this is large but must be addressable */ Proc *child; Proc *parent; Pgrp *pgrp; @@ -619,6 +619,13 @@ struct Noifc { int wptr; }; +/* + * LANCE CSR3 (bus control bits) + */ +#define BSWP 0x4 +#define ACON 0x2 +#define BCON 0x1 + /* * system dependent lance stuff * filled by lancesetup() @@ -631,6 +638,7 @@ struct Lance ushort ntrb; /* number of xmit ring buffers */ ushort *rap; /* lance address register */ ushort *rdp; /* lance data register */ + ushort busctl; /* bus control bits */ uchar ea[6]; /* our ether addr */ int sep; /* separation between shorts in lance ram as seen by host */ diff --git a/power/main.c b/power/main.c index 27c24a845a682d55dd6aaeb39b13df20eb08c618..a759a867fa72ea3abdc510472b782c79a5debacb 100644 --- a/power/main.c +++ b/power/main.c @@ -791,6 +791,7 @@ lancesetup(Lance *lp) lp->logntrb = 7; lp->nrrb = 1<lognrrb; lp->ntrb = 1<logntrb; + lp->busctl = BSWP; if(ioid >= IO3R1) lanceIO3setup(lp); else diff --git a/ss/boot.c b/ss/boot.c index 39bff562765dd29e9f808a35eb46ec63137c8d63..89c4efff976cd40abfd07959dc8479b49a41053c 100644 --- a/ss/boot.c +++ b/ss/boot.c @@ -3,13 +3,14 @@ #include #define DEFSYS "bootes" -#define DEFFILE "/mips/9" + +char *net; +char *netdev; Fcall hdr; char *scmd; char buf[4*1024]; -char bootfile[5*NAMELEN]; char sys[NAMELEN]; int fd; @@ -45,7 +46,7 @@ int bitdial(char *); /* * usage: 9b [-a] [server] [file] * - * default server is `bootes', default file is `/mips/9' + * default server is `bootes', default file is `/sparc/9' */ main(int argc, char *argv[]) { @@ -57,6 +58,13 @@ main(int argc, char *argv[]) open("#c/cons", 1); open("#c/cons", 1); + strcpy(buf, "none"); + outin("user", buf, sizeof(buf)); + i = open("#c/user", 2); + if(i >= 0){ + write(i, buf, strlen(buf)); + close(i); + } i = create("#e/sysname", 1, 0666); if(i < 0) error("sysname"); @@ -64,9 +72,13 @@ main(int argc, char *argv[]) error("sysname"); close(i); + for(i = 0; i < argc; i++) + print("argv[%d] = %s\n", i, argv[i]); + argv++; - argc--; + argc--; + manual = 1; while(argc > 0){ if(argv[0][0] == '-'){ if(argv[0][1] == 'm') @@ -78,13 +90,8 @@ main(int argc, char *argv[]) } strcpy(sys, DEFSYS); - strcpy(bootfile, DEFFILE); switch(argc){ - case 1: - strcpy(bootfile, argv[0]); - break; case 2: - strcpy(bootfile, argv[0]); strcpy(sys, argv[1]); break; } @@ -172,6 +179,9 @@ nonetdial(char *arg) prerror(a->cmd); return -1; } + + net = "nonet"; + netdev = "#nnonet"; return fd; } @@ -228,6 +238,8 @@ dkdial(char *arg) prerror(cmd); return -1; } + net = "dk"; + netdev = "#kdk"; return fd; } @@ -348,11 +360,25 @@ boot(int ask) print("success\n"); close(fd); + if(net){ + char buf[128]; + + fd = create("#e/bootnet", 1, 0666); + if(fd >= 0){ + if(write(fd, net, strlen(net)) != strlen(net)) + error("writing bootnet"); + close(fd); + sprint(buf, "/net/%s", net); + if(bind(netdev, buf, MREPL) < 0) + error("binding bootnet"); + } + } + if(ask) - execl("/mips/init", "init", "-m", 0); + execl("/sparc/init", "init", "-t", "-m", 0); else - execl("/mips/init", "init", 0); - error("/mips/init"); + execl("/sparc/init", "init", "-t", 0); + error("/sparc/init"); } /* @@ -384,7 +410,6 @@ error(char *s) * prompt and get input */ int -int outin(char *prompt, char *def, int len) { int n; diff --git a/ss/boot.h b/ss/boot.h index bbaa768b5b27a9af3938b522bb851ea1e85ee74b..c7cf54020297cc0386e51082580aff5dd1431def 100644 --- a/ss/boot.h +++ b/ss/boot.h @@ -1,8 +1,8 @@ ulong bootcode[]={ 0x0000002ab, - 0x000005960, - 0x000000610, - 0x000001190, + 0x000005b58, + 0x000000680, + 0x000001100, 0x000000000, 0x000001020, 0x000000000, @@ -18,37 +18,80 @@ ulong bootcode[]={ 0x040000007, 0x001000000, 0x0ce206004, - 0x04000052d, + 0x0400005aa, 0x001000000, 0x010bffffd, 0x001000000, 0x0822060a0, 0x0de206000, - 0x0c0206098, - 0x09000b1e5, + 0x09000b1ed, 0x0d0206004, 0x0c0206008, - 0x0400006a3, + 0x040000721, 0x001000000, - 0x09200b1ed, + 0x09200b1f5, 0x0d2206004, 0x090002001, 0x0d0206008, - 0x04000069d, + 0x04000071b, 0x001000000, - 0x09200b1f5, + 0x09200b1fd, 0x0d2206004, 0x090002001, 0x0d0206008, - 0x040000697, + 0x040000715, + 0x001000000, + 0x092006018, + 0x0d2206004, + 0x09000b205, + 0x0d0206008, + 0x040000686, + 0x001000000, + 0x09200b20a, + 0x0d2206004, + 0x090006018, + 0x0d0206008, + 0x092002080, + 0x0d220600c, + 0x04000051a, + 0x001000000, + 0x09200b20f, + 0x0d2206004, + 0x094002002, + 0x0d4206008, + 0x040000701, + 0x001000000, + 0x090100007, + 0x096100007, + 0x092100007, + 0x0ce20609c, + 0x080a1c000, + 0x006800013, + 0x001000000, + 0x092006018, + 0x0d2206004, + 0x040000691, + 0x001000000, + 0x0ce206014, + 0x0d200609c, + 0x0d2206004, + 0x090006018, + 0x0d0206008, + 0x0d2006014, + 0x0d220600c, + 0x0400006ff, + 0x001000000, + 0x0d000609c, + 0x0d0206004, + 0x0400006cb, 0x001000000, - 0x09000b1fd, + 0x09000b217, 0x0d0206004, 0x094002001, 0x0d4206008, 0x0900021b6, 0x0d020600c, - 0x040000677, + 0x0400006c9, 0x001000000, 0x092100007, 0x096100007, @@ -57,20 +100,20 @@ ulong bootcode[]={ 0x080a1c000, 0x016800006, 0x001000000, - 0x09200b208, + 0x09200b222, 0x0d2206004, - 0x040000480, + 0x0400004d2, 0x001000000, 0x0d00060a8, 0x0d0022000, 0x0d0206004, - 0x04000061a, + 0x04000066c, 0x001000000, 0x0ce206014, 0x0d40060a8, 0x0d402a000, 0x0d4206004, - 0x040000614, + 0x040000666, 0x001000000, 0x0ce206010, 0x0d400609c, @@ -80,129 +123,126 @@ ulong bootcode[]={ 0x0d2206008, 0x0d4006010, 0x0d420600c, - 0x040000681, + 0x0400006d3, 0x001000000, 0x090100007, 0x0d2006014, 0x080a1c009, 0x002800006, 0x001000000, - 0x09000b210, + 0x09000b22a, 0x0d0206004, - 0x040000462, + 0x0400004b4, 0x001000000, 0x0d200609c, 0x0d2206004, - 0x040000644, + 0x040000696, + 0x001000000, + 0x096100000, + 0x0d00060a4, + 0x080a2c008, + 0x016800011, + 0x001000000, + 0x09200b232, + 0x0d2206004, + 0x0d6206008, + 0x0d620609c, + 0x0932ae002, + 0x0d00060a8, + 0x092024008, + 0x0d2026000, + 0x0d220600c, + 0x040000565, + 0x001000000, + 0x0d000609c, + 0x096022001, + 0x010bfffef, 0x001000000, 0x0d00060a8, 0x096022004, 0x0d62060a8, 0x0d20060a4, 0x098027fff, + 0x090002001, + 0x0d0206098, 0x0d82060a4, 0x080a30000, 0x004800013, 0x001000000, - 0x0d202e000, - 0x0d24a6000, - 0x080a2602d, + 0x0d002e000, + 0x0d04a2000, + 0x080a2202d, 0x01280000e, 0x001000000, - 0x0d002e000, - 0x0d04a2001, - 0x080a2206d, + 0x0d202e000, + 0x0d24a6001, + 0x080a2606d, 0x012800004, 0x001000000, - 0x092002001, - 0x0d2206098, + 0x090002001, + 0x0d0206098, 0x098033fff, 0x09602e004, 0x0d62060a8, 0x010bfffed, 0x001000000, - 0x09000b002, - 0x0d0206004, - 0x09200b218, - 0x0d2206008, - 0x0400005b9, - 0x001000000, - 0x09000b696, - 0x0d0206004, - 0x09200b21f, - 0x0d2206008, - 0x0400005b3, - 0x001000000, - 0x0d80060a8, - 0x09600b696, - 0x0d00060a4, - 0x080a22001, - 0x002800033, + 0x09200b002, + 0x0d2206004, + 0x09000b241, + 0x0d0206008, + 0x0400005f5, 0x001000000, - 0x080a22002, + 0x0d20060a4, + 0x080a26002, 0x002800021, 0x001000000, - 0x0d0006098, - 0x0d0206004, - 0x0400001d4, + 0x0d2006098, + 0x0d2206004, + 0x0400001cf, 0x001000000, - 0x0d600b0a2, - 0x09210000b, + 0x0d600b0aa, + 0x09010000b, 0x080a2c000, 0x004800006, 0x001000000, - 0x09010000b, + 0x09210000b, 0x0d6206004, - 0x040000608, + 0x04000064f, 0x001000000, - 0x0d200b07a, - 0x080a24000, + 0x0d000b07e, + 0x080a20000, 0x004800006, 0x001000000, - 0x0d000b07a, - 0x0d0206004, - 0x040000600, + 0x0d200b07e, + 0x0d2206004, + 0x040000647, 0x001000000, - 0x092100000, - 0x0c020b07a, - 0x0c020b0a2, - 0x090002001, - 0x0d0206004, - 0x0400001bc, + 0x090100000, + 0x0c020b07e, + 0x0c020b0aa, + 0x092002001, + 0x0d2206004, + 0x0400001b7, 0x001000000, - 0x0d600b0a2, + 0x0d600b0aa, 0x010bfffe8, 0x001000000, - 0x09010000b, - 0x0d6206004, - 0x0d2032000, - 0x0d2206008, - 0x040000585, - 0x001000000, - 0x09000b002, - 0x0d0206004, - 0x0d20060a8, - 0x0d2026004, - 0x0d2206008, - 0x04000057e, - 0x001000000, - 0x010bfffd4, - 0x001000000, - 0x09010000b, - 0x0d6206004, - 0x0d2032000, - 0x0d2206008, - 0x040000576, + 0x09200b002, + 0x0d2206004, + 0x0d00060a8, + 0x0d0022004, + 0x0d0206008, + 0x0400005cb, 0x001000000, - 0x010bfffcc, + 0x010bfffda, 0x001000000, 0x08220600c, 0x0de206000, - 0x09200b227, - 0x0d2206004, - 0x090002002, - 0x0d0206008, - 0x0400005f5, + 0x09000b248, + 0x0d0206004, + 0x092002002, + 0x0d2206008, + 0x04000064a, 0x001000000, 0x0d0006000, 0x08200600c, @@ -210,54 +250,55 @@ ulong bootcode[]={ 0x001000000, 0x082206024, 0x0de206000, - 0x09600b0a6, - 0x0d202e000, - 0x080a24000, - 0x00280000d, + 0x09600b0ae, + 0x0d002e000, + 0x080a20000, + 0x00280000e, 0x001000000, 0x0d6206014, - 0x0d202e000, - 0x0d2206004, + 0x0d002e000, + 0x0d0206004, 0x0d4006028, 0x0d4206008, - 0x04000052e, + 0x040000583, 0x001000000, 0x0d6006014, + 0x092100007, 0x080a1c000, - 0x0128000cf, + 0x0128000d3, 0x001000000, 0x0d6206014, 0x0d002e000, 0x080a20000, 0x01280000b, 0x001000000, - 0x09200b22f, + 0x09200b250, 0x0d2206004, - 0x040000497, + 0x0400004eb, 0x001000000, 0x08e003fff, 0x0d0006000, 0x082006024, 0x081c22008, 0x001000000, - 0x0d000b082, + 0x0d000b086, 0x080a20000, 0x012800062, 0x001000000, - 0x09000b25d, + 0x09000b27e, 0x0d0206004, 0x094002002, 0x0d4206008, - 0x0400005c7, + 0x04000061b, 0x001000000, 0x096100007, 0x090100007, 0x080a1c000, 0x01680000b, 0x001000000, - 0x09200b266, + 0x09200b287, 0x0d2206004, - 0x0400003a6, + 0x0400003fa, 0x001000000, 0x08e003fff, 0x0d0006000, @@ -266,11 +307,11 @@ ulong bootcode[]={ 0x001000000, 0x0ce206020, 0x0ce206004, - 0x09400b277, + 0x09400b298, 0x0d4206008, 0x09200200d, 0x0d220600c, - 0x0400005c3, + 0x040000617, 0x001000000, 0x0d6006020, 0x090100007, @@ -279,11 +320,11 @@ ulong bootcode[]={ 0x001000000, 0x09010000b, 0x0d6206004, - 0x04000058a, + 0x0400005de, 0x001000000, - 0x09200b285, + 0x09200b2a6, 0x0d2206004, - 0x04000038c, + 0x0400003e0, 0x001000000, 0x08e003fff, 0x0d0006000, @@ -291,11 +332,11 @@ ulong bootcode[]={ 0x081c22008, 0x001000000, 0x0d6206004, - 0x09400b293, + 0x09400b2b4, 0x0d4206008, 0x09200200c, 0x0d220600c, - 0x0400005aa, + 0x0400005fe, 0x001000000, 0x0d6006020, 0x090100007, @@ -304,11 +345,11 @@ ulong bootcode[]={ 0x001000000, 0x09010000b, 0x0d6206004, - 0x040000571, + 0x0400005c5, 0x001000000, - 0x09200b2a0, + 0x09200b2c1, 0x0d2206004, - 0x040000373, + 0x0400003c7, 0x001000000, 0x08e003fff, 0x0d0006000, @@ -316,22 +357,22 @@ ulong bootcode[]={ 0x081c22008, 0x001000000, 0x0d6206004, - 0x09400b2ad, + 0x09400b2ce, 0x0d4206008, 0x09200200c, 0x0d220600c, - 0x040000591, + 0x0400005e5, 0x001000000, 0x080a1c000, 0x01680000f, 0x001000000, 0x0d0006020, 0x0d0206004, - 0x04000055a, + 0x0400005ae, 0x001000000, - 0x09200b2ba, + 0x09200b2db, 0x0d2206004, - 0x04000035c, + 0x0400003b0, 0x001000000, 0x08e003fff, 0x0d0006000, @@ -339,12 +380,12 @@ ulong bootcode[]={ 0x081c22008, 0x001000000, 0x090002001, - 0x0d020b082, - 0x09000b2c7, + 0x0d020b086, + 0x09000b2e8, 0x0d0206004, 0x094002002, 0x0d4206008, - 0x040000567, + 0x0400005bb, 0x001000000, 0x096100007, 0x090100007, @@ -352,20 +393,20 @@ ulong bootcode[]={ 0x080a1c000, 0x01680000b, 0x001000000, - 0x09200b2d6, + 0x09200b2f7, 0x0d2206004, - 0x040000345, + 0x040000399, 0x001000000, 0x08e003fff, 0x0d0006000, 0x082006024, 0x081c22008, 0x001000000, - 0x09200b2ed, + 0x09200b30e, 0x0d2206004, 0x094002002, 0x0d4206008, - 0x040000552, + 0x0400005a6, 0x001000000, 0x090100007, 0x096100007, @@ -376,12 +417,12 @@ ulong bootcode[]={ 0x001000000, 0x0d0006018, 0x0d0206004, - 0x040000529, + 0x04000057d, 0x001000000, 0x092003fff, - 0x09000b2fb, + 0x09000b31c, 0x0d0206004, - 0x04000032a, + 0x04000037e, 0x001000000, 0x08e003fff, 0x0d0006000, @@ -391,7 +432,7 @@ ulong bootcode[]={ 0x0d4006014, 0x0d402a004, 0x0d4206004, - 0x0400004d3, + 0x040000527, 0x001000000, 0x0ce206010, 0x0d400601c, @@ -401,7 +442,7 @@ ulong bootcode[]={ 0x0d0206008, 0x0d4006010, 0x0d420600c, - 0x040000540, + 0x040000594, 0x001000000, 0x092100007, 0x080a1c000, @@ -409,53 +450,57 @@ ulong bootcode[]={ 0x001000000, 0x0d000601c, 0x0d0206004, - 0x040000508, + 0x04000055c, 0x001000000, 0x0d2006018, 0x0d2206004, - 0x040000504, + 0x040000558, 0x001000000, 0x090003fff, 0x0d2006014, 0x0d2026004, 0x0d2206004, - 0x040000304, + 0x040000358, 0x001000000, 0x08e003fff, 0x0d0006000, 0x082006024, 0x081c22008, 0x001000000, + 0x09000b332, + 0x0d020b08e, + 0x09200b338, + 0x0d220b06e, 0x0ce006018, 0x0d0006000, 0x082006024, 0x081c22008, 0x001000000, - 0x09002e008, - 0x096100008, - 0x010bfff22, + 0x09202e008, + 0x096100009, + 0x010bfff1d, 0x001000000, 0x082206058, 0x0de206000, - 0x0d000b0da, + 0x0d000b0e2, 0x080a20000, 0x01280004d, 0x001000000, - 0x09000b311, + 0x09000b340, 0x0d0206004, 0x094002002, 0x0d4206008, - 0x040000502, + 0x040000552, 0x001000000, 0x096100007, 0x090100007, - 0x0ce20b07e, + 0x0ce20b082, 0x080a1c000, 0x01680000b, 0x001000000, - 0x09200b318, + 0x09200b347, 0x0d2206004, - 0x0400002e0, + 0x040000330, 0x001000000, 0x08e003fff, 0x0d0006000, @@ -463,24 +508,24 @@ ulong bootcode[]={ 0x081c22008, 0x001000000, 0x0ce206004, - 0x09400b327, + 0x09400b356, 0x0d4206008, 0x09200200a, 0x0d220600c, - 0x0400004fe, + 0x04000054e, 0x001000000, - 0x0d600b07e, + 0x0d600b082, 0x090100007, 0x080a1c000, 0x01680000f, 0x001000000, 0x09010000b, 0x0d6206004, - 0x0400004c5, + 0x040000515, 0x001000000, - 0x09200b332, + 0x09200b361, 0x0d2206004, - 0x0400002c7, + 0x040000317, 0x001000000, 0x08e003fff, 0x0d0006000, @@ -488,22 +533,22 @@ ulong bootcode[]={ 0x081c22008, 0x001000000, 0x0d6206004, - 0x09400b33d, + 0x09400b36c, 0x0d4206008, 0x092002017, 0x0d220600c, - 0x0400004e5, + 0x040000535, 0x001000000, 0x080a1c000, 0x01680000f, 0x001000000, - 0x0d000b07e, + 0x0d000b082, 0x0d0206004, - 0x0400004ae, + 0x0400004fe, 0x001000000, - 0x09200b355, + 0x09200b384, 0x0d2206004, - 0x0400002b0, + 0x040000300, 0x001000000, 0x08e003fff, 0x0d0006000, @@ -511,16 +556,16 @@ ulong bootcode[]={ 0x081c22008, 0x001000000, 0x090002001, - 0x0d020b0da, + 0x0d020b0e2, 0x0920027d0, 0x0d2206004, - 0x0400004c9, + 0x040000519, 0x001000000, - 0x09200b36d, + 0x09200b39c, 0x0d2206004, 0x094002002, 0x0d4206008, - 0x0400004b7, + 0x040000507, 0x001000000, 0x096100007, 0x092100007, @@ -528,35 +573,35 @@ ulong bootcode[]={ 0x080a1c000, 0x01680000b, 0x001000000, - 0x09000b379, + 0x09000b3a8, 0x0d0206004, - 0x040000295, + 0x0400002e5, 0x001000000, 0x08e003fff, 0x0d0006000, 0x082006058, 0x081c22008, 0x001000000, - 0x09000b38d, + 0x09000b3bc, 0x0d0206004, 0x094002002, 0x0d4206008, - 0x0400004a2, + 0x0400004f2, 0x001000000, 0x096100007, 0x090100007, - 0x0ce20b07a, + 0x0ce20b07e, 0x080a1c000, 0x016800010, 0x001000000, 0x0d2006054, 0x0d2206004, - 0x04000047a, + 0x0400004ca, 0x001000000, 0x090003fff, - 0x09200b398, + 0x09200b3c7, 0x0d2206004, - 0x04000027b, + 0x0400002cb, 0x001000000, 0x08e003fff, 0x0d0006000, @@ -565,163 +610,167 @@ ulong bootcode[]={ 0x001000000, 0x090006014, 0x0d0206004, - 0x09200b3ab, + 0x09200b3da, 0x0d2206008, 0x0d000605c, 0x0d020600c, - 0x0400003b7, + 0x040000407, 0x001000000, 0x094006014, 0x0d4206004, - 0x04000041d, + 0x04000046d, 0x001000000, 0x0ce206010, - 0x0d400b07a, + 0x0d400b07e, 0x0d4206004, 0x090006014, 0x0d0206008, 0x0d4006010, 0x0d420600c, - 0x04000048b, + 0x0400004db, 0x001000000, 0x092100007, 0x080a1c000, 0x016800015, 0x001000000, - 0x0d000b07a, + 0x0d000b07e, 0x0d0206004, - 0x040000453, + 0x0400004a3, 0x001000000, 0x0d2006054, 0x0d2206004, - 0x04000044f, + 0x04000049f, 0x001000000, 0x090003fff, - 0x0d020b07a, + 0x0d020b07e, 0x092006014, 0x0d2206004, - 0x04000024f, + 0x04000029f, 0x001000000, 0x08e003fff, 0x0d0006000, 0x082006058, 0x081c22008, 0x001000000, + 0x09000b3e5, + 0x0d020b08e, + 0x09200b3e8, + 0x0d220b06e, 0x0ce006054, 0x0d0006000, 0x082006058, 0x081c22008, 0x001000000, - 0x08220602c, + 0x0822060ac, 0x0de206000, - 0x0d800b0a2, - 0x0d0006030, + 0x0d800b0aa, + 0x0d00060b0, 0x080a20000, 0x00280000b, 0x001000000, - 0x09200b3b6, + 0x09200b3ed, 0x0d2206004, 0x09000b002, 0x0d0206008, 0x09200201c, 0x0d220600c, - 0x040000261, + 0x0400002ad, 0x001000000, - 0x0d800b0a2, + 0x0d800b0aa, 0x096100000, 0x09210000b, - 0x0d6206020, + 0x0d62060a0, 0x080a2e005, 0x01680001c, 0x001000000, 0x090003fff, - 0x0d020b0a2, + 0x0d020b0aa, 0x09000b002, 0x0d0206004, - 0x09400b3bd, + 0x09400b3f4, 0x0d4206008, 0x090002004, 0x0d020600c, - 0x0400003e5, + 0x040000431, 0x001000000, 0x09600b002, 0x092100007, 0x080a1c000, - 0x0128001f0, + 0x01280023c, 0x001000000, 0x09002e004, - 0x0d020601c, + 0x0d020609c, 0x0d0206004, - 0x07ffffe38, + 0x07ffffe2f, 0x001000000, 0x098100007, 0x09210000c, - 0x0d820b0a2, + 0x0d820b0aa, 0x080a30000, - 0x0068001d8, + 0x006800224, 0x001000000, 0x09010000c, 0x080a30000, 0x01680000a, 0x001000000, - 0x09200b3e9, + 0x09200b420, 0x0d2206004, - 0x0400002e6, + 0x040000332, 0x001000000, 0x0d0006000, - 0x08200602c, + 0x0820060ac, 0x081c22008, 0x001000000, - 0x09000b3f8, + 0x09000b42f, 0x0d0206004, - 0x0400002de, + 0x04000032a, 0x001000000, 0x092002032, - 0x0d228a722, + 0x0d228a706, 0x090003fff, - 0x0d030a726, - 0x09000a722, + 0x0d030a70a, + 0x09000a706, 0x0d0206004, - 0x09400b722, + 0x09400b706, 0x0d4206008, - 0x04000042b, + 0x040000477, 0x001000000, 0x096100007, - 0x0d200b0a2, + 0x0d200b0aa, 0x0d2206004, - 0x09400b722, + 0x09400b706, 0x0d4206008, 0x092100007, - 0x0ce206028, + 0x0ce2060a8, 0x0ce20600c, - 0x04000041b, + 0x040000467, 0x001000000, - 0x0d6006028, + 0x0d60060a8, 0x09410000b, 0x080a1c00b, 0x002800010, 0x001000000, - 0x09000b3ff, + 0x09000b436, 0x0d0206004, 0x09210000b, 0x0d6206008, - 0x0400002bf, + 0x04000030b, 0x001000000, - 0x09000b407, + 0x09000b43e, 0x0d0206004, - 0x0400001e2, + 0x04000022e, 0x001000000, 0x0d0006000, - 0x08200602c, + 0x0820060ac, 0x081c22008, 0x001000000, - 0x0d000b0a2, + 0x0d000b0aa, 0x0d0206004, - 0x09400b722, + 0x09400b706, 0x0d4206008, 0x011000004, 0x0d020600c, - 0x0400003f4, + 0x040000440, 0x001000000, 0x092100007, 0x096100007, @@ -729,12 +778,12 @@ ulong bootcode[]={ 0x080a1c000, 0x01480000a, 0x001000000, - 0x09200b411, + 0x09200b448, 0x0d2206004, - 0x0400001cc, + 0x040000218, 0x001000000, 0x0d0006000, - 0x08200602c, + 0x0820060ac, 0x081c22008, 0x001000000, 0x080a1e002, @@ -742,395 +791,471 @@ ulong bootcode[]={ 0x001000000, 0x010bfffe7, 0x001000000, - 0x09000b722, + 0x09000b706, 0x0d0206004, - 0x09400a722, + 0x09400a706, 0x0d4206008, 0x090100007, - 0x0ce206028, + 0x0ce2060a8, 0x0ce20600c, - 0x040000741, + 0x04000078d, 0x001000000, 0x092100007, 0x080a1c000, 0x012800020, 0x001000000, - 0x09200b41a, + 0x09200b451, 0x0d2206004, - 0x0d0006028, + 0x0d00060a8, 0x0d0206008, - 0x0d248b722, + 0x0d248b706, 0x0932a6018, 0x0933a6018, 0x0d220600c, - 0x0d048b723, + 0x0d048b707, 0x0912a2018, 0x0913a2018, 0x0d0206010, - 0x0d248b724, + 0x0d248b708, 0x0932a6018, 0x0933a6018, 0x0d2206014, - 0x0d048b725, + 0x0d048b709, 0x0912a2018, 0x0913a2018, 0x0d0206018, - 0x040000279, + 0x0400002c5, 0x001000000, - 0x09200b43d, + 0x09200b474, 0x0d2206004, - 0x04000019c, + 0x0400001e8, 0x001000000, 0x0d0006000, - 0x08200602c, + 0x0820060ac, 0x081c22008, 0x001000000, - 0x0d048a722, + 0x0d048a706, 0x080a22033, 0x00280000a, 0x001000000, - 0x09200b448, + 0x09200b47f, 0x0d2206004, - 0x040000190, + 0x0400001dc, 0x001000000, 0x0d0006000, - 0x08200602c, + 0x0820060ac, 0x081c22008, 0x001000000, - 0x0d050a726, + 0x0d050a70a, 0x080a23fff, 0x00280000a, 0x001000000, - 0x09200b451, + 0x09200b488, 0x0d2206004, - 0x040000184, + 0x0400001d0, 0x001000000, 0x0d0006000, - 0x08200602c, + 0x0820060ac, 0x081c22008, 0x001000000, - 0x09000b45c, + 0x09000b493, 0x0d0206004, - 0x040000255, + 0x0400002a1, 0x001000000, 0x092002034, - 0x0d228a722, + 0x0d228a706, 0x090003fff, - 0x0d030a726, - 0x09000a722, + 0x0d030a70a, + 0x09000a706, 0x0d0206004, - 0x09400b722, + 0x09400b706, 0x0d4206008, - 0x0400003a2, + 0x0400003ee, 0x001000000, 0x096100007, - 0x0d200b0a2, + 0x0d200b0aa, 0x0d2206004, - 0x09400b722, + 0x09400b706, 0x0d4206008, 0x092100007, - 0x0ce206028, + 0x0ce2060a8, 0x0ce20600c, - 0x040000392, + 0x0400003de, 0x001000000, - 0x0d4006028, + 0x0d40060a8, 0x080a1c00a, 0x00280000a, 0x001000000, - 0x09000b467, + 0x09000b49e, 0x0d0206004, - 0x040000160, + 0x0400001ac, 0x001000000, 0x0d0006000, - 0x08200602c, + 0x0820060ac, 0x081c22008, 0x001000000, - 0x0d000b0a2, + 0x0d000b0aa, 0x0d0206004, - 0x09400b722, + 0x09400b706, 0x0d4206008, 0x011000004, 0x0d020600c, - 0x040000372, + 0x0400003be, 0x001000000, 0x096100007, 0x090100007, 0x080a1c000, 0x01480000a, 0x001000000, - 0x09200b475, + 0x09200b4ac, 0x0d2206004, - 0x04000014b, + 0x040000197, 0x001000000, 0x0d0006000, - 0x08200602c, + 0x0820060ac, 0x081c22008, 0x001000000, - 0x09200b722, + 0x09200b706, 0x0d2206004, - 0x09400a722, + 0x09400a706, 0x0d4206008, 0x092100007, 0x0ce20600c, - 0x0400006c6, + 0x040000712, 0x001000000, 0x090100007, 0x080a1c000, 0x01280000a, 0x001000000, - 0x09000b482, + 0x09000b4b9, 0x0d0206004, - 0x040000137, + 0x040000183, 0x001000000, 0x0d0006000, - 0x08200602c, + 0x0820060ac, 0x081c22008, 0x001000000, - 0x0d250a726, + 0x0d250a70a, 0x080a27fff, 0x00280000a, 0x001000000, - 0x09000b491, + 0x09000b4c8, 0x0d0206004, - 0x04000012b, + 0x040000177, 0x001000000, 0x0d0006000, - 0x08200602c, + 0x0820060ac, 0x081c22008, 0x001000000, - 0x0d248a722, + 0x0d248a706, 0x080a26037, 0x01280000f, 0x001000000, 0x090002002, 0x0d0206004, - 0x09200b49c, + 0x09200b4d3, 0x0d2206008, - 0x09000a722, + 0x09000a706, 0x090022008, 0x0d020600c, - 0x04000022a, + 0x040000276, 0x001000000, 0x0d0006000, - 0x08200602c, + 0x0820060ac, 0x081c22008, 0x001000000, - 0x0d248a722, + 0x0d248a706, 0x080a26035, 0x00280000a, 0x001000000, - 0x09000b4ac, + 0x09000b4e3, 0x0d0206004, - 0x04000010e, + 0x04000015a, 0x001000000, 0x0d0006000, - 0x08200602c, + 0x0820060ac, 0x081c22008, 0x001000000, - 0x09200b4b9, + 0x09200b4f0, 0x0d2206004, - 0x0400001df, + 0x04000022b, 0x001000000, - 0x09000b722, + 0x09000b706, 0x0d0206004, - 0x09200b4c1, + 0x09200b4f8, 0x0d2206008, - 0x0d000601c, + 0x0d000609c, 0x0d020600c, - 0x040000247, + 0x040000293, 0x001000000, - 0x09000b722, + 0x09000b706, 0x0d0206004, 0x094002001, 0x0d4206008, 0x0900021b6, 0x0d020600c, - 0x0400002f6, + 0x040000342, 0x001000000, 0x096100007, 0x090100007, - 0x0ce206024, + 0x0ce2060a4, 0x080a1c000, 0x016800006, 0x001000000, - 0x09200b4c7, + 0x09200b4fe, 0x0d2206004, - 0x040000100, + 0x04000014c, 0x001000000, - 0x09000b722, + 0x09000b706, 0x0d0206004, - 0x09200b4ce, + 0x09200b505, 0x0d2206008, - 0x0d000b0a2, + 0x0d000b0aa, 0x0d020600c, - 0x04000022d, + 0x040000279, 0x001000000, - 0x09200b722, + 0x09200b706, 0x0d2206004, - 0x040000293, + 0x0400002df, 0x001000000, 0x0ce206018, - 0x09400b722, + 0x09400b706, 0x0d4206004, - 0x04000028e, + 0x0400002da, 0x001000000, 0x0ce206014, - 0x0d4006024, + 0x0d40060a4, 0x0d4206004, - 0x09200b722, + 0x09200b706, 0x0d2206008, 0x0d4006014, 0x0d420600c, - 0x0400002fc, + 0x040000348, 0x001000000, 0x090100007, 0x0d2006018, 0x080a1c009, 0x002800006, 0x001000000, - 0x09000b4d1, + 0x09000b508, 0x0d0206004, - 0x0400000dd, + 0x040000129, 0x001000000, - 0x0d2006024, + 0x0d20060a4, 0x0d2206004, - 0x0400002bf, + 0x04000030b, 0x001000000, - 0x09200b4d7, + 0x09200b50e, 0x0d2206004, 0x094002001, 0x0d4206008, 0x0920021b6, 0x0d220600c, - 0x0400002bd, + 0x040000309, 0x001000000, 0x096100007, 0x092100007, - 0x0ce206024, + 0x0ce2060a4, 0x080a1c000, 0x016800006, 0x001000000, - 0x09000b4df, + 0x09000b516, 0x0d0206004, - 0x0400000c7, + 0x040000113, 0x001000000, - 0x09200b722, + 0x09200b706, 0x0d2206004, - 0x09000b4e6, + 0x09000b51d, 0x0d0206008, - 0x0d200b0a2, + 0x0d200b0aa, 0x0d220600c, - 0x0400001f4, + 0x040000240, 0x001000000, - 0x09000b722, + 0x09000b706, 0x0d0206004, - 0x04000025a, + 0x0400002a6, 0x001000000, 0x0ce206018, - 0x09400b722, + 0x09400b706, 0x0d4206004, - 0x040000255, + 0x0400002a1, 0x001000000, 0x0ce206014, - 0x0d4006024, + 0x0d40060a4, 0x0d4206004, - 0x09200b722, + 0x09200b706, 0x0d2206008, 0x0d4006014, 0x0d420600c, - 0x0400002c3, + 0x04000030f, 0x001000000, 0x090100007, 0x0d2006018, 0x080a1c009, 0x002800006, 0x001000000, - 0x09000b4e9, + 0x09000b520, 0x0d0206004, - 0x0400000a4, + 0x0400000f0, 0x001000000, - 0x0d2006024, + 0x0d20060a4, 0x0d2206004, - 0x040000286, + 0x0400002d2, 0x001000000, - 0x09000b4ef, + 0x09000b526, 0x0d0206004, - 0x040000161, + 0x0400001ad, 0x001000000, - 0x09000b4f8, + 0x09000b52f, 0x0d0206004, - 0x09400b4fa, + 0x09400b531, 0x0d4206008, 0x0c020600c, - 0x040000275, + 0x0400002c1, 0x001000000, 0x092100007, 0x080a1c000, 0x016800006, 0x001000000, - 0x09000b4fc, + 0x09000b533, 0x0d0206004, - 0x04000008d, + 0x0400000d9, 0x001000000, - 0x0d000b0a2, + 0x0d000b0aa, 0x0d0206004, - 0x09400b501, + 0x09400b538, 0x0d4206008, 0x090002006, 0x0d020600c, - 0x09400b503, + 0x09400b53a, 0x0d4206010, - 0x09000b504, + 0x09000b53b, 0x0d0206014, - 0x04000027f, + 0x0400002cb, 0x001000000, 0x092100007, 0x080a1c000, 0x016800006, 0x001000000, - 0x09200b505, + 0x09200b53c, 0x0d2206004, - 0x040000079, + 0x0400000c5, 0x001000000, - 0x09000b50b, + 0x09000b542, 0x0d0206004, - 0x04000013a, + 0x040000186, 0x001000000, - 0x0d200b0a2, + 0x0d200b0aa, 0x0d2206004, - 0x040000257, + 0x0400002a3, 0x001000000, - 0x0d0006030, + 0x0d000b08e, 0x080a20000, - 0x002800013, + 0x002800046, 0x001000000, - 0x09200b514, + 0x09000b54b, + 0x0d0206004, + 0x094002001, + 0x0d4206008, + 0x0900021b6, + 0x0d020600c, + 0x04000029d, + 0x001000000, + 0x096100007, + 0x090100007, + 0x0ce20b0aa, + 0x080a1c000, + 0x006800038, + 0x001000000, + 0x0d200b08e, 0x0d2206004, - 0x09000b51f, - 0x0d0206008, - 0x09200b524, - 0x0d220600c, - 0x0c0206010, - 0x04000011c, + 0x040000246, + 0x001000000, + 0x0ce206018, + 0x0d400b08e, + 0x0d4206004, + 0x040000241, + 0x001000000, + 0x0ce206014, + 0x0d400b0aa, + 0x0d4206004, + 0x0d200b08e, + 0x0d2206008, + 0x0d4006014, + 0x0d420600c, + 0x0400002af, 0x001000000, - 0x09000b537, + 0x090100007, + 0x0d2006018, + 0x080a1c009, + 0x002800006, + 0x001000000, + 0x09000b556, + 0x0d0206004, + 0x040000090, + 0x001000000, + 0x0d200b0aa, + 0x0d2206004, + 0x040000272, + 0x001000000, + 0x09000601c, + 0x0d0206004, + 0x09200b566, + 0x0d2206008, + 0x0d000b08e, + 0x0d020600c, + 0x0400001b9, + 0x001000000, + 0x0d000b06e, + 0x0d0206004, + 0x09400601c, + 0x0d4206008, + 0x0c020600c, + 0x04000025d, + 0x001000000, + 0x092100007, + 0x080a1c000, + 0x016800006, + 0x001000000, + 0x09000b56e, + 0x0d0206004, + 0x040000075, + 0x001000000, + 0x0d20060b0, + 0x080a24000, + 0x002800015, + 0x001000000, + 0x09000b57e, 0x0d0206004, - 0x040000060, + 0x09200b58a, + 0x0d2206008, + 0x09000b58f, + 0x0d020600c, + 0x09200b592, + 0x0d2206010, + 0x0c0206014, + 0x04000011e, + 0x001000000, + 0x09200b5a9, + 0x0d2206004, + 0x040000062, 0x001000000, 0x0d0006000, - 0x08200602c, + 0x0820060ac, 0x081c22008, 0x001000000, - 0x09000b527, + 0x09000b595, 0x0d0206004, - 0x09200b532, + 0x09200b5a1, 0x0d2206008, - 0x0c020600c, + 0x09000b5a6, + 0x0d020600c, + 0x0c0206010, 0x04000010d, 0x001000000, - 0x010bffff1, + 0x010bfffef, 0x001000000, - 0x09000b3cd, + 0x09000b404, 0x0d0206004, 0x040000114, 0x001000000, @@ -1138,13 +1263,13 @@ ulong bootcode[]={ 0x0d2206004, 0x04000025b, 0x001000000, - 0x0d800b0a2, - 0x0d0006020, + 0x0d800b0aa, + 0x0d00060a0, 0x096022001, - 0x010bffe00, + 0x010bffdb4, 0x001000000, 0x0d6206004, - 0x09400b3c2, + 0x09400b3f9, 0x0d4206008, 0x092002003, 0x0d220600c, @@ -1156,15 +1281,15 @@ ulong bootcode[]={ 0x01280000a, 0x001000000, 0x09202e003, - 0x0d220601c, + 0x0d220609c, 0x0d2206004, - 0x07ffffd2d, + 0x07ffffcdd, 0x001000000, 0x098100007, - 0x010bffe06, + 0x010bffdba, 0x001000000, 0x0d6206004, - 0x09400b3c6, + 0x09400b3fd, 0x0d4206008, 0x090002006, 0x0d020600c, @@ -1176,35 +1301,35 @@ ulong bootcode[]={ 0x01280000a, 0x001000000, 0x09002e006, - 0x0d020601c, + 0x0d020609c, 0x0d0206004, - 0x07ffffc36, + 0x07ffffbe1, 0x001000000, 0x098100007, - 0x010bffdf2, + 0x010bffda6, 0x001000000, 0x09210000b, - 0x0d620601c, + 0x0d620609c, 0x0d6206004, - 0x07ffffc2e, + 0x07ffffbd9, 0x001000000, 0x098100007, - 0x010bffdea, + 0x010bffd9e, 0x001000000, 0x082206054, 0x0de206000, - 0x092006014, - 0x0d2206004, + 0x090006014, + 0x0d0206004, 0x040000202, 0x001000000, - 0x090002002, - 0x0d0206004, - 0x09200b542, - 0x0d2206008, - 0x0d0006058, - 0x0d020600c, - 0x092006014, - 0x0d2206010, + 0x092002002, + 0x0d2206004, + 0x09000b5b5, + 0x0d0206008, + 0x0d2006058, + 0x0d220600c, + 0x090006014, + 0x0d0206010, 0x040000102, 0x001000000, 0x0d0006000, @@ -1213,18 +1338,18 @@ ulong bootcode[]={ 0x001000000, 0x082206054, 0x0de206000, - 0x090006014, - 0x0d0206004, + 0x092006014, + 0x0d2206004, 0x0400001ee, 0x001000000, - 0x092002002, - 0x0d2206004, - 0x09000b550, - 0x0d0206008, - 0x0d2006058, - 0x0d220600c, - 0x090006014, - 0x0d0206010, + 0x090002002, + 0x0d0206004, + 0x09200b5c3, + 0x0d2206008, + 0x0d0006058, + 0x0d020600c, + 0x092006014, + 0x0d2206010, 0x0400000ee, 0x001000000, 0x0c0206004, @@ -1236,49 +1361,49 @@ ulong bootcode[]={ 0x001000000, 0x082206114, 0x0de206000, - 0x09000b55e, - 0x0d0206004, - 0x0d2006118, - 0x0d2206008, - 0x0d000611c, - 0x0d020600c, + 0x09200b5d1, + 0x0d2206004, + 0x0d0006118, + 0x0d0206008, + 0x0d200611c, + 0x0d220600c, 0x0400000a6, 0x001000000, 0x0c0206004, - 0x090006010, - 0x0d0206008, + 0x092006010, + 0x0d2206008, 0x0d4006120, 0x0d420600c, 0x0400001e4, 0x001000000, - 0x092100007, + 0x090100007, 0x096100007, 0x080a1c000, 0x012800004, 0x001000000, 0x010bfffec, 0x001000000, - 0x090100007, + 0x092100007, 0x0ce206110, 0x080a1c000, 0x016800007, 0x001000000, - 0x09200b567, - 0x0d2206004, + 0x09000b5da, + 0x0d0206004, 0x07fffffca, 0x001000000, 0x0d6006110, - 0x09010000b, + 0x09210000b, 0x080a2e001, 0x00280000c, 0x001000000, - 0x092006010, - 0x09202c009, - 0x0c02a7fff, - 0x0d200611c, - 0x0d2206004, 0x090006010, - 0x0d0206008, + 0x09002c008, + 0x0c02a3fff, + 0x0d000611c, + 0x0d0206004, + 0x092006010, + 0x0d2206008, 0x040000137, 0x001000000, 0x0d6006110, @@ -1289,7 +1414,7 @@ ulong bootcode[]={ 0x001000000, 0x082206008, 0x09a100000, - 0x09800b612, + 0x09800b682, 0x096100000, 0x09210000b, 0x080a2e021, @@ -1321,7 +1446,7 @@ ulong bootcode[]={ 0x082206008, 0x0da00600c, 0x098100000, - 0x09600b612, + 0x09600b682, 0x094100000, 0x09210000a, 0x080a2a021, @@ -1352,7 +1477,7 @@ ulong bootcode[]={ 0x0c0206004, 0x04000000a, 0x001000000, - 0x09200b08a, + 0x09200b092, 0x0d2206004, 0x040000006, 0x001000000, @@ -1362,7 +1487,7 @@ ulong bootcode[]={ 0x001000000, 0x082206010, 0x0de206000, - 0x09800b612, + 0x09800b682, 0x094002020, 0x09010000a, 0x080a28000, @@ -1382,7 +1507,7 @@ ulong bootcode[]={ 0x09010000b, 0x09fc22000, 0x001000000, - 0x09800b612, + 0x09800b682, 0x0d400600c, 0x09402bfff, 0x010bfffeb, @@ -1445,9 +1570,9 @@ ulong bootcode[]={ 0x080a1c000, 0x01680000d, 0x001000000, - 0x0d200b076, + 0x0d200b07a, 0x092026001, - 0x0d220b076, + 0x0d220b07a, 0x080a2600a, 0x006800007, 0x001000000, @@ -1502,9 +1627,9 @@ ulong bootcode[]={ 0x080a1c000, 0x01680000d, 0x001000000, - 0x0d200b076, + 0x0d200b07a, 0x092026001, - 0x0d220b076, + 0x0d220b07a, 0x080a2600a, 0x006800007, 0x001000000, @@ -1523,7 +1648,7 @@ ulong bootcode[]={ 0x08220601c, 0x0de206000, 0x0d6006020, - 0x0d000b072, + 0x0d000b076, 0x0d0206014, 0x0d6206004, 0x01d000004, @@ -1539,7 +1664,7 @@ ulong bootcode[]={ 0x092100007, 0x096100007, 0x0d0006014, - 0x0d020b072, + 0x0d020b076, 0x0d0006020, 0x08e21c008, 0x0d0006000, @@ -3651,7 +3776,7 @@ ulong bootcode[]={ 0x001000000, 0x082206004, 0x0da00b042, - 0x09800b58e, + 0x09800b5fe, 0x0d048600b, 0x0912a2018, 0x0913a2018, @@ -3683,7 +3808,7 @@ ulong bootcode[]={ 0x0912a2018, 0x0913a2018, 0x0912a2002, - 0x09200b0e6, + 0x09200b0ee, 0x090020009, 0x0d400600c, 0x0d4222000, @@ -3699,13 +3824,13 @@ ulong bootcode[]={ 0x0d8006040, 0x0d000b03e, 0x0d020601c, - 0x0d200b0d6, + 0x0d200b0de, 0x0d2206018, 0x0ec006038, 0x0ec20b03e, 0x0d200603c, 0x092027fff, - 0x0d220b0d6, + 0x0d220b0de, 0x09610000c, 0x098032001, 0x0d64ae000, @@ -3717,7 +3842,7 @@ ulong bootcode[]={ 0x080a2c000, 0x012800012, 0x001000000, - 0x0d000b0d6, + 0x0d000b0de, 0x080a58008, 0x00a800003, 0x001000000, @@ -3727,13 +3852,13 @@ ulong bootcode[]={ 0x0d000601c, 0x0d020b03e, 0x0d2006018, - 0x0d220b0d6, + 0x0d220b0de, 0x08e100016, 0x0d0006000, 0x082006034, 0x081c22008, 0x001000000, - 0x0d200b0d6, + 0x0d200b0de, 0x080a58009, 0x01a800007, 0x001000000, @@ -3742,22 +3867,22 @@ ulong bootcode[]={ 0x0ec20b03e, 0x09410000b, 0x0d62a2000, - 0x0d000b072, + 0x0d000b076, 0x090022001, - 0x0d020b072, + 0x0d020b076, 0x080a2e00a, 0x012800005, 0x001000000, - 0x0e020b072, + 0x0e020b076, 0x010bfffd5, 0x001000000, 0x080a2e009, 0x012bfffd2, 0x001000000, - 0x0d200b072, + 0x0d200b076, 0x092026007, 0x0920a7ff8, - 0x0d220b072, + 0x0d220b076, 0x010bfffcc, 0x001000000, 0x09a100015, @@ -3854,13 +3979,13 @@ ulong bootcode[]={ 0x0e6206028, 0x0e6206010, 0x0d6206014, - 0x09200b58e, + 0x09200b5fe, 0x09202400b, 0x0d24a6000, 0x0932a6018, 0x0933a6018, 0x0932a6002, - 0x09000b0e6, + 0x09000b0ee, 0x092024008, 0x0d2026000, 0x09fc26000, @@ -4240,8 +4365,8 @@ ulong bootcode[]={ 0x0ea006014, 0x0a8002020, 0x0e4006018, - 0x0e200b0d6, - 0x0e000b072, + 0x0e200b0de, + 0x0e000b076, 0x0da00601c, 0x0d800b03e, 0x096100007, @@ -4277,12 +4402,12 @@ ulong bootcode[]={ 0x094100013, 0x0e62a6000, 0x0a0042001, - 0x0e020b072, + 0x0e020b076, 0x080a4e00a, 0x01280000a, 0x001000000, 0x0a0100016, - 0x0ec20b072, + 0x0ec20b076, 0x080a37c18, 0x002bfffdf, 0x001000000, @@ -4294,7 +4419,7 @@ ulong bootcode[]={ 0x001000000, 0x092042007, 0x0a00a7ff8, - 0x0e020b072, + 0x0e020b076, 0x010bffff4, 0x001000000, 0x090100012, @@ -4324,7 +4449,7 @@ ulong bootcode[]={ 0x094100014, 0x0e82a6000, 0x0a0042001, - 0x0e020b072, + 0x0e020b076, 0x09602e001, 0x010bffff0, 0x001000000, @@ -4340,7 +4465,7 @@ ulong bootcode[]={ 0x094100014, 0x0e82a6000, 0x0a0042001, - 0x0e020b072, + 0x0e020b076, 0x09602e001, 0x010bffff2, 0x001000000, @@ -4404,7 +4529,7 @@ ulong bootcode[]={ 0x082206004, 0x0d200b03e, 0x096100009, - 0x0d000b0d6, + 0x0d000b0de, 0x080a24008, 0x01a800007, 0x001000000, @@ -5700,7 +5825,7 @@ ulong bootcode[]={ 0x080a22015, 0x014800011, 0x001000000, - 0x0d000b0de, + 0x0d000b0e6, 0x0913a000b, 0x0901a3fff, 0x0d4006008, @@ -5719,7 +5844,7 @@ ulong bootcode[]={ 0x014bffff7, 0x001000000, 0x09002ffea, - 0x0d200b0e2, + 0x0d200b0ea, 0x0913a4008, 0x0901a3fff, 0x0d400600c, @@ -5734,6 +5859,7 @@ ulong bootcode[]={ 0x000000000, 0x000000000, 0x000000000, + 0x000000000, 0x062616420, 0x074797065, 0x03a202564, @@ -5761,6 +5887,8 @@ ulong bootcode[]={ 0x000000000, 0x000000000, 0x000000000, + 0x000000000, + 0x000000000, 0x06e6f6e2d, 0x07a65726f, 0x020657869, @@ -5768,29 +5896,29 @@ ulong bootcode[]={ 0x061747573, 0x000000000, 0x000000000, - 0x00000715c, - 0x000007161, - 0x000007176, - 0x00000717d, - 0x000007192, - 0x000007198, - 0x0000071ad, + 0x000007164, + 0x000007169, + 0x00000717e, + 0x000007185, + 0x00000719a, + 0x0000071a0, 0x0000071b5, - 0x0000071ca, - 0x0000071ce, + 0x0000071bd, + 0x0000071d2, + 0x0000071d6, 0x000000000, 0x000000000, 0x000000000, 0x000000000, 0x0001fffff, 0x07fffffff, - 0x0000053e4, - 0x000005508, - 0x000004d18, - 0x000005618, - 0x000005434, - 0x000005480, - 0x0000054c8, + 0x0000055d8, + 0x0000056fc, + 0x000004f0c, + 0x00000580c, + 0x000005628, + 0x000005674, + 0x0000056bc, 0x000000000, 0x000000000, 0x000000000, @@ -5853,235 +5981,261 @@ ulong bootcode[]={ 0x0632f636f, 0x06e730023, 0x0632f636f, - 0x06e730023, - 0x0652f7379, - 0x0736e616d, - 0x065007379, - 0x0736e616d, - 0x065007379, - 0x0736e616d, - 0x06500626f, - 0x06f746573, - 0x0002f6d69, - 0x070732f39, - 0x00023332f, - 0x062697433, - 0x00063616e, - 0x027742063, - 0x06f6e7665, - 0x07274206e, - 0x06f6e6574, - 0x020616464, - 0x072657373, - 0x020746f20, - 0x065746865, - 0x072206164, + 0x06e73006e, + 0x06f6e6500, + 0x075736572, + 0x00023632f, + 0x075736572, + 0x00023652f, + 0x07379736e, + 0x0616d6500, + 0x07379736e, + 0x0616d6500, + 0x07379736e, + 0x0616d6500, + 0x061726776, + 0x05b25645d, + 0x0203d2025, + 0x0730a0062, + 0x06f6f7465, + 0x073002333, + 0x02f626974, + 0x033006361, + 0x06e277420, + 0x0636f6e76, + 0x065727420, + 0x06e6f6e65, + 0x074206164, 0x064726573, - 0x0730a0023, - 0x06c2f312f, - 0x063746c00, - 0x06f70656e, - 0x0696e6720, + 0x07320746f, + 0x020657468, + 0x065722061, + 0x064647265, + 0x073730a00, 0x0236c2f31, 0x02f63746c, - 0x000636f6e, - 0x06e656374, - 0x020307839, - 0x030300063, - 0x06f6e6e65, - 0x063742030, - 0x078393030, - 0x000707573, - 0x068206e6f, - 0x065746865, - 0x072007075, + 0x0006f7065, + 0x06e696e67, + 0x020236c2f, + 0x0312f6374, + 0x06c00636f, + 0x06e6e6563, + 0x074203078, + 0x039303000, + 0x0636f6e6e, + 0x065637420, + 0x030783930, + 0x030007075, 0x07368206e, 0x06f657468, - 0x065720063, - 0x06f6e6669, - 0x067206e6f, - 0x06e657400, + 0x065720070, + 0x075736820, + 0x06e6f6574, + 0x068657200, 0x0636f6e66, 0x06967206e, 0x06f6e6574, - 0x000236e6e, + 0x000636f6e, + 0x066696720, + 0x06e6f6e65, + 0x07400236e, + 0x06e6f6e65, + 0x0742f322f, + 0x064617461, + 0x0006f7065, + 0x06e696e67, + 0x020236e6e, 0x06f6e6574, 0x02f322f64, 0x061746100, - 0x06f70656e, - 0x0696e6720, 0x0236e6e6f, 0x06e65742f, - 0x0322f6461, - 0x074610023, - 0x06e6e6f6e, - 0x065742f32, - 0x02f63746c, - 0x0006f7065, - 0x06e696e67, - 0x020236e6e, - 0x06f6e6574, - 0x02f322f63, - 0x0746c0023, - 0x0682f6374, + 0x0322f6374, 0x06c006f70, 0x0656e696e, - 0x067202368, + 0x06720236e, + 0x06e6f6e65, + 0x0742f322f, + 0x063746c00, + 0x06e6f6e65, + 0x07400236e, + 0x06e6f6e65, + 0x074002368, 0x02f63746c, - 0x000707573, - 0x06820646b, - 0x06d757800, + 0x0006f7065, + 0x06e696e67, + 0x02023682f, + 0x063746c00, 0x070757368, 0x020646b6d, - 0x075780063, - 0x06f6e6669, - 0x067203420, - 0x032353620, - 0x072657374, - 0x061727420, - 0x0646b0063, - 0x06f6e6669, - 0x067203420, - 0x032353620, - 0x072657374, - 0x061727420, - 0x0646b0023, - 0x06b646b2f, - 0x0352f6461, - 0x07461006f, - 0x070656e69, - 0x06e672023, - 0x06b646b2f, - 0x0352f6461, - 0x074610023, - 0x06b646b2f, - 0x0352f6374, - 0x06c006f70, + 0x075780070, + 0x075736820, + 0x0646b6d75, + 0x07800636f, + 0x06e666967, + 0x020342032, + 0x035362072, + 0x065737461, + 0x072742064, + 0x06b00636f, + 0x06e666967, + 0x020342032, + 0x035362072, + 0x065737461, + 0x072742064, + 0x06b00236b, + 0x0646b2f35, + 0x02f646174, + 0x061006f70, 0x0656e696e, 0x06720236b, 0x0646b2f35, + 0x02f646174, + 0x06100236b, + 0x0646b2f35, 0x02f63746c, - 0x000636f6e, - 0x06e656374, - 0x020257300, - 0x073657276, - 0x065720062, - 0x069742100, - 0x0646b2100, - 0x06e6f6e65, - 0x074210063, - 0x0616e2774, - 0x020636f6e, - 0x06e656374, - 0x02c207265, - 0x074727969, - 0x06e672e2e, - 0x02e0a0063, - 0x0616e2774, - 0x020636f6e, - 0x06e656374, - 0x00a006e6f, - 0x0702e2e2e, - 0x0006e203d, - 0x02025640a, - 0x000777269, - 0x07465206e, - 0x06f700072, - 0x065616420, - 0x06e6f7000, + 0x0006f7065, + 0x06e696e67, + 0x020236b64, + 0x06b2f352f, + 0x063746c00, + 0x0636f6e6e, + 0x065637420, + 0x025730064, + 0x06b00236b, + 0x0646b0073, + 0x065727665, + 0x072006269, + 0x074210064, + 0x06b21006e, + 0x06f6e6574, + 0x021006361, + 0x06e277420, + 0x0636f6e6e, + 0x06563742c, + 0x020726574, + 0x07279696e, + 0x0672e2e2e, + 0x00a006361, + 0x06e277420, + 0x0636f6e6e, + 0x06563740a, + 0x0006e6f70, + 0x02e2e2e00, 0x06e203d20, - 0x025643b20, - 0x062756620, - 0x03d20252e, + 0x025640a00, + 0x077726974, + 0x065206e6f, + 0x070007265, + 0x06164206e, + 0x06f70006e, + 0x0203d2025, + 0x0643b2062, + 0x07566203d, + 0x020252e32, + 0x07820252e, 0x032782025, 0x02e327820, 0x0252e3278, - 0x020252e32, - 0x0780a0066, - 0x06f726d61, - 0x074206e6f, - 0x070006e6f, - 0x07420526e, - 0x06f700074, - 0x06167206e, - 0x06f74207e, - 0x030007365, + 0x00a00666f, + 0x0726d6174, + 0x0206e6f70, + 0x0006e6f74, + 0x020526e6f, + 0x070007461, + 0x067206e6f, + 0x074207e30, + 0x000736573, + 0x073696f6e, + 0x02e2e2e00, + 0x077726974, + 0x065207365, 0x07373696f, - 0x06e2e2e2e, - 0x000777269, - 0x074652073, - 0x065737369, - 0x06f6e0072, - 0x065616420, - 0x073657373, - 0x0696f6e00, - 0x0666f726d, - 0x061742073, + 0x06e007265, + 0x061642073, 0x065737369, - 0x06f6e0074, - 0x06167206e, - 0x06f74207e, - 0x03000626f, - 0x06f743a20, - 0x06572726f, - 0x072202573, - 0x00a006e6f, - 0x074205273, - 0x065737369, - 0x06f6e0070, - 0x06f73742e, - 0x02e2e0023, - 0x0732f2573, - 0x000637265, - 0x061746500, - 0x025640077, - 0x072697465, - 0x00023732f, + 0x06f6e0066, + 0x06f726d61, + 0x074207365, + 0x07373696f, + 0x06e007461, + 0x067206e6f, + 0x074207e30, + 0x000626f6f, + 0x0743a2065, + 0x072726f72, + 0x02025730a, + 0x0006e6f74, + 0x020527365, + 0x07373696f, + 0x06e00706f, + 0x073742e2e, + 0x02e002373, + 0x02f257300, + 0x063726561, + 0x074650025, + 0x064007772, + 0x069746500, + 0x023732f62, + 0x06f6f7400, + 0x063726561, + 0x074650025, + 0x064007772, + 0x069746500, + 0x06d6f756e, + 0x0742e2e2e, + 0x0002f002f, + 0x00062696e, + 0x064002f00, + 0x000006d6f, + 0x0756e7400, + 0x073756363, + 0x06573730a, + 0x00023652f, 0x0626f6f74, - 0x000637265, - 0x061746500, - 0x025640077, - 0x072697465, - 0x0006d6f75, - 0x06e742e2e, - 0x02e002f00, - 0x02f006269, - 0x06e64002f, - 0x00000006d, - 0x06f756e74, - 0x000737563, - 0x063657373, - 0x00a002f6d, - 0x06970732f, - 0x0696e6974, - 0x000696e69, - 0x074002d6d, - 0x0002f6d69, - 0x070732f69, + 0x06e657400, + 0x077726974, + 0x0696e6720, + 0x0626f6f74, + 0x06e657400, + 0x02f6e6574, + 0x02f257300, + 0x062696e64, + 0x0696e6720, + 0x0626f6f74, + 0x06e657400, + 0x02f737061, + 0x072632f69, 0x06e697400, 0x0696e6974, - 0x0002f6d69, - 0x070732f69, + 0x0002d7400, + 0x02d6d002f, + 0x073706172, + 0x0632f696e, + 0x069740069, 0x06e697400, - 0x0626f6f74, - 0x03a202573, - 0x03a202573, - 0x00a00626f, - 0x06f743a20, - 0x025733a20, - 0x025730a00, - 0x025735b25, - 0x0735d3a20, - 0x00063616e, - 0x027742072, - 0x065616420, - 0x023632f63, - 0x06f6e733b, - 0x020706c65, - 0x061736520, - 0x07265626f, - 0x06f740000, - 0x000000000, + 0x02d74002f, + 0x073706172, + 0x0632f696e, + 0x069740062, + 0x06f6f743a, + 0x02025733a, + 0x02025730a, + 0x000626f6f, + 0x0743a2025, + 0x0733a2025, + 0x0730a0025, + 0x0735b2573, + 0x05d3a2000, + 0x063616e27, + 0x074207265, + 0x061642023, + 0x0632f636f, + 0x06e733b20, + 0x0706c6561, + 0x073652072, + 0x065626f6f, + 0x074000000, 0x000000000, 0x000000000, 0x000000000, @@ -6115,8 +6269,6 @@ ulong bootcode[]={ 0x002000000, 0x000000000, 0x000000000, - 0x00005f90, - 0x0, - 0x00005f90, + 0x000061f8, 0x0, }; diff --git a/ss/dat.h b/ss/dat.h index 6297508d424eb8bdbbad4cec0d5b4f9f487f5584..7c5ef97133c999e2c4c4204001a928ea7c2dbd10 100644 --- a/ss/dat.h +++ b/ss/dat.h @@ -343,7 +343,7 @@ struct Proc ulong pid; int nchild; QLock wait; /* exiting children to be waited for */ - ulong waitmsg; + Waitmsg waitmsg; /* this is large but must be addressable */ Proc *child; Proc *parent; Pgrp *pgrp; @@ -648,6 +648,12 @@ struct Service char name[NAMELEN]; }; +/* + * LANCE CSR3 (bus control bits) + */ +#define BSWP 0x4 +#define ACON 0x2 +#define BCON 0x1 /* * system dependent lance stuff @@ -661,6 +667,7 @@ struct Lance ushort ntrb; /* number of xmit ring buffers */ ushort *rap; /* lance address register */ ushort *rdp; /* lance data register */ + ushort busctl; /* bus control bits */ uchar ea[6]; /* our ether addr */ int sep; /* separation between shorts in lance ram as seen by host */ diff --git a/ss/devbit.c b/ss/devbit.c index 8dbe2250bc8fe246f59fb405c9ad6a0da1c1692d..22e5ed822f5374802fea564a346642b35d5169a3 100644 --- a/ss/devbit.c +++ b/ss/devbit.c @@ -1152,6 +1152,7 @@ mousechar(int c) { static short msg[5]; static int nb; + static uchar b[] = {0, 4, 2, 6, 1, 5, 3, 7}; if((c&0xF0) == 0x80) nb=0; @@ -1159,7 +1160,7 @@ mousechar(int c) if(c & 0x80) msg[nb] |= 0xFF00; /* sign extend */ if(++nb == 5){ - mouse.newbuttons = (msg[0]&7)^7; + mouse.newbuttons = b[(msg[0]&7)^7]; mouse.dx = msg[1]+msg[3]; mouse.dy = -(msg[2]+msg[4]); mouse.track = 1; diff --git a/ss/l.s b/ss/l.s index d03cf59c83e85f57a5e146dac9631d1b261fefc3..85bd1bb82bb2a2fbca2099e48128a50cdd3c012f 100644 --- a/ss/l.s +++ b/ss/l.s @@ -33,6 +33,14 @@ TEXT getpsr(SB), $0 MOVW PSR, R7 RETURN +/* +TEXT swap1_please(SB), $0 + + MOVW keyaddr+0(FP), R8 + LDSTUB (R8), R7 + RETURN +*/ + TEXT swap1_should_work(SB), $0 MOVW keyaddr+0(FP), R8 diff --git a/ss/lock.c b/ss/lock.c index 6a9fadcebca290418807d1dd0171348ee04b8f29..3ba6565133fcfbac190384591576de07ca2bd0d9 100644 --- a/ss/lock.c +++ b/ss/lock.c @@ -19,7 +19,6 @@ lock(Lock *l) ll->pc = ((ulong*)&l)[PCOFF]; return; } -reset(); for(i=0; i<10000000; i++) if(swap1(&ll->key) == 0){ ll->pc = ((ulong*)&l)[PCOFF]; diff --git a/ss/main.c b/ss/main.c index fe59b169f5b3fb3d763251e2bab498162ab593c4..ecf111a3efef610caf34427877e08e297e0caa6b 100644 --- a/ss/main.c +++ b/ss/main.c @@ -92,7 +92,7 @@ reset(void) void unloadboot(void) { - strncpy(user, "rob", sizeof user); + strncpy(user, "bootes", sizeof user); memcpy(bootline, "9s", sizeof bootline); memcpy(bootserver, "bootes", sizeof bootserver); memcpy(bootdevice, "parnfucky", sizeof bootdevice); @@ -157,7 +157,6 @@ userinit(void) p = newproc(); p->pgrp = newpgrp(); strcpy(p->text, "*init*"); - strcpy(p->pgrp->user, user); p->fpstate = FPinit; /* @@ -340,28 +339,28 @@ lancesetup(Lance *lp) ulong pa, pte, va; int i, j; - k = kmappa(ETHER, PTEIO|PTENOCACHE); + k = kmappa(ETHER, PTEIO); lp->rdp = (void*)(k->va+0); lp->rap = (void*)(k->va+2); - k = kmappa(EEPROM, PTEIO|PTENOCACHE); + k = kmappa(EEPROM, PTEIO); cp = (uchar*)(k->va+0x7da); for(i=0; i<6; i++) lp->ea[i] = *cp++; kunmap(k); - lp->lognrrb = 2; /* should be larger */ - lp->logntrb = 2; /* should be larger */ + lp->lognrrb = 5; + lp->logntrb = 5; lp->nrrb = 1<lognrrb; lp->ntrb = 1<logntrb; - lp->sep = 1; + lp->busctl = BSWP | ACON | BCON; /* * Allocate area for lance init block and descriptor rings */ pa = (ulong)ialloc(BY2PG, 1)&~KZERO; /* one whole page */ /* map at LANCESEGM */ - k = kmappa(pa, PTEMAINMEM|PTENOCACHE); + k = kmappa(pa, PTEMAINMEM); print("init block va %lux\n", k->va); lp->lanceram = (ushort*)k->va; lp->lm = (Lancemem*)k->va; @@ -377,7 +376,7 @@ print("%d lance buffers\n", i); pa = (ulong)ialloc(i*BY2PG, 1)&~KZERO; va = 0; for(j=i-1; j>=0; j--){ - k = kmappa(pa+j*BY2PG, PTEMAINMEM|PTENOCACHE); + k = kmappa(pa+j*BY2PG, PTEMAINMEM); if(va){ if(va != k->va+BY2PG) panic("lancesetup va unordered"); @@ -391,13 +390,6 @@ print("%d lance buffers\n", i); lp->rp = (Etherpkt*)k->va; lp->ltp = lp->lrp+lp->nrrb; lp->tp = lp->rp+lp->nrrb; -print("rp %lux tp %lux lm %lux\n", lp->rp, lp->tp, lp->lm); -print("*rp %lux *tp %lux *lm %lux\n", *(ulong*)lp->rp, *(ulong*)lp->tp, *(ulong*)lp->lm); -*(ulong*)lp->rp = 0; - k = kmappa(0xF8400000, PTEIO|PTENOCACHE); -print("dma %lux %lux\n", k->va, *(ulong*)(k->va+4)); - *(ulong*)(k->va+4) = 0; - kunmap(k); } /* diff --git a/ss/mmu.c b/ss/mmu.c index d19e90f4c3bdc270bb29b26b44462d2bdb12ba22..1e3e53fab1182f0f21a44df4c620724f83060793 100644 --- a/ss/mmu.c +++ b/ss/mmu.c @@ -55,7 +55,7 @@ mapstack(Proc *p) int newpid(Proc *p) { - int i, j; + int i, j, k; Proc *sp; i = m->lastpid+1; @@ -69,13 +69,16 @@ newpid(Proc *p) m->pidproc[i] = p; m->lastpid = i; putcontext(i-1); +/* print("new pid %d\n", i); /**/ /* - * kludge: each context is allowed 2 pmegs, one for text and one for stack + * kludge: each context is allowed 5 pmegs, four for text & data and one for stack */ - putsegm(UZERO, kmapalloc.lowpmeg+(2*i)); - putsegm(TSTKTOP-BY2SEGM, kmapalloc.lowpmeg+(2*i)+1); + for(j=0; j<4; j++) + putsegm(UZERO, kmapalloc.lowpmeg+(2*i)+j); + putsegm(TSTKTOP-BY2SEGM, kmapalloc.lowpmeg+(2*i)+4); for(j=0; jpidhere[pid] == 0) return; -print("purge pid %d\n", pid); +/* print("purge pid %d\n", pid);/**/ memset(m->pidhere, 0, sizeof m->pidhere); putcontext(pid-1); /* @@ -103,7 +106,7 @@ print("purge pid %d\n", pid); */ for(i=0; i<0x1000; i++) putwE((i<<4), 0); -print("purge done\n"); +/* print("purge done\n");/**/ } @@ -199,7 +202,7 @@ putmmu(ulong tlbvirt, ulong tlbphys) /* * kludge part 2: make sure we've got a valid segment */ - if(tlbvirt>=TSTKTOP || (UZERO+BY2SEGM<=tlbvirt && tlbvirt<(TSTKTOP-BY2SEGM))) + if(tlbvirt>=TSTKTOP || (UZERO+4*BY2SEGM<=tlbvirt && tlbvirt<(TSTKTOP-BY2SEGM))) panic("putmmu %lux", tlbvirt); putpmeg(tlbvirt, tlbphys); spllo(); diff --git a/ss/trap.c b/ss/trap.c index cc6906aa9239539da173227e97297d3199696d48..945f80737a7c091b4189f040a24be753fd85e381 100644 --- a/ss/trap.c +++ b/ss/trap.c @@ -78,17 +78,21 @@ trap(Ureg *ur) if(user){ print("user trap: %s pc=0x%lux\n", excname(tbr), ur->pc); dumpregs(ur); -for(;;); sprint(buf, "sys: trap: pc=0x%lux %s", ur->pc, excname(tbr)); +print("call postnote\n"); postnote(u->p, 1, buf, NDebug); +print("return from postnote\n"); }else{ print("kernel trap: %s pc=0x%lux\n", excname(tbr), ur->pc); dumpregs(ur); for(;;); exit(); } - if(user && u->nnote) + if(user && u->nnote){ + print("notify %d\n", u->p->pid); notify(ur); + print("notifyed %d\n", u->p->pid); + } } void @@ -157,7 +161,7 @@ notify(Ureg *ur) ulong sp; lock(&u->p->debug); - if(u->nnote==0){ + if(u->nnote == 0){ unlock(&u->p->debug); return; } @@ -165,6 +169,7 @@ notify(Ureg *ur) if(u->note[0].flag == NDebug) pprint("suicide: %s\n", u->note[0].msg); Die: +print("suicide: %s\n", u->note[0].msg); unlock(&u->p->debug); pexit(u->note[0].msg, u->note[0].flag!=NDebug); }