~kris/9p

9hist

9f9f12b3fa4f2c529ed1e00a8b85fe1dce3f155c — David du Colombier 30 years ago 8b11b8a
Plan 9 from Bell Labs 1996-08-08
1 files changed, 31 insertions(+), 8 deletions(-)

M pc/devastar.c
M pc/devastar.c => pc/devastar.c +31 -8
@@ 765,6 765,36 @@ memwrite(Astar *a, uchar *from, long n, ulong offset)
}

/*
 *  put board into download mode
 */
static void
downloadmode(Astar *a)
{
	int c, i;

	/* put board in download mode */
	c = inb(a->port+ISActl1);
	outb(a->port+ISActl1, c & ~ISAnotdl);
	a->memsize = Pramsize;
	a->needpage = 1;

	/* give it up to 5 seconds to reset */
	for(i = 0; i < 21; i++){
		if(!(inb(a->port+ISActl1) & ISAnotdl))
			break;
		tsleep(&a->r, return0, 0, 500);
	}
	if(inb(a->port+ISActl1) & ISAnotdl){
		print("astar%d did not reset\n", a->id);
		error(Eio);
	}

	/* enable ISA access to first 16k */
	a->page = -1;
	setpage(a, 0);
}

/*
 *  start control program
 */
static void


@@ 884,14 914,7 @@ bctlwrite(Astar *a, char *cmsg)

	if(strncmp(cmsg, "download", 8) == 0){
		/* put board in download mode */
		c = inb(a->port+ISActl1);
		outb(a->port+ISActl1, c & ~ISAnotdl);
		a->memsize = Pramsize;
		a->needpage = 1;

		/* enable ISA access to first 16k */
		a->page = -1;
		setpage(a, 0);
		downloadmode(a);

	} else if(strncmp(cmsg, "sharedmem", 9) == 0){
		/* map shared memory */