m8260_pci.h 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. /*
  2. * include/asm-ppc/m8260_pci.h
  3. *
  4. * Definitions for the MPC8250/MPC8265/MPC8266 integrated PCI host bridge.
  5. *
  6. * This program is free software; you can redistribute it and/or modify it
  7. * under the terms of the GNU General Public License as published by the
  8. * Free Software Foundation; either version 2 of the License, or (at your
  9. * option) any later version.
  10. */
  11. #ifdef __KERNEL__
  12. #ifndef __M8260_PCI_H
  13. #define __M8260_PCI_H
  14. #include <linux/pci_ids.h>
  15. /*
  16. * Define the vendor/device ID for the MPC8265.
  17. */
  18. #define PCI_DEVICE_ID_MPC8265 ((0x18C0 << 16) | PCI_VENDOR_ID_MOTOROLA)
  19. #define M8265_PCIBR0 0x101ac
  20. #define M8265_PCIBR1 0x101b0
  21. #define M8265_PCIMSK0 0x101c4
  22. #define M8265_PCIMSK1 0x101c8
  23. /* Bit definitions for PCIBR registers */
  24. #define PCIBR_ENABLE 0x00000001
  25. /* Bit definitions for PCIMSK registers */
  26. #define PCIMSK_32KiB 0xFFFF8000 /* Size of window, smallest */
  27. #define PCIMSK_64KiB 0xFFFF0000
  28. #define PCIMSK_128KiB 0xFFFE0000
  29. #define PCIMSK_256KiB 0xFFFC0000
  30. #define PCIMSK_512KiB 0xFFF80000
  31. #define PCIMSK_1MiB 0xFFF00000
  32. #define PCIMSK_2MiB 0xFFE00000
  33. #define PCIMSK_4MiB 0xFFC00000
  34. #define PCIMSK_8MiB 0xFF800000
  35. #define PCIMSK_16MiB 0xFF000000
  36. #define PCIMSK_32MiB 0xFE000000
  37. #define PCIMSK_64MiB 0xFC000000
  38. #define PCIMSK_128MiB 0xF8000000
  39. #define PCIMSK_256MiB 0xF0000000
  40. #define PCIMSK_512MiB 0xE0000000
  41. #define PCIMSK_1GiB 0xC0000000 /* Size of window, largest */
  42. #define M826X_SCCR_PCI_MODE_EN 0x100
  43. /*
  44. * Outbound ATU registers (3 sets). These registers control how 60x bus (local)
  45. * addresses are translated to PCI addresses when the MPC826x is a PCI bus
  46. * master (initiator).
  47. */
  48. #define POTAR_REG0 0x10800 /* PCI Outbound Translation Addr registers */
  49. #define POTAR_REG1 0x10818
  50. #define POTAR_REG2 0x10830
  51. #define POBAR_REG0 0x10808 /* PCI Outbound Base Addr registers */
  52. #define POBAR_REG1 0x10820
  53. #define POBAR_REG2 0x10838
  54. #define POCMR_REG0 0x10810 /* PCI Outbound Comparison Mask registers */
  55. #define POCMR_REG1 0x10828
  56. #define POCMR_REG2 0x10840
  57. /* Bit definitions for POMCR registers */
  58. #define POCMR_MASK_4KiB 0x000FFFFF
  59. #define POCMR_MASK_8KiB 0x000FFFFE
  60. #define POCMR_MASK_16KiB 0x000FFFFC
  61. #define POCMR_MASK_32KiB 0x000FFFF8
  62. #define POCMR_MASK_64KiB 0x000FFFF0
  63. #define POCMR_MASK_128KiB 0x000FFFE0
  64. #define POCMR_MASK_256KiB 0x000FFFC0
  65. #define POCMR_MASK_512KiB 0x000FFF80
  66. #define POCMR_MASK_1MiB 0x000FFF00
  67. #define POCMR_MASK_2MiB 0x000FFE00
  68. #define POCMR_MASK_4MiB 0x000FFC00
  69. #define POCMR_MASK_8MiB 0x000FF800
  70. #define POCMR_MASK_16MiB 0x000FF000
  71. #define POCMR_MASK_32MiB 0x000FE000
  72. #define POCMR_MASK_64MiB 0x000FC000
  73. #define POCMR_MASK_128MiB 0x000F8000
  74. #define POCMR_MASK_256MiB 0x000F0000
  75. #define POCMR_MASK_512MiB 0x000E0000
  76. #define POCMR_MASK_1GiB 0x000C0000
  77. #define POCMR_ENABLE 0x80000000
  78. #define POCMR_PCI_IO 0x40000000
  79. #define POCMR_PREFETCH_EN 0x20000000
  80. /* Soft PCI reset */
  81. #define PCI_GCR_REG 0x10880
  82. /* Bit definitions for PCI_GCR registers */
  83. #define PCIGCR_PCI_BUS_EN 0x1
  84. #define PCI_EMR_REG 0x10888
  85. /*
  86. * Inbound ATU registers (2 sets). These registers control how PCI addresses
  87. * are translated to 60x bus (local) addresses when the MPC826x is a PCI bus target.
  88. */
  89. #define PITAR_REG1 0x108D0
  90. #define PIBAR_REG1 0x108D8
  91. #define PICMR_REG1 0x108E0
  92. #define PITAR_REG0 0x108E8
  93. #define PIBAR_REG0 0x108F0
  94. #define PICMR_REG0 0x108F8
  95. /* Bit definitions for PCI Inbound Comparison Mask registers */
  96. #define PICMR_MASK_4KiB 0x000FFFFF
  97. #define PICMR_MASK_8KiB 0x000FFFFE
  98. #define PICMR_MASK_16KiB 0x000FFFFC
  99. #define PICMR_MASK_32KiB 0x000FFFF8
  100. #define PICMR_MASK_64KiB 0x000FFFF0
  101. #define PICMR_MASK_128KiB 0x000FFFE0
  102. #define PICMR_MASK_256KiB 0x000FFFC0
  103. #define PICMR_MASK_512KiB 0x000FFF80
  104. #define PICMR_MASK_1MiB 0x000FFF00
  105. #define PICMR_MASK_2MiB 0x000FFE00
  106. #define PICMR_MASK_4MiB 0x000FFC00
  107. #define PICMR_MASK_8MiB 0x000FF800
  108. #define PICMR_MASK_16MiB 0x000FF000
  109. #define PICMR_MASK_32MiB 0x000FE000
  110. #define PICMR_MASK_64MiB 0x000FC000
  111. #define PICMR_MASK_128MiB 0x000F8000
  112. #define PICMR_MASK_256MiB 0x000F0000
  113. #define PICMR_MASK_512MiB 0x000E0000
  114. #define PICMR_MASK_1GiB 0x000C0000
  115. #define PICMR_ENABLE 0x80000000
  116. #define PICMR_NO_SNOOP_EN 0x40000000
  117. #define PICMR_PREFETCH_EN 0x20000000
  118. /* PCI error Registers */
  119. #define PCI_ERROR_STATUS_REG 0x10884
  120. #define PCI_ERROR_MASK_REG 0x10888
  121. #define PCI_ERROR_CONTROL_REG 0x1088C
  122. #define PCI_ERROR_ADRS_CAPTURE_REG 0x10890
  123. #define PCI_ERROR_DATA_CAPTURE_REG 0x10898
  124. #define PCI_ERROR_CTRL_CAPTURE_REG 0x108A0
  125. /* PCI error Register bit defines */
  126. #define PCI_ERROR_PCI_ADDR_PAR 0x00000001
  127. #define PCI_ERROR_PCI_DATA_PAR_WR 0x00000002
  128. #define PCI_ERROR_PCI_DATA_PAR_RD 0x00000004
  129. #define PCI_ERROR_PCI_NO_RSP 0x00000008
  130. #define PCI_ERROR_PCI_TAR_ABT 0x00000010
  131. #define PCI_ERROR_PCI_SERR 0x00000020
  132. #define PCI_ERROR_PCI_PERR_RD 0x00000040
  133. #define PCI_ERROR_PCI_PERR_WR 0x00000080
  134. #define PCI_ERROR_I2O_OFQO 0x00000100
  135. #define PCI_ERROR_I2O_IPQO 0x00000200
  136. #define PCI_ERROR_IRA 0x00000400
  137. #define PCI_ERROR_NMI 0x00000800
  138. #define PCI_ERROR_I2O_DBMC 0x00001000
  139. /*
  140. * Register pair used to generate configuration cycles on the PCI bus
  141. * and access the MPC826x's own PCI configuration registers.
  142. */
  143. #define PCI_CFG_ADDR_REG 0x10900
  144. #define PCI_CFG_DATA_REG 0x10904
  145. /* Bus parking decides where the bus control sits when idle */
  146. /* If modifying memory controllers for PCI park on the core */
  147. #define PPC_ACR_BUS_PARK_CORE 0x6
  148. #define PPC_ACR_BUS_PARK_PCI 0x3
  149. #endif /* __M8260_PCI_H */
  150. #endif /* __KERNEL__ */