summaryrefslogtreecommitdiffstats
path: root/private/ntos/nthals/halntp/mips/pcieisa.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/ntos/nthals/halntp/mips/pcieisa.h')
-rw-r--r--private/ntos/nthals/halntp/mips/pcieisa.h326
1 files changed, 326 insertions, 0 deletions
diff --git a/private/ntos/nthals/halntp/mips/pcieisa.h b/private/ntos/nthals/halntp/mips/pcieisa.h
new file mode 100644
index 000000000..46227b9e9
--- /dev/null
+++ b/private/ntos/nthals/halntp/mips/pcieisa.h
@@ -0,0 +1,326 @@
+/*++
+
+Copyright (c) 1993 NeTpower Incorporated
+
+Module Name:
+
+ pcieisa.h
+
+Abstract:
+
+ This module is the header file that describes virtual
+ register address used by the EISA System Component (ESC)
+ device (82374EB).
+
+
+Author:
+
+ Hector R. Briones (hector) 29-Nov-1993
+
+Revision History:
+
+--*/
+
+#ifndef _PCIEISA_
+#define _PCIEISA_
+
+#define ESC_DMA0_ADDRESS (EISA_CONTROL_VIRTUAL_BASE)
+#define ESC_DMA0_COUNTER (EISA_CONTROL_VIRTUAL_BASE + 0x1)
+#define ESC_DMA1_ADDRESS (EISA_CONTROL_VIRTUAL_BASE + 0x2)
+#define ESC_DMA1_COUNTER (EISA_CONTROL_VIRTUAL_BASE + 0x3)
+#define ESC_DMA2_ADDRESS (EISA_CONTROL_VIRTUAL_BASE + 0x4)
+#define ESC_DMA2_COUNTER (EISA_CONTROL_VIRTUAL_BASE + 0x5)
+#define ESC_DMA3_ADDRESS (EISA_CONTROL_VIRTUAL_BASE + 0x6)
+#define ESC_DMA3_COUNTER (EISA_CONTROL_VIRTUAL_BASE + 0x7)
+
+#define ESC_DMA0_3_CMD (EISA_CONTROL_VIRTUAL_BASE + 0x8)
+#define ESC_DMA0_3_STATUS (EISA_CONTROL_VIRTUAL_BASE + 0x8)
+
+#define ESC_DMA0_3_REQ (EISA_CONTROL_VIRTUAL_BASE + 0x9)
+#define ESC_DMA0_3_MASKSB (EISA_CONTROL_VIRTUAL_BASE + 0xa)
+#define ESC_DMA0_3_MODE (EISA_CONTROL_VIRTUAL_BASE + 0xb)
+#define ESC_DMA0_3_CLRBP (EISA_CONTROL_VIRTUAL_BASE + 0xc)
+#define ESC_DMA0_3_MASTER_CLR (EISA_CONTROL_VIRTUAL_BASE + 0xd)
+#define ESC_DMA0_3_CLRMASK (EISA_CONTROL_VIRTUAL_BASE + 0xe)
+#define ESC_DMA0_3_ALLBITMASK (EISA_CONTROL_VIRTUAL_BASE + 0xf)
+
+#define ESC_INT_CONTROL1 (EISA_CONTROL_VIRTUAL_BASE + 0x20)
+#define ESC_INT_MASK1 (EISA_CONTROL_VIRTUAL_BASE + 0x21)
+
+#define ESC_TC1_COUNTER0 (EISA_CONTROL_VIRTUAL_BASE + 0x40)
+#define ESC_TC1_COUNTER1 (EISA_CONTROL_VIRTUAL_BASE + 0x41)
+#define ESC_TC1_COUNTER2 (EISA_CONTROL_VIRTUAL_BASE + 0x42)
+#define ESC_TC1_CONTROL (EISA_CONTROL_VIRTUAL_BASE + 0x43)
+#define ESC_TC1_RBCMD (EISA_CONTROL_VIRTUAL_BASE + 0x43)
+#define ESC_TC1_LATCH_CMD (EISA_CONTROL_VIRTUAL_BASE + 0x43)
+
+#define ESC_TC2_COUNTER0 (EISA_CONTROL_VIRTUAL_BASE + 0x48)
+#define ESC_TC2_COUNTER2 (EISA_CONTROL_VIRTUAL_BASE + 0x4a)
+#define ESC_TC2_CONTROL (EISA_CONTROL_VIRTUAL_BASE + 0x4b)
+#define ESC_TC2_RBCMD (EISA_CONTROL_VIRTUAL_BASE + 0x4b)
+#define ESC_TC2_LATCH_CMD (EISA_CONTROL_VIRTUAL_BASE + 0x4b)
+
+#define ESC_RST_UBUS_IRQ12 (EISA_CONTROL_VIRTUAL_BASE + 0x60)
+#define ESC_NMI_CONTROL_STATUS (EISA_CONTROL_VIRTUAL_BASE + 0x61)
+
+#define ESC_NMI_RTC (EISA_CONTROL_VIRTUAL_BASE + 0x70)
+#define ESC_CMOS_RAM_ADDRESS (EISA_CONTROL_VIRTUAL_BASE + 0x70)
+#define ESC_CMOS_RAM_DATA (EISA_CONTROL_VIRTUAL_BASE + 0x71)
+
+#define ESC_BIOS_TIMER (EISA_CONTROL_VIRTUAL_BASE + 0x78)
+
+#define ESC_DMA0_PAGE (EISA_CONTROL_VIRTUAL_BASE + 0x87)
+#define ESC_DMA1_PAGE (EISA_CONTROL_VIRTUAL_BASE + 0x83)
+#define ESC_DMA2_PAGE (EISA_CONTROL_VIRTUAL_BASE + 0x81)
+#define ESC_DMA3_PAGE (EISA_CONTROL_VIRTUAL_BASE + 0x82)
+#define ESC_DMA5_PAGE (EISA_CONTROL_VIRTUAL_BASE + 0x8b)
+#define ESC_DMA6_PAGE (EISA_CONTROL_VIRTUAL_BASE + 0x89)
+#define ESC_DMA7_PAGE (EISA_CONTROL_VIRTUAL_BASE + 0x8a)
+
+#define ESC_DMA_LPAGE_REF (EISA_CONTROL_VIRTUAL_BASE + 0x8f)
+
+#define ESC_PORT_92 (EISA_CONTROL_VIRTUAL_BASE + 0x8f)
+
+#define ESC_INT_CONTROL2 (EISA_CONTROL_VIRTUAL_BASE + 0xa0)
+#define ESC_INT_MASK2 (EISA_CONTROL_VIRTUAL_BASE + 0xa1)
+
+#define ESC_DMA4_ADDRESS (EISA_CONTROL_VIRTUAL_BASE + 0xc0)
+#define ESC_DMA4_COUNTER (EISA_CONTROL_VIRTUAL_BASE + 0xc2)
+#define ESC_DMA5_ADDRESS (EISA_CONTROL_VIRTUAL_BASE + 0xc4)
+#define ESC_DMA5_COUNTER (EISA_CONTROL_VIRTUAL_BASE + 0xc6)
+#define ESC_DMA6_ADDRESS (EISA_CONTROL_VIRTUAL_BASE + 0xc8)
+#define ESC_DMA6_COUNTER (EISA_CONTROL_VIRTUAL_BASE + 0xca)
+#define ESC_DMA7_ADDRESS (EISA_CONTROL_VIRTUAL_BASE + 0xcc)
+#define ESC_DMA7_COUNTER (EISA_CONTROL_VIRTUAL_BASE + 0xce)
+
+#define ESC_DMA4_7_CMD (EISA_CONTROL_VIRTUAL_BASE + 0xd0)
+#define ESC_DMA4_7_STATUS (EISA_CONTROL_VIRTUAL_BASE + 0xd0)
+
+#define ESC_DMA4_7_REQ (EISA_CONTROL_VIRTUAL_BASE + 0xd2)
+#define ESC_DMA4_7_MASKSB (EISA_CONTROL_VIRTUAL_BASE + 0xd4)
+#define ESC_DMA4_7_MODE (EISA_CONTROL_VIRTUAL_BASE + 0xd6)
+#define ESC_DMA4_7_CLRBP (EISA_CONTROL_VIRTUAL_BASE + 0xd8)
+#define ESC_DMA4_7_MASTER_CLR (EISA_CONTROL_VIRTUAL_BASE + 0xda)
+#define ESC_DMA4_7_CLRMASK (EISA_CONTROL_VIRTUAL_BASE + 0xdc)
+#define ESC_DMA4_7_ALLBITMASK (EISA_CONTROL_VIRTUAL_BASE + 0xde)
+
+#define ESC_FLOP2_DOR (EISA_CONTROL_VIRTUAL_BASE + 0x372)
+#define ESC_FLOP1_DOR (EISA_CONTROL_VIRTUAL_BASE + 0x3f2)
+
+#define ESC_DMA_SGINT_STAT (EISA_CONTROL_VIRTUAL_BASE + 0x40a)
+
+#define ESC_DMA0_SGCMD (EISA_CONTROL_VIRTUAL_BASE + 0x410)
+#define ESC_DMA1_SGCMD (EISA_CONTROL_VIRTUAL_BASE + 0x411)
+#define ESC_DMA2_SGCMD (EISA_CONTROL_VIRTUAL_BASE + 0x412)
+#define ESC_DMA3_SGCMD (EISA_CONTROL_VIRTUAL_BASE + 0x413)
+#define ESC_DMA5_SGCMD (EISA_CONTROL_VIRTUAL_BASE + 0x415)
+#define ESC_DMA6_SGCMD (EISA_CONTROL_VIRTUAL_BASE + 0x416)
+#define ESC_DMA7_SGCMD (EISA_CONTROL_VIRTUAL_BASE + 0x417)
+
+#define ESC_DMA0_SGSTAT (EISA_CONTROL_VIRTUAL_BASE + 0x418)
+#define ESC_DMA1_SGSTAT (EISA_CONTROL_VIRTUAL_BASE + 0x419)
+#define ESC_DMA2_SGSTAT (EISA_CONTROL_VIRTUAL_BASE + 0x41a)
+#define ESC_DMA3_SGSTAT (EISA_CONTROL_VIRTUAL_BASE + 0x41b)
+#define ESC_DMA5_SGSTAT (EISA_CONTROL_VIRTUAL_BASE + 0x41d)
+#define ESC_DMA6_SGSTAT (EISA_CONTROL_VIRTUAL_BASE + 0x41e)
+#define ESC_DMA7_SGSTAT (EISA_CONTROL_VIRTUAL_BASE + 0x41f)
+
+#define ESC_DMA0_SGDPTR (EISA_CONTROL_VIRTUAL_BASE + 0x420)
+#define ESC_DMA1_SGDPTR (EISA_CONTROL_VIRTUAL_BASE + 0x424)
+#define ESC_DMA2_SGDPTR (EISA_CONTROL_VIRTUAL_BASE + 0x428)
+#define ESC_DMA3_SGDPTR (EISA_CONTROL_VIRTUAL_BASE + 0x42c)
+#define ESC_DMA5_SGDPTR (EISA_CONTROL_VIRTUAL_BASE + 0x434)
+#define ESC_DMA6_SGDPTR (EISA_CONTROL_VIRTUAL_BASE + 0x438)
+#define ESC_DMA7_SGDPTR (EISA_CONTROL_VIRTUAL_BASE + 0x43c)
+
+#define ESC_NMI_EXT (EISA_CONTROL_VIRTUAL_BASE + 0x461)
+#define ESC_SW_NMI (EISA_CONTROL_VIRTUAL_BASE + 0x462)
+
+#define ESC_DMA0_HIPAGE (EISA_CONTROL_VIRTUAL_BASE + 0x487)
+#define ESC_DMA1_HIPAGE (EISA_CONTROL_VIRTUAL_BASE + 0x483)
+#define ESC_DMA2_HIPAGE (EISA_CONTROL_VIRTUAL_BASE + 0x481)
+#define ESC_DMA3_HIPAGE (EISA_CONTROL_VIRTUAL_BASE + 0x482)
+#define ESC_DMA5_HIPAGE (EISA_CONTROL_VIRTUAL_BASE + 0x48b)
+#define ESC_DMA6_HIPAGE (EISA_CONTROL_VIRTUAL_BASE + 0x489)
+#define ESC_DMA7_HIPAGE (EISA_CONTROL_VIRTUAL_BASE + 0x48a)
+
+#define ESC_EDGE_LEVEL1 (EISA_CONTROL_VIRTUAL_BASE + 0x4d0)
+#define ESC_EDGE_LEVEL2 (EISA_CONTROL_VIRTUAL_BASE + 0x4d1)
+#define ESC_DMA_EXT_MODE (EISA_CONTROL_VIRTUAL_BASE + 0x4d6)
+
+//
+// Timer/Counter Control Word definitions
+//
+#define ESC_TC_CNTRLW_RB_CMD 0xc0 // Read Back command
+#define ESC_TC_CNTRLW_SC(x) (x<<6) // Select counter (0-2)
+#define ESC_TC_CNTRLW_SC2 0x80 // Select counter 2
+#define ESC_TC_CNTRLW_SC1 0x40 // Select counter 1
+#define ESC_TC_CNTRLW_SC0 0x00 // Select counter 0
+#define ESC_TC_CNTRLW_CLC 0x00 // Counter Latch command
+#define ESC_TC_CNTRLW_16B 0x30 // R/W LSB then MSB
+#define ESC_TC_CNTRLW_MSB 0x20 // R/W Most sig. byte (MSB)
+#define ESC_TC_CNTRLW_LSB 0x10 // R/W Least sig. byte (LSB)
+#define ESC_TC_CNTRLW_MODE(x) (x<<1) // Select mode (0-5)
+#define ESC_TC_CNTRLW_BCD 0x01 // Binary/BCD countdown type
+
+//
+// Timer/Counter Modes
+//
+#define ESC_TC_MODE_ITC 0 // Sel mode0 (int. on term count)
+#define ESC_TC_MODE_HROS 1 // Sel mode1 (hw retrig. 1 shot)
+#define ESC_TC_MODE_RGEN 2 // Sel mode2 (rate generator)
+#define ESC_TC_MODE_SQW 3 // Sel mode3 (square wave mode)
+#define ESC_TC_MODE_STS 4 // Sel mode4 (sw triggerable strobe)
+#define ESC_TC_MODE_HTS 5 // Sel mode5 (hw triggerable strobe)
+
+//
+// Timer/Counter Read Back Command register
+//
+#define ESC_TC_NOLATCH_STATUS 0x20 // Do not Latch status - selected cntrs
+#define ESC_TC_NOLATCH_CNTR 0x10 // Do not Latch count of selected cntrs
+#define ESC_TC_LATCH_CNTR 0x00 // Latch count of selected cntrs
+#define ESC_TC_LATCH_STATUS 0x00 // Latch status - selected cntrs
+#define ESC_TC_RBCMD_SEL_CNT2 0x08 // Read Back Cmd, select counter2
+#define ESC_TC_RBCMD_SEL_CNT1 0x04 // Read Back Cmd, select counter1
+#define ESC_TC_RBCMD_SEL_CNT0 0x02 // Read Back Cmd, select counter0
+
+//
+// With a divisor of 11930 (0x2e9a), counter0 will produces a square
+// wave with a period of 10ms. If clock frequency (1.193MHz) is divided
+// by the divisor(11930), it gives a result of 100. If the recipricol of
+// the result (100) is done, it equals 10ms.
+//
+#define NANOSECONDS 1
+#define MICROSECONDS ( 1000 * NANOSECONDS )
+#define MILLISECONDS ( 1000 * MICROSECONDS )
+#define SECONDS ( 1000 * MILLISECONDS )
+#define COUNTER_PERIOD ( 838 * NANOSECONDS )
+#define COUNTER_10MS ( ( ( 10 * MILLISECONDS ) / COUNTER_PERIOD ) )
+#define COUNTER_1MS ( ( ( 1 * MILLISECONDS ) / COUNTER_PERIOD ) )
+
+//
+// NMI Status and Control Register
+//
+#define ESC_NCS_T1C2_OUT 0x20 // Output of Timer 1, Counter 2
+#define ESC_NCS_SPEAKER_ENABLE 0x02 // Enable Speaker, used for Interval Timer PMP v2
+#define ESC_NCS_T1C2_ENABLE 0x01 // Enable Timer 1, Counter 2
+
+//
+// The ESC Configuration registers are accessed through
+// and indexing scheme. The Index address register is
+// located at I/O address 0x22 and the index data register
+// is located at I/O address 0x23. The register data
+// written into the index address register selects the
+// desired configuration register. Data for the selected
+// configuration register can be read from or written to,
+// by performing a read or write to the index data register.
+//
+#define ESC_CONFIG_INDEX_ADDRESS (EISA_CONTROL_VIRTUAL_BASE + 0x22)
+#define ESC_CONFIG_INDEX_DATA (EISA_CONTROL_VIRTUAL_BASE + 0x23)
+
+#define ESC_CONFIG_ID 0x2
+#define ESC_CONFIG_REVID 0x8
+#define ESC_CONFIG_MODE_SEL 0x40
+#define ESC_CONFIG_BIOS_CSA 0x42
+#define ESC_CONFIG_BIOS_CSB 0x43
+#define ESC_CONFIG_EISA_CLK_DIV 0x4d
+#define ESC_CONFIG_PERIPH_CSA 0x4e
+#define ESC_CONFIG_PERIPH_CSB 0x4f
+#define ESC_CONFIG_EISA_ID0 0x50
+#define ESC_CONFIG_EISA_ID1 0x51
+#define ESC_CONFIG_EISA_ID2 0x52
+#define ESC_CONFIG_EISA_ID3 0x53
+
+#define ESC_CONFIG_SGRBA 0x57
+
+#define ESC_CONFIG_PIRQ0 0x60
+#define ESC_CONFIG_PIRQ1 0x61
+#define ESC_CONFIG_PIRQ2 0x62
+#define ESC_CONFIG_PIRQ3 0x63
+
+#define ESC_CONFIG_GPCSLA0 0x64
+#define ESC_CONFIG_GPCSHA0 0x65
+#define ESC_CONFIG_GPCSMASK0 0x66
+#define ESC_CONFIG_GPCSLA1 0x68
+#define ESC_CONFIG_GPCSHA1 0x69
+#define ESC_CONFIG_GPCSMASK1 0x6a
+#define ESC_CONFIG_GPCSLA2 0x6c
+#define ESC_CONFIG_GPCSHA2 0x6d
+#define ESC_CONFIG_GPCSMASK2 0x6e
+
+#define ESC_CONFIG_GPXBC 0x6f
+
+#define ESC_CONFIG_TEST_CNTRL 0x88
+
+//
+// Bit definitions for ESC configuration registers.
+//
+#define ESC_CONFIG_IDEN_BYTE 0x0f // Enable access to config registers
+
+#define ESC_BIOS_CSA_LOWBIOS1 0x01 // Addrs range 0xfffe0000 - 0xfffe3fff
+#define ESC_BIOS_CSA_LOWBIOS2 0x02 // Addrs range 0xfffe4000 - 0xfffe7fff
+#define ESC_BIOS_CSA_LOWBIOS3 0x04 // Addrs range 0xfffe8000 - 0xfffebfff
+#define ESC_BIOS_CSA_LOWBIOS4 0x08 // Addrs range 0xfffec000 - 0xfffeffff
+#define ESC_BIOS_CSA_HIGHBIOS 0x10 // Addrs range 0xffff0000 - 0xffffffff
+#define ESC_BIOS_CSA_ENLBIOS 0x20 // Addrs range 0xfff80000 - 0xfffdffff
+#define ESC_BIOS_CSA_ALLBIOS 0x3f // 512Kbytes 0xfff80000 - 0xffffffff
+
+#define ESC_BIOS_CSB_BIOSWREN 0x08 // Bios Write Enable
+
+#define ESC_PCI_EISA_CLK_33MHZ 0x00 // PCI Clk div of 33MHz for BCLK 8.33Mhz
+#define ESC_PCI_EISA_CLK_25MHZ 0x01 // PCI Clk div of 25MHz for BLCK 8.33Mhz
+#define ESC_PCI_EISA_MOUSE_INT 0x10 // Mouse interrupt
+#define ESC_PCI_EISA_PROC_ERR 0x20 // Co-Processor Error
+
+#define ESC_PERIPH_CSA_RTC 0x01 // Decode for Real Time Clock
+#define ESC_PERIPH_CSA_KBD 0x02 // Decode for Keyboard Controller
+#define ESC_PERIPH_CSA_FDC1 0x04 // Decode for Floppy Disk Controller
+#define ESC_PERIPH_CSA_FDC2 0x08 // Decode for Floppy Disk Controller
+#define ESC_PERIPH_CSA_SECNDARY 0x20 // Decode for Secondary addrs space
+
+#define ESC_PERIPH_CSB_SERA1 0x00 // Decode for Serial PortA - COM1
+#define ESC_PERIPH_CSB_SERA2 0x01 // Decode for Serial PortA - COM2
+#define ESC_PERIPH_CSB_SERA_DIS 0x03 // Decode for Serial PortA Disable
+#define ESC_PERIPH_CSB_SERB1 0x00 // Decode for Serial PortB - COM1
+#define ESC_PERIPH_CSB_SERB2 0x04 // Decode for Serial PortB - COM2
+#define ESC_PERIPH_CSB_SERB_DIS 0x0c // Decode for Serial PortB Disable
+#define ESC_PERIPH_CSB_LPT1 0x00 // Decode for Parallel Port1
+#define ESC_PERIPH_CSB_LPT2 0x10 // Decode for Parallel Port2
+#define ESC_PERIPH_CSB_LPT3 0x20 // Decode for Parallel Port3
+#define ESC_PERIPH_CSB_LPT_DIS 0x30 // Decode for Parallel Port Disable
+#define ESC_PERIPH_CSB_PORT92 0x40 // Decode for Port 92
+#define ESC_PERIPH_CSB_CRAM 0x80 // Decode for Cram
+
+#define ESC_MODE_SEL_EISAMSUPP0 0x00 // 4 EISA Masters, 4 slots, 4 PCI IRQ's
+#define ESC_MODE_SEL_EISAMSUPP1 0x01 // 6 EISA Masters, 2 slots, 2 PCI IRQ's
+#define ESC_MODE_SEL_EISAMSUPP2 0x02 // 7 EISA Masters, 1 slots, 1 PCI IRQ's
+#define ESC_MODE_SEL_EISAMSUPP3 0x03 // 8 EISA Masters, 0 slots, 0 PCI IRQ's
+#define ESC_MODE_SEL_SERR_NMIEN 0x08 // SERR# generated NMI enable
+#define ESC_MODE_SEL_GEN_CS 0x10 // General Purpose Chip selects
+#define ESC_MODE_SEL_CONFIG_RAD 0x20 // Configuration Ram Address
+
+#define ESC_GPXBC_XBUSOE0 0x01 // XBUSOE# Generation for GPCS0
+#define ESC_GPXBC_XBUSOE1 0x02 // XBUSOE# Generation for GPCS1
+#define ESC_GPXBC_XBUSOE2 0x04 // XBUSOE# Generation for GPCS2
+
+//
+// IRQ defines for PCI/EISA - PCI/ISA bridge devices.
+//
+#define IO_IRQ0 0
+#define IO_IRQ1 1
+#define IO_IRQ2 2
+#define IO_IRQ3 3
+#define IO_IRQ4 4
+#define IO_IRQ5 5
+#define IO_IRQ6 6
+#define IO_IRQ7 7
+#define IO_IRQ8 8
+#define IO_IRQ9 9
+#define IO_IRQ10 10
+#define IO_IRQ11 11
+#define IO_IRQ12 12
+#define IO_IRQ13 13
+#define IO_IRQ14 14
+#define IO_IRQ15 15
+
+#endif // _PCIEISA_