Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

139 lines
5.4 KiB

4 years ago
  1. //#pragma comment(exestr, "$Header: /usr4/winnt/SOURCES/ddk35/src/hal/halsni/mips/RCS/sniregs.h,v 1.1 1994/10/13 15:47:06 holli Exp $")
  2. /*++
  3. Copyright (c) 1993 SNI
  4. Module Name:
  5. SNIregs.h
  6. Abstract:
  7. This module is the header file that describes hardware structures
  8. for the system board registers
  9. The System addresses are found in SNIdef.h
  10. --*/
  11. #ifndef _SNIREGS_
  12. #define _SNIREGS_
  13. /*******************************************************************
  14. ** Description of the R4x000 ASIC Chipset registers for SNI Machines
  15. **
  16. ** 32 bits access only
  17. *******************************************************************/
  18. //
  19. // UCONF register
  20. //
  21. #define UCONF_ENSCMODE (1<<0) /* Secondary mode valid for R4000 */
  22. #define UCONF_ENEXTINT (1<<1) /* External interruption request */
  23. #define UCONF_NMI (1<<5) /* Interrupt level for NMI */
  24. #define UCONF_NMI_MSK (1<<6) /* Interrupt mask for NMI */
  25. #define UCONF_MDINT (1<<7) /* Select test mode for interruptions */
  26. #define UCONF_INT0_MSK (1<<8) /* Interrupt mask for INT0 ( eisa ) */
  27. #define UCONF_INT1_MSK (1<<9) /* Interrupt mask for INT1 ( scci 1, 2 ) */
  28. #define UCONF_INT2_MSK (1<<10) /* Interrupt mask for INT2 ( duart 2681 ) */
  29. #define UCONF_INT3_MSK (1<<11) /* Interrupt mask for INT3 ( timer 8254 ) */
  30. #define UCONF_INT4_MSK (1<<12) /* Interrupt mask for INT4 ( lance ) */
  31. #define UCONF_INT5_MSK (1<<13) /* Interrupt mask for INT5 ( dbg button ) */
  32. #define UCONF_INT0 (1<<14) /* Interrupt level for INT0 ( eisa ) */
  33. #define UCONF_INT1 (1<<15) /* Interrupt level for INT1 ( scci 1, 2 ) */
  34. #define UCONF_INT2 (1<<16) /* Interrupt level for INT2 ( duart 2681 ) */
  35. #define UCONF_INT3 (1<<17) /* Interrupt level for INT3 ( timer 8254 ) */
  36. #define UCONF_INT4 (1<<18) /* Interrupt level for INT4 ( lance ) */
  37. #define UCONF_INT5 (1<<19) /* Interrupt level for INT5 ( dbg button ) */
  38. #define UCONF_ENCPUHIT (1<<20) /* Enable address comparators */
  39. #define UCONF_ENCKDATA (1<<25) /* Enable check bits on data read */
  40. #define UCONF_SYSCMD0 (1<<26)
  41. #define UCONF_SYSCMD1 (1<<27)
  42. #define UCONF_SYSCMD2 (1<<28)
  43. #define UCONF_SYSCMD3 (1<<29)
  44. #define UCONF_INT UCONF_INT4|UCONF_INT0
  45. //
  46. // IOADTIMEOUT2 & IOADTIMEOUT1
  47. //
  48. #define IO_HOLD (1<<0) /* The R4K_CS request the IO bus */
  49. #define IO_HLDA (1<<1) /* The IO arbitrer acknowledge */
  50. #define IO_HWR (1<<3) /* Set to 1 for a write IO cycle */
  51. #define IO_HADR_MASK 0x3FFFFFF8 /* IO address (29:3) in progress */
  52. //
  53. // IOMEMCONF
  54. //
  55. #define IOMEM_RAFPER 8 /* Select Refresh Period */
  56. #define IOMEM_SELRC (1<<4) /* Select fast Ttc time on memory */
  57. #define IOMEM_SELRAF (1<<5) /* Select fast refresh precharge */
  58. #define IOMEM_SELSIDE (1<<6) /* Select dual side SIPS */
  59. #define IOMEM_SELDD (1<<7) /* Select DD pattern for memory */
  60. #define IOMEM_SEL16MB (1<<8) /* Select 16 Mb technology SIPS */
  61. #define IOMEM_SELDHOLD (1<<9) /* Select long hold time on data write */
  62. #define IOMEM_DISHLDA (1<<15) /* Mask arbitrer acknowledge */
  63. #define IOMEM_ENRDCMP (1<<16) /* Enable anticipation on IO read */
  64. #define IOMEM_ENWRCMP (1<<20) /* Enable bufferisation on IO write */
  65. #define IOMEM_ENIOTMOUT (1<<21) /* Enable output timeout */
  66. #define IOMEM_SELIODD (1<<22) /* Enable fast mode for IO burst DD */
  67. #define IOMEM_MDTIMEOUT (1<<23) /* Select short timeout */
  68. #define BANK_16 0
  69. #define BANK_32 IOMEM_SELSIDE
  70. #define BANK_64 IOMEM_SEL16MB
  71. #define BANK_128 IOMEM_SEL16MB | IOMEM_SELSIDE
  72. #define IOMEM_INIT IOMEM_RAFPER /* Initial register load */
  73. //
  74. // IOMMU
  75. //
  76. #define IOMMU_SWAP 0x7fff /* all segments swapped */
  77. #define IOMMU_BITS 0x0000 /* all segments 32 bits */
  78. //
  79. // DMACCESS & DMAHIT
  80. //
  81. #define DMA_COUNT_MASK 0x0000FFFF /* Count mask (15:0) */
  82. //
  83. // MACHINE STATUS REGISTER (MSR)
  84. //
  85. /* SNI machine status register information */
  86. #define MSR_VSYNC (1<<0) /* active high - video synchronization */
  87. #define MSR_TEMP (1<<1) /* active high - excessive temperature */
  88. #define MSR_LINEGOOD (1<<2) /* active low - power good */
  89. #define MSR_TIMER1 (1<<3) /* active low - int timer 1 */
  90. #define MSR_TIMER0 (1<<4) /* active low - int timer 0 */
  91. #define MSR_DBG_BUT (1<<5) /* active low - debug button int */
  92. #define MSR_TIMEOUT (1<<6) /* active low - timeout int */
  93. #define MSR_BAT_EN (1<<7) /* active high - batteries connected */
  94. //
  95. // MACHINE CONFIGURATION REGISTER (MCR)
  96. //
  97. /* SNI machine configuration register */
  98. #define MCR_TEMPBATACK (1<<0) /* active high - Disable / clear TEMP an Temp info */
  99. #define MCR_POWER_OFF (1<<1) /* active high - Stop power */
  100. #define MCR_STOP_BAT (1<<2) /* active high - Stop batteries */
  101. #define MCR_PODD (1<<3) /* active high - Select ODD parity R4K_CS */
  102. #define MCR_INRESET (1<<5) /* active high - Reset board */
  103. #define MCR_ENBREAK (1<<7) /* active high - Enable Break Duart B machine reset */
  104. #define LINEGOOD_L MSR_LINEGOOD /* high : powerfail */
  105. #endif // _SNIREGS_