## diffname bitsy/io.h 2000/0831
## diff -e /dev/null /n/emeliedump/2000/0831/sys/src/9/bitsy/io.h
0a
/* replicated in part from the boot code, for now */
#define XTAL 3686400
#define CORECLOCK 199066000
#define MONITOR 0x00020000
#define SYS_REGBASE 0x90000000
#define SYSR_FIRQ 0x1000
#define SYSR_IRQ 0x1400
#define SIRQ_PCI (1<<2)
#define SIRQ_UART (1<<8)
#define SYSR_UART_SR 0x3400 /* UART Status Register */
#define SYSR_UART_CR 0x3800 /* UART Control Register */
#define SYSR_UART_DR 0x3C00 /* UART Data Register */
#define SYS_FIRQ (0x90000000+SYSR_FIRQ)
#define SYS_IRQ (0x90000000+SYSR_IRQ)
#define PCI_REGBASE 0x42000000
#define PCI_IPXRESET 0x07C
#define PCI_IRQSTATUS 0x180
#define PCI_IRQRSTATUS 0x184
#define PCI_IRQENABLE 0x188
#define PCI_IRQENA_SET 0x188
#define PCI_IRQENA_CLR 0x18C
#define PCI_IRQSOFT 0x190
#define PCI_FIRQSTATUS 0x280
#define PCI_FIRQRSTATUS 0x284
#define PCI_FIRQENABLE 0x288
#define PCI_FIRQENA_SET 0x288
#define PCI_FIRQENA_CLR 0x28C
#define PCI_FIRQSOFT 0x290
#define PCI_TIMERLOAD 0x300
#define PCI_TIMERVALUE 0x304
#define PCI_TIMERCTL 0x308
#define PCI_TIMERCLEAR 0x30C
#define TIMER_OFF 0x020
#define TIMER1_LOAD (PCI_REGBASE+PCI_TIMERLOAD)
#define TIMER1_VALUE (PCI_REGBASE+PCI_TIMERVALUE)
#define TIMER1_CTL (PCI_REGBASE+PCI_TIMERCTL)
#define TIMER1_CLEAR (PCI_REGBASE+PCI_TIMERCLEAR)
#define TIMER_PERIODIC (1<<6)
#define TIMER_ENABLE (1<<7)
#define IRQ_STATUS (PCI_REGBASE+PCI_IRQSTATUS)
#define IRQ_ENABLE_SET (PCI_REGBASE+PCI_IRQENA_SET)
#define IRQ_ENABLE_CLR (PCI_REGBASE+PCI_IRQENA_CLR)
#define FIRQ_OFF 0x100
#define IRQ_SOFT 1
#define IRQ_TIMER1 4
#define IRQ_TIMER2 5
#define IRQ_TIMER3 6
#define IRQ_TIMER4 7
#define IRQ_DOOR 15
#define IRQ_DMA1 16
#define IRQ_DMA2 17
#define IRQ_PCI 18
#define IRQ_DMA1NB 20
#define IRQ_DMA2NB 21
#define IRQ_BIST 22
#define IRQ_SERR 23
#define IRQ_I2OIN 25
#define IRQ_POWER 26
#define IRQ_DTIMER 27
#define IRQ_PARITY 28
#define IRQ_MABORT 29
#define IRQ_TABORT 30
#define IRQ_DPARITY 31
#define PCI_CONF1_BASE 0x52000000
#define PCI_CONF0_BASE 0x53000000
#define PCI_IO_BASE 0x54000000
#define PCI_IO_SIZE 0x00010000
#define PCI_MEM_BASE 0x60000000
#define PCI_MEM_SIZE 0x20000000
/* MMU. */
#define MMUCR_M_ENABLE (1<<0) /* MMU enable */
#define MMUCR_A_ENABLE (1<<1) /* Address alignment fault enable */
#define MMUCR_C_ENABLE (1<<2) /* (data) cache enable */
#define MMUCR_W_ENABLE (1<<3) /* write buffer enable */
#define MMUCR_PROG32 (1<<4) /* PROG32 */
#define MMUCR_DATA32 (1<<5) /* DATA32 */
#define MMUCR_L_ENABLE (1<<6) /* Late abort on earlier CPUs */
#define MMUCR_BIGEND (1<<7) /* Big-endian (=1), little-endian (=0) */
#define MMUCR_SYSTEM (1<<8) /* System bit, modifies MMU protections */
#define MMUCR_ROM (1<<9) /* ROM bit, modifies MMU protections */
#define MMUCR_F (1<<10) /* Should Be Zero */
#define MMUCR_Z_ENABLE (1<<11) /* Branch prediction enable on 810 */
#define MMUCR_I_ENABLE (1<<12) /* Instruction cache enable on SA110 */
#define SDRAM_BASE 0xC0000000
#define SDRAM_RESV (16*1024*1024)
#define SDRAM_SIZE (32*1024*1024)
#define PMEM_BASE (SDRAM_BASE+SDRAM_RESV)
#define PMEM_TOP (SDRAM_BASE+SDRAM_SIZE)
#define KTOP (KZERO + (SDRAM_SIZE - SDRAM_RESV))
#define SLOW_BASE 0x38400000
#define SLEDOFFSET 0x00108000
#define LEDADDR (SLOW_BASE+SLEDOFFSET)
#define SACADDR 0x08100000
.
## diffname bitsy/io.h 2000/0904
## diff -e /n/emeliedump/2000/0831/sys/src/9/bitsy/io.h /n/emeliedump/2000/0904/sys/src/9/bitsy/io.h
1,112c
/*
* all register offsets are relative to 0x8000000 so that
* IOZERO can be changed at some future point
*/
#define IOA(t, x) ((t*)(IOZERO|x))
.
## diffname bitsy/io.h 2000/0906
## diff -e /n/emeliedump/2000/0904/sys/src/9/bitsy/io.h /n/emeliedump/2000/0906/sys/src/9/bitsy/io.h
5d
2,3c
* Definitions for IO devices. Used only in C.
.
## diffname bitsy/io.h 2000/0907
## diff -e /n/emeliedump/2000/0906/sys/src/9/bitsy/io.h /n/emeliedump/2000/0907/sys/src/9/bitsy/io.h
3a
typedef struct Uartregs Uartregs;
Uartregs *uart3regs;
.
## diffname bitsy/io.h 2000/1001
## diff -e /n/emeliedump/2000/0907/sys/src/9/bitsy/io.h /n/emeliedump/2000/1001/sys/src/9/bitsy/io.h
5a
/*
* IRQ's defined by SA1100
*/
enum
{
IRQgpio0= 0,
IRQgpio1= 1,
IRQgpio2= 2,
IRQgpio3= 3,
IRQgpio4= 4,
IRQgpio5= 5,
IRQgpio6= 6,
IRQgpio7= 7,
IRQgpio8= 8,
IRQgpio9= 9,
IRQgpio10= 10,
IRQgpiohi= 11,
IRQlcd= 12,
IRQudc= 13,
IRQuart1b= 15,
IRQuart2= 16,
IRQuart3= 17,
IRQmcp= 18,
IRQssp= 19,
IRQdma0= 20,
IRQdma1= 21,
IRQdma2= 22,
IRQdma3= 23,
IRQdma4= 24,
IRQdma5= 25,
IRQtimer0= 26,
IRQtimer1= 27,
IRQtimer2= 28,
IRQtimer3= 29,
IRQsecond= 30,
IRQrtc= 31,
};
/*
* GPIO lines (signal names from compaq document). _i indicates input
* and _o output.
*/
enum
{
PWR_ON_i= 1<<0, /* power button */
UP_IRQ_i= 1<<1, /* microcontroller interrupts */
LDD8_o= 1<<2, /* LCD data 8-15 */
LDD9_o= 1<<3,
LDD10_o= 1<<4,
LDD11_o= 1<<5,
LDD12_o= 1<<6,
LDD13_o= 1<<7,
LDD14_o= 1<<8,
LDD15_o= 1<<9,
CARD_IND1_i= 1<<10, /* card inserted in PCMCIA socket 1 */
CARD_IRQ1_i= 1<<11, /* PCMCIA socket 1 interrupt */
CLK_SET0_o= 1<<12, /* clock selects for audio codec */
CLK_SET1_o= 1<<13,
L3_SDA_io= 1<<14, /* UDA1341 interface */
L3_MODE_o= 1<<15,
L3_SCLK_o= 1<<16,
CARD_IND0_i= 1<<17, /* card inserted in PCMCIA socket 0 */
KEY_ACT_i= 1<<18, /* hot key from cradle */
SYS_CLK_i= 1<<19, /* clock from codec */
BAT_FAULT_i= 1<<20, /* battery fault */
CARD_IRQ0_i= 1<<21, /* PCMCIA socket 0 interrupt */
LOCK_i= 1<<22, /* expansion pack lock/unlock */
COM_DCD_i= 1<<23, /* DCD from UART3 */
OPT_IRQ_i= 1<<24, /* expansion pack IRQ */
COM_CTS_i= 1<<25, /* CTS from UART3 */
COM_RTS_oi= 1<<26, /* RTS to UART3 */
OPT_IND_i= 1<<27, /* expansion pack inserted */
};
.
## diffname bitsy/io.h 2000/1007
## diff -e /n/emeliedump/2000/1001/sys/src/9/bitsy/io.h /n/emeliedump/2000/1007/sys/src/9/bitsy/io.h
79a
enum
{
/* hardware counter frequency */
ClockFreq= 3686400,
Stagesize= 1024,
Nuart = 4,
/* soft flow control chars */
CTLS= 023,
CTLQ= 021,
};
typedef struct PhysUart PhysUart;
typedef struct Uart Uart;
/* link twixt hardware and software */
struct PhysUart
{
void (*enable)(Uart*, int);
void (*disable)(Uart*);
void (*kick)(void*);
void (*flow)(void*);
void (*intr)(Ureg*, void*);
void (*dobreak)(Uart*, int);
void (*baud)(Uart*, int);
void (*bits)(Uart*, int);
void (*stop)(Uart*, int);
void (*parity)(Uart*, int);
void (*modemctl)(Uart*, int);
void (*rts)(Uart*, int);
void (*dtr)(Uart*, int);
long (*status)(Uart*, void*, long, long);
};
/* software representation */
struct Uart
{
QLock;
int type;
int dev;
int opens;
void *regs;
PhysUart *phys;
int enabled;
Uart *elist; /* next enabled interface */
char name[NAMELEN];
uchar sticky[4]; /* sticky write register values */
ulong freq; /* clock frequency */
uchar mask; /* bits/char */
int baud; /* baud rate */
int parity; /* parity errors */
int frame; /* framing errors */
int overrun; /* rcvr overruns */
/* buffers */
int (*putc)(Queue*, int);
Queue *iq;
Queue *oq;
Lock rlock; /* receive */
uchar istage[Stagesize];
uchar *ip;
uchar *ie;
int haveinput;
Lock tlock; /* transmit */
uchar ostage[Stagesize];
uchar *op;
uchar *oe;
int modem; /* hardware flow control on */
int xonoff; /* software flow control on */
int blocked;
int cts, dsr, dcd, dcdts; /* keep track of modem status */
int ctsbackoff;
int hup_dsr, hup_dcd; /* send hangup upstream? */
int dohup;
int kinuse; /* device in use by kernel */
Rendez r;
};
.
## diffname bitsy/io.h 2000/1008
## diff -e /n/emeliedump/2000/1007/sys/src/9/bitsy/io.h /n/emeliedump/2000/1008/sys/src/9/bitsy/io.h
166a
/* general purpose I/O lines control registers */
typedef struct GPIOregs GPIOregs;
struct GPIOregs
{
ulong level; /* 1 == high */
ulong direction; /* 1 == output */
ulong set; /* a 1 sets the bit, 0 leaves it alone */
ulong clear; /* a 1 clears the bit, 0 leaves it alone */
ulong rising; /* rising edge detect enable */
ulong falling; /* falling edge detect enable */
ulong edgestatus; /* writing a 1 bit clears */
ulong altfunc; /* turn on alternate function for any set bits */
};
extern GPIOregs *gpioregs;
/* extra general purpose I/O bits, output only */
enum
{
EGPIO_prog_flash= 1<<0,
EGPIO_pcmcia_reset= 1<<1,
EGPIO_exppack_reset= 1<<2,
EGPIO_codec_reset= 1<<3,
EGPIO_exp_nvram_power= 1<<4,
EGPIO_exp_full_power= 1<<5,
EGPIO_lcd_3v= 1<<6,
EGPIO_rs232_power= 1<<7,
EGPIO_lcd_ic_power= 1<<8,
EGPIO_ir_power= 1<<9,
EGPIO_audio_power= 1<<10,
EGPIO_audio_ic_power= 1<<11,
EGPIO_audio_mute= 1<<12,
EGPIO_fir= 1<<13, /* not set is sir */
EGPIO_lcd_5v= 1<<14,
EGPIO_lcd_9v= 1<<15,
};
extern ulong *egpioreg;
.
51,78c
GPIO_PWR_ON_i= 1<<0, /* power button */
GPIO_UP_IRQ_i= 1<<1, /* microcontroller interrupts */
GPIO_LDD8_o= 1<<2, /* LCD data 8-15 */
GPIO_LDD9_o= 1<<3,
GPIO_LDD10_o= 1<<4,
GPIO_LDD11_o= 1<<5,
GPIO_LDD12_o= 1<<6,
GPIO_LDD13_o= 1<<7,
GPIO_LDD14_o= 1<<8,
GPIO_LDD15_o= 1<<9,
GPIO_CARD_IND1_i= 1<<10, /* card inserted in PCMCIA socket 1 */
GPIO_CARD_IRQ1_i= 1<<11, /* PCMCIA socket 1 interrupt */
GPIO_CLK_SET0_o= 1<<12, /* clock selects for audio codec */
GPIO_CLK_SET1_o= 1<<13,
GPIO_L3_SDA_io= 1<<14, /* UDA1341 interface */
GPIO_L3_MODE_o= 1<<15,
GPIO_L3_SCLK_o= 1<<16,
GPIO_CARD_IND0_i= 1<<17, /* card inserted in PCMCIA socket 0 */
GPIO_KEY_ACT_i= 1<<18, /* hot key from cradle */
GPIO_SYS_CLK_i= 1<<19, /* clock from codec */
GPIO_BAT_FAULT_i= 1<<20, /* battery fault */
GPIO_CARD_IRQ0_i= 1<<21, /* PCMCIA socket 0 interrupt */
GPIO_LOCK_i= 1<<22, /* expansion pack lock/unlock */
GPIO_COM_DCD_i= 1<<23, /* DCD from UART3 */
GPIO_OPT_IRQ_i= 1<<24, /* expansion pack IRQ */
GPIO_COM_CTS_i= 1<<25, /* CTS from UART3 */
GPIO_COM_RTS_o= 1<<26, /* RTS to UART3 */
GPIO_OPT_IND_i= 1<<27, /* expansion pack inserted */
.
## diffname bitsy/io.h 2000/1015
## diff -e /n/emeliedump/2000/1008/sys/src/9/bitsy/io.h /n/emeliedump/2000/1015/sys/src/9/bitsy/io.h
101,102c
void (*kick)(Uart*);
.
## diffname bitsy/io.h 2000/1019
## diff -e /n/emeliedump/2000/1015/sys/src/9/bitsy/io.h /n/emeliedump/2000/1019/sys/src/9/bitsy/io.h
146,147d
144c
uchar *iw;
uchar *ir;
.
142d
## diffname bitsy/io.h 2000/1110
## diff -e /n/emeliedump/2000/1019/sys/src/9/bitsy/io.h /n/emeliedump/2000/1110/sys/src/9/bitsy/io.h
201a
/* Peripheral pin controller registers */
typedef struct PPCregs PPCregs;
struct PPCregs {
ulong direction;
ulong state;
ulong assignment;
ulong sleepdir;
ulong flags;
};
extern PPCregs *ppcregs;
/* Synchronous Serial Port controller registers */
typedef struct SSPregs SSPregs;
struct SSPregs {
ulong control0;
ulong control1;
ulong dummy0;
ulong data;
ulong dummy1;
ulong status;
};
extern SSPregs *sspregs;
.
## diffname bitsy/io.h 2000/1111
## diff -e /n/emeliedump/2000/1110/sys/src/9/bitsy/io.h /n/emeliedump/2000/1111/sys/src/9/bitsy/io.h
78a
/* Peripheral Unit GPIO pin assignments: */
GPIO_SSP_TXD_o= 1<<10, /* SSP Transmit Data */
GPIO_SSP_RXD_i= 1<<11, /* SSP Receive Data */
GPIO_SSP_SCLK_o= 1<<12, /* SSP Sample CLocK */
GPIO_SSP_SFRM_o= 1<<13, /* SSP Sample FRaMe */
/* ser. port 1: */
GPIO_UART_TXD_o= 1<<14, /* UART Transmit Data */
GPIO_UART_RXD_i= 1<<15, /* UART Receive Data */
GPIO_SDLC_SCLK_io= 1<<16, /* SDLC Sample CLocK (I/O) */
GPIO_SDLC_AAF_o= 1<<17, /* SDLC Abort After Frame */
GPIO_UART_SCLK1_i= 1<<18, /* UART Sample CLocK 1 */
/* ser. port 4: */
GPIO_SSP_CLK_i= 1<<19, /* SSP external CLocK */
/* ser. port 3: */
GPIO_UART_SCLK3_i= 1<<20, /* UART Sample CLocK 3 */
/* ser. port 4: */
GPIO_MCP_CLK_i= 1<<21, /* MCP CLocK */
/* test controller: */
GPIO_TIC_ACK_o= 1<<21, /* TIC ACKnowledge */
GPIO_MBGNT_o= 1<<21, /* Memory Bus GraNT */
GPIO_TREQA_i= 1<<22, /* TIC REQuest A */
GPIO_MBREQ_i= 1<<22, /* Memory Bus REQuest */
GPIO_TREQB_i= 1<<23, /* TIC REQuest B */
GPIO_1Hz_o= 1<<25, /* 1 Hz clock */
GPIO_RCLK_o= 1<<26, /* internal (R) CLocK (O, fcpu/2) */
GPIO_32_768kHz_o= 1<<27, /* 32.768 kHz clock (O, RTC) */
.
## diffname bitsy/io.h 2000/1116
## diff -e /n/emeliedump/2000/1111/sys/src/9/bitsy/io.h /n/emeliedump/2000/1116/sys/src/9/bitsy/io.h
250a
/* Multimedia Communications Port controller registers */
typedef struct MCPregs MCPregs;
struct MCPregs {
ulong control0;
ulong reserved0;
ulong data0;
ulong data1;
ulong data2;
ulong reserved1;
ulong status;
ulong reserved[11];
ulong control1;
};
extern MCPregs *mcpregs;
.
## diffname bitsy/io.h 2000/1118
## diff -e /n/emeliedump/2000/1116/sys/src/9/bitsy/io.h /n/emeliedump/2000/1118/sys/src/9/bitsy/io.h
265a
/*
* PCMCIA support code.
*/
typedef struct PCMmap PCMmap;
typedef struct PCMslot PCMslot;
typedef struct PCMconftab PCMconftab;
typedef struct Cisdat Cisdat;
/*
* Map between ISA memory space and PCMCIA card memory space.
*/
struct PCMmap {
ulong ca; /* card address */
ulong cea; /* card end address */
ulong isa; /* local virtual address */
int len; /* length of the ISA area */
int attr; /* attribute memory */
};
/* configuration table entry */
struct PCMconftab
{
int index;
ushort irqs; /* legal irqs */
uchar irqtype;
uchar bit16; /* true for 16 bit access */
struct {
ulong start;
ulong len;
} io[16];
int nio;
uchar vpp1;
uchar vpp2;
uchar memwait;
ulong maxwait;
ulong readywait;
ulong otherwait;
};
/* cis memory walking */
struct Cisdat
{
uchar *cisbase;
int cispos;
int cisskip;
int cislen;
};
/* a card slot */
struct PCMslot
{
Lock;
int ref;
long memlen; /* memory length */
uchar slotno; /* slot number */
void *regs; /* i/o registers */
void *mem; /* memory */
void *attr; /* attribute memory */
/* status */
uchar special; /* in use for a special device */
uchar already; /* already inited */
uchar occupied;
uchar battery;
uchar wrprot;
uchar powered;
uchar configed;
uchar enabled;
uchar busy;
/* cis info */
ulong msec; /* time of last slotinfo call */
char verstr[512]; /* version string */
uchar cpresent; /* config registers present */
ulong caddr; /* relative address of config registers */
int nctab; /* number of config table entries */
PCMconftab ctab[8];
PCMconftab *def; /* default conftab */
/* for walking through cis */
Cisdat;
/* maps are fixed */
PCMmap memmap;
PCMmap attrmap;
};
.
79c
/* Peripheral Unit GPIO pin assignments: alternate functions */
.
## diffname bitsy/io.h 2000/1121
## diff -e /n/emeliedump/2000/1118/sys/src/9/bitsy/io.h /n/emeliedump/2000/1121/sys/src/9/bitsy/io.h
355a
extern PowerRegs *powerregs;
.
320,354c
ulong pmcr;
ulong pssr;
ulong pspr;
ulong pwer;
ulong pcfr;
ulong ppcr;
ulong pgsr;
ulong posr;
.
317,318c
/*
* power management
*/
typedef struct PowerRegs PowerRegs;
struct PowerRegs
.
315a
extern MemConfRegs *memconfregs;
.
311,314c
ulong mdcnfg; /* dram */
ulong mdcas00; /* dram banks 0/1 */
ulong mdcas01;
ulong mdcas02;
ulong msc0; /* static */
ulong msc1;
ulong mecr; /* pcmcia */
ulong mdrefr; /* dram refresh */
ulong mdcas20; /* dram banks 2/3 */
ulong mdcas21;
ulong mdcas22;
ulong msc2; /* static */
ulong smcnfg; /* SMROM config */
.
308,309c
typedef struct MemConfRegs MemConfRegs;
struct MemConfRegs
.
291,305c
/* bit shifts for pcmcia access time counters */
MECR_io0= 0,
MECR_attr0= 5,
MECR_mem0= 10,
MECR_fast0= 11,
MECR_io1= MECR_io0+16,
MECR_attr1= MECR_attr0+16,
MECR_mem1= MECR_mem0+16,
MECR_fast1= MECR_fast0+16,
.
271,289c
enum
.
269c
* memory configuration
.
120,191d
118a
Uartregs *uart3regs;
.
110,117c
ulong ctl[4];
ulong dummya;
ulong data;
ulong dummyb;
ulong status[2];
.
108c
/* hardware registers */
typedef struct Uartregs Uartregs;
struct Uartregs
.
6a
enum
{
/* hardware counter frequency */
ClockFreq= 3686400,
};
.
4,5d
## diffname bitsy/io.h 2000/1122
## diff -e /n/emeliedump/2000/1121/sys/src/9/bitsy/io.h /n/emeliedump/2000/1122/sys/src/9/bitsy/io.h
111a
/*
* edge argument for gpiointrenable
*/
enum
{
GPIOrising,
GPIOfalling,
GPIOboth,
};
.
## diffname bitsy/io.h 2000/1123
## diff -e /n/emeliedump/2000/1122/sys/src/9/bitsy/io.h /n/emeliedump/2000/1123/sys/src/9/bitsy/io.h
251,258c
ulong pmcr; /* Power manager control register */
ulong pssr; /* Power manager sleep status register */
ulong pspr; /* Power manager scratch pad register */
ulong pwer; /* Power manager wakeup enable register */
ulong pcfr; /* Power manager general configuration register */
ulong ppcr; /* Power manager PPL configuration register */
ulong pgsr; /* Power manager GPIO sleep state register */
ulong posr; /* Power manager oscillator status register */
.
## diffname bitsy/io.h 2000/1205
## diff -e /n/emeliedump/2000/1123/sys/src/9/bitsy/io.h /n/emeliedump/2000/1205/sys/src/9/bitsy/io.h
119a
IRQ,
.
113c
* types of interrupts
.
## diffname bitsy/io.h 2001/0618
## diff -e /n/emeliedump/2000/1205/sys/src/9/bitsy/io.h /n/emeliedump/2001/0618/sys/src/9/bitsy/io.h
261a
/*
* reset controller
*/
enum
{
RCSR_hwr = 0x00000001, /* hw reset */
RCSR_swr = 0x00000002, /* sw reset */
RCSR_wdr = 0x00000004, /* watch dog */
RCSR_smr = 0x00000008, /* sleep mode reset */
RCSR_all = 0x0000000f,
};
typedef struct ResetRegs ResetRegs;
struct ResetRegs
{
ulong rsrr; /* reset controller software reset register */
ulong rcsr; /* reset controller status register */
};
extern ResetRegs *resetregs;
typedef struct OSTimerRegs OSTimerRegs;
struct OSTimerRegs
{
ulong osmr[4]; /* match registers */
ulong oscr; /* counter register */
ulong ossr; /* status register */
ulong ower; /* watchdog enable register */
ulong oier; /* timer interrupt enable register */
};
extern OSTimerRegs* timerregs;
typedef struct Intrregs Intrregs;
struct Intrregs
{
ulong icip; /* pending IRQs */
ulong icmr; /* IRQ mask */
ulong iclr; /* IRQ if bit == 0, FRIQ if 1 */
ulong iccr; /* control register */
ulong icfp; /* pending FIQs */
ulong dummy1[3];
ulong icpr; /* pending interrupts */
};
extern Intrregs *intrregs;
typedef struct Gpclkregs Gpclkregs;
struct Gpclkregs
{
ulong r0;
ulong r1;
ulong dummya;
ulong r2;
ulong r3;
};
extern Gpclkregs *gpclkregs;
.
248a
/* Power management ops */
enum {
PCFR_suspend = 1,
PCFR_opde = 1,
PCFR_fp = 2,
PCFR_fs = 4,
PCFR_fo = 8,
};
.
133c
extern Uartregs *uart3regs;
extern Uartregs *uart1regs;
.
## diffname bitsy/io.h 2001/0818
## diff -e /n/emeliedump/2001/0618/sys/src/9/bitsy/io.h /n/emeliedump/2001/0818/sys/src/9/bitsy/io.h
231,243c
ulong mdcnfg; /* 0x00 dram */
ulong mdcas00; /* 0x04 dram banks 0/1 */
ulong mdcas01; /* 0x08 */
ulong mdcas02; /* 0x0c */
ulong msc0; /* 0x10 static */
ulong msc1; /* 0x14 */
ulong mecr; /* 0x18 pcmcia */
ulong mdrefr; /* 0x1c dram refresh */
ulong mdcas20; /* 0x20 dram banks 2/3 */
ulong mdcas21; /* 0x24 */
ulong mdcas22; /* 0x28 */
ulong msc2; /* 0x2c static */
ulong smcnfg; /* 0x30 SMROM config */
.
225a
REFR_kapd= 29,
REFR_eapd= 28,
REFR_k1db2= 22,
REFR_slfrsh= 31,
.
## diffname bitsy/io.h 2002/0518
## diff -e /n/emeliedump/2001/0818/sys/src/9/bitsy/io.h /n/emeliedump/2002/0518/sys/src/9/bitsy/io.h
290d
269,276c
ulong pmcr; /* 0x0 Power manager control register */
ulong pssr; /* 0x4 Power manager sleep status register */
ulong pspr; /* 0x8 Power manager scratch pad register */
ulong pwer; /* 0xc Power manager wakeup enable register */
ulong pcfr; /* 0x10 Power manager general configuration register */
ulong ppcr; /* 0x14 Power manager PPL configuration register */
ulong pgsr; /* 0x18 Power manager GPIO sleep state register */
ulong posr; /* 0x1c Power manager oscillator status register */
.
260,265d
257,258d
## diffname bitsy/io.h 2002/1112
## diff -e /n/emeliedump/2002/0518/sys/src/9/bitsy/io.h /n/emeliedump/2002/1112/sys/src/9/bitsy/io.h
325a
/*
* Dont use this on bitsy drivers.
* This is for compat with code compiled
* from the ../pc directory
*/
typedef struct Pcidev Pcidev;
typedef struct ISAConf ISAConf;
struct Pcidev { int dummy; };
struct ISAConf{ int port; int irq; };
.
|