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