## diffname bitsy/main.c 2000/0831
## diff -e /dev/null /n/emeliedump/2000/0831/sys/src/9/bitsy/main.c
0a
#include "u.h"
#include "../port/lib.h"
#include "mem.h"
#include "dat.h"
#include "fns.h"
#include "io.h"
#include "ureg.h"
#include "init.h"
#include "pool.h"
Mach *m;
void
main(void)
{
}
.
## diffname bitsy/main.c 2000/0901
## diff -e /n/emeliedump/2000/0831/sys/src/9/bitsy/main.c /n/emeliedump/2000/0901/sys/src/9/bitsy/main.c
16a
void
exit(int)
{
}
.
## diffname bitsy/main.c 2000/0902
## diff -e /n/emeliedump/2000/0901/sys/src/9/bitsy/main.c /n/emeliedump/2000/0902/sys/src/9/bitsy/main.c
19c
exit(int ispanic)
{
USED(ispanic);
}
/*
* set mach dependent process state for a new process
*/
void
procsetup(Proc *p)
{
p->fpstate = FPinit;
}
/*
* Save the mach dependent part of the process state.
*/
void
procsave(Proc *p)
{
USED(p);
}
/* place holder */
void
serialputs(char*, int)
{
}
/*
* dummy since rdb is not included
*/
void
rdb(void)
.
17a
/*
* exit kernel either on a panic or user request
*/
.
15a
.
11a
Conf conf;
.
## diffname bitsy/main.c 2000/0904
## diff -e /n/emeliedump/2000/0902/sys/src/9/bitsy/main.c /n/emeliedump/2000/0904/sys/src/9/bitsy/main.c
26c
void (*f)();
f = nil;
(*f)();
.
17c
putuartstr("hello ken");
.
## diffname bitsy/main.c 2000/0905
## diff -e /n/emeliedump/2000/0904/sys/src/9/bitsy/main.c /n/emeliedump/2000/0905/sys/src/9/bitsy/main.c
61a
int i;
ulong addr;
ulong ktop;
/* find first two contiguous sections of available memory */
addr = PHYSDRAM0;
conf.base0 = conf.npage0 = addr;
conf.base1 = conf.npage1 = addr;
for(i = 0; i < 512; i++){
if(probemem(addr) == 0)
break;
addr += OneMeg;
}
for(; i < 512; i++){
if(probemem(addr) < 0)
break;
addr += OneMeg;
conf.npage0 = addr;
}
conf.base1 = conf.npage1 = addr;
for(; i < 512; i++){
if(probemem(addr) == 0)
break;
addr += OneMeg;
}
for(; i < 512; i++){
if(probemem(addr) < 0)
break;
addr += OneMeg;
conf.npage1 = addr;
}
/* take kernel out of allocatable space */
ktop = PGROUND((ulong)end);
if(ktop >= conf.base0 && ktop <= conf.npage0)
conf.base0 = ktop;
else if(ktop >= conf.base1 && ktop <= conf.npage1)
conf.base1 = ktop;
else
iprint("kernel not in allocatable space\n");
iprint("%lux-%lux %lux-%lux\n", conf.base0, conf.npage0, conf.base1, conf.npage1);
/* make npages the right thing */
conf.npage0 = (conf.npage0 - conf.base0)/BY2PG;
conf.npage1 = (conf.npage1 - conf.base1)/BY2PG;
conf.npage = conf.npage0+conf.npage1;
if(conf.npage > 16*MB/BY2PG){
conf.upages = (conf.npage*60)/100;
imagmem->minarena = 4*1024*1024;
}else
conf.upages = (conf.npage*40)/100;
conf.ialloc = ((conf.npage-conf.upages)/2)*BY2PG;
conf.nmach = 1;
/* set up other configuration parameters */
conf.nproc = 100;
conf.nswap = conf.npage*3;
conf.nswppo = 4096;
conf.nimage = 200;
conf.monitor = 1;
conf.copymode = 0; /* copy on write */
.
60c
confinit(void)
.
58a
int
probemem(ulong addr)
{
ulong *p;
ulong a;
addr += OneMeg - sizeof(ulong);
p = (ulong*)addr;
*p = addr;
for(a = conf.base0+OneMeg-sizeof(ulong); a < conf.npage0; a += OneMeg){
p = (ulong*)a;
*p = 0;
}
for(a = conf.base1+OneMeg-sizeof(ulong); a < conf.npage1; a += OneMeg){
p = (ulong*)a;
*p = 0;
}
p = (ulong*)addr;
iprint("%lux @ %lux\n", *p, addr);
if(*p != addr)
return -1;
return 0;
}
/*
* we assume that the kernel is at the beginning of one of the
* contiguous chunks of memory.
*/
.
57c
* probe the last location in a meg of memory, make sure it's not
* reflected into something else we've already found.
.
55a
enum
{
OneMeg= 1024*1024,
};
.
52c
rdb(void)
.
50a
/*
* dummy since rdb is not included
*/
.
27a
USED(ispanic);
delay(1000);
.
17c
iprint("bitsy kernel\n");
confinit();
mmuinit();
.
10a
#include "sa1110.h"
.
## diffname bitsy/main.c 2000/0906
## diff -e /n/emeliedump/2000/0905/sys/src/9/bitsy/main.c /n/emeliedump/2000/0906/sys/src/9/bitsy/main.c
20a
xinit();
.
11,12d
## diffname bitsy/main.c 2000/0907
## diff -e /n/emeliedump/2000/0906/sys/src/9/bitsy/main.c /n/emeliedump/2000/0907/sys/src/9/bitsy/main.c
65,69d
## diffname bitsy/main.c 2000/0927
## diff -e /n/emeliedump/2000/0907/sys/src/9/bitsy/main.c /n/emeliedump/2000/0927/sys/src/9/bitsy/main.c
20a
delay(100000);
exit(1);
.
16a
int i;
.
## diffname bitsy/main.c 2000/0928
## diff -e /n/emeliedump/2000/0927/sys/src/9/bitsy/main.c /n/emeliedump/2000/0928/sys/src/9/bitsy/main.c
147c
/* make npage the right thing */
.
145d
91d
22a
iprint("after mmuinit\n");
.
21a
iprint("after xinit\n");
.
20a
iprint("%d pages %lux(%lud) %lux(%lud)\n", conf.npage, conf.base0, conf.npage0, conf.base1, conf.npage1);
.
17c
/* zero out bss */
memset(edata, 0, end-edata);
.
## diffname bitsy/main.c 2000/0929
## diff -e /n/emeliedump/2000/0928/sys/src/9/bitsy/main.c /n/emeliedump/2000/0929/sys/src/9/bitsy/main.c
41a
mmudisable();
.
26a
trapinit();
iprint("after trapinit\n");
.
## diffname bitsy/main.c 2000/1006
## diff -e /n/emeliedump/2000/0929/sys/src/9/bitsy/main.c /n/emeliedump/2000/1006/sys/src/9/bitsy/main.c
29c
spllo();
iprint("after spllo\n");
delay(1000000);
.
26a
clockinit();
iprint("after clockinit\n");
.
25a
uartsetup();
.
24a
iprint("testing 2 second delay\n");
delay(2000);
iprint("done\n");
.
## diffname bitsy/main.c 2000/1007
## diff -e /n/emeliedump/2000/1006/sys/src/9/bitsy/main.c /n/emeliedump/2000/1007/sys/src/9/bitsy/main.c
183a
.
37c
delay(10000);
trapdump("after delay");
.
34a
clockinit();
iprint("after clockinit\n");
trapdump("before spllo");
.
31,32d
29c
sa1100_uartsetup();
.
19a
/* point to Mach structure */
m = (Mach*)MACHADDR;
.
## diffname bitsy/main.c 2000/1008
## diff -e /n/emeliedump/2000/1007/sys/src/9/bitsy/main.c /n/emeliedump/2000/1008/sys/src/9/bitsy/main.c
189a
GPIOregs *gpioregs;
ulong *egpioreg;
static void
gpioinit(void)
{
gpioregs = mapspecial(GPIOREGS, 32);
gpioregs->direction =
GPIO_LDD8_o|GPIO_LDD9_o|GPIO_LDD10_o|GPIO_LDD11_o
|GPIO_LDD12_o|GPIO_LDD13_o|GPIO_LDD14_o|GPIO_LDD15_o
|GPIO_CLK_SET0_o|GPIO_CLK_SET1_o
|GPIO_L3_SDA_io|GPIO_L3_MODE_o|GPIO_L3_SCLK_o
|GPIO_COM_RTS_o;
gpioregs->rising = 0;
gpioregs->falling = 0;
egpioreg = mapspecial(EGPIOREGS, 4);
}
static ulong egpiosticky;
void
rs232power(int on)
{
if(on)
egpiosticky |= EGPIO_rs232_power;
else
egpiosticky &= ~EGPIO_rs232_power;
*egpioreg = egpiosticky;
}
void
irpower(int on)
{
if(on)
egpiosticky |= EGPIO_ir_power;
else
egpiosticky &= ~EGPIO_ir_power;
*egpioreg = egpiosticky;
}
void
lcdpower(int on)
{
if(on)
egpiosticky |= EGPIO_lcd_3v|EGPIO_lcd_ic_power|EGPIO_lcd_5v|EGPIO_lcd_9v;
else
egpiosticky &= ~(EGPIO_lcd_3v|EGPIO_lcd_ic_power|EGPIO_lcd_5v|EGPIO_lcd_9v);
*egpioreg = egpiosticky;
}
.
40,42c
delay(1000);
.
37,38d
35d
33c
gpioinit();
.
27,30d
22a
rs232power(1);
.
13a
static void gpioinit(void);
.
## diffname bitsy/main.c 2000/1010
## diff -e /n/emeliedump/2000/1008/sys/src/9/bitsy/main.c /n/emeliedump/2000/1010/sys/src/9/bitsy/main.c
50a
iprint("it's a wonderful day to die\n");
.
## diffname bitsy/main.c 2000/1011
## diff -e /n/emeliedump/2000/1010/sys/src/9/bitsy/main.c /n/emeliedump/2000/1011/sys/src/9/bitsy/main.c
54a
}
/*
* starting place for first process
*/
void
init0(void)
{
up->nerrlab = 0;
spllo();
/*
* These are o.k. because rootinit is null.
* Then early kproc's will have a root and dot.
*/
up->slash = namec("#/", Atodir, 0, 0);
cnameclose(up->slash->name);
up->slash->name = newcname("/");
up->dot = cclone(up->slash, 0);
chandevinit();
if(!waserror()){
ksetenv("terminal", "bitsy");
ksetenv("cputype", "arm");
if(cpuserver)
ksetenv("service", "cpu");
else
ksetenv("service", "terminal");
poperror();
}
kproc("alarm", alarmkproc, 0);
touser();
}
/*
* create the first process
*/
void
userinit(void)
{
Proc *p;
Segment *s;
KMap *k;
Page *pg;
p = newproc();
p->pgrp = newpgrp();
p->egrp = smalloc(sizeof(Egrp));
p->egrp->ref = 1;
p->fgrp = dupfgrp(nil);
p->rgrp = newrgrp();
p->procmode = 0640;
strcpy(p->text, "*init*");
strcpy(p->user, eve);
/*
* Kernel Stack
*/
p->sched.pc = (ulong)init0;
p->sched.sp = (ulong)p->kstack+KSTACK-(1+MAXSYSARG)*BY2WD;
/*
* User Stack
*/
s = newseg(SG_STACK, USTKTOP-USTKSIZE, USTKSIZE/BY2PG);
p->seg[SSEG] = s;
pg = newpage(1, 0, USTKTOP-BY2PG);
segpage(s, pg);
/*
* Text
*/
s = newseg(SG_TEXT, UTZERO, 1);
s->flushme++;
p->seg[TSEG] = s;
pg = newpage(1, 0, UTZERO);
memset(pg->cachectl, PG_TXTFLUSH, sizeof(pg->cachectl));
segpage(s, pg);
k = kmap(s->map[0]->pages[0]);
memmove((ulong*)VA(k), initcode, sizeof initcode);
kunmap(k);
ready(p);
.
35,37c
chandevreset();
pageinit();
userinit();
schedinit();
.
## diffname bitsy/main.c 2000/1012
## diff -e /n/emeliedump/2000/1011/sys/src/9/bitsy/main.c /n/emeliedump/2000/1012/sys/src/9/bitsy/main.c
127a
k = kmap(pg);
bootargs(VA(k));
kunmap(k);
.
119c
p->sched.sp = (ulong)p->kstack+KSTACK-(sizeof(Sargs)+BY2WD);
.
114a
.
93a
* pass boot arguments to /boot
*/
static uchar *
pusharg(char *p)
{
int n;
n = strlen(p)+1;
sp -= n;
memmove(sp, p, n);
return sp;
}
static void
bootargs(ulong base)
{
int i, ac;
uchar *av[32];
uchar *bootpath;
uchar **lsp;
/*
* the sizeof(Sargs) is to make the validaddr check in
* trap.c's syscall() work even when we have less than the
* max number of args.
*/
sp = (uchar*)base + BY2PG - sizeof(Sargs);
bootpath = pusharg("/boot");
ac = 0;
av[ac++] = pusharg("boot");
/* 4 byte word align stack */
sp = (uchar*)((ulong)sp & ~3);
/* build argc, argv on stack */
sp -= (ac+1)*sizeof(sp);
lsp = (uchar**)sp;
for(i = 0; i < ac; i++)
*lsp++ = av[i] + ((USTKTOP - BY2PG) - base);
*lsp = 0;
/* push argv onto stack */
sp -= BY2WD;
lsp = (uchar**)sp;
*lsp = sp + BY2WD + ((USTKTOP - BY2PG) - base);
/* push pointer to "/boot" */
sp -= BY2WD;
lsp = (uchar**)sp;
*lsp = bootpath + ((USTKTOP - BY2PG) - base);
/* leave space for where the initcode's caller's return PC would normally reside */
sp -= BY2WD;
/* relocate stack to user's virtual addresses */
sp += (USTKTOP - BY2PG) - base;
}
/*
.
90c
touser(sp);
.
57a
static uchar *sp;
.
47c
void (*f)(void);
.
37a
iprint("schedinit(), death soon\n");
.
36a
swapinit();
.
35a
noprint = 1;
.
34a
procinit0();
initseg();
.
33a
printinit();
.
23a
memset(m, 0, sizeof(Mach));
.
15a
int noprint;
.
## diffname bitsy/main.c 2000/1013
## diff -e /n/emeliedump/2000/1012/sys/src/9/bitsy/main.c /n/emeliedump/2000/1013/sys/src/9/bitsy/main.c
66a
/*
* quicker panic
*/
void
qpanic(char *fmt, ...)
{
int n;
va_list arg;
char buf[PRINTSIZE];
splhi();
strcpy(buf, "panic: ");
va_start(arg, fmt);
n = doprint(buf+strlen(buf), buf+sizeof(buf), fmt, arg) - buf;
va_end(arg);
buf[n] = '\n';
serialputs(buf, n+1);
exit(1);
}
.
## diffname bitsy/main.c 2000/1014
## diff -e /n/emeliedump/2000/1013/sys/src/9/bitsy/main.c /n/emeliedump/2000/1014/sys/src/9/bitsy/main.c
236a
cleancache();
wbflush();
iprint("userinit %lux[0x20] = %lux\n", VA(k), *((ulong*)(VA(k)+0x20)));
.
229d
195a
/* no processes yet */
up = nil;
.
26a
m->ticks = 1;
.
20a
cleancache();
.
## diffname bitsy/main.c 2000/1015
## diff -e /n/emeliedump/2000/1014/sys/src/9/bitsy/main.c /n/emeliedump/2000/1015/sys/src/9/bitsy/main.c
363a
/* only one processor */
.
242,244c
//iprint("userinit %lux[0x20] = %lux\n", VA(k), *((ulong*)(VA(k)+0x20)));
.
213d
64a
mmuinvalidate();
.
49c
//iprint("schedinit(), death soon\n");
.
45d
40c
sa1100_uartsetup(1);
printinit(); /* from here on, print works, before this we need iprint */
.
37d
34d
21c
mmuinvalidate();
.
## diffname bitsy/main.c 2000/1016
## diff -e /n/emeliedump/2000/1015/sys/src/9/bitsy/main.c /n/emeliedump/2000/1016/sys/src/9/bitsy/main.c
15,16d
11,12c
Mach *m;
Proc *up;
Conf conf;
int noprint;
.
## diffname bitsy/main.c 2000/1018
## diff -e /n/emeliedump/2000/1016/sys/src/9/bitsy/main.c /n/emeliedump/2000/1018/sys/src/9/bitsy/main.c
68,89d
62a
cacheflush();
.
47d
37a
screeninit();
.
32c
iprint("\nPlan 9 bitsy kernel\n");
.
## diffname bitsy/main.c 2000/1019
## diff -e /n/emeliedump/2000/1018/sys/src/9/bitsy/main.c /n/emeliedump/2000/1019/sys/src/9/bitsy/main.c
354c
ulong *egpioreg = (ulong*)EGPIOREGS;
.
219d
39a
rs232power(1);
screeninit();
.
38d
## diffname bitsy/main.c 2000/1020
## diff -e /n/emeliedump/2000/1019/sys/src/9/bitsy/main.c /n/emeliedump/2000/1020/sys/src/9/bitsy/main.c
367a
gpioregs->altfunc |=
GPIO_LDD8_o|GPIO_LDD9_o|GPIO_LDD10_o|GPIO_LDD11_o
|GPIO_LDD12_o|GPIO_LDD13_o|GPIO_LDD14_o|GPIO_LDD15_o;
.
30a
active.machs = 1;
.
## diffname bitsy/main.c 2000/1026
## diff -e /n/emeliedump/2000/1020/sys/src/9/bitsy/main.c /n/emeliedump/2000/1026/sys/src/9/bitsy/main.c
232c
p->fpstate = FPINIT;
.
## diffname bitsy/main.c 2000/1027
## diff -e /n/emeliedump/2000/1026/sys/src/9/bitsy/main.c /n/emeliedump/2000/1027/sys/src/9/bitsy/main.c
232c
p->fpstate = FPinit;
.
## diffname bitsy/main.c 2000/1110
## diff -e /n/emeliedump/2000/1027/sys/src/9/bitsy/main.c /n/emeliedump/2000/1110/sys/src/9/bitsy/main.c
405a
*egpioreg = egpiosticky;
}
void
audiopower(int on)
{
if(on)
egpiosticky |= EGPIO_audio_ic_power | EGPIO_codec_reset;
else
egpiosticky &= ~(EGPIO_audio_ic_power | EGPIO_codec_reset);
*egpioreg = egpiosticky;
}
void
amplifierpower(int on)
{
if(on)
egpiosticky |= EGPIO_audio_power;
else
egpiosticky &= ~(EGPIO_audio_power);
*egpioreg = egpiosticky;
}
void
audiomute(int on)
{
if(on)
egpiosticky |= EGPIO_audio_mute;
else
egpiosticky &= ~(EGPIO_audio_mute);
.
376a
PPCregs *ppcregs;
static void
ppcinit(void) {
ppcregs = mapspecial(PPCREGS, 32);
}
SSPregs *sspregs;
static void
sspinit(void) {
sspregs = mapspecial(SSPREGS, 32);
}
.
38a
ppcinit();
sspinit();
.
## diffname bitsy/main.c 2000/1111
## diff -e /n/emeliedump/2000/1110/sys/src/9/bitsy/main.c /n/emeliedump/2000/1111/sys/src/9/bitsy/main.c
43a
dmainit();
.
16a
static void ppcinit(void);
static void sspinit(void);
.
## diffname bitsy/main.c 2000/1114
## diff -e /n/emeliedump/2000/1111/sys/src/9/bitsy/main.c /n/emeliedump/2000/1114/sys/src/9/bitsy/main.c
451,455c
egpiobits(EGPIO_audio_mute, on);
}
void
flashprogpower(int on)
{
egpiobits(EGPIO_prog_flash, on);
.
441,445c
egpiobits(EGPIO_audio_power, on);
.
431,435c
egpiobits(EGPIO_audio_ic_power | EGPIO_codec_reset, on);
.
421,425c
egpiobits(EGPIO_lcd_3v|EGPIO_lcd_ic_power|EGPIO_lcd_5v|EGPIO_lcd_9v, on);
.
411,415c
egpiobits(EGPIO_ir_power, on);
.
408a
rs232power(int on)
{
egpiobits(EGPIO_rs232_power, on);
}
void
.
404c
egpiosticky &= ~bits;
.
402c
egpiosticky |= bits;
.
398,399c
static void
egpiobits(ulong bits, int on)
.
## diffname bitsy/main.c 2000/1116
## diff -e /n/emeliedump/2000/1114/sys/src/9/bitsy/main.c /n/emeliedump/2000/1116/sys/src/9/bitsy/main.c
386a
}
MCPregs *mcpregs;
static void
mcpinit(void) {
mcpregs = mapspecial(MCPREGS, 0x34);
mcpregs->status &= ~(1<<16);
/* Turn MCP operations off */
.
41a
mcpinit();
.
18a
static void mcpinit(void);
.
## diffname bitsy/main.c 2000/1117
## diff -e /n/emeliedump/2000/1116/sys/src/9/bitsy/main.c /n/emeliedump/2000/1117/sys/src/9/bitsy/main.c
379c
|GPIO_LDD12_o|GPIO_LDD13_o|GPIO_LDD14_o|GPIO_LDD15_o
|GPIO_SSP_CLK_i;
.
## diffname bitsy/main.c 2000/1118
## diff -e /n/emeliedump/2000/1117/sys/src/9/bitsy/main.c /n/emeliedump/2000/1118/sys/src/9/bitsy/main.c
459a
}
void
exppackpower(int on)
{
egpiobits(EGPIO_exp_full_power|EGPIO_exp_nvram_power, on);
if(on)
delay(100);
.
410c
void
.
## diffname bitsy/main.c 2000/1121
## diff -e /n/emeliedump/2000/1118/sys/src/9/bitsy/main.c /n/emeliedump/2000/1121/sys/src/9/bitsy/main.c
460,467d
403,407c
/*
* manage egpio bits
*/
.
401d
394,398c
/* memory configuraton */
memconfregs = mapspecial(MEMCONFREGS, 32);
.
392c
/* SA1110 power management */
powerregs = mapspecial(POWERREGS, 32);
.
390d
385,388c
/* map in peripheral pin controller (ssp will need it) */
.
383d
381a
/* map in special H3650 io pins */
.
367a
/* set direction of SA1110 io pins and select alternate functions for some */
.
365,366c
/*
* configure the machine
*/
void
machinit(void)
.
363a
PPCregs *ppcregs;
MemConfRegs *memconfregs;
PowerRegs *powerregs;
.
41,44c
machinit();
.
16,20d
## diffname bitsy/main.c 2000/1122
## diff -e /n/emeliedump/2000/1121/sys/src/9/bitsy/main.c /n/emeliedump/2000/1122/sys/src/9/bitsy/main.c
429,446d
## diffname bitsy/main.c 2000/1205
## diff -e /n/emeliedump/2000/1122/sys/src/9/bitsy/main.c /n/emeliedump/2000/1205/sys/src/9/bitsy/main.c
431a
}
/* here on hardware reset */
void
resettrap(void)
{
}
/*
* for drivers that used to run on x86's
*/
void
outb(ulong a, uchar v)
{
*(uchar*)a = v;
µdelay(2);
}
void
outs(ulong a, ushort v)
{
*(ushort*)a = v;
µdelay(2);
}
void
outl(ulong a, ulong v)
{
*(ulong*)a = v;
µdelay(2);
}
uchar
inb(ulong a)
{
µdelay(2);
return *(uchar*)a;
}
ushort
ins(ulong a)
{
µdelay(2);
return *(ushort*)a;
}
ulong
inl(ulong a)
{
µdelay(2);
return *(ulong*)a;
.
45a
links();
.
## diffname bitsy/main.c 2000/1206
## diff -e /n/emeliedump/2000/1205/sys/src/9/bitsy/main.c /n/emeliedump/2000/1206/sys/src/9/bitsy/main.c
477d
471d
465d
460d
454d
448d
## diffname bitsy/main.c 2000/1207
## diff -e /n/emeliedump/2000/1206/sys/src/9/bitsy/main.c /n/emeliedump/2000/1207/sys/src/9/bitsy/main.c
328a
/* zero memory */
memset((void*)conf.base0, 0, conf.npage0 - conf.base0);
memset((void*)conf.base1, 0, conf.npage1 - conf.base1);
.
## diffname bitsy/main.c 2001/0327
## diff -e /n/emeliedump/2000/1207/sys/src/9/bitsy/main.c /n/emeliedump/2001/0327/sys/src/9/bitsy/main.c
471a
}
void
inss(ulong a, void *p, int n)
{
ushort *sp = p;
while(n-- > 0)
*sp++ = *(ushort*)a;
.
458a
outss(ulong a, void *p, int n)
{
ushort *sp = p;
while(n-- > 0)
*(ushort*)a = *sp++;
}
void
.
## diffname bitsy/main.c 2001/0501
## diff -e /n/emeliedump/2001/0327/sys/src/9/bitsy/main.c /n/emeliedump/2001/0501/sys/src/9/bitsy/main.c
384c
|GPIO_SSP_CLK_i|GPIO_SSP_RXD_i;
.
## diffname bitsy/main.c 2001/0502
## diff -e /n/emeliedump/2001/0501/sys/src/9/bitsy/main.c /n/emeliedump/2001/0502/sys/src/9/bitsy/main.c
384c
|GPIO_SSP_CLK_i;
.
## diffname bitsy/main.c 2001/0529
## diff -e /n/emeliedump/2001/0502/sys/src/9/bitsy/main.c /n/emeliedump/2001/0529/sys/src/9/bitsy/main.c
191,192c
kstrdup(&eve, "");
kstrdup(&p->text, "*init*");
kstrdup(&p->user, eve);
.
92c
up->dot = cclone(up->slash);
.
## diffname bitsy/main.c 2001/0601
## diff -e /n/emeliedump/2001/0529/sys/src/9/bitsy/main.c /n/emeliedump/2001/0601/sys/src/9/bitsy/main.c
38c
sa1110_uartsetup(1);
.
## diffname bitsy/main.c 2001/0618
## diff -e /n/emeliedump/2001/0601/sys/src/9/bitsy/main.c /n/emeliedump/2001/0618/sys/src/9/bitsy/main.c
397a
/* reset controller */
resetregs = mapspecial(RESETREGS, 32);
.
364a
ResetRegs *resetregs;
OSTimerRegs *timerregs = (OSTimerRegs*)OSTIMERREGS;
.
39a
powerinit();
.
## diffname bitsy/main.c 2001/0619
## diff -e /n/emeliedump/2001/0618/sys/src/9/bitsy/main.c /n/emeliedump/2001/0619/sys/src/9/bitsy/main.c
367d
## diffname bitsy/main.c 2001/0620
## diff -e /n/emeliedump/2001/0619/sys/src/9/bitsy/main.c /n/emeliedump/2001/0620/sys/src/9/bitsy/main.c
106a
kproc("power", powerkproc, 0);
.
51a
powerinit();
.
40d
## diffname bitsy/main.c 2001/0810
## diff -e /n/emeliedump/2001/0620/sys/src/9/bitsy/main.c /n/emeliedump/2001/0810/sys/src/9/bitsy/main.c
437a
delay(50);
.
431a
delay(50);
.
428a
audioamppower(int on)
{
egpiobits(EGPIO_audio_power, on);
delay(50);
}
void
audioicpower(int on)
{
egpiobits(EGPIO_audio_ic_power, on);
delay(50);
}
void
.
425a
delay(50);
.
39d
## diffname bitsy/main.c 2002/0109
## diff -e /n/emeliedump/2001/0810/sys/src/9/bitsy/main.c /n/emeliedump/2002/0109/sys/src/9/bitsy/main.c
102c
ksetenv("service", "terminal", 0);
.
100c
ksetenv("service", "cpu", 0);
.
97,98c
ksetenv("terminal", "bitsy", 0);
ksetenv("cputype", "arm", 0);
.
53a
/* need to do better */
void
reboot(void*, void*, ulong)
{
exit(0);
}
.
## diffname bitsy/main.c 2002/0217
## diff -e /n/emeliedump/2002/0109/sys/src/9/bitsy/main.c /n/emeliedump/2002/0217/sys/src/9/bitsy/main.c
31a
quotefmtinstall();
.
## diffname bitsy/main.c 2002/1112
## diff -e /n/emeliedump/2002/0217/sys/src/9/bitsy/main.c /n/emeliedump/2002/1112/sys/src/9/bitsy/main.c
524a
}
char*
getconf(char*)
{
return nil;
.
411c
resetregs = mapspecial(RESETREGS, sizeof(ResetRegs));
.
408c
memconfregs = mapspecial(MEMCONFREGS, sizeof(MemConfRegs));
.
405c
powerregs = mapspecial(POWERREGS, sizeof(PowerRegs));
.
402c
ppcregs = mapspecial(PPCREGS, sizeof(PPCregs));
.
399c
egpioreg = mapspecial(EGPIOREGS, sizeof(ulong));
.
384c
gpioregs = mapspecial(GPIOREGS, sizeof(GPIOregs));
.
## diffname bitsy/main.c 2002/1130
## diff -e /n/emeliedump/2002/1112/sys/src/9/bitsy/main.c /n/emeliedump/2002/1130/sys/src/9/bitsy/main.c
148c
bootpath = pusharg("/boot/boot");
.
|