Plan 9 from Bell Labs’s /usr/web/sources/extra/9hist/power/io.h

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


## diffname power/io.h 1990/0227
## diff -e /dev/null /n/bootesdump/1990/0227/sys/src/9/mips/io.h
0a
#define UNCACHED	0xA0000000
#define	IO2(t,x)	((t *)(UNCACHED|0x17000000|(x)))
#define VMEA24SUP(t, x)	((t *)(UNCACHED|0x13000000|(x)))
#define	SYNCBUS(t,x)	((t *)(UNCACHED|0x1E000000|(x)))
#define	SBSEM		SYNCBUS(ulong, 0)
#define	SBSEMTOP	SYNCBUS(ulong, 0x400000)

#define	LED		((char*)0xBF200001)

typedef struct SBCC	SBCC;
typedef struct Timer	Timer;
typedef struct Duart	Duart;

struct SBCC
{
	ulong	level[14];	/* cpu interrupt level for cpu->cpu ints */
	ulong	junk0[2];
	ulong	status[14];	/* status from other cpu */
	ulong	junk1[2];
	ulong	elevel;		/* cpu interrupt level for vme->cpu ints */
	ulong	junk2[7];
	ulong	flevel;		/* cpu interrupt level for vme->cpu ints */
	ulong	junk3[3];
	ulong	overrun;
	ulong	junk4[3];
	ulong	id;		/* id of this cpu */
	ulong	eintenable;
	ulong	eintpending;
	ulong	fintenable;
	ulong	fintpending;
	ulong	idintenable;
	ulong	idintpending;
	ulong	junk5[8];
	ulong	intxmit;
};

#define	SBCCREG		SYNCBUS(SBCC, 0x400000)

#define	TIMERREG	SYNCBUS(Timer, 0x1600000)
#define	CLRTIM0		SYNCBUS(uchar, 0x1100000)
#define	CLRTIM1		SYNCBUS(uchar, 0x1180000)

#define	DUARTREG	SYNCBUS(Duart, 0x1A00000)

#define LANCERAM	IO2(uchar, 0xE00000)
#define LANCEEND	IO2(uchar, 0xF00000)
#define LANCERDP	IO2(ushort, 0xFC0002)
#define LANCERAP	IO2(ushort, 0xFC000a)
#define LANCEID		IO2(ushort, 0xFF0002)

typedef struct MODE	MODE;
typedef struct INTVEC	INTVEC;

struct MODE {
	uchar	masterslave;	/* master/slave addresses for the IO2 */
	uchar	resetforce;
	uchar	checkbits;
	uchar	promenet;
};

#define MODEREG		IO2(MODE, 0xF40000)

#define	MASTER	0x0
#define	SLAVE	0x4

struct INTVEC {
	struct {
		ulong	vec;
		ulong	fill2;
	} i[8];
};

#define INTVECREG	IO2(INTVEC, 0xF60000)
#define INTPENDREG	IO2(uchar, 0xF20000)	/* same as LED */
#define IO2CLRMASK	IO2(uchar, 0xFE0000)
#define IO2SETMASK	IO2(uchar, 0xFE8000)
#define IO2MASK		IO2(ushort, 0xFE8000)
#define	MPBERR0		IO2(ulong, 0xF48000)
#define	MPBERR1		IO2(ulong, 0xF4C000)
#define SBEADDR		((ulong *)(UNCACHED|0x1f080000))

/*
 *  hsvme datakit board
 */
struct hsvme {
	ushort	version;
	ushort	pad0x02;
	ushort	vector;
	ushort	pad0x06;
	ushort	csr;
	ushort	pad0x0A;
	ushort	data;
};
#define HSVME		VMEA24SUP(struct hsvme, 0xF90000)
.
## diffname power/io.h 1990/03021
## diff -e /n/bootesdump/1990/0227/sys/src/9/mips/io.h /n/bootesdump/1990/03021/sys/src/9/mips/io.h
81,94d
## diffname power/io.h 1990/0718
## diff -e /n/bootesdump/1990/03021/sys/src/9/mips/io.h /n/bootesdump/1990/0718/sys/src/9/mips/io.h
80c
#define SBEADDR		((ulong *)(UNCACHED|0x1F080000))
.
## diffname power/io.h 1990/0825
## diff -e /n/bootesdump/1990/0718/sys/src/9/mips/io.h /n/bootesdump/1990/0825/sys/src/9/mips/io.h
80a

.
49a
#define IOID		IO2(uchar, 0xFFFFF0)
#define IO2R1		1	/* IO2 revision level 1 */
#define IO2R2		2	/* IO2 revision level 2 */
#define IO3R1		3	/* IO3 revision level 1 */
.
## diffname power/io.h 1990/0826
## diff -e /n/bootesdump/1990/0825/sys/src/9/mips/io.h /n/bootesdump/1990/0826/sys/src/9/mips/io.h
85a
/*
 *  IO board type
 */
extern int ioid;
.
## diffname power/io.h 1990/08272
## diff -e /n/bootesdump/1990/0826/sys/src/9/mips/io.h /n/bootesdump/1990/08272/sys/src/9/mips/io.h
89a

