immap_86xx.h 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. /*
  2. * MPC86xx Internal Memory Map
  3. *
  4. * Author: Jeff Brown
  5. *
  6. * Copyright 2004 Freescale Semiconductor, Inc
  7. *
  8. * This program is free software; you can redistribute it and/or modify it
  9. * under the terms of the GNU General Public License as published by the
  10. * Free Software Foundation; either version 2 of the License, or (at your
  11. * option) any later version.
  12. *
  13. */
  14. #ifndef __ASM_POWERPC_IMMAP_86XX_H__
  15. #define __ASM_POWERPC_IMMAP_86XX_H__
  16. #ifdef __KERNEL__
  17. /* Eventually this should define all the IO block registers in 86xx */
  18. /* PCI Registers */
  19. typedef struct ccsr_pci {
  20. uint cfg_addr; /* 0x.000 - PCI Configuration Address Register */
  21. uint cfg_data; /* 0x.004 - PCI Configuration Data Register */
  22. uint int_ack; /* 0x.008 - PCI Interrupt Acknowledge Register */
  23. char res1[3060];
  24. uint potar0; /* 0x.c00 - PCI Outbound Transaction Address Register 0 */
  25. uint potear0; /* 0x.c04 - PCI Outbound Translation Extended Address Register 0 */
  26. uint powbar0; /* 0x.c08 - PCI Outbound Window Base Address Register 0 */
  27. char res2[4];
  28. uint powar0; /* 0x.c10 - PCI Outbound Window Attributes Register 0 */
  29. char res3[12];
  30. uint potar1; /* 0x.c20 - PCI Outbound Transaction Address Register 1 */
  31. uint potear1; /* 0x.c24 - PCI Outbound Translation Extended Address Register 1 */
  32. uint powbar1; /* 0x.c28 - PCI Outbound Window Base Address Register 1 */
  33. char res4[4];
  34. uint powar1; /* 0x.c30 - PCI Outbound Window Attributes Register 1 */
  35. char res5[12];
  36. uint potar2; /* 0x.c40 - PCI Outbound Transaction Address Register 2 */
  37. uint potear2; /* 0x.c44 - PCI Outbound Translation Extended Address Register 2 */
  38. uint powbar2; /* 0x.c48 - PCI Outbound Window Base Address Register 2 */
  39. char res6[4];
  40. uint powar2; /* 0x.c50 - PCI Outbound Window Attributes Register 2 */
  41. char res7[12];
  42. uint potar3; /* 0x.c60 - PCI Outbound Transaction Address Register 3 */
  43. uint potear3; /* 0x.c64 - PCI Outbound Translation Extended Address Register 3 */
  44. uint powbar3; /* 0x.c68 - PCI Outbound Window Base Address Register 3 */
  45. char res8[4];
  46. uint powar3; /* 0x.c70 - PCI Outbound Window Attributes Register 3 */
  47. char res9[12];
  48. uint potar4; /* 0x.c80 - PCI Outbound Transaction Address Register 4 */
  49. uint potear4; /* 0x.c84 - PCI Outbound Translation Extended Address Register 4 */
  50. uint powbar4; /* 0x.c88 - PCI Outbound Window Base Address Register 4 */
  51. char res10[4];
  52. uint powar4; /* 0x.c90 - PCI Outbound Window Attributes Register 4 */
  53. char res11[268];
  54. uint pitar3; /* 0x.da0 - PCI Inbound Translation Address Register 3 */
  55. char res12[4];
  56. uint piwbar3; /* 0x.da8 - PCI Inbound Window Base Address Register 3 */
  57. uint piwbear3; /* 0x.dac - PCI Inbound Window Base Extended Address Register 3 */
  58. uint piwar3; /* 0x.db0 - PCI Inbound Window Attributes Register 3 */
  59. char res13[12];
  60. uint pitar2; /* 0x.dc0 - PCI Inbound Translation Address Register 2 */
  61. char res14[4];
  62. uint piwbar2; /* 0x.dc8 - PCI Inbound Window Base Address Register 2 */
  63. uint piwbear2; /* 0x.dcc - PCI Inbound Window Base Extended Address Register 2 */
  64. uint piwar2; /* 0x.dd0 - PCI Inbound Window Attributes Register 2 */
  65. char res15[12];
  66. uint pitar1; /* 0x.de0 - PCI Inbound Translation Address Register 1 */
  67. char res16[4];
  68. uint piwbar1; /* 0x.de8 - PCI Inbound Window Base Address Register 1 */
  69. char res17[4];
  70. uint piwar1; /* 0x.df0 - PCI Inbound Window Attributes Register 1 */
  71. char res18[12];
  72. uint err_dr; /* 0x.e00 - PCI Error Detect Register */
  73. uint err_cap_dr; /* 0x.e04 - PCI Error Capture Disable Register */
  74. uint err_en; /* 0x.e08 - PCI Error Enable Register */
  75. uint err_attrib; /* 0x.e0c - PCI Error Attributes Capture Register */
  76. uint err_addr; /* 0x.e10 - PCI Error Address Capture Register */
  77. uint err_ext_addr; /* 0x.e14 - PCI Error Extended Address Capture Register */
  78. uint err_dl; /* 0x.e18 - PCI Error Data Low Capture Register */
  79. uint err_dh; /* 0x.e1c - PCI Error Data High Capture Register */
  80. uint gas_timr; /* 0x.e20 - PCI Gasket Timer Register */
  81. uint pci_timr; /* 0x.e24 - PCI Timer Register */
  82. char res19[472];
  83. } ccsr_pci_t;
  84. /* PCI Express Registers */
  85. typedef struct ccsr_pex {
  86. uint pex_config_addr; /* 0x.000 - PCI Express Configuration Address Register */
  87. uint pex_config_data; /* 0x.004 - PCI Express Configuration Data Register */
  88. char res1[4];
  89. uint pex_otb_cpl_tor; /* 0x.00c - PCI Express Outbound completion timeout register */
  90. uint pex_conf_tor; /* 0x.010 - PCI Express configuration timeout register */
  91. char res2[12];
  92. uint pex_pme_mes_dr; /* 0x.020 - PCI Express PME and message detect register */
  93. uint pex_pme_mes_disr; /* 0x.024 - PCI Express PME and message disable register */
  94. uint pex_pme_mes_ier; /* 0x.028 - PCI Express PME and message interrupt enable register */
  95. uint pex_pmcr; /* 0x.02c - PCI Express power management command register */
  96. char res3[3024];
  97. uint pexotar0; /* 0x.c00 - PCI Express outbound translation address register 0 */
  98. uint pexotear0; /* 0x.c04 - PCI Express outbound translation extended address register 0*/
  99. char res4[8];
  100. uint pexowar0; /* 0x.c10 - PCI Express outbound window attributes register 0*/
  101. char res5[12];
  102. uint pexotar1; /* 0x.c20 - PCI Express outbound translation address register 1 */
  103. uint pexotear1; /* 0x.c24 - PCI Express outbound translation extended address register 1*/
  104. uint pexowbar1; /* 0x.c28 - PCI Express outbound window base address register 1*/
  105. char res6[4];
  106. uint pexowar1; /* 0x.c30 - PCI Express outbound window attributes register 1*/
  107. char res7[12];
  108. uint pexotar2; /* 0x.c40 - PCI Express outbound translation address register 2 */
  109. uint pexotear2; /* 0x.c44 - PCI Express outbound translation extended address register 2*/
  110. uint pexowbar2; /* 0x.c48 - PCI Express outbound window base address register 2*/
  111. char res8[4];
  112. uint pexowar2; /* 0x.c50 - PCI Express outbound window attributes register 2*/
  113. char res9[12];
  114. uint pexotar3; /* 0x.c60 - PCI Express outbound translation address register 3 */
  115. uint pexotear3; /* 0x.c64 - PCI Express outbound translation extended address register 3*/
  116. uint pexowbar3; /* 0x.c68 - PCI Express outbound window base address register 3*/
  117. char res10[4];
  118. uint pexowar3; /* 0x.c70 - PCI Express outbound window attributes register 3*/
  119. char res11[12];
  120. uint pexotar4; /* 0x.c80 - PCI Express outbound translation address register 4 */
  121. uint pexotear4; /* 0x.c84 - PCI Express outbound translation extended address register 4*/
  122. uint pexowbar4; /* 0x.c88 - PCI Express outbound window base address register 4*/
  123. char res12[4];
  124. uint pexowar4; /* 0x.c90 - PCI Express outbound window attributes register 4*/
  125. char res13[12];
  126. char res14[256];
  127. uint pexitar3; /* 0x.da0 - PCI Express inbound translation address register 3 */
  128. char res15[4];
  129. uint pexiwbar3; /* 0x.da8 - PCI Express inbound window base address register 3 */
  130. uint pexiwbear3; /* 0x.dac - PCI Express inbound window base extended address register 3 */
  131. uint pexiwar3; /* 0x.db0 - PCI Express inbound window attributes register 3 */
  132. char res16[12];
  133. uint pexitar2; /* 0x.dc0 - PCI Express inbound translation address register 2 */
  134. char res17[4];
  135. uint pexiwbar2; /* 0x.dc8 - PCI Express inbound window base address register 2 */
  136. uint pexiwbear2; /* 0x.dcc - PCI Express inbound window base extended address register 2 */
  137. uint pexiwar2; /* 0x.dd0 - PCI Express inbound window attributes register 2 */
  138. char res18[12];
  139. uint pexitar1; /* 0x.de0 - PCI Express inbound translation address register 2 */
  140. char res19[4];
  141. uint pexiwbar1; /* 0x.de8 - PCI Express inbound window base address register 2 */
  142. uint pexiwbear1; /* 0x.dec - PCI Express inbound window base extended address register 2 */
  143. uint pexiwar1; /* 0x.df0 - PCI Express inbound window attributes register 2 */
  144. char res20[12];
  145. uint pex_err_dr; /* 0x.e00 - PCI Express error detect register */
  146. char res21[4];
  147. uint pex_err_en; /* 0x.e08 - PCI Express error interrupt enable register */
  148. char res22[4];
  149. uint pex_err_disr; /* 0x.e10 - PCI Express error disable register */
  150. char res23[12];
  151. uint pex_err_cap_stat; /* 0x.e20 - PCI Express error capture status register */
  152. char res24[4];
  153. uint pex_err_cap_r0; /* 0x.e28 - PCI Express error capture register 0 */
  154. uint pex_err_cap_r1; /* 0x.e2c - PCI Express error capture register 0 */
  155. uint pex_err_cap_r2; /* 0x.e30 - PCI Express error capture register 0 */
  156. uint pex_err_cap_r3; /* 0x.e34 - PCI Express error capture register 0 */
  157. } ccsr_pex_t;
  158. /* Global Utility Registers */
  159. typedef struct ccsr_guts {
  160. uint porpllsr; /* 0x.0000 - POR PLL Ratio Status Register */
  161. uint porbmsr; /* 0x.0004 - POR Boot Mode Status Register */
  162. uint porimpscr; /* 0x.0008 - POR I/O Impedance Status and Control Register */
  163. uint pordevsr; /* 0x.000c - POR I/O Device Status Register */
  164. uint pordbgmsr; /* 0x.0010 - POR Debug Mode Status Register */
  165. char res1[12];
  166. uint gpporcr; /* 0x.0020 - General-Purpose POR Configuration Register */
  167. char res2[12];
  168. uint gpiocr; /* 0x.0030 - GPIO Control Register */
  169. char res3[12];
  170. uint gpoutdr; /* 0x.0040 - General-Purpose Output Data Register */
  171. char res4[12];
  172. uint gpindr; /* 0x.0050 - General-Purpose Input Data Register */
  173. char res5[12];
  174. uint pmuxcr; /* 0x.0060 - Alternate Function Signal Multiplex Control */
  175. char res6[12];
  176. uint devdisr; /* 0x.0070 - Device Disable Control */
  177. char res7[12];
  178. uint powmgtcsr; /* 0x.0080 - Power Management Status and Control Register */
  179. char res8[12];
  180. uint mcpsumr; /* 0x.0090 - Machine Check Summary Register */
  181. char res9[12];
  182. uint pvr; /* 0x.00a0 - Processor Version Register */
  183. uint svr; /* 0x.00a4 - System Version Register */
  184. char res10[3416];
  185. uint clkocr; /* 0x.0e00 - Clock Out Select Register */
  186. char res11[12];
  187. uint ddrdllcr; /* 0x.0e10 - DDR DLL Control Register */
  188. char res12[12];
  189. uint lbcdllcr; /* 0x.0e20 - LBC DLL Control Register */
  190. char res13[61916];
  191. } ccsr_guts_t;
  192. #endif /* __ASM_POWERPC_IMMAP_86XX_H__ */
  193. #endif /* __KERNEL__ */