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

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


## diffname carrera/io.h 1993/0903
## diff -e /dev/null /n/fornaxdump/1993/0903/sys/src/brazil/carrera/io.h
0a
enum
{
	Devicephys	= 0x80000000,
	Devicevirt	= 0xE0000000,
	Dmabase		= 0xE0000000,	
	Sonicbase	= 0xE0001000,    	
	Scsibase 	= 0xE0002000,   	
	Floppybase	= 0xE0003000,	
	Clockbase	= 0xE0004000,	
	Uart0		= 0xE0006000,	
	Uart1		= 0xE0007000,	
	  UartFREQ	= 4233600,
	Centronics	= 0xE0008000,
	Nvram		= 0xE0009000, 	
	NvramRW		= 0xE000A000,
	NvramRO		= 0xE000B000,
	KeyboardIO	= 0xE0005000,	
	MouseIO		= 0xE0005000,  	
	SoundIO		= 0xE000C000,
	EisaLatch	= 0xE000E000,
	Diag		= 0xE000F000,
	VideoCTL	= 0x60000000,	
	VideoMEM	= 0x40000000, 	
	EisaIO		= 0xE2000000,	
	EisaMEM		= 0xE3000000,
	PromMEM		= 0xE1000000,   	
	Intctl		= 0xE0100000,
};
.
## diffname carrera/io.h 1993/0904
## diff -e /n/fornaxdump/1993/0903/sys/src/brazil/carrera/io.h /n/fornaxdump/1993/0904/sys/src/brazil/carrera/io.h
24,27c
	I386ack		= 0xE000023f,
	Intctlphys	= 0xF0000000,	
	Intctlvirt	= 0xE0040000,
	  Uart1int	= (1<<9),
	  Uart0int	= (1<<8),
	  Mouseint	= (1<<7),
	  Keybint	= (1<<6),
	  Scsiint	= (1<<5),
	  Etherint	= (1<<4),
	  Videoint	= (1<<3),
	  Soundint	= (1<<2),
	  Floppyint	= (1<<1),
	  Parallelint	= (1<<0),
	Intenareg	= 0xE0040004,
	Intcause	= 0xE0040007
.
12c
	  UartFREQ	= 8000000,
.
## diffname carrera/io.h 1993/0905
## diff -e /n/fornaxdump/1993/0904/sys/src/brazil/carrera/io.h /n/fornaxdump/1993/0905/sys/src/brazil/carrera/io.h
37,38c
	Intenareg	= 0xE0040004,	/* Device interrupt enable */
	Intcause	= 0xE0040007,	/* Decice interrupt cause register */

	Ttbr		= 0x8000001C,	/* Translation table base address */
	Tlrb		= 0x80000024,	/* Translation table limit address */
	Tir		= 0x8000002c,	/* Translation invalidate register */
	Ntranslation	= 4096,		/* Number of translation registers */
};

#define IO(type, reg)	(*(type*)reg)