/*
 *  The IO2/IO3 slave maps.  These maps are used to map
 *  external addresses to MP bus addresses.
 */
enum {
	a24map,		/* VME A24 non-priv address space */
	a32map,		/* VME A32 non-priv address space */
	lancemap,	/* Lance chip address space */
	scsi1map,	/* SCSI bus 1 address space */
	scsi0map,	/* SCSI bus 0 address space */
	nomap,
};
#define	WRITEMAP	IO2(ulong, 0xFA0000);
.
## diffname power/io.h 1990/0905
## diff -e /n/bootesdump/1990/08272/sys/src/9/mips/io.h /n/bootesdump/1990/0905/sys/src/9/mips/io.h
96,101c
	A24map,		/* VME A24 non-priv address space */
	A32map,		/* VME A32 non-priv address space */
	Lancemap,	/* Lance chip address space */
	Scsi1map,	/* SCSI bus 1 address space */
	Scsi0map,	/* SCSI bus 0 address space */
	Nomap,
.
86,89c
extern int ioid;	/* io board type */
extern int iolevels;	/* number of io levels */
extern int iomask;	/* interrupts to enable */
.
49a

.
46a
#define LANCE3RAM	IO2(uchar, 0xFF4000)
#define LANCE3END	IO2(uchar, 0xFF8000)
.
## diffname power/io.h 1990/09051
## diff -e /n/bootesdump/1990/0905/sys/src/9/mips/io.h /n/bootesdump/1990/09051/sys/src/9/mips/io.h
105c
#define	WRITEMAP	IO2(ulong, 0xFA0000)
.
## diffname power/io.h 1990/0907
## diff -e /n/bootesdump/1990/09051/sys/src/9/mips/io.h /n/bootesdump/1990/0907/sys/src/9/mips/io.h
47,48c
#define LANCE3RAM	IO2(ushort, 0xFF4000)
#define LANCE3END	IO2(ushort, 0xFF8000)
.
## diffname power/io.h 1990/0911
## diff -e /n/bootesdump/1990/0907/sys/src/9/mips/io.h /n/bootesdump/1990/0911/sys/src/9/mips/io.h
88,105d
56a
extern int ioid;	/* io board type */
.
51a
#define	WRITEMAP	IO2(ulong, 0xFA0000)
.
45,46c
#define LANCERAM	IO2(ushort, 0xE00000)
#define LANCEEND	IO2(ushort, 0xF00000)
.
## diffname power/io.h 1990/1013
## diff -e /n/bootesdump/1990/0911/sys/src/9/mips/io.h /n/bootesdump/1990/1013/sys/src/9/mips/io.h
3a
#define VMEA32SUP(t, x)	((t *)(UNCACHED|0x30000000|(x)))
.
## diffname power/io.h 1990/1204
## diff -e /n/bootesdump/1990/1013/sys/src/9/mips/io.h /n/bootesdump/1990/1204/sys/src/9/mips/io.h
89a
#define	RTC		(NVRAM+0x3ff8)

.
83a
#define	NVRAM		IO2(uchar, 0xF10000)
.
## diffname power/io.h 1990/1231
## diff -e /n/bootesdump/1990/1204/sys/src/9/mips/io.h /n/bootesdump/1990/1231/sys/src/9/mips/io.h
53a
#define LANCEINDEX	0x1E00			/* index of lancemap */
.
## diffname power/io.h 1991/0212
## diff -e /n/bootesdump/1991/0201/sys/src/9/mips/io.h /n/bootesdump/1991/0212/sys/src/9/power/io.h
87,89c
#define INTPENDREG3	IO2(uchar, 0xFF0000)	/* same as ENET ID */
#define IO2CLRMASK	IO2(ulong, 0xFE0000)
#define IO2SETMASK	IO2(ulong, 0xFE8000)
.
76a

.
75a
#define	MP2VME(addr)	(((ulong)(addr) & 0x0fffffff) | (SLAVE<<28))
.
73a
/*
 * VME addressing.
 * MP2VME takes a physical MP bus address and returns an address
 * usable by a VME device through A32 space
 */
.
## diffname power/io.h 1991/0306
## diff -e /n/bootesdump/1991/0212/sys/src/9/power/io.h /n/bootesdump/1991/0306/sys/src/9/power/io.h
81a
#define	VME2MP(addr)	(((ulong)(addr) & 0x0fffffff) | KZERO)
.
77c
 * usable by a VME device through A32 space.  VME2MP is its inverse
