xt2000.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408
  1. #ifndef _INC_XT2000_H_
  2. #define _INC_XT2000_H_
  3. /*
  4. * THIS FILE IS GENERATED -- DO NOT MODIFY BY HAND
  5. *
  6. * include/asm-xtensa/xtensa/xt2000.h - Definitions specific to the
  7. * Tensilica XT2000 Emulation Board
  8. *
  9. * This file is subject to the terms and conditions of the GNU General Public
  10. * License. See the file "COPYING" in the main directory of this archive
  11. * for more details.
  12. *
  13. * Copyright (C) 2002 Tensilica Inc.
  14. */
  15. #include <xtensa/config/core.h>
  16. #include <xtensa/config/system.h>
  17. /*
  18. * Default assignment of XT2000 devices to external interrupts.
  19. */
  20. /* Ethernet interrupt: */
  21. #ifdef XCHAL_EXTINT3_NUM
  22. #define SONIC83934_INTNUM XCHAL_EXTINT3_NUM
  23. #define SONIC83934_INTLEVEL XCHAL_EXTINT3_LEVEL
  24. #define SONIC83934_INTMASK XCHAL_EXTINT3_MASK
  25. #else
  26. #define SONIC83934_INTMASK 0
  27. #endif
  28. /* DUART channel 1 interrupt (P1 - console): */
  29. #ifdef XCHAL_EXTINT4_NUM
  30. #define DUART16552_1_INTNUM XCHAL_EXTINT4_NUM
  31. #define DUART16552_1_INTLEVEL XCHAL_EXTINT4_LEVEL
  32. #define DUART16552_1_INTMASK XCHAL_EXTINT4_MASK
  33. #else
  34. #define DUART16552_1_INTMASK 0
  35. #endif
  36. /* DUART channel 2 interrupt (P2 - 2nd serial port): */
  37. #ifdef XCHAL_EXTINT5_NUM
  38. #define DUART16552_2_INTNUM XCHAL_EXTINT5_NUM
  39. #define DUART16552_2_INTLEVEL XCHAL_EXTINT5_LEVEL
  40. #define DUART16552_2_INTMASK XCHAL_EXTINT5_MASK
  41. #else
  42. #define DUART16552_2_INTMASK 0
  43. #endif
  44. /* FPGA-combined PCI/etc interrupts: */
  45. #ifdef XCHAL_EXTINT6_NUM
  46. #define XT2000_FPGAPCI_INTNUM XCHAL_EXTINT6_NUM
  47. #define XT2000_FPGAPCI_INTLEVEL XCHAL_EXTINT6_LEVEL
  48. #define XT2000_FPGAPCI_INTMASK XCHAL_EXTINT6_MASK
  49. #else
  50. #define XT2000_FPGAPCI_INTMASK 0
  51. #endif
  52. /*
  53. * Device addresses.
  54. *
  55. * Note: for endianness-independence, use 32-bit loads and stores for all
  56. * register accesses to Ethernet, DUART and LED devices. Undefined bits
  57. * may need to be masked out if needed when reading if the actual register
  58. * size is smaller than 32 bits.
  59. *
  60. * Note: XT2000 bus byte lanes are defined in terms of msbyte and lsbyte
  61. * relative to the processor. So 32-bit registers are accessed consistently
  62. * from both big and little endian processors. However, this means byte
  63. * sequences are not consistent between big and little endian processors.
  64. * This is fine for RAM, and for ROM if ROM is created for a specific
  65. * processor (and thus has correct byte sequences). However this may be
  66. * unexpected for Flash, which might contain a file-system that one wants
  67. * to use for multiple processor configurations (eg. the Flash might contain
  68. * the Ethernet card's address, endianness-independent application data, etc).
  69. * That is, byte sequences written in Flash by a core of a given endianness
  70. * will be byte-swapped when seen by a core of the other endianness.
  71. * Someone implementing an endianness-independent Flash file system will
  72. * likely handle this byte-swapping issue in the Flash driver software.
  73. */
  74. #define DUART16552_XTAL_FREQ 18432000 /* crystal frequency in Hz */
  75. #define XTBOARD_FLASH_MAXSIZE 0x4000000 /* 64 MB (max; depends on what is socketed!) */
  76. #define XTBOARD_EPROM_MAXSIZE 0x0400000 /* 4 MB (max; depends on what is socketed!) */
  77. #define XTBOARD_EEPROM_MAXSIZE 0x0080000 /* 512 kB (max; depends on what is socketed!) */
  78. #define XTBOARD_ASRAM_SIZE 0x0100000 /* 1 MB */
  79. #define XTBOARD_PCI_MEM_SIZE 0x8000000 /* 128 MB (allocated) */
  80. #define XTBOARD_PCI_IO_SIZE 0x1000000 /* 16 MB (allocated) */
  81. #ifdef XSHAL_IOBLOCK_BYPASS_PADDR
  82. /* PCI memory space: */
  83. # define XTBOARD_PCI_MEM_PADDR (XSHAL_IOBLOCK_BYPASS_PADDR+0x0000000)
  84. /* Socketed Flash (eg. 2 x 16-bit devices): */
  85. # define XTBOARD_FLASH_PADDR (XSHAL_IOBLOCK_BYPASS_PADDR+0x8000000)
  86. /* PCI I/O space: */
  87. # define XTBOARD_PCI_IO_PADDR (XSHAL_IOBLOCK_BYPASS_PADDR+0xC000000)
  88. /* V3 PCI interface chip register/config space: */
  89. # define XTBOARD_V3PCI_PADDR (XSHAL_IOBLOCK_BYPASS_PADDR+0xD000000)
  90. /* Bus Interface registers: */
  91. # define XTBOARD_BUSINT_PADDR (XSHAL_IOBLOCK_BYPASS_PADDR+0xD010000)
  92. /* FPGA registers: */
  93. # define XT2000_FPGAREGS_PADDR (XSHAL_IOBLOCK_BYPASS_PADDR+0xD020000)
  94. /* SONIC SN83934 Ethernet controller/transceiver: */
  95. # define SONIC83934_PADDR (XSHAL_IOBLOCK_BYPASS_PADDR+0xD030000)
  96. /* 8-character bitmapped LED display: */
  97. # define XTBOARD_LED_PADDR (XSHAL_IOBLOCK_BYPASS_PADDR+0xD040000)
  98. /* National-Semi PC16552D DUART: */
  99. # define DUART16552_1_PADDR (XSHAL_IOBLOCK_BYPASS_PADDR+0xD050020) /* channel 1 (P1 - console) */
  100. # define DUART16552_2_PADDR (XSHAL_IOBLOCK_BYPASS_PADDR+0xD050000) /* channel 2 (P2) */
  101. /* Asynchronous Static RAM: */
  102. # define XTBOARD_ASRAM_PADDR (XSHAL_IOBLOCK_BYPASS_PADDR+0xD400000)
  103. /* 8-bit EEPROM: */
  104. # define XTBOARD_EEPROM_PADDR (XSHAL_IOBLOCK_BYPASS_PADDR+0xD600000)
  105. /* 2 x 16-bit EPROMs: */
  106. # define XTBOARD_EPROM_PADDR (XSHAL_IOBLOCK_BYPASS_PADDR+0xD800000)
  107. #endif /* XSHAL_IOBLOCK_BYPASS_PADDR */
  108. /* These devices might be accessed cached: */
  109. #ifdef XSHAL_IOBLOCK_CACHED_PADDR
  110. # define XTBOARD_PCI_MEM_CACHED_PADDR (XSHAL_IOBLOCK_CACHED_PADDR+0x0000000)
  111. # define XTBOARD_FLASH_CACHED_PADDR (XSHAL_IOBLOCK_CACHED_PADDR+0x8000000)
  112. # define XTBOARD_ASRAM_CACHED_PADDR (XSHAL_IOBLOCK_CACHED_PADDR+0xD400000)
  113. # define XTBOARD_EEPROM_CACHED_PADDR (XSHAL_IOBLOCK_CACHED_PADDR+0xD600000)
  114. # define XTBOARD_EPROM_CACHED_PADDR (XSHAL_IOBLOCK_CACHED_PADDR+0xD800000)
  115. #endif /* XSHAL_IOBLOCK_CACHED_PADDR */
  116. /*** Same thing over again, this time with virtual addresses: ***/
  117. #ifdef XSHAL_IOBLOCK_BYPASS_VADDR
  118. /* PCI memory space: */
  119. # define XTBOARD_PCI_MEM_VADDR (XSHAL_IOBLOCK_BYPASS_VADDR+0x0000000)
  120. /* Socketed Flash (eg. 2 x 16-bit devices): */
  121. # define XTBOARD_FLASH_VADDR (XSHAL_IOBLOCK_BYPASS_VADDR+0x8000000)
  122. /* PCI I/O space: */
  123. # define XTBOARD_PCI_IO_VADDR (XSHAL_IOBLOCK_BYPASS_VADDR+0xC000000)
  124. /* V3 PCI interface chip register/config space: */
  125. # define XTBOARD_V3PCI_VADDR (XSHAL_IOBLOCK_BYPASS_VADDR+0xD000000)
  126. /* Bus Interface registers: */
  127. # define XTBOARD_BUSINT_VADDR (XSHAL_IOBLOCK_BYPASS_VADDR+0xD010000)
  128. /* FPGA registers: */
  129. # define XT2000_FPGAREGS_VADDR (XSHAL_IOBLOCK_BYPASS_VADDR+0xD020000)
  130. /* SONIC SN83934 Ethernet controller/transceiver: */
  131. # define SONIC83934_VADDR (XSHAL_IOBLOCK_BYPASS_VADDR+0xD030000)
  132. /* 8-character bitmapped LED display: */
  133. # define XTBOARD_LED_VADDR (XSHAL_IOBLOCK_BYPASS_VADDR+0xD040000)
  134. /* National-Semi PC16552D DUART: */
  135. # define DUART16552_1_VADDR (XSHAL_IOBLOCK_BYPASS_VADDR+0xD050020) /* channel 1 (P1 - console) */
  136. # define DUART16552_2_VADDR (XSHAL_IOBLOCK_BYPASS_VADDR+0xD050000) /* channel 2 (P2) */
  137. /* Asynchronous Static RAM: */
  138. # define XTBOARD_ASRAM_VADDR (XSHAL_IOBLOCK_BYPASS_VADDR+0xD400000)
  139. /* 8-bit EEPROM: */
  140. # define XTBOARD_EEPROM_VADDR (XSHAL_IOBLOCK_BYPASS_VADDR+0xD600000)
  141. /* 2 x 16-bit EPROMs: */
  142. # define XTBOARD_EPROM_VADDR (XSHAL_IOBLOCK_BYPASS_VADDR+0xD800000)
  143. #endif /* XSHAL_IOBLOCK_BYPASS_VADDR */
  144. /* These devices might be accessed cached: */
  145. #ifdef XSHAL_IOBLOCK_CACHED_VADDR
  146. # define XTBOARD_PCI_MEM_CACHED_VADDR (XSHAL_IOBLOCK_CACHED_VADDR+0x0000000)
  147. # define XTBOARD_FLASH_CACHED_VADDR (XSHAL_IOBLOCK_CACHED_VADDR+0x8000000)
  148. # define XTBOARD_ASRAM_CACHED_VADDR (XSHAL_IOBLOCK_CACHED_VADDR+0xD400000)
  149. # define XTBOARD_EEPROM_CACHED_VADDR (XSHAL_IOBLOCK_CACHED_VADDR+0xD600000)
  150. # define XTBOARD_EPROM_CACHED_VADDR (XSHAL_IOBLOCK_CACHED_VADDR+0xD800000)
  151. #endif /* XSHAL_IOBLOCK_CACHED_VADDR */
  152. /* System ROM: */
  153. #define XTBOARD_ROM_SIZE XSHAL_ROM_SIZE
  154. #ifdef XSHAL_ROM_VADDR
  155. #define XTBOARD_ROM_VADDR XSHAL_ROM_VADDR
  156. #endif
  157. #ifdef XSHAL_ROM_PADDR
  158. #define XTBOARD_ROM_PADDR XSHAL_ROM_PADDR
  159. #endif
  160. /* System RAM: */
  161. #define XTBOARD_RAM_SIZE XSHAL_RAM_SIZE
  162. #ifdef XSHAL_RAM_VADDR
  163. #define XTBOARD_RAM_VADDR XSHAL_RAM_VADDR
  164. #endif
  165. #ifdef XSHAL_RAM_PADDR
  166. #define XTBOARD_RAM_PADDR XSHAL_RAM_PADDR
  167. #endif
  168. #define XTBOARD_RAM_BYPASS_VADDR XSHAL_RAM_BYPASS_VADDR
  169. #define XTBOARD_RAM_BYPASS_PADDR XSHAL_RAM_BYPASS_PADDR
  170. /*
  171. * Things that depend on device addresses.
  172. */
  173. #define XTBOARD_CACHEATTR_WRITEBACK XSHAL_XT2000_CACHEATTR_WRITEBACK
  174. #define XTBOARD_CACHEATTR_WRITEALLOC XSHAL_XT2000_CACHEATTR_WRITEALLOC
  175. #define XTBOARD_CACHEATTR_WRITETHRU XSHAL_XT2000_CACHEATTR_WRITETHRU
  176. #define XTBOARD_CACHEATTR_BYPASS XSHAL_XT2000_CACHEATTR_BYPASS
  177. #define XTBOARD_CACHEATTR_DEFAULT XSHAL_XT2000_CACHEATTR_DEFAULT
  178. #define XTBOARD_BUSINT_PIPE_REGIONS XSHAL_XT2000_PIPE_REGIONS
  179. #define XTBOARD_BUSINT_SDRAM_REGIONS XSHAL_XT2000_SDRAM_REGIONS
  180. /*
  181. * BusLogic (FPGA) registers.
  182. * All these registers are normally accessed using 32-bit loads/stores.
  183. */
  184. /* Register offsets: */
  185. #define XT2000_DATECD_OFS 0x00 /* date code (read-only) */
  186. #define XT2000_STSREG_OFS 0x04 /* status (read-only) */
  187. #define XT2000_SYSLED_OFS 0x08 /* system LED */
  188. #define XT2000_WRPROT_OFS 0x0C /* write protect */
  189. #define XT2000_SWRST_OFS 0x10 /* software reset */
  190. #define XT2000_SYSRST_OFS 0x14 /* system (peripherals) reset */
  191. #define XT2000_IMASK_OFS 0x18 /* interrupt mask */
  192. #define XT2000_ISTAT_OFS 0x1C /* interrupt status */
  193. #define XT2000_V3CFG_OFS 0x20 /* V3 config (V320 PCI) */
  194. /* Physical register addresses: */
  195. #ifdef XT2000_FPGAREGS_PADDR
  196. #define XT2000_DATECD_PADDR (XT2000_FPGAREGS_PADDR+XT2000_DATECD_OFS)
  197. #define XT2000_STSREG_PADDR (XT2000_FPGAREGS_PADDR+XT2000_STSREG_OFS)
  198. #define XT2000_SYSLED_PADDR (XT2000_FPGAREGS_PADDR+XT2000_SYSLED_OFS)
  199. #define XT2000_WRPROT_PADDR (XT2000_FPGAREGS_PADDR+XT2000_WRPROT_OFS)
  200. #define XT2000_SWRST_PADDR (XT2000_FPGAREGS_PADDR+XT2000_SWRST_OFS)
  201. #define XT2000_SYSRST_PADDR (XT2000_FPGAREGS_PADDR+XT2000_SYSRST_OFS)
  202. #define XT2000_IMASK_PADDR (XT2000_FPGAREGS_PADDR+XT2000_IMASK_OFS)
  203. #define XT2000_ISTAT_PADDR (XT2000_FPGAREGS_PADDR+XT2000_ISTAT_OFS)
  204. #define XT2000_V3CFG_PADDR (XT2000_FPGAREGS_PADDR+XT2000_V3CFG_OFS)
  205. #endif
  206. /* Virtual register addresses: */
  207. #ifdef XT2000_FPGAREGS_VADDR
  208. #define XT2000_DATECD_VADDR (XT2000_FPGAREGS_VADDR+XT2000_DATECD_OFS)
  209. #define XT2000_STSREG_VADDR (XT2000_FPGAREGS_VADDR+XT2000_STSREG_OFS)
  210. #define XT2000_SYSLED_VADDR (XT2000_FPGAREGS_VADDR+XT2000_SYSLED_OFS)
  211. #define XT2000_WRPROT_VADDR (XT2000_FPGAREGS_VADDR+XT2000_WRPROT_OFS)
  212. #define XT2000_SWRST_VADDR (XT2000_FPGAREGS_VADDR+XT2000_SWRST_OFS)
  213. #define XT2000_SYSRST_VADDR (XT2000_FPGAREGS_VADDR+XT2000_SYSRST_OFS)
  214. #define XT2000_IMASK_VADDR (XT2000_FPGAREGS_VADDR+XT2000_IMASK_OFS)
  215. #define XT2000_ISTAT_VADDR (XT2000_FPGAREGS_VADDR+XT2000_ISTAT_OFS)
  216. #define XT2000_V3CFG_VADDR (XT2000_FPGAREGS_VADDR+XT2000_V3CFG_OFS)
  217. /* Register access (for C code): */
  218. #define XT2000_DATECD_REG (*(volatile unsigned*) XT2000_DATECD_VADDR)
  219. #define XT2000_STSREG_REG (*(volatile unsigned*) XT2000_STSREG_VADDR)
  220. #define XT2000_SYSLED_REG (*(volatile unsigned*) XT2000_SYSLED_VADDR)
  221. #define XT2000_WRPROT_REG (*(volatile unsigned*) XT2000_WRPROT_VADDR)
  222. #define XT2000_SWRST_REG (*(volatile unsigned*) XT2000_SWRST_VADDR)
  223. #define XT2000_SYSRST_REG (*(volatile unsigned*) XT2000_SYSRST_VADDR)
  224. #define XT2000_IMASK_REG (*(volatile unsigned*) XT2000_IMASK_VADDR)
  225. #define XT2000_ISTAT_REG (*(volatile unsigned*) XT2000_ISTAT_VADDR)
  226. #define XT2000_V3CFG_REG (*(volatile unsigned*) XT2000_V3CFG_VADDR)
  227. #endif
  228. /* DATECD (date code) bit fields: */
  229. /* BCD-coded month (01..12): */
  230. #define XT2000_DATECD_MONTH_SHIFT 24
  231. #define XT2000_DATECD_MONTH_BITS 8
  232. #define XT2000_DATECD_MONTH_MASK 0xFF000000
  233. /* BCD-coded day (01..31): */
  234. #define XT2000_DATECD_DAY_SHIFT 16
  235. #define XT2000_DATECD_DAY_BITS 8
  236. #define XT2000_DATECD_DAY_MASK 0x00FF0000
  237. /* BCD-coded year (2001..9999): */
  238. #define XT2000_DATECD_YEAR_SHIFT 0
  239. #define XT2000_DATECD_YEAR_BITS 16
  240. #define XT2000_DATECD_YEAR_MASK 0x0000FFFF
  241. /* STSREG (status) bit fields: */
  242. /* Switch SW3 setting bit fields (0=off/up, 1=on/down): */
  243. #define XT2000_STSREG_SW3_SHIFT 0
  244. #define XT2000_STSREG_SW3_BITS 4
  245. #define XT2000_STSREG_SW3_MASK 0x0000000F
  246. /* Boot-select bits of switch SW3: */
  247. #define XT2000_STSREG_BOOTSEL_SHIFT 0
  248. #define XT2000_STSREG_BOOTSEL_BITS 2
  249. #define XT2000_STSREG_BOOTSEL_MASK 0x00000003
  250. /* Boot-select values: */
  251. #define XT2000_STSREG_BOOTSEL_FLASH 0
  252. #define XT2000_STSREG_BOOTSEL_EPROM16 1
  253. #define XT2000_STSREG_BOOTSEL_PROM8 2
  254. #define XT2000_STSREG_BOOTSEL_ASRAM 3
  255. /* User-defined bits of switch SW3: */
  256. #define XT2000_STSREG_SW3_2_SHIFT 2
  257. #define XT2000_STSREG_SW3_2_MASK 0x00000004
  258. #define XT2000_STSREG_SW3_3_SHIFT 3
  259. #define XT2000_STSREG_SW3_3_MASK 0x00000008
  260. /* SYSLED (system LED) bit fields: */
  261. /* LED control bit (0=off, 1=on): */
  262. #define XT2000_SYSLED_LEDON_SHIFT 0
  263. #define XT2000_SYSLED_LEDON_MASK 0x00000001
  264. /* WRPROT (write protect) bit fields (0=writable, 1=write-protected [default]): */
  265. /* Flash write protect: */
  266. #define XT2000_WRPROT_FLWP_SHIFT 0
  267. #define XT2000_WRPROT_FLWP_MASK 0x00000001
  268. /* Reserved but present write protect bits: */
  269. #define XT2000_WRPROT_WRP_SHIFT 1
  270. #define XT2000_WRPROT_WRP_BITS 7
  271. #define XT2000_WRPROT_WRP_MASK 0x000000FE
  272. /* SWRST (software reset; allows s/w to generate power-on equivalent reset): */
  273. /* Software reset bits: */
  274. #define XT2000_SWRST_SWR_SHIFT 0
  275. #define XT2000_SWRST_SWR_BITS 16
  276. #define XT2000_SWRST_SWR_MASK 0x0000FFFF
  277. /* Software reset value -- writing this value resets the board: */
  278. #define XT2000_SWRST_RESETVALUE 0x0000DEAD
  279. /* SYSRST (system reset; controls reset of individual peripherals): */
  280. /* All-device reset: */
  281. #define XT2000_SYSRST_ALL_SHIFT 0
  282. #define XT2000_SYSRST_ALL_BITS 4
  283. #define XT2000_SYSRST_ALL_MASK 0x0000000F
  284. /* HDSP-2534 LED display reset (1=reset, 0=nothing): */
  285. #define XT2000_SYSRST_LED_SHIFT 0
  286. #define XT2000_SYSRST_LED_MASK 0x00000001
  287. /* Sonic DP83934 Ethernet controller reset (1=reset, 0=nothing): */
  288. #define XT2000_SYSRST_SONIC_SHIFT 1
  289. #define XT2000_SYSRST_SONIC_MASK 0x00000002
  290. /* DP16552 DUART reset (1=reset, 0=nothing): */
  291. #define XT2000_SYSRST_DUART_SHIFT 2
  292. #define XT2000_SYSRST_DUART_MASK 0x00000004
  293. /* V3 V320 PCI bridge controller reset (1=reset, 0=nothing): */
  294. #define XT2000_SYSRST_V3_SHIFT 3
  295. #define XT2000_SYSRST_V3_MASK 0x00000008
  296. /* IMASK (interrupt mask; 0=disable, 1=enable): */
  297. /* ISTAT (interrupt status; 0=inactive, 1=pending): */
  298. /* PCI INTP interrupt: */
  299. #define XT2000_INTMUX_PCI_INTP_SHIFT 2
  300. #define XT2000_INTMUX_PCI_INTP_MASK 0x00000004
  301. /* PCI INTS interrupt: */
  302. #define XT2000_INTMUX_PCI_INTS_SHIFT 3
  303. #define XT2000_INTMUX_PCI_INTS_MASK 0x00000008
  304. /* PCI INTD interrupt: */
  305. #define XT2000_INTMUX_PCI_INTD_SHIFT 4
  306. #define XT2000_INTMUX_PCI_INTD_MASK 0x00000010
  307. /* V320 PCI controller interrupt: */
  308. #define XT2000_INTMUX_V3_SHIFT 5
  309. #define XT2000_INTMUX_V3_MASK 0x00000020
  310. /* PCI ENUM interrupt: */
  311. #define XT2000_INTMUX_PCI_ENUM_SHIFT 6
  312. #define XT2000_INTMUX_PCI_ENUM_MASK 0x00000040
  313. /* PCI DEG interrupt: */
  314. #define XT2000_INTMUX_PCI_DEG_SHIFT 7
  315. #define XT2000_INTMUX_PCI_DEG_MASK 0x00000080
  316. /* V3CFG (V3 config, V320 PCI controller): */
  317. /* V3 address control (0=pass-thru, 1=V3 address bits 31:28 set to 4'b0001 [default]): */
  318. #define XT2000_V3CFG_V3ADC_SHIFT 0
  319. #define XT2000_V3CFG_V3ADC_MASK 0x00000001
  320. /* I2C Devices */
  321. #define XT2000_I2C_RTC_ID 0x68
  322. #define XT2000_I2C_NVRAM0_ID 0x56 /* 1st 256 byte block */
  323. #define XT2000_I2C_NVRAM1_ID 0x57 /* 2nd 256 byte block */
  324. /* NVRAM Board Info structure: */
  325. #define XT2000_NVRAM_SIZE 512
  326. #define XT2000_NVRAM_BINFO_START 0x100
  327. #define XT2000_NVRAM_BINFO_SIZE 0x20
  328. #define XT2000_NVRAM_BINFO_VERSION 0x10 /* version 1.0 */
  329. #if 0
  330. #define XT2000_NVRAM_BINFO_VERSION_OFFSET 0x00
  331. #define XT2000_NVRAM_BINFO_VERSION_SIZE 0x1
  332. #define XT2000_NVRAM_BINFO_ETH_ADDR_OFFSET 0x02
  333. #define XT2000_NVRAM_BINFO_ETH_ADDR_SIZE 0x6
  334. #define XT2000_NVRAM_BINFO_SN_OFFSET 0x10
  335. #define XT2000_NVRAM_BINFO_SN_SIZE 0xE
  336. #define XT2000_NVRAM_BINFO_CRC_OFFSET 0x1E
  337. #define XT2000_NVRAM_BINFO_CRC_SIZE 0x2
  338. #endif /*0*/
  339. #if !defined(__ASSEMBLY__) && !defined(_NOCLANGUAGE)
  340. typedef struct xt2000_nvram_binfo {
  341. unsigned char version;
  342. unsigned char reserved1;
  343. unsigned char eth_addr[6];
  344. unsigned char reserved8[8];
  345. unsigned char serialno[14];
  346. unsigned char crc[2]; /* 16-bit CRC */
  347. } xt2000_nvram_binfo;
  348. #endif /*!__ASSEMBLY__ && !_NOCLANGUAGE*/
  349. #endif /*_INC_XT2000_H_*/