typedef struct Tte Tte;
struct Tte
{
	ulong	hi;
	ulong	lo;
.
0a
/*
 * These register addresses have already been adjusted for BE operation
 */
.
## diffname carrera/io.h 1993/0906
## diff -e /n/fornaxdump/1993/0905/sys/src/brazil/carrera/io.h /n/fornaxdump/1993/0906/sys/src/brazil/carrera/io.h
56a

#define IO(type, reg)		(*(type*)reg)
#define QUAD(type, v)		(type*)(((ulong)(v)+7)&~7)
#define CACHELINE(type, v)	(type*)(((ulong)(v)+127)&~127)
#define UNCACHED(type, v)	(type*)((ulong)(v)|0xA0000000)

#define EISAUNCACHED(v)		(0xA0000000|0x10000000|(v))
#define EISAOUTB(port, v)	*(uchar*)((EisaControl+(port))^7) = v
#define EISAINB(port)		(*(uchar*)((EisaControl+(port))^7))
.
49,50d
24a
	EisaControl	= 0xE0010000,	/* Second 64K Page from Devicevirt */
.
19a
	 Enetoffset	= 0,
.
6a
	Eisaphys	= 0x90000000,
.
## diffname carrera/io.h 1993/0907
## diff -e /n/fornaxdump/1993/0906/sys/src/brazil/carrera/io.h /n/fornaxdump/1993/0907/sys/src/brazil/carrera/io.h
64c
#define EISA(v)			(Eisamvirt+(v))
.
43,44c
	Intenareg	= 0xE0200004,	/* Device interrupt enable */
	Intcause	= 0xE0200007,	/* Decice interrupt cause register */
.
32c
	Intctlvirt	= 0xE0200000,
.
30a
	EisaControl	= 0xE0010000,	/* Second 64K Page from Devicevirt */
	Eisamphys	= 0x91000000,
	Eisamvirt	= 0xE0300000,	/* Second 1M page entry from Intctl */
.
27d
22c
	KeyboardIO	= 0xE0005000,
	 Keyctl		= 6,
	 Keydat		= 7,	
.
7c
	Eisaphys	= 0x90000000,	/* IO port physical */
.
## diffname carrera/io.h 1993/0908
## diff -e /n/fornaxdump/1993/0907/sys/src/brazil/carrera/io.h /n/fornaxdump/1993/0908/sys/src/brazil/carrera/io.h
69,70c
#define EISAOUTB(port, v)	*(uchar*)((EisaControl+(port))^2) = v
#define EISAINB(port)		(*(uchar*)((EisaControl+(port))^2))
.
27c
	EisaLatch	= 0xE000E007,
.
9a
	  R4030Isr	= 0xE0000204,	/* Interrupt status register */
	  R4030Et	= 0xE000020C,	/* Eisa error type */
	  R4030Rfa	= 0xE000003C,	/* Remote failed address */
	  R4030Mfa	= 0xE0000044,	/* Memory failed address */
.
## diffname carrera/io.h 1993/0909
## diff -e /n/fornaxdump/1993/0908/sys/src/brazil/carrera/io.h /n/fornaxdump/1993/0909/sys/src/brazil/carrera/io.h
73,74c
#define EISAOUTB(port, v)	*(uchar*)((EisaControl+(port))^7) = v
#define EISAINB(port)		(*(uchar*)((EisaControl+(port))^7))
.
## diffname carrera/io.h 1993/0910
## diff -e /n/fornaxdump/1993/0909/sys/src/brazil/carrera/io.h /n/fornaxdump/1993/0910/sys/src/brazil/carrera/io.h
74a
#define EISAINW(port)		(*(ushort*)((EisaControl+(port))^7))
#define EISAOUTB(port, v)	EISAINB(port) = v
#define EISAOUTW(port, v)	EISAINW(port) = v
.
73d
## diffname carrera/io.h 1993/0915
## diff -e /n/fornaxdump/1993/0910/sys/src/brazil/carrera/io.h /n/fornaxdump/1993/0915/sys/src/brazil/carrera/io.h
37a
	  Eisavgaphys	= Eisamphys+0xA0000,
.
2a
 *
 * The EISA memory address is completely fictional. Look at mmu.c for
 * a translation of Eisamphys into a 33 bit address.
.
## diffname carrera/io.h 1993/0916
## diff -e /n/fornaxdump/1993/0915/sys/src/brazil/carrera/io.h /n/fornaxdump/1993/0916/sys/src/brazil/carrera/io.h
78c
#define EISAINW(port)		(*(ushort*)((EisaControl+(port))^6))
.
39a
	  Eisanmi	= EisaControl+0x77,
	Rtcindex	= Eisanmi,
	Rtcdata		= 0xE0004007,
.
## diffname carrera/io.h 1993/1218
## diff -e /n/fornaxdump/1993/0916/sys/src/brazil/carrera/io.h /n/fornaxdump/1993/1218/sys/src/brazil/carrera/io.h
60a
	Promvirt	= 0xE1000000,	/* From ARCS chipset */
	Promphys	= 0x1FC00000,	/* MIPs processors */

.
## diffname carrera/io.h 1994/0210
## diff -e /n/fornaxdump/1993/1218/sys/src/brazil/carrera/io.h /n/fornaxdump/1994/0210/sys/src/brazil/carrera/io.h
37a
	   Screenvirt	= 0xE2000000,
	   BTDac	= 0xE2400000,
.
## diffname carrera/io.h 1994/0225
## diff -e /n/fornaxdump/1994/0210/sys/src/brazil/carrera/io.h /n/fornaxdump/1994/0225/sys/src/brazil/carrera/io.h
88a

/*
 *  8259 interrupt controllers
 */
enum
{
	Int0vec=	0,		/* first 8259 */
	 Clockvec=	Int0vec+0,	/*  clock interrupts */
	 Kbdvec=	Int0vec+1,	/*  keyboard interrupts */
	 Uart1vec=	Int0vec+3,	/*  modem line */
	 Uart0vec=	Int0vec+4,	/*  serial line */
	 PCMCIAvec=	Int0vec+5,	/*  PCMCIA card change */
	 Floppyvec=	Int0vec+6,	/*  floppy interrupts */
	 Parallelvec=	Int0vec+7,	/*  parallel port interrupts */
	Int1vec=	Int0vec+8,	/* second 8259 */
	 Ethervec=	Int0vec+10,	/*  ethernet interrupt */
	 Mousevec=	Int0vec+12,	/*  mouse interrupt */
	 Matherr2vec=	Int0vec+13,	/*  math coprocessor */
	 Hardvec=	Int0vec+14,	/*  hard disk */