.
## diffname power/io.h 1992/0228
## diff -e /n/bootesdump/1991/0306/sys/src/9/power/io.h /n/bootesdump/1992/0228/sys/src/9/power/io.h
79c
#define	MASTER	0x1	/* 0x10000000 - Map for cyclone A32 addressing */
.
## diffname power/io.h 1992/0508
## diff -e /n/bootesdump/1992/0228/sys/src/9/power/io.h /n/bootesdump/1992/0508/sys/src/9/power/io.h
9a
enum
{
	LEDhotintr=	1<<0,
	LEDclock=	1<<1,
	LEDfault=	1<<2,
};
#define LEDON(x) { m->ledval |= x; *LED = m->ledval; }
#define LEDOFF(x) { m->ledval &= ~x; *LED = m->ledval; }
.
## diffname power/io.h 1992/0509
## diff -e /n/bootesdump/1992/0508/sys/src/9/power/io.h /n/bootesdump/1992/0509/sys/src/9/power/io.h
16,17c
#define LEDON(x) 	(m->ledval &= ~x, *LED = m->ledval)
#define LEDOFF(x) 	(m->ledval |= x, *LED = m->ledval)
.
14a
	LEDpulse=	1<<7,
.
## diffname power/io.h 1992/0520
## diff -e /n/bootesdump/1992/0509/sys/src/9/power/io.h /n/bootesdump/1992/0520/sys/src/9/power/io.h
53c
#define	DUARTREG	SYNCBUS(Duartreg, 0x1A00000)
.
22c
typedef struct Duartreg	Duartreg;
.
## diffname power/io.h 1992/0527
## diff -e /n/bootesdump/1992/0520/sys/src/9/power/io.h /n/bootesdump/1992/0527/sys/src/9/power/io.h
12,14c
	LEDtrapmask=	0xf<<0,
	LEDhotintr=	1<<4,
	LEDclock=	1<<5,
	LEDfault=	1<<6,
.
## diffname power/io.h 1992/0609
## diff -e /n/bootesdump/1992/0527/sys/src/9/power/io.h /n/bootesdump/1992/0609/sys/src/9/power/io.h
18,19c
#define LEDON(x) 	(m->ledval &= ~(x), *LED = m->ledval)
#define LEDOFF(x) 	(m->ledval |= (x), *LED = m->ledval)
.
13c
	LEDkfault=	1<<4,
.
## diffname power/io.h 1992/0610
## diff -e /n/bootesdump/1992/0609/sys/src/9/power/io.h /n/bootesdump/1992/0610/sys/src/9/power/io.h
112a

#define       PROM_RESET      0   /* run diags, check bootmode, reinit */
#define       PROM_EXEC       1   /* load new program image */
#define       PROM_RESTART    2   /* re-enter monitor command loop */
#define       PROM_REINIT     3   /* re-init monitor, then cmd loop */
#define       PROM_REBOOT     4   /* check bootmode, no config */
#define       PROM_AUTOBOOT   5   /* autoboot the system */
.
## diffname power/io.h 1992/0612
## diff -e /n/bootesdump/1992/0610/sys/src/9/power/io.h /n/bootesdump/1992/0612/sys/src/9/power/io.h
119a

/*
 *  hs datakit board
 */
typedef struct HSdev	HSdev;
struct HSdev {
	ushort	version;
	ushort	pad0x02;
	ushort	vector;
	ushort	pad0x06;
	ushort	csr;
	ushort	pad0x0A;
	ushort	data;
};
#define HSDEV		VMEA24SUP(HSdev, 0xF90000)

.
## diffname power/io.h 1992/1128
## diff -e /n/bootesdump/1992/0612/sys/src/9/power/io.h /n/bootesdump/1992/1128/sys/src/9/power/io.h
19a
*/
#define LEDON(x)
#define LEDOFF(x)
.
17a
/*
.
## diffname power/io.h 1992/1208
## diff -e /n/bootesdump/1992/1128/sys/src/9/power/io.h /n/bootesdump/1992/1208/sys/src/9/power/io.h
69a
#define SCSI0ADDR	IO2(uchar, 0xF08007)
#define SCSI0DATA	IO2(uchar, 0xF08107)
#define SCSI1ADDR	IO2(uchar, 0xF0C007)
#define SCSI1DATA	IO2(uchar, 0xF0C107)
#define SCSI0CNT	IO2(ulong, 0xF54000)
#define SCSI1CNT	IO2(ulong, 0xF58000)
#define SCSI0FLS	IO2(uchar, 0xF30001)
#define SCSI1FLS	IO2(uchar, 0xF34001)

.
## diffname power/io.h 1993/0211
## diff -e /n/bootesdump/1992/1208/sys/src/9/power/io.h /n/bootesdump/1993/0211/sys/src/9/power/io.h
21,23d
18d
14c
	LED5=		1<<5,
.
12a
	LED2=		1<<2,
	LED3=		1<<3,
.
## diffname power/io.h 1993/0501
## diff -e /n/bootesdump/1993/0211/sys/src/9/power/io.h /n/fornaxdump/1993/0501/sys/src/brazil/power/io.h
21a
*/
#define LEDON(x)
#define LEDOFF(x)
.
19a
/*
.
16c
	LEDclock=	1<<5,
.
13,14d
## diffname power/io.h 1997/0327 # deleted
## diff -e /n/fornaxdump/1993/0501/sys/src/brazil/power/io.h /n/emeliedump/1997/0327/sys/src/brazil/power/io.h
1,148d

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.