PageRenderTime 50ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/linux-2.6.24.3/arch/ppc/boot/simple/rw4/ppc_40x.h

http://dingoo-linux.googlecode.com/
C Header | 664 lines | 487 code | 65 blank | 112 comment | 0 complexity | d2cb1a18de7719bcb550c7f9109fbf51 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.0, AGPL-1.0, CC-BY-SA-3.0
  1. /*----------------------------------------------------------------------------+
  2. | This source code has been made available to you by IBM on an AS-IS
  3. | basis. Anyone receiving this source is licensed under IBM
  4. | copyrights to use it in any way he or she deems fit, including
  5. | copying it, modifying it, compiling it, and redistributing it either
  6. | with or without modifications. No license under IBM patents or
  7. | patent applications is to be implied by the copyright license.
  8. |
  9. | Any user of this software should understand that IBM cannot provide
  10. | technical support for this software and will not be responsible for
  11. | any consequences resulting from the use of this software.
  12. |
  13. | Any person who transfers this source code or any derivative work
  14. | must include the IBM copyright notice, this paragraph, and the
  15. | preceding two paragraphs in the transferred software.
  16. |
  17. | COPYRIGHT I B M CORPORATION 1997
  18. | LICENSED MATERIAL - PROGRAM PROPERTY OF I B M
  19. +----------------------------------------------------------------------------*/
  20. /*----------------------------------------------------------------------------+
  21. | Author: Tony J. Cerreto
  22. | Component: Assembler include file.
  23. | File: ppc_40x.h
  24. | Purpose: Include file containing PPC DCR defines.
  25. |
  26. | Changes:
  27. | Date Author Comment
  28. | --------- ------ --------------------------------------------------------
  29. | 01-Mar-00 tjc Created
  30. +----------------------------------------------------------------------------*/
  31. /* added by linguohui*/
  32. #define MW
  33. /*----------------------------------------------------------------------------+
  34. | PPC Special purpose registers Numbers
  35. +----------------------------------------------------------------------------*/
  36. #define ccr0 0x3b3 /* core configuration reg */
  37. #define ctr 0x009 /* count register */
  38. #define ctrreg 0x009 /* count register */
  39. #define dbcr0 0x3f2 /* debug control register 0 */
  40. #define dbcr1 0x3bd /* debug control register 1 */
  41. #define dbsr 0x3f0 /* debug status register */
  42. #define dccr 0x3fa /* data cache control reg. */
  43. #define dcwr 0x3ba /* data cache write-thru reg */
  44. #define dear 0x3d5 /* data exception address reg */
  45. #define esr 0x3d4 /* exception syndrome register */
  46. #define evpr 0x3d6 /* exception vector prefix reg */
  47. #define iccr 0x3fb /* instruction cache cntrl re */
  48. #define icdbdr 0x3d3 /* instr cache dbug data reg */
  49. #define lrreg 0x008 /* link register */
  50. #define pid 0x3b1 /* process id reg */
  51. #define pit 0x3db /* programmable interval time */
  52. #define pvr 0x11f /* processor version register */
  53. #define sgr 0x3b9 /* storage guarded reg */
  54. #define sler 0x3bb /* storage little endian reg */
  55. #define sprg0 0x110 /* special general purpose 0 */
  56. #define sprg1 0x111 /* special general purpose 1 */
  57. #define sprg2 0x112 /* special general purpose 2 */
  58. #define sprg3 0x113 /* special general purpose 3 */
  59. #define sprg4 0x114 /* special general purpose 4 */
  60. #define sprg5 0x115 /* special general purpose 5 */
  61. #define sprg6 0x116 /* special general purpose 6 */
  62. #define sprg7 0x117 /* special general purpose 7 */
  63. #define srr0 0x01a /* save/restore register 0 */
  64. #define srr1 0x01b /* save/restore register 1 */
  65. #define srr2 0x3de /* save/restore register 2 */
  66. #define srr3 0x3df /* save/restore register 3 */
  67. #define tbhi 0x11D
  68. #define tblo 0x11C
  69. #define tcr 0x3da /* timer control register */
  70. #define tsr 0x3d8 /* timer status register */
  71. #define xerreg 0x001 /* fixed point exception */
  72. #define xer 0x001 /* fixed point exception */
  73. #define zpr 0x3b0 /* zone protection reg */
  74. /*----------------------------------------------------------------------------+
  75. | Decompression Controller
  76. +----------------------------------------------------------------------------*/
  77. #define kiar 0x014 /* Decompression cntl addr reg */
  78. #define kidr 0x015 /* Decompression cntl data reg */
  79. #define kitor0 0x00 /* index table origin Reg 0 */
  80. #define kitor1 0x01 /* index table origin Reg 1 */
  81. #define kitor2 0x02 /* index table origin Reg 2 */
  82. #define kitor3 0x03 /* index table origin Reg 3 */
  83. #define kaddr0 0x04 /* addr decode Definition Reg 0 */
  84. #define kaddr1 0x05 /* addr decode Definition Reg 1 */
  85. #define kconf 0x40 /* Decompression cntl config reg */
  86. #define kid 0x41 /* Decompression cntl id reg */
  87. #define kver 0x42 /* Decompression cntl ver number */
  88. #define kpear 0x50 /* bus error addr reg (PLB) */
  89. #define kbear 0x51 /* bus error addr reg (DCP-EBC) */
  90. #define kesr0 0x52 /* bus error status reg 0 */
  91. /*----------------------------------------------------------------------------+
  92. | Romeo Specific Device Control Register Numbers.
  93. +----------------------------------------------------------------------------*/
  94. #ifndef VESTA
  95. #define cdbcr 0x3d7 /* cache debug cntrl reg */
  96. #define a_latcnt 0x1a9 /* PLB Latency count */
  97. #define a_tgval 0x1ac /* tone generation value */
  98. #define a_plb_pr 0x1bf /* PLB priority */
  99. #define cic_sel1 0x031 /* select register 1 */
  100. #define cic_sel2 0x032 /* select register 2 */
  101. #define clkgcrst 0x122 /* chip reset register */
  102. #define cp_cpmsr 0x100 /*rstatus register */
  103. #define cp_cpmer 0x101 /* enable register */
  104. #define dcp_kiar 0x190 /* indirect address register */
  105. #define dcp_kidr 0x191 /* indirect data register */
  106. #define hsmc_mcgr 0x1c0 /* HSMC global register */
  107. #define hsmc_mcbesr 0x1c1 /* bus error status register */
  108. #define hsmc_mcbear 0x1c2 /* bus error address register*/
  109. #define hsmc_mcbr0 0x1c4 /* SDRAM sub-ctrl bank reg 0 */
  110. #define hsmc_mccr0 0x1c5 /* SDRAM sub-ctrl ctrl reg 0 */
  111. #define hsmc_mcbr1 0x1c7 /* SDRAM sub-ctrl bank reg 1 */
  112. #define hsmc_mccr1 0x1c8 /* SDRAM sub-ctrl ctrl reg 1 */
  113. #define hsmc_sysr 0x1d1 /* system register */
  114. #define hsmc_data 0x1d2 /* data register */
  115. #define hsmc_mccrr 0x1d3 /* refresh register */
  116. #define ocm_pbar 0x1E0 /* base address register */
  117. #define plb0_pacr0 0x057 /* PLB arbiter control reg */
  118. #define plb1_pacr1 0x067 /* PLB arbiter control reg */
  119. #define v_displb 0x157 /* set left border of display*/
  120. #define v_disptb 0x158 /* top border of display */
  121. #define v_osd_la 0x159 /* first link address for OSD*/
  122. #define v_ptsdlta 0x15E /* PTS delta register */
  123. #define v_v0base 0x16C /* base mem add for VBI-0 */
  124. #define v_v1base 0x16D /* base mem add for VBI-1 */
  125. #define v_osbase 0x16E /* base mem add for OSD data */
  126. #endif
  127. /*----------------------------------------------------------------------------+
  128. | Vesta Device Control Register Numbers.
  129. +----------------------------------------------------------------------------*/
  130. /*----------------------------------------------------------------------------+
  131. | Cross bar switch.
  132. +----------------------------------------------------------------------------*/
  133. #define cbs0_cr 0x010 /* CBS configuration register */
  134. /*----------------------------------------------------------------------------+
  135. | DCR external master (DCRX).
  136. +----------------------------------------------------------------------------*/
  137. #define dcrx0_icr 0x020 /* internal control register */
  138. #define dcrx0_isr 0x021 /* internal status register */
  139. #define dcrx0_ecr 0x022 /* external control register */
  140. #define dcrx0_esr 0x023 /* external status register */
  141. #define dcrx0_tar 0x024 /* target address register */
  142. #define dcrx0_tdr 0x025 /* target data register */
  143. #define dcrx0_igr 0x026 /* interrupt generation register */
  144. #define dcrx0_bcr 0x027 /* buffer control register */
  145. /*----------------------------------------------------------------------------+
  146. | Chip interconnect configuration.
  147. +----------------------------------------------------------------------------*/
  148. #define cic0_cr 0x030 /* CIC control register */
  149. #define cic0_vcr 0x033 /* video macro control reg */
  150. #define cic0_sel3 0x035 /* select register 3 */
  151. /*----------------------------------------------------------------------------+
  152. | Chip interconnect configuration.
  153. +----------------------------------------------------------------------------*/
  154. #define sgpo0_sgpO 0x036 /* simplified GPIO output */
  155. #define sgpo0_gpod 0x037 /* simplified GPIO open drain */
  156. #define sgpo0_gptc 0x038 /* simplified GPIO tristate cntl */
  157. #define sgpo0_gpi 0x039 /* simplified GPIO input */
  158. /*----------------------------------------------------------------------------+
  159. | Universal interrupt controller.
  160. +----------------------------------------------------------------------------*/
  161. #define uic0_sr 0x040 /* status register */
  162. #define uic0_srs 0x041 /* status register set */
  163. #define uic0_er 0x042 /* enable register */
  164. #define uic0_cr 0x043 /* critical register */
  165. #define uic0_pr 0x044 /* parity register */
  166. #define uic0_tr 0x045 /* triggering register */
  167. #define uic0_msr 0x046 /* masked status register */
  168. #define uic0_vr 0x047 /* vector register */
  169. #define uic0_vcr 0x048 /* enable config register */
  170. /*----------------------------------------------------------------------------+
  171. | PLB 0 and 1.
  172. +----------------------------------------------------------------------------*/
  173. #define pb0_pesr 0x054 /* PLB error status reg 0 */
  174. #define pb0_pesrs 0x055 /* PLB error status reg 0 set */
  175. #define pb0_pear 0x056 /* PLB error address reg */
  176. #define pb1_pesr 0x064 /* PLB error status reg 1 */
  177. #define pb1_pesrs 0x065 /* PLB error status reg 1 set */
  178. #define pb1_pear 0x066 /* PLB error address reg */
  179. /*----------------------------------------------------------------------------+
  180. | EBIU DCR registers.
  181. +----------------------------------------------------------------------------*/
  182. #define ebiu0_brcrh0 0x070 /* bus region register 0 high */
  183. #define ebiu0_brcrh1 0x071 /* bus region register 1 high */
  184. #define ebiu0_brcrh2 0x072 /* bus region register 2 high */
  185. #define ebiu0_brcrh3 0x073 /* bus region register 3 high */
  186. #define ebiu0_brcrh4 0x074 /* bus region register 4 high */
  187. #define ebiu0_brcrh5 0x075 /* bus region register 5 high */
  188. #define ebiu0_brcrh6 0x076 /* bus region register 6 high */
  189. #define ebiu0_brcrh7 0x077 /* bus region register 7 high */
  190. #define ebiu0_brcr0 0x080 /* bus region register 0 */
  191. #define ebiu0_brcr1 0x081 /* bus region register 1 */
  192. #define ebiu0_brcr2 0x082 /* bus region register 2 */
  193. #define ebiu0_brcr3 0x083 /* bus region register 3 */
  194. #define ebiu0_brcr4 0x084 /* bus region register 4 */
  195. #define ebiu0_brcr5 0x085 /* bus region register 5 */
  196. #define ebiu0_brcr6 0x086 /* bus region register 6 */
  197. #define ebiu0_brcr7 0x087 /* bus region register 7 */
  198. #define ebiu0_bear 0x090 /* bus error address register */
  199. #define ebiu0_besr 0x091 /* bus error syndrome reg */
  200. #define ebiu0_besr0s 0x093 /* bus error syndrome reg */
  201. #define ebiu0_biucr 0x09a /* bus interface control reg */
  202. /*----------------------------------------------------------------------------+
  203. | OPB bridge.
  204. +----------------------------------------------------------------------------*/
  205. #define opbw0_gesr 0x0b0 /* error status reg */
  206. #define opbw0_gesrs 0x0b1 /* error status reg */
  207. #define opbw0_gear 0x0b2 /* error address reg */
  208. /*----------------------------------------------------------------------------+
  209. | DMA.
  210. +----------------------------------------------------------------------------*/
  211. #define dma0_cr0 0x0c0 /* DMA channel control reg 0 */
  212. #define dma0_ct0 0x0c1 /* DMA count register 0 */
  213. #define dma0_da0 0x0c2 /* DMA destination addr reg 0 */
  214. #define dma0_sa0 0x0c3 /* DMA source addr register 0 */
  215. #define dma0_cc0 0x0c4 /* DMA chained count 0 */
  216. #define dma0_cr1 0x0c8 /* DMA channel control reg 1 */
  217. #define dma0_ct1 0x0c9 /* DMA count register 1 */
  218. #define dma0_da1 0x0ca /* DMA destination addr reg 1 */
  219. #define dma0_sa1 0x0cb /* DMA source addr register 1 */
  220. #define dma0_cc1 0x0cc /* DMA chained count 1 */
  221. #define dma0_cr2 0x0d0 /* DMA channel control reg 2 */
  222. #define dma0_ct2 0x0d1 /* DMA count register 2 */
  223. #define dma0_da2 0x0d2 /* DMA destination addr reg 2 */
  224. #define dma0_sa2 0x0d3 /* DMA source addr register 2 */
  225. #define dma0_cc2 0x0d4 /* DMA chained count 2 */
  226. #define dma0_cr3 0x0d8 /* DMA channel control reg 3 */
  227. #define dma0_ct3 0x0d9 /* DMA count register 3 */
  228. #define dma0_da3 0x0da /* DMA destination addr reg 3 */
  229. #define dma0_sa3 0x0db /* DMA source addr register 3 */
  230. #define dma0_cc3 0x0dc /* DMA chained count 3 */
  231. #define dma0_sr 0x0e0 /* DMA status register */
  232. #define dma0_srs 0x0e1 /* DMA status register */
  233. #define dma0_s1 0x031 /* DMA select1 register */
  234. #define dma0_s2 0x032 /* DMA select2 register */
  235. /*---------------------------------------------------------------------------+
  236. | Clock and power management.
  237. +----------------------------------------------------------------------------*/
  238. #define cpm0_fr 0x102 /* force register */
  239. /*----------------------------------------------------------------------------+
  240. | Serial Clock Control.
  241. +----------------------------------------------------------------------------*/
  242. #define ser0_ccr 0x120 /* serial clock control register */
  243. /*----------------------------------------------------------------------------+
  244. | Audio Clock Control.
  245. +----------------------------------------------------------------------------*/
  246. #define aud0_apcr 0x121 /* audio clock ctrl register */
  247. /*----------------------------------------------------------------------------+
  248. | DENC.
  249. +----------------------------------------------------------------------------*/
  250. #define denc0_idr 0x130 /* DENC ID register */
  251. #define denc0_cr1 0x131 /* control register 1 */
  252. #define denc0_rr1 0x132 /* microvision 1 (reserved 1) */
  253. #define denc0_cr2 0x133 /* control register 2 */
  254. #define denc0_rr2 0x134 /* microvision 2 (reserved 2) */
  255. #define denc0_rr3 0x135 /* microvision 3 (reserved 3) */
  256. #define denc0_rr4 0x136 /* microvision 4 (reserved 4) */
  257. #define denc0_rr5 0x137 /* microvision 5 (reserved 5) */
  258. #define denc0_ccdr 0x138 /* closed caption data */
  259. #define denc0_cccr 0x139 /* closed caption control */
  260. #define denc0_trr 0x13A /* teletext request register */
  261. #define denc0_tosr 0x13B /* teletext odd field line se */
  262. #define denc0_tesr 0x13C /* teletext even field line s */
  263. #define denc0_rlsr 0x13D /* RGB rhift left register */
  264. #define denc0_vlsr 0x13E /* video level shift register */
  265. #define denc0_vsr 0x13F /* video scaling register */
  266. /*----------------------------------------------------------------------------+
  267. | Video decoder. Suspect 0x179, 0x169, 0x16a, 0x152 (rc).
  268. +----------------------------------------------------------------------------*/
  269. #define vid0_ccntl 0x140 /* control decoder operation */
  270. #define vid0_cmode 0x141 /* video operational mode */
  271. #define vid0_sstc0 0x142 /* STC high order bits 31:0 */
  272. #define vid0_sstc1 0x143 /* STC low order bit 32 */
  273. #define vid0_spts0 0x144 /* PTS high order bits 31:0 */
  274. #define vid0_spts1 0x145 /* PTS low order bit 32 */
  275. #define vid0_fifo 0x146 /* FIFO data port */
  276. #define vid0_fifos 0x147 /* FIFO status */
  277. #define vid0_cmd 0x148 /* send command to decoder */
  278. #define vid0_cmdd 0x149 /* port for command params */
  279. #define vid0_cmdst 0x14A /* command status */
  280. #define vid0_cmdad 0x14B /* command address */
  281. #define vid0_procia 0x14C /* instruction store */
  282. #define vid0_procid 0x14D /* data port for I_Store */
  283. #define vid0_osdm 0x151 /* OSD mode control */
  284. #define vid0_hosti 0x152 /* base interrupt register */
  285. #define vid0_mask 0x153 /* interrupt mask register */
  286. #define vid0_dispm 0x154 /* operational mode for Disp */
  287. #define vid0_dispd 0x155 /* setting for 'Sync' delay */
  288. #define vid0_vbctl 0x156 /* VBI */
  289. #define vid0_ttxctl 0x157 /* teletext control */
  290. #define vid0_disptb 0x158 /* display left/top border */
  291. #define vid0_osdgla 0x159 /* Graphics plane link addr */
  292. #define vid0_osdila 0x15A /* Image plane link addr */
  293. #define vid0_rbthr 0x15B /* rate buffer threshold */
  294. #define vid0_osdcla 0x15C /* Cursor link addr */
  295. #define vid0_stcca 0x15D /* STC common address */
  296. #define vid0_ptsctl 0x15F /* PTS Control */
  297. #define vid0_wprot 0x165 /* write protect for I_Store */
  298. #define vid0_vcqa 0x167 /* video clip queued block Ad */
  299. #define vid0_vcql 0x168 /* video clip queued block Le */
  300. #define vid0_blksz 0x169 /* block size bytes for copy op */
  301. #define vid0_srcad 0x16a /* copy source address bits 6-31 */
  302. #define vid0_udbas 0x16B /* base mem add for user data */
  303. #define vid0_vbibas 0x16C /* base mem add for VBI 0/1 */
  304. #define vid0_osdibas 0x16D /* Image plane base address */
  305. #define vid0_osdgbas 0x16E /* Graphic plane base address */
  306. #define vid0_rbbase 0x16F /* base mem add for video buf */
  307. #define vid0_dramad 0x170 /* DRAM address */
  308. #define vid0_dramdt 0x171 /* data port for DRAM access */
  309. #define vid0_dramcs 0x172 /* DRAM command and statusa */
  310. #define vid0_vcwa 0x173 /* v clip work address */
  311. #define vid0_vcwl 0x174 /* v clip work length */
  312. #define vid0_mseg0 0x175 /* segment address 0 */
  313. #define vid0_mseg1 0x176 /* segment address 1 */
  314. #define vid0_mseg2 0x177 /* segment address 2 */
  315. #define vid0_mseg3 0x178 /* segment address 3 */
  316. #define vid0_fbbase 0x179 /* frame buffer base memory */
  317. #define vid0_osdcbas 0x17A /* Cursor base addr */
  318. #define vid0_lboxtb 0x17B /* top left border */
  319. #define vid0_trdly 0x17C /* transparency gate delay */
  320. #define vid0_sbord 0x17D /* left/top small pict. bord. */
  321. #define vid0_zoffs 0x17E /* hor/ver zoom window */
  322. #define vid0_rbsz 0x17F /* rate buffer size read */
  323. /*----------------------------------------------------------------------------+
  324. | Transport demultiplexer.
  325. +----------------------------------------------------------------------------*/
  326. #define xpt0_lr 0x180 /* demux location register */
  327. #define xpt0_data 0x181 /* demux data register */
  328. #define xpt0_ir 0x182 /* demux interrupt register */
  329. #define xpt0_config1 0x0000 /* configuration 1 */
  330. #define xpt0_control1 0x0001 /* control 1 */
  331. #define xpt0_festat 0x0002 /* Front-end status */
  332. #define xpt0_feimask 0x0003 /* Front_end interrupt Mask */
  333. #define xpt0_ocmcnfg 0x0004 /* OCM Address */
  334. #define xpt0_settapi 0x0005 /* Set TAP Interrupt */
  335. #define xpt0_pcrhi 0x0010 /* PCR High */
  336. #define xpt0_pcrlow 0x0011 /* PCR Low */
  337. #define xpt0_lstchi 0x0012 /* Latched STC High */
  338. #define xpt0_lstclow 0x0013 /* Latched STC Low */
  339. #define xpt0_stchi 0x0014 /* STC High */
  340. #define xpt0_stclow 0x0015 /* STC Low */
  341. #define xpt0_pwm 0x0016 /* PWM */
  342. #define xpt0_pcrstct 0x0017 /* PCR-STC Threshold */
  343. #define xpt0_pcrstcd 0x0018 /* PCR-STC Delta */
  344. #define xpt0_stccomp 0x0019 /* STC Compare */
  345. #define xpt0_stccmpd 0x001a /* STC Compare Disarm */
  346. #define xpt0_dsstat 0x0048 /* Descrambler Status */
  347. #define xpt0_dsimask 0x0049 /* Descrambler Interrupt Mask */
  348. #define xpt0_vcchng 0x01f0 /* Video Channel Change */
  349. #define xpt0_acchng 0x01f1 /* Audio Channel Change */
  350. #define xpt0_axenable 0x01fe /* Aux PID Enables */
  351. #define xpt0_pcrpid 0x01ff /* PCR PID */
  352. #define xpt0_config2 0x1000 /* Configuration 2 */
  353. #define xpt0_pbuflvl 0x1002 /* Packet Buffer Level */
  354. #define xpt0_intmask 0x1003 /* Interrupt Mask */
  355. #define xpt0_plbcnfg 0x1004 /* PLB Configuration */
  356. #define xpt0_qint 0x1010 /* Queues Interrupts */
  357. #define xpt0_qintmsk 0x1011 /* Queues Interrupts Mask */
  358. #define xpt0_astatus 0x1012 /* Audio Status */
  359. #define xpt0_aintmask 0x1013 /* Audio Interrupt Mask */
  360. #define xpt0_vstatus 0x1014 /* Video Status */
  361. #define xpt0_vintmask 0x1015 /* Video Interrupt Mask */
  362. #define xpt0_qbase 0x1020 /* Queue Base */
  363. #define xpt0_bucketq 0x1021 /* Bucket Queue */
  364. #define xpt0_qstops 0x1024 /* Queue Stops */
  365. #define xpt0_qresets 0x1025 /* Queue Resets */
  366. #define xpt0_sfchng 0x1026 /* Section Filter Change */
  367. /*----------------------------------------------------------------------------+
  368. | Audio decoder. Suspect 0x1ad, 0x1b4, 0x1a3, 0x1a5 (read/write status)
  369. +----------------------------------------------------------------------------*/
  370. #define aud0_ctrl0 0x1a0 /* control 0 */
  371. #define aud0_ctrl1 0x1a1 /* control 1 */
  372. #define aud0_ctrl2 0x1a2 /* control 2 */
  373. #define aud0_cmd 0x1a3 /* command register */
  374. #define aud0_isr 0x1a4 /* interrupt status register */
  375. #define aud0_imr 0x1a5 /* interrupt mask register */
  376. #define aud0_dsr 0x1a6 /* decoder status register */
  377. #define aud0_stc 0x1a7 /* system time clock */
  378. #define aud0_csr 0x1a8 /* channel status register */
  379. #define aud0_lcnt 0x1a9 /* queued address register 2 */
  380. #define aud0_pts 0x1aa /* presentation time stamp */
  381. #define aud0_tgctrl 0x1ab /* tone generation control */
  382. #define aud0_qlr2 0x1ac /* queued length register 2 */
  383. #define aud0_auxd 0x1ad /* aux data */
  384. #define aud0_strmid 0x1ae /* stream ID */
  385. #define aud0_qar 0x1af /* queued address register */
  386. #define aud0_dsps 0x1b0 /* DSP status */
  387. #define aud0_qlr 0x1b1 /* queued len address */
  388. #define aud0_dspc 0x1b2 /* DSP control */
  389. #define aud0_wlr2 0x1b3 /* working length register 2 */
  390. #define aud0_instd 0x1b4 /* instruction download */
  391. #define aud0_war 0x1b5 /* working address register */
  392. #define aud0_seg1 0x1b6 /* segment 1 base register */
  393. #define aud0_seg2 0x1b7 /* segment 2 base register */
  394. #define aud0_avf 0x1b9 /* audio att value front */
  395. #define aud0_avr 0x1ba /* audio att value rear */
  396. #define aud0_avc 0x1bb /* audio att value center */
  397. #define aud0_seg3 0x1bc /* segment 3 base register */
  398. #define aud0_offset 0x1bd /* offset address */
  399. #define aud0_wrl 0x1be /* working length register */
  400. #define aud0_war2 0x1bf /* working address register 2 */
  401. /*----------------------------------------------------------------------------+
  402. | High speed memory controller 0 and 1.
  403. +----------------------------------------------------------------------------*/
  404. #define hsmc0_gr 0x1e0 /* HSMC global register */
  405. #define hsmc0_besr 0x1e1 /* bus error status register */
  406. #define hsmc0_bear 0x1e2 /* bus error address register */
  407. #define hsmc0_br0 0x1e4 /* SDRAM sub-ctrl bank reg 0 */
  408. #define hsmc0_cr0 0x1e5 /* SDRAM sub-ctrl ctrl reg 0 */
  409. #define hsmc0_br1 0x1e7 /* SDRAM sub-ctrl bank reg 1 */
  410. #define hsmc0_cr1 0x1e8 /* SDRAM sub-ctrl ctrl reg 1 */
  411. #define hsmc0_sysr 0x1f1 /* system register */
  412. #define hsmc0_data 0x1f2 /* data register */
  413. #define hsmc0_crr 0x1f3 /* refresh register */
  414. #define hsmc1_gr 0x1c0 /* HSMC global register */
  415. #define hsmc1_besr 0x1c1 /* bus error status register */
  416. #define hsmc1_bear 0x1c2 /* bus error address register */
  417. #define hsmc1_br0 0x1c4 /* SDRAM sub-ctrl bank reg 0 */
  418. #define hsmc1_cr0 0x1c5 /* SDRAM sub-ctrl ctrl reg 0 */
  419. #define hsmc1_br1 0x1c7 /* SDRAM sub-ctrl bank reg 1 */
  420. #define hsmc1_cr1 0x1c8 /* SDRAM sub-ctrl ctrl reg 1 */
  421. #define hsmc1_sysr 0x1d1 /* system register */
  422. #define hsmc1_data 0x1d2 /* data register */
  423. #define hsmc1_crr 0x1d3 /* refresh register */
  424. /*----------------------------------------------------------------------------+
  425. | Machine State Register bit definitions.
  426. +----------------------------------------------------------------------------*/
  427. #define msr_ape 0x00100000
  428. #define msr_apa 0x00080000
  429. #define msr_we 0x00040000
  430. #define msr_ce 0x00020000
  431. #define msr_ile 0x00010000
  432. #define msr_ee 0x00008000
  433. #define msr_pr 0x00004000
  434. #define msr_me 0x00001000
  435. #define msr_de 0x00000200
  436. #define msr_ir 0x00000020
  437. #define msr_dr 0x00000010
  438. #define msr_le 0x00000001
  439. /*----------------------------------------------------------------------------+
  440. | Used during interrupt processing.
  441. +----------------------------------------------------------------------------*/
  442. #define stack_reg_image_size 160
  443. /*----------------------------------------------------------------------------+
  444. | Function prolog definition and other Metaware (EABI) defines.
  445. +----------------------------------------------------------------------------*/
  446. #ifdef MW
  447. #define r0 0
  448. #define r1 1
  449. #define r2 2
  450. #define r3 3
  451. #define r4 4
  452. #define r5 5
  453. #define r6 6
  454. #define r7 7
  455. #define r8 8
  456. #define r9 9
  457. #define r10 10
  458. #define r11 11
  459. #define r12 12
  460. #define r13 13
  461. #define r14 14
  462. #define r15 15
  463. #define r16 16
  464. #define r17 17
  465. #define r18 18
  466. #define r19 19
  467. #define r20 20
  468. #define r21 21
  469. #define r22 22
  470. #define r23 23
  471. #define r24 24
  472. #define r25 25
  473. #define r26 26
  474. #define r27 27
  475. #define r28 28
  476. #define r29 29
  477. #define r30 30
  478. #define r31 31
  479. #define cr0 0
  480. #define cr1 1
  481. #define cr2 2
  482. #define cr3 3
  483. #define cr4 4
  484. #define cr5 5
  485. #define cr6 6
  486. #define cr7 7
  487. #define function_prolog(func_name) .text; \
  488. .align 2; \
  489. .globl func_name; \
  490. func_name:
  491. #define function_epilog(func_name) .type func_name,@function; \
  492. .size func_name,.-func_name
  493. #define function_call(func_name) bl func_name
  494. #define stack_frame_min 8
  495. #define stack_frame_bc 0
  496. #define stack_frame_lr 4
  497. #define stack_neg_off 0
  498. #endif
  499. /*----------------------------------------------------------------------------+
  500. | Function prolog definition and other DIAB (Elf) defines.
  501. +----------------------------------------------------------------------------*/
  502. #ifdef ELF_DIAB
  503. fprolog: macro f_name
  504. .text
  505. .align 2
  506. .globl f_name
  507. f_name:
  508. endm
  509. fepilog: macro f_name
  510. .type f_name,@function
  511. .size f_name,.-f_name
  512. endm
  513. #define function_prolog(func_name) fprolog func_name
  514. #define function_epilog(func_name) fepilog func_name
  515. #define function_call(func_name) bl func_name
  516. #define stack_frame_min 8
  517. #define stack_frame_bc 0
  518. #define stack_frame_lr 4
  519. #define stack_neg_off 0
  520. #endif
  521. /*----------------------------------------------------------------------------+
  522. | Function prolog definition and other Xlc (XCOFF) defines.
  523. +----------------------------------------------------------------------------*/
  524. #ifdef XCOFF
  525. .machine "403ga"
  526. #define r0 0
  527. #define r1 1
  528. #define r2 2
  529. #define r3 3
  530. #define r4 4
  531. #define r5 5
  532. #define r6 6
  533. #define r7 7
  534. #define r8 8
  535. #define r9 9
  536. #define r10 10
  537. #define r11 11
  538. #define r12 12
  539. #define r13 13
  540. #define r14 14
  541. #define r15 15
  542. #define r16 16
  543. #define r17 17
  544. #define r18 18
  545. #define r19 19
  546. #define r20 20
  547. #define r21 21
  548. #define r22 22
  549. #define r23 23
  550. #define r24 24
  551. #define r25 25
  552. #define r26 26
  553. #define r27 27
  554. #define r28 28
  555. #define r29 29
  556. #define r30 30
  557. #define r31 31
  558. #define cr0 0
  559. #define cr1 1
  560. #define cr2 2
  561. #define cr3 3
  562. #define cr4 4
  563. #define cr5 5
  564. #define cr6 6
  565. #define cr7 7
  566. #define function_prolog(func_name) .csect .func_name[PR]; \
  567. .globl .func_name[PR]; \
  568. func_name:
  569. #define function_epilog(func_name) .toc; \
  570. .csect func_name[DS]; \
  571. .globl func_name[DS]; \
  572. .long .func_name[PR]; \
  573. .long TOC[tc0]
  574. #define function_call(func_name) .extern .func_name[PR]; \
  575. stw r2,stack_frame_toc(r1); \
  576. mfspr r2,sprg0; \
  577. bl .func_name[PR]; \
  578. lwz r2,stack_frame_toc(r1)
  579. #define stack_frame_min 56
  580. #define stack_frame_bc 0
  581. #define stack_frame_lr 8
  582. #define stack_frame_toc 20
  583. #define stack_neg_off 276
  584. #endif
  585. #define function_prolog(func_name) .text; \
  586. .align 2; \
  587. .globl func_name; \
  588. func_name:
  589. #define function_epilog(func_name) .type func_name,@function; \
  590. .size func_name,.-func_name
  591. #define function_call(func_name) bl func_name
  592. /*----------------------------------------------------------------------------+
  593. | Function prolog definition for GNU
  594. +----------------------------------------------------------------------------*/
  595. #ifdef _GNU_TOOL
  596. #define function_prolog(func_name) .globl func_name; \
  597. func_name:
  598. #define function_epilog(func_name)
  599. #endif