From f5e591f9bd5876c524ea2c2f415d8516258011cf Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Wed, 19 Oct 1994 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1994-10-19 --- carrera/io.h | 1 + carrera/main.c | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/carrera/io.h b/carrera/io.h index a7eb9e140adc98923e9353a00e0161d0fe299140..8aac77e4a16316cd4598d19329457fc9f90e9b0c 100644 --- a/carrera/io.h +++ b/carrera/io.h @@ -9,6 +9,7 @@ enum Devicephys = 0x80000000, Eisaphys = 0x90000000, /* IO port physical */ Devicevirt = 0xE0000000, + MCTgcr = 0xE0000004, Dmabase = 0xE0000100, R4030ier = 0xE00000EC, /* Interrupt enable register */ R4030ipr = 0xE00000EC, /* Interrupt pending register */ diff --git a/carrera/main.c b/carrera/main.c index 1cc7996f44c8aef2d0ce231b3bde0bd3008d5e97..e76e235b9fe539e8d643d089ca0c284135bb73a6 100644 --- a/carrera/main.c +++ b/carrera/main.c @@ -424,6 +424,22 @@ exit(long type) firmware(type); } +ulong +memsize(void) +{ + ulong gcr; + + gcr = IO(ulong, MCTgcr); + /* Check for bank one enable - + * assumes both have 4Meg SIMMS + */ + if(gcr & 0x20){ + memset(UNCACHED(void, 16*MB), 0, 16*MB); + return 32*MB; + } + return 16*MB; +} + void confinit(void) { @@ -431,7 +447,7 @@ confinit(void) ktop = PGROUND((ulong)end); ktop = PADDR(ktop); - top = (16*1024*1024)/BY2PG; + top = memsize()/BY2PG; conf.base0 = 0; conf.npage0 = top;