M carrera/segment.h => carrera/segment.h +1 -0
@@ 10,5 10,6 @@ Physseg physseg[] =
{ SG_PHYSICAL, "eisavga", Eisavgaphys, 128*1024, 0, 0 },
{ SG_PHYSICAL, "bootrom", 0x1fc00000, 256*1024, 0, 0 },
{ SG_PHYSICAL, "nvram", 0xe0009000, 12*1024, 0, 0 },
+ { SG_PHYSICAL, "fb", 0xe2000000, 4*1024*1024, 0, 0 },
{ 0, 0, 0, 0, 0, 0 },
};
M pc/main.c => pc/main.c +1 -0
@@ 50,6 50,7 @@ main(void)
screeninit();
printinit();
mmuinit();
+ ns16552install();
pageinit();
trapinit();
mathinit();
M pc/ns16552.h => pc/ns16552.h +12 -1
@@ 81,11 81,17 @@ mp008intr(Ureg *ur, void *arg)
/*
* install the uarts (called by reset)
*/
-static void
+void
ns16552install(void)
{
int i, j, port;
+ char *p;
Scard *sc;
+ static int already;
+
+ if(already)
+ return;
+ already = 1;
/* first two ports are always there and always the normal frequency */
ns16552setup(0x3F8, UartFREQ);
@@ 93,6 99,11 @@ ns16552install(void)
ns16552setup(0x2F8, UartFREQ);
setvec(Uart1vec, ns16552intrx, (void*)1);
+ /* set up a serial console */
+ p = getconf("console");
+ if(p)
+ ns16552special(atoi(p), 9600, &kbdq, &printq, kbdcr2nl);
+
/* the rest come out of plan9.ini */
for(i = 0; i < Maxcard; i++){
sc = scard[i] = xalloc(sizeof(Scard));
M pc/trap.c => pc/trap.c +1 -0
@@ 172,6 172,7 @@ trapinit(void)
sethvec(Bptvec, intr3, SEGIG, 3);
setvec(Bptvec, debugbpt, 0);
+
/*
* tell the hardware where the table is (and how long)
*/