	Int0ctl=	0x20,		/* control port (ICW1, OCW2, OCW3) */
	Int0aux=	0x21,		/* everything else (ICW2, ICW3, ICW4, OCW1) */
	Int1ctl=	0xA0,		/* control port */
	Int1aux=	0xA1,		/* everything else (ICW2, ICW3, ICW4, OCW1) */

	EOI=		0x20,		/* non-specific end of interrupt */
};

extern int	int0mask;	/* interrupts enabled for first 8259 */
extern int	int1mask;	/* interrupts enabled for second 8259 */
.
71a
enum
{
	SB16pcm		= 100,
};

.
## diffname carrera/io.h 1994/0305
## diff -e /n/fornaxdump/1994/0225/sys/src/brazil/carrera/io.h /n/fornaxdump/1994/0305/sys/src/brazil/carrera/io.h
12a
	  R4030ier	= 0xE00000E8,	/* Interrupt enable register */
.
## diffname carrera/io.h 1994/0306
## diff -e /n/fornaxdump/1994/0305/sys/src/brazil/carrera/io.h /n/fornaxdump/1994/0306/sys/src/brazil/carrera/io.h
85c
#define IO(type, reg)		(*(type*)(reg))
.
12,13c
	Dmabase		= 0xE0000100,	
	  R4030ier	= 0xE00000EC,	/* Interrupt enable register */
	  R4030ipr	= 0xE00000EC,	/* Interrupt pending register */
.
## diffname carrera/io.h 1994/0307
## diff -e /n/fornaxdump/1994/0306/sys/src/brazil/carrera/io.h /n/fornaxdump/1994/0307/sys/src/brazil/carrera/io.h
58c
	  Fiberint	= (1<<3),
.
## diffname carrera/io.h 1994/0428
## diff -e /n/fornaxdump/1994/0307/sys/src/brazil/carrera/io.h /n/fornaxdump/1994/0428/sys/src/brazil/carrera/io.h
68,70c
	Ttbr		= 0xE000001C,	/* Translation table base address */
	Tlrb		= 0xE0000024,	/* Translation table limit address */
	Tir		= 0xE000002C,	/* Translation invalidate register */
.
## diffname carrera/io.h 1994/1019
## diff -e /n/fornaxdump/1994/0428/sys/src/brazil/carrera/io.h /n/fornaxdump/1994/1019/sys/src/brazil/carrera/io.h
11a
	  MCTgcr	= 0xE0000004,
.
## diffname carrera/io.h 1994/1025
## diff -e /n/fornaxdump/1994/1019/sys/src/brazil/carrera/io.h /n/fornaxdump/1994/1025/sys/src/brazil/carrera/io.h
50a
	Eisadmaintr	= 0x40a,
.
## diffname carrera/io.h 1997/1210
## diff -e /n/fornaxdump/1994/1025/sys/src/brazil/carrera/io.h /n/emeliedump/1997/1210/sys/src/brazil/carrera/io.h
127a

/*
 * All motherboard and ISA interrupts are enabled by default.
 */
#define intrenable(a, b, c, d)
#define BUSUNKNOWN	(-1)
.
65c
	Intcause	= 0xE0200007,	/* Device interrupt cause register */
.
## diffname carrera/io.h 2001/0527 # deleted
## diff -e /n/emeliedump/1997/1210/sys/src/brazil/carrera/io.h /n/emeliedump/2001/0527/sys/src/9/carrera/io.h
1,133d

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.