flexbus.h 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. /*
  2. * FlexBus Internal Memory Map
  3. *
  4. * Copyright (C) 2004-2007 Freescale Semiconductor, Inc.
  5. * TsiChung Liew (Tsi-Chung.Liew@freescale.com)
  6. *
  7. * See file CREDITS for list of people who contributed to this
  8. * project.
  9. *
  10. * This program is free software; you can redistribute it and/or
  11. * modify it under the terms of the GNU General Public License as
  12. * published by the Free Software Foundation; either version 2 of
  13. * the License, or (at your option) any later version.
  14. *
  15. * This program is distributed in the hope that it will be useful,
  16. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  18. * GNU General Public License for more details.
  19. *
  20. * You should have received a copy of the GNU General Public License
  21. * along with this program; if not, write to the Free Software
  22. * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  23. * MA 02111-1307 USA
  24. */
  25. #ifndef __FLEXBUS_H
  26. #define __FLEXBUS_H
  27. /*********************************************************************
  28. * FlexBus Chip Selects (FBCS)
  29. *********************************************************************/
  30. #ifdef CONFIG_M5235
  31. typedef struct fbcs {
  32. u16 csar0; /* Chip-select Address */
  33. u16 res1;
  34. u32 csmr0; /* Chip-select Mask */
  35. u16 res2;
  36. u16 cscr0; /* Chip-select Control */
  37. u16 csar1;
  38. u16 res3;
  39. u32 csmr1;
  40. u16 res4;
  41. u16 cscr1;
  42. u16 csar2;
  43. u16 res5;
  44. u32 csmr2;
  45. u16 res6;
  46. u16 cscr2;
  47. u16 csar3;
  48. u16 res7;
  49. u32 csmr3;
  50. u16 res8;
  51. u16 cscr3;
  52. u16 csar4;
  53. u16 res9;
  54. u32 csmr4;
  55. u16 res10;
  56. u16 cscr4;
  57. u16 csar5;
  58. u16 res11;
  59. u32 csmr5;
  60. u16 res12;
  61. u16 cscr5;
  62. u16 csar6;
  63. u16 res13;
  64. u32 csmr6;
  65. u16 res14;
  66. u16 cscr6;
  67. u16 csar7;
  68. u16 res15;
  69. u32 csmr7;
  70. u16 res16;
  71. u16 cscr7;
  72. } fbcs_t;
  73. #else
  74. typedef struct fbcs {
  75. u32 csar0; /* Chip-select Address */
  76. u32 csmr0; /* Chip-select Mask */
  77. u32 cscr0; /* Chip-select Control */
  78. u32 csar1;
  79. u32 csmr1;
  80. u32 cscr1;
  81. u32 csar2;
  82. u32 csmr2;
  83. u32 cscr2;
  84. u32 csar3;
  85. u32 csmr3;
  86. u32 cscr3;
  87. u32 csar4;
  88. u32 csmr4;
  89. u32 cscr4;
  90. u32 csar5;
  91. u32 csmr5;
  92. u32 cscr5;
  93. u32 csar6;
  94. u32 csmr6;
  95. u32 cscr6;
  96. u32 csar7;
  97. u32 csmr7;
  98. u32 cscr7;
  99. } fbcs_t;
  100. #endif
  101. #define FBCS_CSAR_BA(x) ((x) & 0xFFFF0000)
  102. #define FBCS_CSMR_BAM(x) (((x) & 0xFFFF) << 16)
  103. #define FBCS_CSMR_BAM_MASK (0x0000FFFF)
  104. #define FBCS_CSMR_BAM_4G (0xFFFF0000)
  105. #define FBCS_CSMR_BAM_2G (0x7FFF0000)
  106. #define FBCS_CSMR_BAM_1G (0x3FFF0000)
  107. #define FBCS_CSMR_BAM_1024M (0x3FFF0000)
  108. #define FBCS_CSMR_BAM_512M (0x1FFF0000)
  109. #define FBCS_CSMR_BAM_256M (0x0FFF0000)
  110. #define FBCS_CSMR_BAM_128M (0x07FF0000)
  111. #define FBCS_CSMR_BAM_64M (0x03FF0000)
  112. #define FBCS_CSMR_BAM_32M (0x01FF0000)
  113. #define FBCS_CSMR_BAM_16M (0x00FF0000)
  114. #define FBCS_CSMR_BAM_8M (0x007F0000)
  115. #define FBCS_CSMR_BAM_4M (0x003F0000)
  116. #define FBCS_CSMR_BAM_2M (0x001F0000)
  117. #define FBCS_CSMR_BAM_1M (0x000F0000)
  118. #define FBCS_CSMR_BAM_1024K (0x000F0000)
  119. #define FBCS_CSMR_BAM_512K (0x00070000)
  120. #define FBCS_CSMR_BAM_256K (0x00030000)
  121. #define FBCS_CSMR_BAM_128K (0x00010000)
  122. #define FBCS_CSMR_BAM_64K (0x00000000)
  123. #ifdef CONFIG_M5249
  124. #define FBCS_CSMR_WP (0x00000080)
  125. #define FBCS_CSMR_AM (0x00000040)
  126. #define FBCS_CSMR_CI (0x00000020)
  127. #define FBCS_CSMR_SC (0x00000010)
  128. #define FBCS_CSMR_SD (0x00000008)
  129. #define FBCS_CSMR_UC (0x00000004)
  130. #define FBCS_CSMR_UD (0x00000002)
  131. #else
  132. #define FBCS_CSMR_WP (0x00000100)
  133. #endif
  134. #define FBCS_CSMR_V (0x00000001) /* Valid bit */
  135. #ifdef CONFIG_M5235
  136. #define FBCS_CSCR_SRWS(x) (((x) & 0x3) << 14)
  137. #define FBCS_CSCR_IWS(x) (((x) & 0xF) << 10)
  138. #define FBCS_CSCR_AA_ON (1 << 8)
  139. #define FBCS_CSCR_AA_OFF (0 << 8)
  140. #define FBCS_CSCR_PS_32 (0 << 6)
  141. #define FBCS_CSCR_PS_16 (2 << 6)
  142. #define FBCS_CSCR_PS_8 (1 << 6)
  143. #define FBCS_CSCR_BEM_ON (1 << 5)
  144. #define FBCS_CSCR_BEM_OFF (0 << 5)
  145. #define FBCS_CSCR_BSTR_ON (1 << 4)
  146. #define FBCS_CSCR_BSTR_OFF (0 << 4)
  147. #define FBCS_CSCR_BSTW_ON (1 << 3)
  148. #define FBCS_CSCR_BSTW_OFF (0 << 3)
  149. #define FBCS_CSCR_SWWS(x) (((x) & 0x7) << 0)
  150. #else
  151. #define FBCS_CSCR_SWS(x) (((x) & 0x3F) << 26)
  152. #define FBCS_CSCR_SWS_MASK (0x03FFFFFF)
  153. #define FBCS_CSCR_SWSEN (0x00800000)
  154. #define FBCS_CSCR_ASET(x) (((x) & 0x03) << 20)
  155. #define FBCS_CSCR_ASET_MASK (0xFFCFFFFF)
  156. #define FBCS_CSCR_RDAH(x) (((x) & 0x03) << 18)
  157. #define FBCS_CSCR_RDAH_MASK (0xFFF3FFFF)
  158. #define FBCS_CSCR_WRAH(x) (((x) & 0x03) << 16)
  159. #define FBCS_CSCR_WRAH_MASK (0xFFFCFFFF)
  160. #define FBCS_CSCR_WS(x) (((x) & 0x3F) << 10)
  161. #define FBCS_CSCR_WS_MASK (0xFFFF03FF)
  162. #define FBCS_CSCR_SBM (0x00000200)
  163. #define FBCS_CSCR_AA (0x00000100)
  164. #define FBCS_CSCR_PS(x) (((x) & 0x03) << 6)
  165. #define FBCS_CSCR_PS_MASK (0xFFFFFF3F)
  166. #define FBCS_CSCR_BEM (0x00000020)
  167. #define FBCS_CSCR_BSTR (0x00000010)
  168. #define FBCS_CSCR_BSTW (0x00000008)
  169. #define FBCS_CSCR_PS_16 (0x00000080)
  170. #define FBCS_CSCR_PS_8 (0x00000040)
  171. #define FBCS_CSCR_PS_32 (0x00000000)
  172. #endif
  173. #endif /* __FLEXBUS_H */