summaryrefslogtreecommitdiff
path: root/ports/c667x/ccs/example_build/include/C66XX_DEF.hxx
blob: 0eb6a1d36336022caca8faac6924295c35861448 (plain)
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
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
/******************************************************************************
	TMS320C66xx KeyStone Multicore DSP Software Development Kit (SDK). Rev 2A.
	(C) MicroLAB Systems, 2014-2015

	File:	Definitions
	-----

	Notes:
	------
	1.	This C-header file contains general DSP definitions and
		is used with C66XX.h C-header file.

	2.	This file is best viewed with the TAB setting set to '4'.

******************************************************************************/


/**
 * @file  C66XX_DEF.hxx
 *
 * @brief  Definitions
 *
 * This file contains general C66xx DSP definitions
 *
 */


#ifndef __C66XX_DEF_HXX__									// check for this file has been already included
#define __C66XX_DEF_HXX__									1


//=============================================================================
//============ DSP CPU ID =====================================================
//=============================================================================

// DSP CPU ID is located at CSR register and is used to identify the chip
#define C66XX_DSP_CPU_ID									0x15
//=============================================================================



#ifdef __C66XX_SELECT_C6678_DSP__
//=============================================================================
//============ DSP cores number ===============================================
//=============================================================================
#define C66XX_DSP_NUMBER_OF_CORES							8
//=============================================================================


//=============================================================================
//============ DSP memory map =================================================
//=============================================================================
// All address ranges refer to 32-bit LOGICAL addresses!!!

// Local L2 SRAM - 512KB
#define C66XX_LOCAL_L2_SRAM_SADDR							0x00800000
#define C66XX_LOCAL_L2_SRAM_EADDR							0x0087ffff
#define C66XX_LOCAL_L2_SRAM_LEN								(C66XX_LOCAL_L2_SRAM_EADDR - C66XX_LOCAL_L2_SRAM_SADDR + 1)

// Local L1P SRAM - 32KB
#define C66XX_LOCAL_L1P_SRAM_SADDR							0x00e00000
#define C66XX_LOCAL_L1P_SRAM_EADDR							0x00e07fff
#define C66XX_LOCAL_L1P_SRAM_LEN							(C66XX_LOCAL_L1P_SRAM_EADDR - C66XX_LOCAL_L1P_SRAM_SADDR + 1)

// Local L1D SRAM - 32KB
#define C66XX_LOCAL_L1D_SRAM_SADDR							0x00f00000
#define C66XX_LOCAL_L1D_SRAM_EADDR							0x00f07fff
#define C66XX_LOCAL_L1D_SRAM_LEN							(C66XX_LOCAL_L1D_SRAM_EADDR - C66XX_LOCAL_L1D_SRAM_SADDR + 1)

// C66xx CorePack registers area - 4MB
#define C66XX_DSP_RG_AREA_SADDR								0x01800000
#define C66XX_DSP_RG_AREA_EADDR								0x01bfffff
#define C66XX_DSP_RG_AREA_LEN								(C66XX_DSP_RG_AREA_EADDR - C66XX_DSP_RG_AREA_SADDR + 1)

// Tracer MSMC 0 registers area - 128B
#define C66XX_TRACER_MSMC_0_RG_AREA_SADDR					0x01d00000
#define C66XX_TRACER_MSMC_0_RG_AREA_EADDR					0x01d0007f
#define C66XX_TRACER_MSMC_0_RG_AREA_LEN						(C66XX_TRACER_MSMC_0_RG_AREA_EADDR - C66XX_TRACER_MSMC_0_RG_AREA_SADDR + 1)

// Tracer MSMC 1 registers area - 128B
#define C66XX_TRACER_MSMC_1_RG_AREA_SADDR					0x01d08000
#define C66XX_TRACER_MSMC_1_RG_AREA_EADDR					0x01d0807f
#define C66XX_TRACER_MSMC_1_RG_AREA_LEN						(C66XX_TRACER_MSMC_1_RG_AREA_EADDR - C66XX_TRACER_MSMC_1_RG_AREA_SADDR + 1)

// Tracer MSMC 2 registers area - 128B
#define C66XX_TRACER_MSMC_2_RG_AREA_SADDR					0x01d10000
#define C66XX_TRACER_MSMC_2_RG_AREA_EADDR					0x01d1007f
#define C66XX_TRACER_MSMC_2_RG_AREA_LEN						(C66XX_TRACER_MSMC_2_RG_AREA_EADDR - C66XX_TRACER_MSMC_2_RG_AREA_SADDR + 1)

// Tracer MSMC 3 registers area - 128B
#define C66XX_TRACER_MSMC_3_RG_AREA_SADDR					0x01d18000
#define C66XX_TRACER_MSMC_3_RG_AREA_EADDR					0x01d1807f
#define C66XX_TRACER_MSMC_3_RG_AREA_LEN						(C66XX_TRACER_MSMC_3_RG_AREA_EADDR - C66XX_TRACER_MSMC_3_RG_AREA_SADDR + 1)

// Tracer QM DMA registers area - 128B
#define C66XX_TRACER_QM_DMA_RG_AREA_SADDR					0x01d20000
#define C66XX_TRACER_QM_DMA_RG_AREA_EADDR					0x01d2007f
#define C66XX_TRACER_QM_DMA_RG_AREA_LEN						(C66XX_TRACER_QM_DMA_RG_AREA_EADDR - C66XX_TRACER_QM_DMA_RG_AREA_SADDR + 1)

// Tracer DDR registers area - 128B
#define C66XX_TRACER_DDR_RG_AREA_SADDR						0x01d28000
#define C66XX_TRACER_DDR_RG_AREA_EADDR						0x01d2807f
#define C66XX_TRACER_DDR_RG_AREA_LEN						(C66XX_TRACER_DDR_RG_AREA_EADDR - C66XX_TRACER_DDR_RG_AREA_SADDR + 1)

// Tracer SM registers area - 128B
#define C66XX_TRACER_SM_RG_AREA_SADDR						0x01d30000
#define C66XX_TRACER_SM_RG_AREA_EADDR						0x01d3007f
#define C66XX_TRACER_SM_RG_AREA_LEN							(C66XX_TRACER_SM_RG_AREA_EADDR - C66XX_TRACER_SM_RG_AREA_SADDR + 1)

// Tracer QM CFG registers area - 128B
#define C66XX_TRACER_QM_CFG_RG_AREA_SADDR					0x01d38000
#define C66XX_TRACER_QM_CFG_RG_AREA_EADDR					0x01d3807f
#define C66XX_TRACER_QM_CFG_RG_AREA_LEN						(C66XX_TRACER_QM_CFG_RG_AREA_EADDR - C66XX_TRACER_QM_CFG_RG_AREA_SADDR + 1)

// Tracer CFG registers area - 128B
#define C66XX_TRACER_CFG_RG_AREA_SADDR						0x01d40000
#define C66XX_TRACER_CFG_RG_AREA_EADDR						0x01d4007f
#define C66XX_TRACER_CFG_RG_AREA_LEN						(C66XX_TRACER_CFG_RG_AREA_EADDR - C66XX_TRACER_CFG_RG_AREA_SADDR + 1)

// Tracer L2 0 registers area - 128B
#define C66XX_TRACER_L2_0_RG_AREA_SADDR						0x01d48000
#define C66XX_TRACER_L2_0_RG_AREA_EADDR						0x01d4807f
#define C66XX_TRACER_L2_0_RG_AREA_LEN						(C66XX_TRACER_L2_0_RG_AREA_EADDR - C66XX_TRACER_L2_0_RG_AREA_SADDR + 1)

// Tracer L2 1 registers area - 128B
#define C66XX_TRACER_L2_1_RG_AREA_SADDR						0x01d50000
#define C66XX_TRACER_L2_1_RG_AREA_EADDR						0x01d5007f
#define C66XX_TRACER_L2_1_RG_AREA_LEN						(C66XX_TRACER_L2_1_RG_AREA_EADDR - C66XX_TRACER_L2_1_RG_AREA_SADDR + 1)

// Tracer L2 2 registers area - 128B
#define C66XX_TRACER_L2_2_RG_AREA_SADDR						0x01d58000
#define C66XX_TRACER_L2_2_RG_AREA_EADDR						0x01d5807f
#define C66XX_TRACER_L2_2_RG_AREA_LEN						(C66XX_TRACER_L2_2_RG_AREA_EADDR - C66XX_TRACER_L2_2_RG_AREA_SADDR + 1)

// Tracer L2 3 registers area - 128B
#define C66XX_TRACER_L2_3_RG_AREA_SADDR						0x01d60000
#define C66XX_TRACER_L2_3_RG_AREA_EADDR						0x01d6007f
#define C66XX_TRACER_L2_3_RG_AREA_LEN						(C66XX_TRACER_L2_3_RG_AREA_EADDR - C66XX_TRACER_L2_3_RG_AREA_SADDR + 1)

// Tracer L2 4 registers area - 128B
#define C66XX_TRACER_L2_4_RG_AREA_SADDR						0x01d68000
#define C66XX_TRACER_L2_4_RG_AREA_EADDR						0x01d6807f
#define C66XX_TRACER_L2_4_RG_AREA_LEN						(C66XX_TRACER_L2_4_RG_AREA_EADDR - C66XX_TRACER_L2_4_RG_AREA_SADDR + 1)

// Tracer L2 5 registers area - 128B
#define C66XX_TRACER_L2_5_RG_AREA_SADDR						0x01d70000
#define C66XX_TRACER_L2_5_RG_AREA_EADDR						0x01d7007f
#define C66XX_TRACER_L2_5_RG_AREA_LEN						(C66XX_TRACER_L2_5_RG_AREA_EADDR - C66XX_TRACER_L2_5_RG_AREA_SADDR + 1)

// Tracer L2 6 registers area - 128B
#define C66XX_TRACER_L2_6_RG_AREA_SADDR						0x01d78000
#define C66XX_TRACER_L2_6_RG_AREA_EADDR						0x01d7807f
#define C66XX_TRACER_L2_6_RG_AREA_LEN						(C66XX_TRACER_L2_6_RG_AREA_EADDR - C66XX_TRACER_L2_6_RG_AREA_SADDR + 1)

// Tracer L2 7 registers area - 128B
#define C66XX_TRACER_L2_7_RG_AREA_SADDR						0x01d80000
#define C66XX_TRACER_L2_7_RG_AREA_EADDR						0x01d8007f
#define C66XX_TRACER_L2_7_RG_AREA_LEN						(C66XX_TRACER_L2_7_RG_AREA_EADDR - C66XX_TRACER_L2_7_RG_AREA_SADDR + 1)

// Telecom Serial Interface Port (TSIP) 0 registers area - 256KB
#define C66XX_TSIP_0_RG_AREA_SADDR							0x01e00000
#define C66XX_TSIP_0_RG_AREA_EADDR							0x01e3ffff
#define C66XX_TSIP_0_RG_AREA_LEN							(C66XX_TSIP_0_RG_AREA_EADDR - C66XX_TSIP_0_RG_AREA_SADDR + 1)

// Telecom Serial Interface Port (TSIP) 1 registers area - 256KB
#define C66XX_TSIP_1_RG_AREA_SADDR							0x01e80000
#define C66XX_TSIP_1_RG_AREA_EADDR							0x01ebffff
#define C66XX_TSIP_1_RG_AREA_LEN							(C66XX_TSIP_1_RG_AREA_EADDR - C66XX_TSIP_1_RG_AREA_SADDR + 1)

// Network Coprocessor (NETCP) registers area - 1MB
#define C66XX_NETCP_RG_AREA_SADDR							0x02000000
#define C66XX_NETCP_RG_AREA_EADDR							0x020fffff
#define C66XX_NETCP_RG_AREA_LEN								(C66XX_NETCP_RG_AREA_EADDR - C66XX_NETCP_RG_AREA_SADDR + 1)

// Timer0 registers area - 128B
#define C66XX_TIMER_0_RG_AREA_SADDR							0x02200000
#define C66XX_TIMER_0_RG_AREA_EADDR							0x0220007f
#define C66XX_TIMER_0_RG_AREA_LEN							(C66XX_TIMER_0_RG_AREA_EADDR - C66XX_TIMER_0_RG_AREA_SADDR + 1)

// Timer1 registers area - 128B
#define C66XX_TIMER_1_RG_AREA_SADDR							0x02210000
#define C66XX_TIMER_1_RG_AREA_EADDR							0x0221007f
#define C66XX_TIMER_1_RG_AREA_LEN							(C66XX_TIMER_1_RG_AREA_EADDR - C66XX_TIMER_1_RG_AREA_SADDR + 1)

// Timer2 registers area - 128B
#define C66XX_TIMER_2_RG_AREA_SADDR							0x02220000
#define C66XX_TIMER_2_RG_AREA_EADDR							0x0222007f
#define C66XX_TIMER_2_RG_AREA_LEN							(C66XX_TIMER_2_RG_AREA_EADDR - C66XX_TIMER_2_RG_AREA_SADDR + 1)

// Timer3 registers area - 128B
#define C66XX_TIMER_3_RG_AREA_SADDR							0x02230000
#define C66XX_TIMER_3_RG_AREA_EADDR							0x0223007f
#define C66XX_TIMER_3_RG_AREA_LEN							(C66XX_TIMER_3_RG_AREA_EADDR - C66XX_TIMER_3_RG_AREA_SADDR + 1)

// Timer4 registers area - 128B
#define C66XX_TIMER_4_RG_AREA_SADDR							0x02240000
#define C66XX_TIMER_4_RG_AREA_EADDR							0x0224007f
#define C66XX_TIMER_4_RG_AREA_LEN							(C66XX_TIMER_4_RG_AREA_EADDR - C66XX_TIMER_4_RG_AREA_SADDR + 1)

// Timer5 registers area - 128B
#define C66XX_TIMER_5_RG_AREA_SADDR							0x02250000
#define C66XX_TIMER_5_RG_AREA_EADDR							0x0225007f
#define C66XX_TIMER_5_RG_AREA_LEN							(C66XX_TIMER_5_RG_AREA_EADDR - C66XX_TIMER_5_RG_AREA_SADDR + 1)

// Timer6 registers area - 128B
#define C66XX_TIMER_6_RG_AREA_SADDR							0x02260000
#define C66XX_TIMER_6_RG_AREA_EADDR							0x0226007f
#define C66XX_TIMER_6_RG_AREA_LEN							(C66XX_TIMER_6_RG_AREA_EADDR - C66XX_TIMER_6_RG_AREA_SADDR + 1)

// Timer7 registers area - 128B
#define C66XX_TIMER_7_RG_AREA_SADDR							0x02270000
#define C66XX_TIMER_7_RG_AREA_EADDR							0x0227007f
#define C66XX_TIMER_7_RG_AREA_LEN							(C66XX_TIMER_7_RG_AREA_EADDR - C66XX_TIMER_7_RG_AREA_SADDR + 1)

// Timer8 registers area - 128B
#define C66XX_TIMER_8_RG_AREA_SADDR							0x02280000
#define C66XX_TIMER_8_RG_AREA_EADDR							0x0228007f
#define C66XX_TIMER_8_RG_AREA_LEN							(C66XX_TIMER_8_RG_AREA_EADDR - C66XX_TIMER_8_RG_AREA_SADDR + 1)

// Timer9 registers area - 128B
#define C66XX_TIMER_9_RG_AREA_SADDR							0x02290000
#define C66XX_TIMER_9_RG_AREA_EADDR							0x0229007f
#define C66XX_TIMER_9_RG_AREA_LEN							(C66XX_TIMER_9_RG_AREA_EADDR - C66XX_TIMER_9_RG_AREA_SADDR + 1)

// Timer10 registers area - 128B
#define C66XX_TIMER_10_RG_AREA_SADDR						0x022a0000
#define C66XX_TIMER_10_RG_AREA_EADDR						0x022a007f
#define C66XX_TIMER_10_RG_AREA_LEN							(C66XX_TIMER_10_RG_AREA_EADDR - C66XX_TIMER_10_RG_AREA_SADDR + 1)

// Timer11 registers area - 128B
#define C66XX_TIMER_11_RG_AREA_SADDR						0x022b0000
#define C66XX_TIMER_11_RG_AREA_EADDR						0x022b007f
#define C66XX_TIMER_11_RG_AREA_LEN							(C66XX_TIMER_11_RG_AREA_EADDR - C66XX_TIMER_11_RG_AREA_SADDR + 1)

// Timer12 registers area - 128B
#define C66XX_TIMER_12_RG_AREA_SADDR						0x022c0000
#define C66XX_TIMER_12_RG_AREA_EADDR						0x022c007f
#define C66XX_TIMER_12_RG_AREA_LEN							(C66XX_TIMER_12_RG_AREA_EADDR - C66XX_TIMER_12_RG_AREA_SADDR + 1)

// Timer13 registers area - 128B
#define C66XX_TIMER_13_RG_AREA_SADDR						0x022d0000
#define C66XX_TIMER_13_RG_AREA_EADDR						0x022d007f
#define C66XX_TIMER_13_RG_AREA_LEN							(C66XX_TIMER_13_RG_AREA_EADDR - C66XX_TIMER_13_RG_AREA_SADDR + 1)

// Timer14 registers area - 128B
#define C66XX_TIMER_14_RG_AREA_SADDR						0x022e0000
#define C66XX_TIMER_14_RG_AREA_EADDR						0x022e007f
#define C66XX_TIMER_14_RG_AREA_LEN							(C66XX_TIMER_14_RG_AREA_EADDR - C66XX_TIMER_14_RG_AREA_SADDR + 1)

// Timer15 registers area - 128B
#define C66XX_TIMER_15_RG_AREA_SADDR						0x022f0000
#define C66XX_TIMER_15_RG_AREA_EADDR						0x022f007f
#define C66XX_TIMER_15_RG_AREA_LEN							(C66XX_TIMER_15_RG_AREA_EADDR - C66XX_TIMER_15_RG_AREA_SADDR + 1)

// PLL controller registers area - 512B
#define C66XX_PLL_RG_AREA_SADDR								0x02310000
#define C66XX_PLL_RG_AREA_EADDR								0x023101ff
#define C66XX_PLL_RG_AREA_LEN								(C66XX_PLL_RG_AREA_EADDR - C66XX_PLL_RG_AREA_SADDR + 1)

// GPIO registers area - 256B
#define C66XX_GPIO_RG_AREA_SADDR							0x02320000
#define C66XX_GPIO_RG_AREA_EADDR							0x023200ff
#define C66XX_GPIO_RG_AREA_LEN								(C66XX_GPIO_RG_AREA_EADDR - C66XX_GPIO_RG_AREA_SADDR + 1)

// SmartReflex registers area - 256B
#define C66XX_SMARTREFLEX_RG_AREA_SADDR						0x02330000
#define C66XX_SMARTREFLEX_RG_AREA_EADDR						0x023303ff
#define C66XX_SMARTREFLEX_RG_AREA_LEN						(C66XX_SMARTREFLEX_RG_AREA_EADDR - C66XX_SMARTREFLEX_RG_AREA_SADDR + 1)

// Power Sleep Controller (PSC) registers area - 4KB
#define C66XX_PSC_RG_AREA_SADDR								0x02350000
#define C66XX_PSC_RG_AREA_EADDR								0x02350fff
#define C66XX_PSC_RG_AREA_LEN								(C66XX_PSC_RG_AREA_EADDR - C66XX_PSC_RG_AREA_SADDR + 1)

// Memory Protection Unit (MPU) 0 registers area - 1KB
#define C66XX_MPU_0_RG_AREA_SADDR							0x02360000
#define C66XX_MPU_0_RG_AREA_EADDR							0x023603ff
#define C66XX_MPU_0_RG_AREA_LEN								(C66XX_MPU_0_RG_AREA_EADDR - C66XX_MPU_0_RG_AREA_SADDR + 1)

// Memory Protection Unit (MPU) 1 registers area - 1KB
#define C66XX_MPU_1_RG_AREA_SADDR							0x02368000
#define C66XX_MPU_1_RG_AREA_EADDR							0x023683ff
#define C66XX_MPU_1_RG_AREA_LEN								(C66XX_MPU_1_RG_AREA_EADDR - C66XX_MPU_1_RG_AREA_SADDR + 1)

// Memory Protection Unit (MPU) 2 registers area - 1KB
#define C66XX_MPU_2_RG_AREA_SADDR							0x02370000
#define C66XX_MPU_2_RG_AREA_EADDR							0x023703ff
#define C66XX_MPU_2_RG_AREA_LEN								(C66XX_MPU_2_RG_AREA_EADDR - C66XX_MPU_2_RG_AREA_SADDR + 1)

// Memory Protection Unit (MPU) 3 registers area - 1KB
#define C66XX_MPU_3_RG_AREA_SADDR							0x02378000
#define C66XX_MPU_3_RG_AREA_EADDR							0x023783ff
#define C66XX_MPU_3_RG_AREA_LEN								(C66XX_MPU_3_RG_AREA_EADDR - C66XX_MPU_3_RG_AREA_SADDR + 1)

// Debug subsystem configuration registers area - 256KB
#define C66XX_DEBUG_CFG_RG_AREA_SADDR						0x02400000
#define C66XX_DEBUG_CFG_RG_AREA_EADDR						0x0243ffff
#define C66XX_DEBUG_CFG_RG_AREA_LEN							(C66XX_DEBUG_CFG_RG_AREA_EADDR - C66XX_DEBUG_CFG_RG_AREA_SADDR + 1)

// DSP trace formatter 0 registers area - 16KB
#define C66XX_DSP_TRACE_FORMATTER_0_RG_AREA_SADDR			0x02440000
#define C66XX_DSP_TRACE_FORMATTER_0_RG_AREA_EADDR			0x02443fff
#define C66XX_DSP_TRACE_FORMATTER_0_RG_AREA_LEN				(C66XX_DSP_TRACE_FORMATTER_0_RG_AREA_EADDR - C66XX_DSP_TRACE_FORMATTER_0_RG_AREA_SADDR + 1)

// DSP trace formatter 1 registers area - 16KB
#define C66XX_DSP_TRACE_FORMATTER_1_RG_AREA_SADDR			0x02450000
#define C66XX_DSP_TRACE_FORMATTER_1_RG_AREA_EADDR			0x02453fff
#define C66XX_DSP_TRACE_FORMATTER_1_RG_AREA_LEN				(C66XX_DSP_TRACE_FORMATTER_1_RG_AREA_EADDR - C66XX_DSP_TRACE_FORMATTER_1_RG_AREA_SADDR + 1)

// DSP trace formatter 2 registers area - 16KB
#define C66XX_DSP_TRACE_FORMATTER_2_RG_AREA_SADDR			0x02460000
#define C66XX_DSP_TRACE_FORMATTER_2_RG_AREA_EADDR			0x02463fff
#define C66XX_DSP_TRACE_FORMATTER_2_RG_AREA_LEN				(C66XX_DSP_TRACE_FORMATTER_2_RG_AREA_EADDR - C66XX_DSP_TRACE_FORMATTER_2_RG_AREA_SADDR + 1)

// DSP trace formatter 3 registers area - 16KB
#define C66XX_DSP_TRACE_FORMATTER_3_RG_AREA_SADDR			0x02470000
#define C66XX_DSP_TRACE_FORMATTER_3_RG_AREA_EADDR			0x02473fff
#define C66XX_DSP_TRACE_FORMATTER_3_RG_AREA_LEN				(C66XX_DSP_TRACE_FORMATTER_3_RG_AREA_EADDR - C66XX_DSP_TRACE_FORMATTER_3_RG_AREA_SADDR + 1)

// DSP trace formatter 4 registers area - 16KB
#define C66XX_DSP_TRACE_FORMATTER_4_RG_AREA_SADDR			0x02480000
#define C66XX_DSP_TRACE_FORMATTER_4_RG_AREA_EADDR			0x02483fff
#define C66XX_DSP_TRACE_FORMATTER_4_RG_AREA_LEN				(C66XX_DSP_TRACE_FORMATTER_4_RG_AREA_EADDR - C66XX_DSP_TRACE_FORMATTER_4_RG_AREA_SADDR + 1)

// DSP trace formatter 5 registers area - 16KB
#define C66XX_DSP_TRACE_FORMATTER_5_RG_AREA_SADDR			0x02490000
#define C66XX_DSP_TRACE_FORMATTER_5_RG_AREA_EADDR			0x02493fff
#define C66XX_DSP_TRACE_FORMATTER_5_RG_AREA_LEN				(C66XX_DSP_TRACE_FORMATTER_5_RG_AREA_EADDR - C66XX_DSP_TRACE_FORMATTER_5_RG_AREA_SADDR + 1)

// DSP trace formatter 6 registers area - 16KB
#define C66XX_DSP_TRACE_FORMATTER_6_RG_AREA_SADDR			0x024a0000
#define C66XX_DSP_TRACE_FORMATTER_6_RG_AREA_EADDR			0x024a3fff
#define C66XX_DSP_TRACE_FORMATTER_6_RG_AREA_LEN				(C66XX_DSP_TRACE_FORMATTER_6_RG_AREA_EADDR - C66XX_DSP_TRACE_FORMATTER_6_RG_AREA_SADDR + 1)

// DSP trace formatter 7 registers area - 16KB
#define C66XX_DSP_TRACE_FORMATTER_7_RG_AREA_SADDR			0x024b0000
#define C66XX_DSP_TRACE_FORMATTER_7_RG_AREA_EADDR			0x024b3fff
#define C66XX_DSP_TRACE_FORMATTER_7_RG_AREA_LEN				(C66XX_DSP_TRACE_FORMATTER_7_RG_AREA_EADDR - C66XX_DSP_TRACE_FORMATTER_7_RG_AREA_SADDR + 1)

// I2C registers area - 128B
#define C66XX_I2C_RG_AREA_SADDR								0x02530000
#define C66XX_I2C_RG_AREA_EADDR								0x0253007f
#define C66XX_I2C_RG_AREA_LEN								(C66XX_I2C_RG_AREA_EADDR - C66XX_I2C_RG_AREA_SADDR + 1)

// UART registers area - 64B
#define C66XX_UART_RG_AREA_SADDR							0x02540000
#define C66XX_UART_RG_AREA_EADDR							0x0254003f
#define C66XX_UART_RG_AREA_LEN								(C66XX_UART_RG_AREA_EADDR - C66XX_UART_RG_AREA_SADDR + 1)

// Chip Interrupt Controller (CIC) 0 registers area - 8KB
#define C66XX_CIC_0_RG_AREA_SADDR							0x02600000
#define C66XX_CIC_0_RG_AREA_EADDR							0x02601fff
#define C66XX_CIC_0_RG_AREA_LEN								(C66XX_CIC_0_RG_AREA_EADDR - C66XX_CIC_0_RG_AREA_SADDR + 1)

// Chip Interrupt Controller (CIC) 1 registers area - 8KB
#define C66XX_CIC_1_RG_AREA_SADDR							0x02604000
#define C66XX_CIC_1_RG_AREA_EADDR							0x02605fff
#define C66XX_CIC_1_RG_AREA_LEN								(C66XX_CIC_1_RG_AREA_EADDR - C66XX_CIC_1_RG_AREA_SADDR + 1)

// Chip Interrupt Controller (CIC) 2 registers area - 8KB
#define C66XX_CIC_2_RG_AREA_SADDR							0x02608000
#define C66XX_CIC_2_RG_AREA_EADDR							0x02609fff
#define C66XX_CIC_2_RG_AREA_LEN								(C66XX_CIC_2_RG_AREA_EADDR - C66XX_CIC_2_RG_AREA_SADDR + 1)

// Chip Interrupt Controller (CIC) 3 registers area - 8KB
#define C66XX_CIC_3_RG_AREA_SADDR							0x0260c000
#define C66XX_CIC_3_RG_AREA_EADDR							0x0260dfff
#define C66XX_CIC_3_RG_AREA_LEN								(C66XX_CIC_3_RG_AREA_EADDR - C66XX_CIC_3_RG_AREA_SADDR + 1)

// Device State Control registers area - 2KB
#define C66XX_BOOTCFG_RG_AREA_SADDR							0x02620000
#define C66XX_BOOTCFG_RG_AREA_EADDR							0x026207ff
#define C66XX_BOOTCFG_RG_AREA_LEN							(C66XX_BOOTCFG_RG_AREA_EADDR - C66XX_BOOTCFG_RG_AREA_SADDR + 1)

// Semaphore (SEM) registers area - 2KB
#define C66XX_SEM_RG_AREA_SADDR								0x02640000
#define C66XX_SEM_RG_AREA_EADDR								0x026407ff
#define C66XX_SEM_RG_AREA_LEN								(C66XX_SEM_RG_AREA_EADDR - C66XX_SEM_RG_AREA_SADDR + 1)

// EDMA3 Channel Controller (EDMA3CC) 0 registers area - 32KB
#define C66XX_EDMA3CC_0_RG_AREA_SADDR						0x02700000
#define C66XX_EDMA3CC_0_RG_AREA_EADDR						0x02707fff
#define C66XX_EDMA3CC_0_RG_AREA_LEN							(C66XX_EDMA3CC_0_RG_AREA_EADDR - C66XX_EDMA3CC_0_RG_AREA_SADDR + 1)

// EDMA3 Channel Controller (EDMA3CC) 1 registers area - 32KB
#define C66XX_EDMA3CC_1_RG_AREA_SADDR						0x02720000
#define C66XX_EDMA3CC_1_RG_AREA_EADDR						0x02727fff
#define C66XX_EDMA3CC_1_RG_AREA_LEN							(C66XX_EDMA3CC_1_RG_AREA_EADDR - C66XX_EDMA3CC_1_RG_AREA_SADDR + 1)

// EDMA3 Channel Controller (EDMA3CC) 2 registers area - 32KB
#define C66XX_EDMA3CC_2_RG_AREA_SADDR						0x02740000
#define C66XX_EDMA3CC_2_RG_AREA_EADDR						0x02747fff
#define C66XX_EDMA3CC_2_RG_AREA_LEN							(C66XX_EDMA3CC_2_RG_AREA_EADDR - C66XX_EDMA3CC_2_RG_AREA_SADDR + 1)

// EDMA3CC0 Transfer Controller (EDMA3TC) 0 registers area - 1KB
#define C66XX_EDMA3CC_0_TC_0_RG_AREA_SADDR					0x02760000
#define C66XX_EDMA3CC_0_TC_0_RG_AREA_EADDR					0x027603ff
#define C66XX_EDMA3CC_0_TC_0_RG_AREA_LEN					(C66XX_EDMA3CC_0_TC_0_RG_AREA_EADDR - C66XX_EDMA3CC_0_TC_0_RG_AREA_SADDR + 1)

// EDMA3CC0 Transfer Controller (EDMA3TC) 1 registers area - 1KB
#define C66XX_EDMA3CC_0_TC_1_RG_AREA_SADDR					0x02768000
#define C66XX_EDMA3CC_0_TC_1_RG_AREA_EADDR					0x027683ff
#define C66XX_EDMA3CC_0_TC_1_RG_AREA_LEN					(C66XX_EDMA3CC_0_TC_1_RG_AREA_EADDR - C66XX_EDMA3CC_0_TC_1_RG_AREA_SADDR + 1)

// EDMA3CC1 Transfer Controller (EDMA3TC) 0 registers area - 1KB
#define C66XX_EDMA3CC_1_TC_0_RG_AREA_SADDR					0x02770000
#define C66XX_EDMA3CC_1_TC_0_RG_AREA_EADDR					0x027703ff
#define C66XX_EDMA3CC_1_TC_0_RG_AREA_LEN					(C66XX_EDMA3CC_1_TC_0_RG_AREA_EADDR - C66XX_EDMA3CC_1_TC_0_RG_AREA_SADDR + 1)

// EDMA3CC1 Transfer Controller (EDMA3TC) 1 registers area - 1KB
#define C66XX_EDMA3CC_1_TC_1_RG_AREA_SADDR					0x02778000
#define C66XX_EDMA3CC_1_TC_1_RG_AREA_EADDR					0x027783ff
#define C66XX_EDMA3CC_1_TC_1_RG_AREA_LEN					(C66XX_EDMA3CC_1_TC_1_RG_AREA_EADDR - C66XX_EDMA3CC_1_TC_1_RG_AREA_SADDR + 1)

// EDMA3CC1 Transfer Controller (EDMA3TC) 2 registers area - 1KB
#define C66XX_EDMA3CC_1_TC_2_RG_AREA_SADDR					0x02780000
#define C66XX_EDMA3CC_1_TC_2_RG_AREA_EADDR					0x027803ff
#define C66XX_EDMA3CC_1_TC_2_RG_AREA_LEN					(C66XX_EDMA3CC_1_TC_2_RG_AREA_EADDR - C66XX_EDMA3CC_1_TC_2_RG_AREA_SADDR + 1)

// EDMA3CC1 Transfer Controller (EDMA3TC) 3 registers area - 1KB
#define C66XX_EDMA3CC_1_TC_3_RG_AREA_SADDR					0x02788000
#define C66XX_EDMA3CC_1_TC_3_RG_AREA_EADDR					0x027883ff
#define C66XX_EDMA3CC_1_TC_3_RG_AREA_LEN					(C66XX_EDMA3CC_1_TC_3_RG_AREA_EADDR - C66XX_EDMA3CC_1_TC_3_RG_AREA_SADDR + 1)

// EDMA3CC2 Transfer Controller (EDMA3TC) 0 registers area - 1KB
#define C66XX_EDMA3CC_2_TC_0_RG_AREA_SADDR					0x02790000
#define C66XX_EDMA3CC_2_TC_0_RG_AREA_EADDR					0x027903ff
#define C66XX_EDMA3CC_2_TC_0_RG_AREA_LEN					(C66XX_EDMA3CC_2_TC_0_RG_AREA_EADDR - C66XX_EDMA3CC_2_TC_0_RG_AREA_SADDR + 1)

// EDMA3CC2 Transfer Controller (EDMA3TC) 1 registers area - 1KB
#define C66XX_EDMA3CC_2_TC_1_RG_AREA_SADDR					0x02798000
#define C66XX_EDMA3CC_2_TC_1_RG_AREA_EADDR					0x027983ff
#define C66XX_EDMA3CC_2_TC_1_RG_AREA_LEN					(C66XX_EDMA3CC_2_TC_1_RG_AREA_EADDR - C66XX_EDMA3CC_2_TC_1_RG_AREA_SADDR + 1)

// EDMA3CC2 Transfer Controller (EDMA3TC) 2 registers area - 1KB
#define C66XX_EDMA3CC_2_TC_2_RG_AREA_SADDR					0x027a0000
#define C66XX_EDMA3CC_2_TC_2_RG_AREA_EADDR					0x027a03ff
#define C66XX_EDMA3CC_2_TC_2_RG_AREA_LEN					(C66XX_EDMA3CC_2_TC_2_RG_AREA_EADDR - C66XX_EDMA3CC_2_TC_2_RG_AREA_SADDR + 1)

// EDMA3CC2 Transfer Controller (EDMA3TC) 3 registers area - 1KB
#define C66XX_EDMA3CC_2_TC_3_RG_AREA_SADDR					0x027a8000
#define C66XX_EDMA3CC_2_TC_3_RG_AREA_EADDR					0x027a83ff
#define C66XX_EDMA3CC_2_TC_3_RG_AREA_LEN					(C66XX_EDMA3CC_2_TC_3_RG_AREA_EADDR - C66XX_EDMA3CC_2_TC_3_RG_AREA_SADDR + 1)

// TI embedded trace buffer (TETB) CorePac0 registers area - 4KB
#define C66XX_TETB_0_RG_AREA_SADDR							0x027d0000
#define C66XX_TETB_0_RG_AREA_EADDR							0x027d0fff
#define C66XX_TETB_0_RG_AREA_LEN							(C66XX_TETB_0_RG_AREA_EADDR - C66XX_TETB_0_RG_AREA_SADDR + 1)

// TI embedded trace buffer (TETB) CorePac1 registers area - 4KB
#define C66XX_TETB_1_RG_AREA_SADDR							0x027e0000
#define C66XX_TETB_1_RG_AREA_EADDR							0x027e0fff
#define C66XX_TETB_1_RG_AREA_LEN							(C66XX_TETB_1_RG_AREA_EADDR - C66XX_TETB_1_RG_AREA_SADDR + 1)

// TI embedded trace buffer (TETB) CorePac2 registers area - 4KB
#define C66XX_TETB_2_RG_AREA_SADDR							0x027f0000
#define C66XX_TETB_2_RG_AREA_EADDR							0x027f0fff
#define C66XX_TETB_2_RG_AREA_LEN							(C66XX_TETB_2_RG_AREA_EADDR - C66XX_TETB_2_RG_AREA_SADDR + 1)

// TI embedded trace buffer (TETB) CorePac3 registers area - 4KB
#define C66XX_TETB_3_RG_AREA_SADDR							0x02800000
#define C66XX_TETB_3_RG_AREA_EADDR							0x02800fff
#define C66XX_TETB_3_RG_AREA_LEN							(C66XX_TETB_3_RG_AREA_EADDR - C66XX_TETB_3_RG_AREA_SADDR + 1)

// TI embedded trace buffer (TETB) CorePac4 registers area - 4KB
#define C66XX_TETB_4_RG_AREA_SADDR							0x02810000
#define C66XX_TETB_4_RG_AREA_EADDR							0x02810fff
#define C66XX_TETB_4_RG_AREA_LEN							(C66XX_TETB_4_RG_AREA_EADDR - C66XX_TETB_4_RG_AREA_SADDR + 1)

// TI embedded trace buffer (TETB) CorePac5 registers area - 4KB
#define C66XX_TETB_5_RG_AREA_SADDR							0x02820000
#define C66XX_TETB_5_RG_AREA_EADDR							0x02820fff
#define C66XX_TETB_5_RG_AREA_LEN							(C66XX_TETB_5_RG_AREA_EADDR - C66XX_TETB_5_RG_AREA_SADDR + 1)

// TI embedded trace buffer (TETB) CorePac6 registers area - 4KB
#define C66XX_TETB_6_RG_AREA_SADDR							0x02830000
#define C66XX_TETB_6_RG_AREA_EADDR							0x02830fff
#define C66XX_TETB_6_RG_AREA_LEN							(C66XX_TETB_6_RG_AREA_EADDR - C66XX_TETB_6_RG_AREA_SADDR + 1)

// TI embedded trace buffer (TETB) CorePac7 registers area - 4KB
#define C66XX_TETB_7_RG_AREA_SADDR							0x02840000
#define C66XX_TETB_7_RG_AREA_EADDR							0x02840fff
#define C66XX_TETB_7_RG_AREA_LEN							(C66XX_TETB_7_RG_AREA_EADDR - C66XX_TETB_7_RG_AREA_SADDR + 1)

// TI embedded trace buffer (TETB) system registers area - 32KB
#define C66XX_TETB_SYSTEM_RG_AREA_SADDR						0x02850000
#define C66XX_TETB_SYSTEM_RG_AREA_EADDR						0x02857fff
#define C66XX_TETB_SYSTEM_RG_AREA_LEN						(C66XX_TETB_SYSTEM_RG_AREA_EADDR - C66XX_TETB_SYSTEM_RG_AREA_SADDR + 1)

// Serial RapidIO (SRIO) configuration registers area - 132KB
#define C66XX_SRIO_RG_AREA_SADDR							0x02900000
#define C66XX_SRIO_RG_AREA_EADDR							0x02920fff
#define C66XX_SRIO_RG_AREA_LEN								(C66XX_SRIO_RG_AREA_EADDR - C66XX_SRIO_RG_AREA_SADDR + 1)

// Queue manager subsystem (QMSS) configuration registers area - 2MB
#define C66XX_QMSS_RG_AREA_SADDR							0x02a00000
#define C66XX_QMSS_RG_AREA_EADDR							0x02bfffff
#define C66XX_QMSS_RG_AREA_LEN								(C66XX_QMSS_RG_AREA_EADDR - C66XX_QMSS_RG_AREA_SADDR + 1)

// Extended memory controller (XMC) configuration registers area - 64KB
#define C66XX_XMC_RG_AREA_SADDR								0x08000000
#define C66XX_XMC_RG_AREA_EADDR								0x0800ffff
#define C66XX_XMC_RG_AREA_LEN								(C66XX_XMC_RG_AREA_EADDR - C66XX_XMC_RG_AREA_SADDR + 1)

// Multicore shared memory controller (MSMC) configuration registers area - 1MB
#define C66XX_MSMC_RG_AREA_SADDR							0x0bc00000
#define C66XX_MSMC_RG_AREA_EADDR							0x0bcfffff
#define C66XX_MSMC_RG_AREA_LEN								(C66XX_MSMC_RG_AREA_EADDR - C66XX_MSMC_RG_AREA_SADDR + 1)

// Multicore shared memory (MSM) area - 4MB
#define C66XX_MSM_SRAM_AREA_SADDR							0x0c000000
#define C66XX_MSM_SRAM_AREA_EADDR							0x0c3fffff
#define C66XX_MSM_SRAM_AREA_LEN								(C66XX_MSM_SRAM_AREA_EADDR - C66XX_MSM_SRAM_AREA_SADDR + 1)

// CorePac0 L2 SRAM (address to access from external masters) - 512KB
#define C66XX_DSP_0_L2_SRAM_SADDR							0x10800000
#define C66XX_DSP_0_L2_SRAM_EADDR							0x1087ffff
#define C66XX_DSP_0_L2_SRAM_LEN								(C66XX_DSP_0_L2_SRAM_EADDR - C66XX_DSP_0_L2_SRAM_SADDR + 1)

// CorePac0 L1P SRAM - 32KB
#define C66XX_DSP_0_L1P_SRAM_SADDR							0x10e00000
#define C66XX_DSP_0_L1P_SRAM_EADDR							0x10e07fff
#define C66XX_DSP_0_L1P_SRAM_LEN							(C66XX_DSP_0_L1P_SRAM_EADDR - C66XX_DSP_0_L1P_SRAM_SADDR + 1)

// CorePac0 L1D SRAM - 32KB
#define C66XX_DSP_0_L1D_SRAM_SADDR							0x10f00000
#define C66XX_DSP_0_L1D_SRAM_EADDR							0x10f07fff
#define C66XX_DSP_0_L1D_SRAM_LEN							(C66XX_DSP_0_L1D_SRAM_EADDR - C66XX_DSP_0_L1D_SRAM_SADDR + 1)

// CorePac1 L2 SRAM (address to access from external masters) - 512KB
#define C66XX_DSP_1_L2_SRAM_SADDR							0x11800000
#define C66XX_DSP_1_L2_SRAM_EADDR							0x1187ffff
#define C66XX_DSP_1_L2_SRAM_LEN								(C66XX_DSP_1_L2_SRAM_EADDR - C66XX_DSP_1_L2_SRAM_SADDR + 1)

// CorePac1 L1P SRAM - 32KB
#define C66XX_DSP_1_L1P_SRAM_SADDR							0x11e00000
#define C66XX_DSP_1_L1P_SRAM_EADDR							0x11e07fff
#define C66XX_DSP_1_L1P_SRAM_LEN							(C66XX_DSP_1_L1P_SRAM_EADDR - C66XX_DSP_1_L1P_SRAM_SADDR + 1)

// CorePac1 L1D SRAM - 32KB
#define C66XX_DSP_1_L1D_SRAM_SADDR							0x11f00000
#define C66XX_DSP_1_L1D_SRAM_EADDR							0x11f07fff
#define C66XX_DSP_1_L1D_SRAM_LEN							(C66XX_DSP_1_L1D_SRAM_EADDR - C66XX_DSP_1_L1D_SRAM_SADDR + 1)

// CorePac2 L2 SRAM (address to access from external masters) - 512KB
#define C66XX_DSP_2_L2_SRAM_SADDR							0x12800000
#define C66XX_DSP_2_L2_SRAM_EADDR							0x1287ffff
#define C66XX_DSP_2_L2_SRAM_LEN								(C66XX_DSP_2_L2_SRAM_EADDR - C66XX_DSP_2_L2_SRAM_SADDR + 1)

// CorePac2 L1P SRAM - 32KB
#define C66XX_DSP_2_L1P_SRAM_SADDR							0x12e00000
#define C66XX_DSP_2_L1P_SRAM_EADDR							0x12e07fff
#define C66XX_DSP_2_L1P_SRAM_LEN							(C66XX_DSP_2_L1P_SRAM_EADDR - C66XX_DSP_2_L1P_SRAM_SADDR + 1)

// CorePac2 L1D SRAM - 32KB
#define C66XX_DSP_2_L1D_SRAM_SADDR							0x12f00000
#define C66XX_DSP_2_L1D_SRAM_EADDR							0x12f07fff
#define C66XX_DSP_2_L1D_SRAM_LEN							(C66XX_DSP_2_L1D_SRAM_EADDR - C66XX_DSP_2_L1D_SRAM_SADDR + 1)

// CorePac3 L2 SRAM (address to access from external masters) - 512KB
#define C66XX_DSP_3_L2_SRAM_SADDR							0x13800000
#define C66XX_DSP_3_L2_SRAM_EADDR							0x1387ffff
#define C66XX_DSP_3_L2_SRAM_LEN								(C66XX_DSP_3_L2_SRAM_EADDR - C66XX_DSP_3_L2_SRAM_SADDR + 1)

// CorePac3 L1P SRAM - 32KB
#define C66XX_DSP_3_L1P_SRAM_SADDR							0x13e00000
#define C66XX_DSP_3_L1P_SRAM_EADDR							0x13e07fff
#define C66XX_DSP_3_L1P_SRAM_LEN							(C66XX_DSP_3_L1P_SRAM_EADDR - C66XX_DSP_3_L1P_SRAM_SADDR + 1)

// CorePac3 L1D SRAM - 32KB
#define C66XX_DSP_3_L1D_SRAM_SADDR							0x13f00000
#define C66XX_DSP_3_L1D_SRAM_EADDR							0x13f07fff
#define C66XX_DSP_3_L1D_SRAM_LEN							(C66XX_DSP_3_L1D_SRAM_EADDR - C66XX_DSP_3_L1D_SRAM_SADDR + 1)

// CorePac4 L2 SRAM (address to access from external masters) - 512KB
#define C66XX_DSP_4_L2_SRAM_SADDR							0x14800000
#define C66XX_DSP_4_L2_SRAM_EADDR							0x1487ffff
#define C66XX_DSP_4_L2_SRAM_LEN								(C66XX_DSP_4_L2_SRAM_EADDR - C66XX_DSP_4_L2_SRAM_SADDR + 1)

// CorePac4 L1P SRAM - 32KB
#define C66XX_DSP_4_L1P_SRAM_SADDR							0x14e00000
#define C66XX_DSP_4_L1P_SRAM_EADDR							0x14e07fff
#define C66XX_DSP_4_L1P_SRAM_LEN							(C66XX_DSP_4_L1P_SRAM_EADDR - C66XX_DSP_4_L1P_SRAM_SADDR + 1)

// CorePac4 L1D SRAM - 32KB
#define C66XX_DSP_4_L1D_SRAM_SADDR							0x14f00000
#define C66XX_DSP_4_L1D_SRAM_EADDR							0x14f07fff
#define C66XX_DSP_4_L1D_SRAM_LEN							(C66XX_DSP_4_L1D_SRAM_EADDR - C66XX_DSP_4_L1D_SRAM_SADDR + 1)

// CorePac5 L2 SRAM (address to access from external masters) - 512KB
#define C66XX_DSP_5_L2_SRAM_SADDR							0x15800000
#define C66XX_DSP_5_L2_SRAM_EADDR							0x1587ffff
#define C66XX_DSP_5_L2_SRAM_LEN								(C66XX_DSP_5_L2_SRAM_EADDR - C66XX_DSP_5_L2_SRAM_SADDR + 1)

// CorePac5 L1P SRAM - 32KB
#define C66XX_DSP_5_L1P_SRAM_SADDR							0x15e00000
#define C66XX_DSP_5_L1P_SRAM_EADDR							0x15e07fff
#define C66XX_DSP_5_L1P_SRAM_LEN							(C66XX_DSP_5_L1P_SRAM_EADDR - C66XX_DSP_5_L1P_SRAM_SADDR + 1)

// CorePac5 L1D SRAM - 32KB
#define C66XX_DSP_5_L1D_SRAM_SADDR							0x15f00000
#define C66XX_DSP_5_L1D_SRAM_EADDR							0x15f07fff
#define C66XX_DSP_5_L1D_SRAM_LEN							(C66XX_DSP_5_L1D_SRAM_EADDR - C66XX_DSP_5_L1D_SRAM_SADDR + 1)

// CorePac6 L2 SRAM (address to access from external masters) - 512KB
#define C66XX_DSP_6_L2_SRAM_SADDR							0x16800000
#define C66XX_DSP_6_L2_SRAM_EADDR							0x1687ffff
#define C66XX_DSP_6_L2_SRAM_LEN								(C66XX_DSP_6_L2_SRAM_EADDR - C66XX_DSP_6_L2_SRAM_SADDR + 1)

// CorePac6 L1P SRAM - 32KB
#define C66XX_DSP_6_L1P_SRAM_SADDR							0x16e00000
#define C66XX_DSP_6_L1P_SRAM_EADDR							0x16e07fff
#define C66XX_DSP_6_L1P_SRAM_LEN							(C66XX_DSP_6_L1P_SRAM_EADDR - C66XX_DSP_6_L1P_SRAM_SADDR + 1)

// CorePac6 L1D SRAM - 32KB
#define C66XX_DSP_6_L1D_SRAM_SADDR							0x16f00000
#define C66XX_DSP_6_L1D_SRAM_EADDR							0x16f07fff
#define C66XX_DSP_6_L1D_SRAM_LEN							(C66XX_DSP_6_L1D_SRAM_EADDR - C66XX_DSP_6_L1D_SRAM_SADDR + 1)

// CorePac7 L2 SRAM (address to access from external masters) - 512KB
#define C66XX_DSP_7_L2_SRAM_SADDR							0x17800000
#define C66XX_DSP_7_L2_SRAM_EADDR							0x1787ffff
#define C66XX_DSP_7_L2_SRAM_LEN								(C66XX_DSP_7_L2_SRAM_EADDR - C66XX_DSP_7_L2_SRAM_SADDR + 1)

// CorePac7 L1P SRAM - 32KB
#define C66XX_DSP_7_L1P_SRAM_SADDR							0x17e00000
#define C66XX_DSP_7_L1P_SRAM_EADDR							0x17e07fff
#define C66XX_DSP_7_L1P_SRAM_LEN							(C66XX_DSP_7_L1P_SRAM_EADDR - C66XX_DSP_7_L1P_SRAM_SADDR + 1)

// CorePac7 L1D SRAM - 32KB
#define C66XX_DSP_7_L1D_SRAM_SADDR							0x17f00000
#define C66XX_DSP_7_L1D_SRAM_EADDR							0x17f07fff
#define C66XX_DSP_7_L1D_SRAM_LEN							(C66XX_DSP_7_L1D_SRAM_EADDR - C66XX_DSP_7_L1D_SRAM_SADDR + 1)

// System trace manager (STM) configuration registers area - 1MB
#define C66XX_STM_RG_AREA_SADDR								0x20000000
#define C66XX_STM_RG_AREA_EADDR								0x200fffff
#define C66XX_STM_RG_AREA_LEN								(C66XX_STM_RG_AREA_EADDR - C66XX_STM_RG_AREA_SADDR + 1)

// Boot ROM - 128KB
#define C66XX_BOOT_ROM_SADDR								0x20b00000
#define C66XX_BOOT_ROM_EADDR								0x20b1ffff
#define C66XX_BOOT_ROM_LEN									(C66XX_BOOT_ROM_EADDR - C66XX_BOOT_ROM_SADDR + 1)

// SPI configuration registers area - 512B
#define C66XX_SPI_RG_AREA_SADDR								0x20bf0000
#define C66XX_SPI_RG_AREA_EADDR								0x20bf01ff
#define C66XX_SPI_RG_AREA_LEN								(C66XX_SPI_RG_AREA_EADDR - C66XX_SPI_RG_AREA_SADDR + 1)

// EMIF16 configuration registers area - 256B
#define C66XX_EMIF16_RG_AREA_SADDR							0x20c00000
#define C66XX_EMIF16_RG_AREA_EADDR							0x20c000ff
#define C66XX_EMIF16_RG_AREA_LEN							(C66XX_EMIF16_RG_AREA_EADDR - C66XX_EMIF16_RG_AREA_SADDR + 1)

// DDR3 EMIF configuration registers area - 512B
#define C66XX_DDR3_EMIF_RG_AREA_SADDR						0x21000000
#define C66XX_DDR3_EMIF_RG_AREA_EADDR						0x210001ff
#define C66XX_DDR3_EMIF_RG_AREA_LEN							(C66XX_DDR3_EMIF_RG_AREA_EADDR - C66XX_DDR3_EMIF_RG_AREA_SADDR + 1)

// HyperLink configuration registers area - 256B
#define C66XX_HYPERLINK_RG_AREA_SADDR						0x21400000
#define C66XX_HYPERLINK_RG_AREA_EADDR						0x214000ff
#define C66XX_HYPERLINK_RG_AREA_LEN							(C66XX_HYPERLINK_RG_AREA_EADDR - C66XX_HYPERLINK_RG_AREA_SADDR + 1)

// PCIe configuration registers area - 32KB
#define C66XX_PCIE_RG_AREA_SADDR							0x21800000
#define C66XX_PCIE_RG_AREA_EADDR							0x21807fff
#define C66XX_PCIE_RG_AREA_LEN								(C66XX_PCIE_RG_AREA_EADDR - C66XX_PCIE_RG_AREA_SADDR + 1)

// Queue manager subsystem (QMSS) data area - 2MB
#define C66XX_QMSS_DATA_AREA_SADDR							0x34000000
#define C66XX_QMSS_DATA_AREA_EADDR							0x341fffff
#define C66XX_QMSS_DATA_AREA_LEN							(C66XX_QMSS_DATA_AREA_EADDR - C66XX_QMSS_DATA_AREA_SADDR + 1)

// HyperLink data area - 256MB
#define C66XX_HYPERLINK_DATA_AREA_SADDR						0x40000000
#define C66XX_HYPERLINK_DATA_AREA_EADDR						0x4fffffff
#define C66XX_HYPERLINK_DATA_AREA_LEN						(C66XX_HYPERLINK_DATA_AREA_EADDR - C66XX_HYPERLINK_DATA_AREA_SADDR + 1)

// PCIe data area - 256MB
#define C66XX_PCIE_DATA_AREA_SADDR							0x60000000
#define C66XX_PCIE_DATA_AREA_EADDR							0x6fffffff
#define C66XX_PCIE_DATA_AREA_LEN							(C66XX_PCIE_DATA_AREA_EADDR - C66XX_PCIE_DATA_AREA_SADDR + 1)

// EMIF16 CE0 area - 64MB
#define C66XX_EMIF16_CE0_AREA_SADDR							0x70000000
#define C66XX_EMIF16_CE0_AREA_EADDR							0x73ffffff
#define C66XX_EMIF16_CE0_AREA_LEN							(C66XX_EMIF16_CE0_AREA_EADDR - C66XX_EMIF16_CE0_AREA_SADDR + 1)

// EMIF16 CE1 area - 64MB
#define C66XX_EMIF16_CE1_AREA_SADDR							0x74000000
#define C66XX_EMIF16_CE1_AREA_EADDR							0x77ffffff
#define C66XX_EMIF16_CE1_AREA_LEN							(C66XX_EMIF16_CE1_AREA_EADDR - C66XX_EMIF16_CE1_AREA_SADDR + 1)

// EMIF16 CE2 area - 64MB
#define C66XX_EMIF16_CE2_AREA_SADDR							0x78000000
#define C66XX_EMIF16_CE2_AREA_EADDR							0x7bffffff
#define C66XX_EMIF16_CE2_AREA_LEN							(C66XX_EMIF16_CE2_AREA_EADDR - C66XX_EMIF16_CE2_AREA_SADDR + 1)

// EMIF16 CE3 area - 64MB
#define C66XX_EMIF16_CE3_AREA_SADDR							0x7c000000
#define C66XX_EMIF16_CE3_AREA_EADDR							0x7fffffff
#define C66XX_EMIF16_CE3_AREA_LEN							(C66XX_EMIF16_CE3_AREA_EADDR - C66XX_EMIF16_CE3_AREA_SADDR + 1)

// DDR3 EMIF data area - 2GB
#define C66XX_DDR3_AREA_SADDR								0x80000000
#define C66XX_DDR3_AREA_EADDR								0xffffffff
#define C66XX_DDR3_AREA_LEN									(C66XX_DDR3_AREA_EADDR - C66XX_DDR3_AREA_SADDR + 1)

//=============================================================================
#endif /* __C66XX_SELECT_C6678_DSP__ */



//=============================================================================
//============ DSP core registers =============================================
//=============================================================================
// DSP CorePack revision register - r-only
#define C66XX_CORE_MM_REVID_RG_ADDR							0x01812000

//------------ DSP CorePack revision register defs ----------------------------
#define C66XX_CORE_MM_REVID_VERSION_BITMASK					0xffff0000
#define C66XX_CORE_MM_REVID_VERSION_BITSHIFT				16
#define C66XX_CORE_MM_REVID_REVISION_BITMASK				0x0000ffff
#define C66XX_CORE_MM_REVID_REVISION_BITSHIFT				0

#define C66XX_CORE_MM_REVID_VERSION_C6678					0x0008
#define C66XX_CORE_MM_REVID_REVISION_1_0					0x0
#define C66XX_CORE_MM_REVID_REVISION_2_0					0x1


// DSP interrupt controller registers addresses

// DSP Event Flag register 0 - r-only
#define C66XX_CORE_EVTFLAG0_RG_ADDR							0x01800000
// DSP Event Flag register 1 - r-only
#define C66XX_CORE_EVTFLAG1_RG_ADDR							0x01800004
// DSP Event Flag register 2 - r-only
#define C66XX_CORE_EVTFLAG2_RG_ADDR							0x01800008
// DSP Event Flag register 3 - r-only
#define C66XX_CORE_EVTFLAG3_RG_ADDR							0x0180000c
// DSP Event Set register 0 - r/w
#define C66XX_CORE_EVTSET0_RG_ADDR							0x01800020
// DSP Event Set register 1 - r/w
#define C66XX_CORE_EVTSET1_RG_ADDR							0x01800024
// DSP Event Set register 2 - r/w
#define C66XX_CORE_EVTSET2_RG_ADDR							0x01800028
// DSP Event Set register 3 - r/w
#define C66XX_CORE_EVTSET3_RG_ADDR							0x0180002c
// DSP Event Clear register 0 - r/w
#define C66XX_CORE_EVTCLR0_RG_ADDR							0x01800040
// DSP Event Clear register 1 - r/w
#define C66XX_CORE_EVTCLR1_RG_ADDR							0x01800044
// DSP Event Clear register 2 - r/w
#define C66XX_CORE_EVTCLR2_RG_ADDR							0x01800048
// DSP Event Clear register 3 - r/w
#define C66XX_CORE_EVTCLR3_RG_ADDR							0x0180004c
// DSP Event Mask register 0 - r/w
#define C66XX_CORE_EVTMASK0_RG_ADDR							0x01800080
// DSP Event Mask register 1 - r/w
#define C66XX_CORE_EVTMASK1_RG_ADDR							0x01800084
// DSP Event Mask register 2 - r/w
#define C66XX_CORE_EVTMASK2_RG_ADDR							0x01800088
// DSP Event Mask register 3 - r/w
#define C66XX_CORE_EVTMASK3_RG_ADDR							0x0180008c

// DSP Event Flag registers base address
#define C66XX_CORE_EVTFLAG_RG_BADDR							0x01800000
// DSP Event Flag registers offset
#define C66XX_CORE_EVTFLAG_RG_OFFSET						0x00000004

// DSP Event Set registers base address
#define C66XX_CORE_EVTSET_RG_BADDR							0x01800020
// DSP Event Set registers offset
#define C66XX_CORE_EVTSET_RG_OFFSET							0x00000004

// DSP Event Clear registers base address
#define C66XX_CORE_EVTCLR_RG_BADDR							0x01800040
// DSP Event Clear registers offset
#define C66XX_CORE_EVTCLR_RG_OFFSET							0x00000004

// DSP Event Mask registers base address
#define C66XX_CORE_EVTMASK_RG_BADDR							0x01800080
// DSP Event Mask registers offset
#define C66XX_CORE_EVTMASK_RG_OFFSET						0x00000004

//=============================================================================



//=============================================================================
//============ PLL controller registers =======================================
//=============================================================================
// PLL control register - r/w
#define C66XX_PLL_PLLCTL_RG_OFFSET							0x100
// PLL secondary control register - r/w
#define C66XX_PLL_SECCTL_RG_OFFSET							0x108
// PLL multiplier control register - r/w
#define C66XX_PLL_PLLM_RG_OFFSET							0x110
// PLL controller divider 1 register - r/w
#define C66XX_PLL_PLLDIV1_RG_OFFSET							0x118
// PLL controller divider 2 register - r/w
#define C66XX_PLL_PLLDIV2_RG_OFFSET							0x11c
// PLL controller divider 3 register - r/w
#define C66XX_PLL_PLLDIV3_RG_OFFSET							0x120
// PLL controller command register - r/w
#define C66XX_PLL_PLLCMD_RG_OFFSET							0x138
// PLL controller status register - r/w
#define C66XX_PLL_PLLSTAT_RG_OFFSET							0x13c
// PLL controller clock align control register - r/w
#define C66XX_PLL_ALNCTL_RG_OFFSET							0x140
// PLL controller divider ratio change status register - r/w
#define C66XX_PLL_DCHANGE_RG_OFFSET							0x144
// SYSCLK status register - r-only
#define C66XX_PLL_SYSTAT_RG_OFFSET							0x150
// PLL controller divider 4 register - r/w
#define C66XX_PLL_PLLDIV4_RG_OFFSET							0x160
// PLL controller divider 5 register - r/w
#define C66XX_PLL_PLLDIV5_RG_OFFSET							0x164
// PLL controller divider 6 register - r/w
#define C66XX_PLL_PLLDIV6_RG_OFFSET							0x168
// PLL controller divider 7 register - r/w
#define C66XX_PLL_PLLDIV7_RG_OFFSET							0x16c
// PLL controller divider 8 register - r/w
#define C66XX_PLL_PLLDIV8_RG_OFFSET							0x170
// PLL controller divider 9 register - r/w
#define C66XX_PLL_PLLDIV9_RG_OFFSET							0x174
// PLL controller divider 10 register - r/w
#define C66XX_PLL_PLLDIV10_RG_OFFSET						0x178
// PLL controller divider 11 register - r/w
#define C66XX_PLL_PLLDIV11_RG_OFFSET						0x17c
// PLL controller divider 12 register - r/w
#define C66XX_PLL_PLLDIV12_RG_OFFSET						0x180
// PLL controller divider 13 register - r/w
#define C66XX_PLL_PLLDIV13_RG_OFFSET						0x184
// PLL controller divider 14 register - r/w
#define C66XX_PLL_PLLDIV14_RG_OFFSET						0x188
// PLL controller divider 15 register - r/w
#define C66XX_PLL_PLLDIV15_RG_OFFSET						0x18c
// PLL controller divider 16 register - r/w
#define C66XX_PLL_PLLDIV16_RG_OFFSET						0x190

#define C66XX_PLL_PLLCTL_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLCTL_RG_OFFSET)
#define C66XX_PLL_SECCTL_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_SECCTL_RG_OFFSET)
#define C66XX_PLL_PLLM_RG_ADDR								(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLM_RG_OFFSET)
#define C66XX_PLL_PLLDIV1_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLDIV1_RG_OFFSET)
#define C66XX_PLL_PLLDIV2_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLDIV2_RG_OFFSET)
#define C66XX_PLL_PLLDIV3_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLDIV3_RG_OFFSET)
#define C66XX_PLL_PLLCMD_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLCMD_RG_OFFSET)
#define C66XX_PLL_PLLSTAT_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLSTAT_RG_OFFSET)
#define C66XX_PLL_ALNCTL_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_ALNCTL_RG_OFFSET)
#define C66XX_PLL_DCHANGE_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_DCHANGE_RG_OFFSET)
#define C66XX_PLL_SYSTAT_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_SYSTAT_RG_OFFSET)
#define C66XX_PLL_PLLDIV4_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLDIV4_RG_OFFSET)
#define C66XX_PLL_PLLDIV5_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLDIV5_RG_OFFSET)
#define C66XX_PLL_PLLDIV6_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLDIV6_RG_OFFSET)
#define C66XX_PLL_PLLDIV7_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLDIV7_RG_OFFSET)
#define C66XX_PLL_PLLDIV8_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLDIV8_RG_OFFSET)
#define C66XX_PLL_PLLDIV9_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLDIV9_RG_OFFSET)
#define C66XX_PLL_PLLDIV10_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLDIV10_RG_OFFSET)
#define C66XX_PLL_PLLDIV11_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLDIV11_RG_OFFSET)
#define C66XX_PLL_PLLDIV12_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLDIV12_RG_OFFSET)
#define C66XX_PLL_PLLDIV13_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLDIV13_RG_OFFSET)
#define C66XX_PLL_PLLDIV14_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLDIV14_RG_OFFSET)
#define C66XX_PLL_PLLDIV15_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLDIV15_RG_OFFSET)
#define C66XX_PLL_PLLDIV16_RG_ADDR							(C66XX_PLL_RG_AREA_SADDR + C66XX_PLL_PLLDIV16_RG_OFFSET)


//------------ PLL control register defs --------------------------------------
#define C66XX_PLL_PLLCTL_PLLENSRC_BITMASK					0x20
#define C66XX_PLL_PLLCTL_PLLENSRC_BITSHIFT					5
#define C66XX_PLL_PLLCTL_PLLRST_BITMASK						0x8
#define C66XX_PLL_PLLCTL_PLLRST_BITSHIFT					3
#define C66XX_PLL_PLLCTL_PLLPWRDN_BITMASK					0x2
#define C66XX_PLL_PLLCTL_PLLPWRDN_BITSHIFT					1
#define C66XX_PLL_PLLCTL_PLLEN_BITMASK						0x1
#define C66XX_PLL_PLLCTL_PLLEN_BITSHIFT						0


//------------ PLL secondary control register defs ----------------------------
#define C66XX_PLL_SECCTL_BYPASS_BITMASK						0x00800000
#define C66XX_PLL_SECCTL_BYPASS_BITSHIFT					23
#define C66XX_PLL_SECCTL_OUTPUT_DIVIDE_BITMASK				0x00780000
#define C66XX_PLL_SECCTL_OUTPUT_DIVIDE_BITSHIFT				19


//------------ PLL multiplier control register defs ---------------------------
#define C66XX_PLL_PLLM_PLLM_BITMASK							0x3f
#define C66XX_PLL_PLLM_PLLM_BITSHIFT						0


//------------ PLL controller divider registers defs --------------------------
#define C66XX_PLL_PLLDIV_DEN_BITMASK						0x8000
#define C66XX_PLL_PLLDIV_DEN_BITSHIFT						15
#define C66XX_PLL_PLLDIV_RATIO_BITMASK						0xff
#define C66XX_PLL_PLLDIV_RATIO_BITSHIFT						0


//------------ PLL controller command register defs ---------------------------
#define C66XX_PLL_PLLCMD_GOSET_BITMASK						0x1
#define C66XX_PLL_PLLCMD_GOSET_BITSHIFT						0


//------------ PLL controller status register defs ----------------------------
#define C66XX_PLL_PLLSTAT_GOSTAT_BITMASK					0x1
#define C66XX_PLL_PLLSTAT_GOSTAT_BITSHIFT					0


//------------ PLL controller clock align control register defs ---------------
#define C66XX_PLL_ALNCTL_ALN_BITMASK						0xffff
#define C66XX_PLL_ALNCTL_ALN_BITSHIFT						0


//------------ PLL controller divider ratio change status register defs -------
#define C66XX_PLL_DCHANGE_SYS_BITMASK						0xffff
#define C66XX_PLL_DCHANGE_SYS_BITSHIFT						0


//------------ SYSCLK status register defs ------------------------------------
#define C66XX_PLL_SYSTAT_SYSON_BITMASK						0xffff
#define C66XX_PLL_SYSTAT_SYSON_BITSHIFT						0

//=============================================================================



//=============================================================================
//============ Device State Control registers =================================
//=============================================================================
/*
 * !!! Note that this section contains only those definitions
 * that are missed in TI C6000 Chip Support Library (CSL) !!!
 */

// JTAG ID register - r-only
#define C66XX_BOOTCFG_JTAGID_RG_OFFSET						0x18
// Device status register - r/w
#define C66XX_BOOTCFG_DEVSTAT_RG_OFFSET						0x20
// Boot kicker 0 register - r/w
#define C66XX_BOOTCFG_KICK0_RG_OFFSET						0x38
// Boot kicker 1 register - r/w
#define C66XX_BOOTCFG_KICK1_RG_OFFSET						0x3c
// DSP0 boot address register - r/w
#define C66XX_BOOTCFG_DSP_BOOT_ADDR0_RG_OFFSET				0x40
// DSP1 boot address register - r/w
#define C66XX_BOOTCFG_DSP_BOOT_ADDR1_RG_OFFSET				0x44
// DSP2 boot address register - r/w
#define C66XX_BOOTCFG_DSP_BOOT_ADDR2_RG_OFFSET				0x48
// DSP3 boot address register - r/w
#define C66XX_BOOTCFG_DSP_BOOT_ADDR3_RG_OFFSET				0x4c
// DSP4 boot address register - r/w
#define C66XX_BOOTCFG_DSP_BOOT_ADDR4_RG_OFFSET				0x50
// DSP5 boot address register - r/w
#define C66XX_BOOTCFG_DSP_BOOT_ADDR5_RG_OFFSET				0x54
// DSP6 boot address register - r/w
#define C66XX_BOOTCFG_DSP_BOOT_ADDR6_RG_OFFSET				0x58
// DSP7 boot address register - r/w
#define C66XX_BOOTCFG_DSP_BOOT_ADDR7_RG_OFFSET				0x5c
// MAC 1 address register - r-only
#define C66XX_BOOTCFG_MACID1_RG_OFFSET						0x110
// MAC 2 address register - r-only
#define C66XX_BOOTCFG_MACID2_RG_OFFSET						0x114
// LRESETNMI PIN status clear register - r/w
#define C66XX_BOOTCFG_LRSTNMIPINSTAT_CLR_RG_OFFSET			0x130
// Reset status clear register - r/w
#define C66XX_BOOTCFG_RESET_STAT_CLR_RG_OFFSET				0x134
// Boot complete register - r/w
#define C66XX_BOOTCFG_BOOTCOMPLETE_RG_OFFSET				0x13c
// Reset status register - r-only
#define C66XX_BOOTCFG_RESET_STAT_RG_OFFSET					0x144
// LRESETNMI PIN status register - r-only
#define C66XX_BOOTCFG_LRSTNMIPINSTAT_RG_OFFSET				0x148
// Device configuration register - r/w
#define C66XX_BOOTCFG_DEVCFG_RG_OFFSET						0x14c
// Power state control register - r/w
#define C66XX_BOOTCFG_PWRSTATECTL_RG_OFFSET					0x150
// SRIO SerDes macro status register - r-only
#define C66XX_BOOTCFG_SRIO_SERDES_STS_RG_OFFSET				0x154
// SMGII SerDes macro status register - r-only
#define C66XX_BOOTCFG_SMGII_SERDES_STS_RG_OFFSET			0x158
// PCIe SerDes macro status register - r-only
#define C66XX_BOOTCFG_PCIE_SERDES_STS_RG_OFFSET				0x15c
// HyperLink SerDes macro status register - r-only
#define C66XX_BOOTCFG_HYPERLINK_SERDES_STS_RG_OFFSET		0x160
// NMI generation for CorePac0 register - r/w
#define C66XX_BOOTCFG_NMIGR0_RG_OFFSET						0x200
// NMI generation for CorePac1 register - r/w
#define C66XX_BOOTCFG_NMIGR1_RG_OFFSET						0x204
// NMI generation for CorePac2 register - r/w
#define C66XX_BOOTCFG_NMIGR2_RG_OFFSET						0x208
// NMI generation for CorePac3 register - r/w
#define C66XX_BOOTCFG_NMIGR3_RG_OFFSET						0x20c
// NMI generation for CorePac4 register - r/w
#define C66XX_BOOTCFG_NMIGR4_RG_OFFSET						0x210
// NMI generation for CorePac5 register - r/w
#define C66XX_BOOTCFG_NMIGR5_RG_OFFSET						0x214
// NMI generation for CorePac6 register - r/w
#define C66XX_BOOTCFG_NMIGR6_RG_OFFSET						0x218
// NMI generation for CorePac7 register - r/w
#define C66XX_BOOTCFG_NMIGR7_RG_OFFSET						0x21c
// IPC generation for CorePac0 register - r/w
#define C66XX_BOOTCFG_IPCGR0_RG_OFFSET						0x240
// IPC generation for CorePac1 register - r/w
#define C66XX_BOOTCFG_IPCGR1_RG_OFFSET						0x244
// IPC generation for CorePac2 register - r/w
#define C66XX_BOOTCFG_IPCGR2_RG_OFFSET						0x248
// IPC generation for CorePac3 register - r/w
#define C66XX_BOOTCFG_IPCGR3_RG_OFFSET						0x24c
// IPC generation for CorePac4 register - r/w
#define C66XX_BOOTCFG_IPCGR4_RG_OFFSET						0x250
// IPC generation for CorePac5 register - r/w
#define C66XX_BOOTCFG_IPCGR5_RG_OFFSET						0x254
// IPC generation for CorePac6 register - r/w
#define C66XX_BOOTCFG_IPCGR6_RG_OFFSET						0x258
// IPC generation for CorePac7 register - r/w
#define C66XX_BOOTCFG_IPCGR7_RG_OFFSET						0x25c

// Timer Input Selection register - r/w
#define C66XX_BOOTCFG_TINPSEL_RG_OFFSET						0x300
// Timer Output Selection register - r/w
#define C66XX_BOOTCFG_TOUTPSEL_RG_OFFSET					0x304

// Main PLL Control register 0 - r/w
#define C66XX_BOOTCFG_MAINPLLCTL0_RG_OFFSET					0x328
// Main PLL Control register 1 - r/w
#define C66XX_BOOTCFG_MAINPLLCTL1_RG_OFFSET					0x32c
// DDR3 PLL Control register 0 - r/w
#define C66XX_BOOTCFG_DDR3PLLCTL0_RG_OFFSET					0x330
// DDR3 PLL Control register 1 - r/w
#define C66XX_BOOTCFG_DDR3PLLCTL1_RG_OFFSET					0x334
// Pass PLL Control register 0 - r/w
#define C66XX_BOOTCFG_PASSPLLCTL0_RG_OFFSET					0x338
// Pass PLL Control register 1 - r/w
#define C66XX_BOOTCFG_PASSPLLCTL1_RG_OFFSET					0x33c
// Device speed register - r-only
#define C66XX_BOOTCFG_DEVSPEED_RG_OFFSET					0x3f8

#define C66XX_BOOTCFG_TINPSEL_RG_ADDR						(C66XX_BOOTCFG_RG_AREA_SADDR + C66XX_BOOTCFG_TINPSEL_RG_OFFSET)
#define C66XX_BOOTCFG_TOUTPSEL_RG_ADDR						(C66XX_BOOTCFG_RG_AREA_SADDR + C66XX_BOOTCFG_TOUTPSEL_RG_OFFSET)
#define C66XX_BOOTCFG_MAINPLLCTL0_RG_ADDR					(C66XX_BOOTCFG_RG_AREA_SADDR + C66XX_BOOTCFG_MAINPLLCTL0_RG_OFFSET)
#define C66XX_BOOTCFG_MAINPLLCTL1_RG_ADDR					(C66XX_BOOTCFG_RG_AREA_SADDR + C66XX_BOOTCFG_MAINPLLCTL1_RG_OFFSET)
#define C66XX_BOOTCFG_DDR3PLLCTL0_RG_ADDR					(C66XX_BOOTCFG_RG_AREA_SADDR + C66XX_BOOTCFG_DDR3PLLCTL0_RG_OFFSET)
#define C66XX_BOOTCFG_DDR3PLLCTL1_RG_ADDR					(C66XX_BOOTCFG_RG_AREA_SADDR + C66XX_BOOTCFG_DDR3PLLCTL1_RG_OFFSET)
#define C66XX_BOOTCFG_PASSPLLCTL0_RG_ADDR					(C66XX_BOOTCFG_RG_AREA_SADDR + C66XX_BOOTCFG_PASSPLLCTL0_RG_OFFSET)
#define C66XX_BOOTCFG_PASSPLLCTL1_RG_ADDR					(C66XX_BOOTCFG_RG_AREA_SADDR + C66XX_BOOTCFG_PASSPLLCTL1_RG_OFFSET)
#define C66XX_BOOTCFG_DEVSPEED_RG_ADDR						(C66XX_BOOTCFG_RG_AREA_SADDR + C66XX_BOOTCFG_DEVSPEED_RG_OFFSET)


//------------ Main PLL Control register 0 defs -------------------------------
#define C66XX_BOOTCFG_MAINPLLCTL0_BWADJ_BITMASK				0xff000000
#define C66XX_BOOTCFG_MAINPLLCTL0_BWADJ_BITSHIFT			24
#define C66XX_BOOTCFG_MAINPLLCTL0_PLLM_BITMASK				0x7f000
#define C66XX_BOOTCFG_MAINPLLCTL0_PLLM_BITSHIFT				12
#define C66XX_BOOTCFG_MAINPLLCTL0_PLLD_BITMASK				0x3f
#define C66XX_BOOTCFG_MAINPLLCTL0_PLLD_BITSHIFT				0


//------------ Main PLL Control register 1 defs -------------------------------
#define C66XX_BOOTCFG_MAINPLLCTL1_ENSAT_BITMASK				0x40
#define C66XX_BOOTCFG_MAINPLLCTL1_ENSAT_BITSHIFT			6
#define C66XX_BOOTCFG_MAINPLLCTL1_BWADJ_BITMASK				0xf
#define C66XX_BOOTCFG_MAINPLLCTL1_BWADJ_BITSHIFT			0


//------------ DDR3 PLL Control register 0 defs -------------------------------
#define C66XX_BOOTCFG_DDR3PLLCTL0_BWADJ_BITMASK				0xff000000
#define C66XX_BOOTCFG_DDR3PLLCTL0_BWADJ_BITSHIFT			24
#define C66XX_BOOTCFG_DDR3PLLCTL0_BYPASS_BITMASK			0x800000
#define C66XX_BOOTCFG_DDR3PLLCTL0_BYPASS_BITSHIFT			23
#define C66XX_BOOTCFG_DDR3PLLCTL0_PLLM_BITMASK				0x7ffc0
#define C66XX_BOOTCFG_DDR3PLLCTL0_PLLM_BITSHIFT				6
#define C66XX_BOOTCFG_DDR3PLLCTL0_PLLD_BITMASK				0x3f
#define C66XX_BOOTCFG_DDR3PLLCTL0_PLLD_BITSHIFT				0


//------------ DDR3 PLL Control register 1 defs -------------------------------
#define C66XX_BOOTCFG_DDR3PLLCTL1_PLLRST_BITMASK			0x2000
#define C66XX_BOOTCFG_DDR3PLLCTL1_PLLRST_BITSHIFT			13
#define C66XX_BOOTCFG_DDR3PLLCTL1_ENSAT_BITMASK				0x40
#define C66XX_BOOTCFG_DDR3PLLCTL1_ENSAT_BITSHIFT			6
#define C66XX_BOOTCFG_DDR3PLLCTL1_BWADJ_BITMASK				0xf
#define C66XX_BOOTCFG_DDR3PLLCTL1_BWADJ_BITSHIFT			0


//------------ PASS PLL Control register 0 defs -------------------------------
#define C66XX_BOOTCFG_PASSPLLCTL0_BWADJ_BITMASK				0xff000000
#define C66XX_BOOTCFG_PASSPLLCTL0_BWADJ_BITSHIFT			24
#define C66XX_BOOTCFG_PASSPLLCTL0_BYPASS_BITMASK			0x800000
#define C66XX_BOOTCFG_PASSPLLCTL0_BYPASS_BITSHIFT			23
#define C66XX_BOOTCFG_PASSPLLCTL0_PLLM_BITMASK				0x7ffc0
#define C66XX_BOOTCFG_PASSPLLCTL0_PLLM_BITSHIFT				6
#define C66XX_BOOTCFG_PASSPLLCTL0_PLLD_BITMASK				0x3f
#define C66XX_BOOTCFG_PASSPLLCTL0_PLLD_BITSHIFT				0


//------------ PASS PLL Control register 1 defs -------------------------------
#define C66XX_BOOTCFG_PASSPLLCTL1_PLLRST_BITMASK			0x4000
#define C66XX_BOOTCFG_PASSPLLCTL1_PLLRST_BITSHIFT			14
#define C66XX_BOOTCFG_PASSPLLCTL1_PLLSELECT_BITMASK			0x2000
#define C66XX_BOOTCFG_PASSPLLCTL1_PLLSELECT_BITSHIFT		13
#define C66XX_BOOTCFG_PASSPLLCTL1_ENSAT_BITMASK				0x40
#define C66XX_BOOTCFG_PASSPLLCTL1_ENSAT_BITSHIFT			6
#define C66XX_BOOTCFG_PASSPLLCTL1_BWADJ_BITMASK				0xf
#define C66XX_BOOTCFG_PASSPLLCTL1_BWADJ_BITSHIFT			0


//------------ Device speed register defs -------------------------------------
#define C66XX_BOOTCFG_DEVSPEED_DEVSPEED_BITMASK				0xff800000
#define C66XX_BOOTCFG_DEVSPEED_DEVSPEED_BITSHIFT			23

// DSP core speed defs in MHz
#define C66XX_DSP_CORE_SPEED_800MHZ							800
#define C66XX_DSP_CORE_SPEED_1000MHZ						1000
#define C66XX_DSP_CORE_SPEED_1200MHZ						1200
#define C66XX_DSP_CORE_SPEED_1250MHZ						1250
#define C66XX_DSP_CORE_SPEED_1400MHZ						1400


//------------ MACID2 register defs -------------------------------------------
#define C66XX_BOOTCFG_MACID2_MACID_BITMASK					0xffff
#define C66XX_BOOTCFG_MACID2_MACID_BITSHIFT					0

//=============================================================================



//=============================================================================
//============ Power & sleep controller definitions ===========================
//=============================================================================
/*
 * !!! Note that this section contains only those definitions
 * that are missed in TI C6000 Chip Support Library (CSL) !!!
 */

// Power Domains Definitions
#define C66XX_PSC_PD_ALWAYSON								0
#define C66XX_PSC_PD_TETB									1
#define C66XX_PSC_PD_PA										2
#define C66XX_PSC_PD_PCIE									3
#define C66XX_PSC_PD_SRIO									4
#define C66XX_PSC_PD_HYPERLINK								5
#define C66XX_PSC_PD_MSM_SRAM								7
#define C66XX_PSC_PD_DSP0									8
#define C66XX_PSC_PD_DSP1									9
#define C66XX_PSC_PD_DSP2									10
#define C66XX_PSC_PD_DSP3									11
#define C66XX_PSC_PD_DSP4									12
#define C66XX_PSC_PD_DSP5									13
#define C66XX_PSC_PD_DSP6									14
#define C66XX_PSC_PD_DSP7									15
#define C66XX_PSC_PD_COUNT									(C66XX_PSC_PD_DSP7 + 1)

// Power Domains State Definitions
#define C66XX_PSC_PD_STATE_OFF								PSC_PDSTATE_OFF
#define C66XX_PSC_PD_STATE_ON								PSC_PDSTATE_ON


// Power & Sleep Controller Clock Domains Definitions
#define C66XX_PSC_LPSC_SHARED_LPSC							0
#define C66XX_PSC_LPSC_SMARTREFLEX							1
#define C66XX_PSC_LPSC_DDR3_EMIF							2
#define C66XX_PSC_LPSC_EMIF16_SPI							3
#define C66XX_PSC_LPSC_TSIP									4
#define C66XX_PSC_LPSC_DEBUG_TRACE							5
#define C66XX_PSC_LPSC_TETB									6
#define C66XX_PSC_LPSC_PA									7
#define C66XX_PSC_LPSC_ETHERNET								8
#define C66XX_PSC_LPSC_SA									9
#define C66XX_PSC_LPSC_PCIE									10
#define C66XX_PSC_LPSC_SRIO									11
#define C66XX_PSC_LPSC_HYPERLINK							12
#define C66XX_PSC_LPSC_MSM_SRAM								14
#define C66XX_PSC_LPSC_DSP0									15
#define C66XX_PSC_LPSC_DSP1									16
#define C66XX_PSC_LPSC_DSP2									17
#define C66XX_PSC_LPSC_DSP3									18
#define C66XX_PSC_LPSC_DSP4									19
#define C66XX_PSC_LPSC_DSP5									20
#define C66XX_PSC_LPSC_DSP6									21
#define C66XX_PSC_LPSC_DSP7									22
#define C66XX_PSC_LPSC_COUNT								(C66XX_PSC_LPSC_DSP7 + 1)

// Clock Domains State Definitions
#define C66XX_PSC_LPSC_STATE_OFF							PSC_MODSTATE_SWRSTDISABLE
#define C66XX_PSC_LPSC_STATE_ON								PSC_MODSTATE_ENABLE

//=============================================================================



//=============================================================================
//============ I2C definitions ================================================
//=============================================================================
/*
 * !!! Note that this section contains only those definitions
 * that are missed in TI C6000 Chip Support Library (CSL) !!!
 */

// I2C own address register - r/w
#define C66XX_I2C_ICOAR_RG_OFFSET							0x00
// I2C interrupt mask register - r/w
#define C66XX_I2C_ICIMR_RG_OFFSET							0x04
// I2C interrupt status register - r/w
#define C66XX_I2C_ICSTR_RG_OFFSET							0x08
// I2C clock low-time divider register - r/w
#define C66XX_I2C_ICCLKL_RG_OFFSET							0x0c
// I2C clock high-time divider register - r/w
#define C66XX_I2C_ICCLKH_RG_OFFSET							0x10
// I2C data count register - r/w
#define C66XX_I2C_ICCNT_RG_OFFSET							0x14
// I2C data receive register - r-only
#define C66XX_I2C_ICDRR_RG_OFFSET							0x18
// I2C slave address register - r/w
#define C66XX_I2C_ICSAR_RG_OFFSET							0x1c
// I2C data transmit register - r/w
#define C66XX_I2C_ICDXR_RG_OFFSET							0x20
// I2C mode register - r/w
#define C66XX_I2C_ICMDR_RG_OFFSET							0x24
// I2C interrupt vector register - r/w
#define C66XX_I2C_ICIVR_RG_OFFSET							0x28
// I2C extended mode register - r/w
#define C66XX_I2C_ICEMDR_RG_OFFSET							0x2c
// I2C prescaler register - r/w
#define C66XX_I2C_ICPSC_RG_OFFSET							0x30
// I2C peripheral identification 1 register - r/w
#define C66XX_I2C_ICPID1_RG_OFFSET							0x34
// I2C peripheral identification 2 register - r/w
#define C66XX_I2C_ICPID2_RG_OFFSET							0x38

#define C66XX_I2C_ICOAR_RG_ADDR								(C66XX_I2C_RG_AREA_SADDR + C66XX_I2C_ICOAR_RG_OFFSET)
#define C66XX_I2C_ICIMR_RG_ADDR								(C66XX_I2C_RG_AREA_SADDR + C66XX_I2C_ICIMR_RG_OFFSET)
#define C66XX_I2C_ICSTR_RG_ADDR								(C66XX_I2C_RG_AREA_SADDR + C66XX_I2C_ICSTR_RG_OFFSET)
#define C66XX_I2C_ICCLKL_RG_ADDR							(C66XX_I2C_RG_AREA_SADDR + C66XX_I2C_ICCLKL_RG_OFFSET)
#define C66XX_I2C_ICCLKH_RG_ADDR							(C66XX_I2C_RG_AREA_SADDR + C66XX_I2C_ICCLKH_RG_OFFSET)
#define C66XX_I2C_ICCNT_RG_ADDR								(C66XX_I2C_RG_AREA_SADDR + C66XX_I2C_ICCNT_RG_OFFSET)
#define C66XX_I2C_ICDRR_RG_ADDR								(C66XX_I2C_RG_AREA_SADDR + C66XX_I2C_ICDRR_RG_OFFSET)
#define C66XX_I2C_ICSAR_RG_ADDR								(C66XX_I2C_RG_AREA_SADDR + C66XX_I2C_ICSAR_RG_OFFSET)
#define C66XX_I2C_ICDXR_RG_ADDR								(C66XX_I2C_RG_AREA_SADDR + C66XX_I2C_ICDXR_RG_OFFSET)
#define C66XX_I2C_ICMDR_RG_ADDR								(C66XX_I2C_RG_AREA_SADDR + C66XX_I2C_ICMDR_RG_OFFSET)
#define C66XX_I2C_ICIVR_RG_ADDR								(C66XX_I2C_RG_AREA_SADDR + C66XX_I2C_ICIVR_RG_OFFSET)
#define C66XX_I2C_ICEMDR_RG_ADDR							(C66XX_I2C_RG_AREA_SADDR + C66XX_I2C_ICEMDR_RG_OFFSET)
#define C66XX_I2C_ICPSC_RG_ADDR								(C66XX_I2C_RG_AREA_SADDR + C66XX_I2C_ICPSC_RG_OFFSET)
#define C66XX_I2C_ICPID1_RG_ADDR							(C66XX_I2C_RG_AREA_SADDR + C66XX_I2C_ICPID1_RG_OFFSET)
#define C66XX_I2C_ICPID2_RG_ADDR							(C66XX_I2C_RG_AREA_SADDR + C66XX_I2C_ICPID2_RG_OFFSET)


//------------ I2C own address register defs ----------------------------------
#define C66XX_I2C_ICOAR_OADDR_BITMASK						0x3ff
#define C66XX_I2C_ICOAR_OADDR_BITSHIFT						0


//------------ I2C interrupt mask register defs -------------------------------
#define C66XX_I2C_ICIMR_AAS_BITMASK							0x40
#define C66XX_I2C_ICIMR_AAS_BITSHIFT						6
#define C66XX_I2C_ICIMR_SCD_BITMASK							0x20
#define C66XX_I2C_ICIMR_SCD_BITSHIFT						5
#define C66XX_I2C_ICIMR_ICXRDY_BITMASK						0x10
#define C66XX_I2C_ICIMR_ICXRDY_BITSHIFT						4
#define C66XX_I2C_ICIMR_ICRDRDY_BITMASK						0x8
#define C66XX_I2C_ICIMR_ICRDRDY_BITSHIFT					3
#define C66XX_I2C_ICIMR_ARDY_BITMASK						0x4
#define C66XX_I2C_ICIMR_ARDY_BITSHIFT						2
#define C66XX_I2C_ICIMR_NACK_BITMASK						0x2
#define C66XX_I2C_ICIMR_NACK_BITSHIFT						1
#define C66XX_I2C_ICIMR_AL_BITMASK							0x1
#define C66XX_I2C_ICIMR_AL_BITSHIFT							0
#define C66XX_I2C_ICIMR_RG_BITMASK							0x7f


//------------ I2C interrupt status register defs -----------------------------
#define C66XX_I2C_ICSTR_SDIR_BITMASK						0x4000
#define C66XX_I2C_ICSTR_SDIR_BITSHIFT						14
#define C66XX_I2C_ICSTR_NACKSNT_BITMASK						0x2000
#define C66XX_I2C_ICSTR_NACKSNT_BITSHIFT					13
#define C66XX_I2C_ICSTR_BB_BITMASK							0x1000
#define C66XX_I2C_ICSTR_BB_BITSHIFT							12
#define C66XX_I2C_ICSTR_RSFULL_BITMASK						0x800
#define C66XX_I2C_ICSTR_RSFULL_BITSHIFT						11
#define C66XX_I2C_ICSTR_XSMT_BITMASK						0x400
#define C66XX_I2C_ICSTR_XSMT_BITSHIFT						10
#define C66XX_I2C_ICSTR_AAS_BITMASK							0x200
#define C66XX_I2C_ICSTR_AAS_BITSHIFT						9
#define C66XX_I2C_ICSTR_AD0_BITMASK							0x100
#define C66XX_I2C_ICSTR_AD0_BITSHIFT						8
#define C66XX_I2C_ICSTR_SCD_BITMASK							0x20
#define C66XX_I2C_ICSTR_SCD_BITSHIFT						5
#define C66XX_I2C_ICSTR_ICXRDY_BITMASK						0x10
#define C66XX_I2C_ICSTR_ICXRDY_BITSHIFT						4
#define C66XX_I2C_ICSTR_ICRDRDY_BITMASK						0x8
#define C66XX_I2C_ICSTR_ICRDRDY_BITSHIFT					3
#define C66XX_I2C_ICSTR_ARDY_BITMASK						0x4
#define C66XX_I2C_ICSTR_ARDY_BITSHIFT						2
#define C66XX_I2C_ICSTR_NACK_BITMASK						0x2
#define C66XX_I2C_ICSTR_NACK_BITSHIFT						1
#define C66XX_I2C_ICSTR_AL_BITMASK							0x1
#define C66XX_I2C_ICSTR_AL_BITSHIFT							0


//------------ I2C clock low-time divider register defs -----------------------
#define C66XX_I2C_ICCLKL_ICCL_BITMASK						0xffff
#define C66XX_I2C_ICCLKL_ICCL_BITSHIFT						0


//------------ I2C clock high-time divider register defs ----------------------
#define C66XX_I2C_ICCLKH_ICCH_BITMASK						0xffff
#define C66XX_I2C_ICCLKH_ICCH_BITSHIFT						0


//------------ I2C data count register defs -----------------------------------
#define C66XX_I2C_ICCNT_ICDC_BITMASK						0xffff
#define C66XX_I2C_ICCNT_ICDC_BITSHIFT						0


//------------ I2C data receive register defs ---------------------------------
#define C66XX_I2C_ICDRR_D_BITMASK							0xff
#define C66XX_I2C_ICDRR_D_BITSHIFT							0


//------------ I2C slave address register defs --------------------------------
#define C66XX_I2C_ICSAR_SADDR_BITMASK						0x3ff
#define C66XX_I2C_ICSAR_SADDR_BITSHIFT						0


//------------ I2C data transmit register defs --------------------------------
#define C66XX_I2C_ICDXR_D_BITMASK							0xff
#define C66XX_I2C_ICDXR_D_BITSHIFT							0


//------------ I2C mode register defs -----------------------------------------
#define C66XX_I2C_ICMDR_NACKMOD_BITMASK						0x8000
#define C66XX_I2C_ICMDR_NACKMOD_BITSHIFT					15
#define C66XX_I2C_ICMDR_FREE_BITMASK						0x4000
#define C66XX_I2C_ICMDR_FREE_BITSHIFT						14
#define C66XX_I2C_ICMDR_STT_BITMASK							0x2000
#define C66XX_I2C_ICMDR_STT_BITSHIFT						13
#define C66XX_I2C_ICMDR_STP_BITMASK							0x800
#define C66XX_I2C_ICMDR_STP_BITSHIFT						11
#define C66XX_I2C_ICMDR_MST_BITMASK							0x400
#define C66XX_I2C_ICMDR_MST_BITSHIFT						10
#define C66XX_I2C_ICMDR_TRX_BITMASK							0x200
#define C66XX_I2C_ICMDR_TRX_BITSHIFT						9
#define C66XX_I2C_ICMDR_XA_BITMASK							0x100
#define C66XX_I2C_ICMDR_XA_BITSHIFT							8
#define C66XX_I2C_ICMDR_RM_BITMASK							0x80
#define C66XX_I2C_ICMDR_RM_BITSHIFT							7
#define C66XX_I2C_ICMDR_DLB_BITMASK							0x40
#define C66XX_I2C_ICMDR_DLB_BITSHIFT						6
#define C66XX_I2C_ICMDR_IRS_BITMASK							0x20
#define C66XX_I2C_ICMDR_IRS_BITSHIFT						5
#define C66XX_I2C_ICMDR_STB_BITMASK							0x10
#define C66XX_I2C_ICMDR_STB_BITSHIFT						4
#define C66XX_I2C_ICMDR_FDF_BITMASK							0x8
#define C66XX_I2C_ICMDR_FDF_BITSHIFT						3
#define C66XX_I2C_ICMDR_BC_BITMASK							0x7
#define C66XX_I2C_ICMDR_BC_BITSHIFT							0


//------------ I2C interrupt vector register defs -----------------------------
#define C66XX_I2C_ICIVR_INTCODE_BITMASK						0x7
#define C66XX_I2C_ICIVR_INTCODE_BITSHIFT					0


//------------ I2C extended mode register defs --------------------------------
#define C66XX_I2C_ICEMDR_IGNACK_BITMASK						0x2
#define C66XX_I2C_ICEMDR_IGNACK_BITSHIFT					1
#define C66XX_I2C_ICEMDR_BCM_BITMASK						0x1
#define C66XX_I2C_ICEMDR_BCM_BITSHIFT						0


//------------ I2C prescaler register defs ------------------------------------
#define C66XX_I2C_ICPSC_IPSC_BITMASK						0xff
#define C66XX_I2C_ICPSC_IPSC_BITSHIFT						0


//------------ I2C peripheral identification 1 register defs ------------------
#define C66XX_I2C_ICPID1_CLASS_BITMASK						0xff00
#define C66XX_I2C_ICPID1_CLASS_BITSHIFT						8
#define C66XX_I2C_ICPID1_REVISION_BITMASK					0xff
#define C66XX_I2C_ICPID1_REVISION_BITSHIFT					0


//------------ I2C peripheral identification 2 register defs ------------------
#define C66XX_I2C_ICPID2_TYPE_BITMASK						0xffff
#define C66XX_I2C_ICPID2_TYPE_BITSHIFT						0

//=============================================================================



//=============================================================================
//============ EMIF16 configuration registers =================================
//=============================================================================
// Revision code and status register - r-only
#define C66XX_EMIF16_RCSR_RG_OFFSET							0x00
// Async wait cycle config register - r/w
#define C66XX_EMIF16_AWCCR_RG_OFFSET						0x04
// Async 1 (CE0) config register - r/w
#define C66XX_EMIF16_A1CR_RG_OFFSET							0x10
// Async 2 (CE1) config register - r/w
#define C66XX_EMIF16_A2CR_RG_OFFSET							0x14
// Async 3 (CE2) config register - r/w
#define C66XX_EMIF16_A3CR_RG_OFFSET							0x18
// Async 4 (CE3) config register - r/w
#define C66XX_EMIF16_A4CR_RG_OFFSET							0x1c
// Interrupt raw register - r/w
#define C66XX_EMIF16_IRR_RG_OFFSET							0x40
// Interrupt masked register - r/w
#define C66XX_EMIF16_IMR_RG_OFFSET							0x44
// Interrupt mask set register - r/w
#define C66XX_EMIF16_IMSR_RG_OFFSET							0x48
// Interrupt mask clear register - r/w
#define C66XX_EMIF16_IMCR_RG_OFFSET							0x4c
// Page mode control register - r/w
#define C66XX_EMIF16_PMCR_RG_OFFSET							0x68

#define C66XX_EMIF16_RCSR_RG_ADDR							(C66XX_EMIF16_RG_AREA_SADDR + C66XX_EMIF16_RCSR_RG_OFFSET)
#define C66XX_EMIF16_AWCCR_RG_ADDR							(C66XX_EMIF16_RG_AREA_SADDR + C66XX_EMIF16_AWCCR_RG_OFFSET)
#define C66XX_EMIF16_A1CR_RG_ADDR							(C66XX_EMIF16_RG_AREA_SADDR + C66XX_EMIF16_A1CR_RG_OFFSET)
#define C66XX_EMIF16_A2CR_RG_ADDR							(C66XX_EMIF16_RG_AREA_SADDR + C66XX_EMIF16_A2CR_RG_OFFSET)
#define C66XX_EMIF16_A3CR_RG_ADDR							(C66XX_EMIF16_RG_AREA_SADDR + C66XX_EMIF16_A3CR_RG_OFFSET)
#define C66XX_EMIF16_A4CR_RG_ADDR							(C66XX_EMIF16_RG_AREA_SADDR + C66XX_EMIF16_A4CR_RG_OFFSET)
#define C66XX_EMIF16_IRR_RG_ADDR							(C66XX_EMIF16_RG_AREA_SADDR + C66XX_EMIF16_IRR_RG_OFFSET)
#define C66XX_EMIF16_IMR_RG_ADDR							(C66XX_EMIF16_RG_AREA_SADDR + C66XX_EMIF16_IMR_RG_OFFSET)
#define C66XX_EMIF16_IMSR_RG_ADDR							(C66XX_EMIF16_RG_AREA_SADDR + C66XX_EMIF16_IMSR_RG_OFFSET)
#define C66XX_EMIF16_IMCR_RG_ADDR							(C66XX_EMIF16_RG_AREA_SADDR + C66XX_EMIF16_IMCR_RG_OFFSET)
#define C66XX_EMIF16_PMCR_RG_ADDR							(C66XX_EMIF16_RG_AREA_SADDR + C66XX_EMIF16_PMCR_RG_OFFSET)


//------------ Revision code and status register defs -------------------------
#define C66XX_EMIF16_RCSR_BE_BITMASK						0x80000000
#define C66XX_EMIF16_RCSR_BE_BITSHIFT						31
#define C66XX_EMIF16_RCSR_MOD_ID_BITMASK					0x3fff0000
#define C66XX_EMIF16_RCSR_MOD_ID_BITSHIFT					16
#define C66XX_EMIF16_RCSR_MJ_REV_BITMASK					0xff00
#define C66XX_EMIF16_RCSR_MJ_REV_BITSHIFT					8
#define C66XX_EMIF16_RCSR_MIN_REV_BITMASK					0xff
#define C66XX_EMIF16_RCSR_MIN_REV_BITSHIFT					0

#define C66XX_EMIF16_RCSR_MOD_ID_DEFAULT_VALUE				0x46
#define C66XX_EMIF16_RCSR_MJ_REV_DEFAULT_VALUE				0x4
#define C66XX_EMIF16_RCSR_MIN_REV_DEFAULT_VALUE				0x0


//------------ Async wait cycle config register defs --------------------------
#define C66XX_EMIF16_AWCCR_WP1_BITMASK						0x20000000
#define C66XX_EMIF16_AWCCR_WP1_BITSHIFT						29
#define C66XX_EMIF16_AWCCR_WP0_BITMASK						0x10000000
#define C66XX_EMIF16_AWCCR_WP0_BITSHIFT						28
#define C66XX_EMIF16_AWCCR_CS5_WAIT_BITMASK					0xc00000
#define C66XX_EMIF16_AWCCR_CS5_WAIT_BITSHIFT				22
#define C66XX_EMIF16_AWCCR_CS4_WAIT_BITMASK					0x300000
#define C66XX_EMIF16_AWCCR_CS4_WAIT_BITSHIFT				20
#define C66XX_EMIF16_AWCCR_CS3_WAIT_BITMASK					0xc0000
#define C66XX_EMIF16_AWCCR_CS3_WAIT_BITSHIFT				18
#define C66XX_EMIF16_AWCCR_CS2_WAIT_BITMASK					0x30000
#define C66XX_EMIF16_AWCCR_CS2_WAIT_BITSHIFT				16
#define C66XX_EMIF16_AWCCR_MAX_EXT_WAIT_BITMASK				0xff
#define C66XX_EMIF16_AWCCR_MAX_EXT_WAIT_BITSHIFT			0


//------------ Async 1 config register defs -----------------------------------
#define C66XX_EMIF16_A1CR_SS_BITMASK						0x80000000
#define C66XX_EMIF16_A1CR_SS_BITSHIFT						31
#define C66XX_EMIF16_A1CR_EW_BITMASK						0x40000000
#define C66XX_EMIF16_A1CR_EW_BITSHIFT						30
#define C66XX_EMIF16_A1CR_W_SETUP_BITMASK					0x3c000000
#define C66XX_EMIF16_A1CR_W_SETUP_BITSHIFT					26
#define C66XX_EMIF16_A1CR_W_STROBE_BITMASK					0x3f00000
#define C66XX_EMIF16_A1CR_W_STROBE_BITSHIFT					20
#define C66XX_EMIF16_A1CR_W_HOLD_BITMASK					0xe0000
#define C66XX_EMIF16_A1CR_W_HOLD_BITSHIFT					17
#define C66XX_EMIF16_A1CR_R_SETUP_BITMASK					0x1e000
#define C66XX_EMIF16_A1CR_R_SETUP_BITSHIFT					13
#define C66XX_EMIF16_A1CR_R_STROBE_BITMASK					0x1f80
#define C66XX_EMIF16_A1CR_R_STROBE_BITSHIFT					7
#define C66XX_EMIF16_A1CR_R_HOLD_BITMASK					0x70
#define C66XX_EMIF16_A1CR_R_HOLD_BITSHIFT					4
#define C66XX_EMIF16_A1CR_TA_BITMASK						0xc
#define C66XX_EMIF16_A1CR_TA_BITSHIFT						2
#define C66XX_EMIF16_A1CR_ASIZE_BITMASK						0x3
#define C66XX_EMIF16_A1CR_ASIZE_BITSHIFT					0

#define C66XX_EMIF16_A1CR_ASIZE_8BIT						0
#define C66XX_EMIF16_A1CR_ASIZE_16BIT						1


//------------ Interrupt raw register defs ------------------------------------
#define C66XX_EMIF16_IRR_WR_BITMASK							0x3c
#define C66XX_EMIF16_IRR_WR_BITSHIFT						2
#define C66XX_EMIF16_IRR_AT_BITMASK							0x1
#define C66XX_EMIF16_IRR_AT_BITSHIFT						0


//------------ Interrupt masked register defs ---------------------------------
#define C66XX_EMIF16_IMR_WR_MASKED_BITMASK					0x3c
#define C66XX_EMIF16_IMR_WR_MASKED_BITSHIFT					2
#define C66XX_EMIF16_IMR_AT_MASKED_BITMASK					0x1
#define C66XX_EMIF16_IMR_AT_MASKED_BITSHIFT					0


//------------ Interrupt mask set register defs -------------------------------
#define C66XX_EMIF16_IMSR_WR_MASK_SET_BITMASK				0x3c
#define C66XX_EMIF16_IMSR_WR_MASK_SET_BITSHIFT				2
#define C66XX_EMIF16_IMSR_AT_MASK_SET_BITMASK				0x1
#define C66XX_EMIF16_IMSR_AT_MASK_SET_BITSHIFT				0


//------------ Interrupt mask clear register defs -----------------------------
#define C66XX_EMIF16_IMCR_WR_MASK_CLR_BITMASK				0x3c
#define C66XX_EMIF16_IMCR_WR_MASK_CLR_BITSHIFT				2
#define C66XX_EMIF16_IMCR_AT_MASK_CLR_BITMASK				0x1
#define C66XX_EMIF16_IMCR_AT_MASK_CLR_BITSHIFT				0

//=============================================================================



//=============================================================================
//============ Timer definitions ==============================================
//=============================================================================

// Emulation Management and Clock Speed register - r-only
#define C66XX_TIMER_EMUMGT_CLKSPD_RG_OFFSET					0x0004
// Counter register low register - r/w
#define C66XX_TIMER_CNTLO_RG_OFFSET							0x0010
// Counter register high register - r/w
#define C66XX_TIMER_CNTHI_RG_OFFSET							0x0014
// Period register low register - r/w
#define C66XX_TIMER_PRDLO_RG_OFFSET							0x0018
// Period register high register - r/w
#define C66XX_TIMER_PRDHI_RG_OFFSET							0x001c
// Timer control register - r/w
#define C66XX_TIMER_TCR_RG_OFFSET							0x0020
// Timer global control register - r/w
#define C66XX_TIMER_TGCR_RG_OFFSET							0x0024
// Watchdog timer control register - r/w
#define C66XX_TIMER_WDTCR_RG_OFFSET							0x0028
// Timer Reload register low register - r/w
#define C66XX_TIMER_RELLO_RG_OFFSET							0x0034
// Timer Reload register high register - r/w
#define C66XX_TIMER_RELHI_RG_OFFSET							0x0038
// Timer Capture register low register - r/w
#define C66XX_TIMER_CAPLO_RG_OFFSET							0x003c
// Timer Capture register high register - r/w
#define C66XX_TIMER_CAPHI_RG_OFFSET							0x0040
// Timer interrupt control and status register - r/w
#define C66XX_TIMER_INTCTLSTAT_RG_OFFSET					0x0044

// Timer 0-15 registers area offset addresses
#define C66XX_TIMER_RG_AREA_OFFSET							0x00010000
// Timer 0-15 registers addresses: timer = 0-15
#define C66XX_TIMER_EMUMGT_CLKSPD_RG_ADDR(timer)			(C66XX_TIMER_0_RG_AREA_SADDR + (timer * C66XX_TIMER_RG_AREA_OFFSET) + C66XX_TIMER_EMUMGT_CLKSPD_RG_OFFSET)
#define C66XX_TIMER_CNTLO_RG_ADDR(timer)					(C66XX_TIMER_0_RG_AREA_SADDR + (timer * C66XX_TIMER_RG_AREA_OFFSET) + C66XX_TIMER_CNTLO_RG_OFFSET)
#define C66XX_TIMER_CNTHI_RG_ADDR(timer)					(C66XX_TIMER_0_RG_AREA_SADDR + (timer * C66XX_TIMER_RG_AREA_OFFSET) + C66XX_TIMER_CNTHI_RG_OFFSET)
#define C66XX_TIMER_PRDLO_RG_ADDR(timer)					(C66XX_TIMER_0_RG_AREA_SADDR + (timer * C66XX_TIMER_RG_AREA_OFFSET) + C66XX_TIMER_PRDLO_RG_OFFSET)
#define C66XX_TIMER_PRDHI_RG_ADDR(timer)					(C66XX_TIMER_0_RG_AREA_SADDR + (timer * C66XX_TIMER_RG_AREA_OFFSET) + C66XX_TIMER_PRDHI_RG_OFFSET)
#define C66XX_TIMER_TCR_RG_ADDR(timer)						(C66XX_TIMER_0_RG_AREA_SADDR + (timer * C66XX_TIMER_RG_AREA_OFFSET) + C66XX_TIMER_TCR_RG_OFFSET)
#define C66XX_TIMER_TGCR_RG_ADDR(timer)						(C66XX_TIMER_0_RG_AREA_SADDR + (timer * C66XX_TIMER_RG_AREA_OFFSET) + C66XX_TIMER_TGCR_RG_OFFSET)
#define C66XX_TIMER_WDTCR_RG_ADDR(timer)					(C66XX_TIMER_0_RG_AREA_SADDR + (timer * C66XX_TIMER_RG_AREA_OFFSET) + C66XX_TIMER_WDTCR_RG_OFFSET)
#define C66XX_TIMER_RELLO_RG_ADDR(timer)					(C66XX_TIMER_0_RG_AREA_SADDR + (timer * C66XX_TIMER_RG_AREA_OFFSET) + C66XX_TIMER_RELLO_RG_OFFSET)
#define C66XX_TIMER_RELHI_RG_ADDR(timer)					(C66XX_TIMER_0_RG_AREA_SADDR + (timer * C66XX_TIMER_RG_AREA_OFFSET) + C66XX_TIMER_RELHI_RG_OFFSET)
#define C66XX_TIMER_CAPLO_RG_ADDR(timer)					(C66XX_TIMER_0_RG_AREA_SADDR + (timer * C66XX_TIMER_RG_AREA_OFFSET) + C66XX_TIMER_CAPLO_RG_OFFSET)
#define C66XX_TIMER_CAPHI_RG_ADDR(timer)					(C66XX_TIMER_0_RG_AREA_SADDR + (timer * C66XX_TIMER_RG_AREA_OFFSET) + C66XX_TIMER_CAPHI_RG_OFFSET)
#define C66XX_TIMER_INTCTLSTAT_RG_ADDR(timer)				(C66XX_TIMER_0_RG_AREA_SADDR + (timer * C66XX_TIMER_RG_AREA_OFFSET) + C66XX_TIMER_INTCTLSTAT_RG_OFFSET)


//------------ Emulation Management and Clock Speed register defs -------------
#define C66XX_TIMER_EMUMGT_CLKSPD_CLKDIV_BITMASK			0x000f0000
#define C66XX_TIMER_EMUMGT_CLKSPD_CLKDIV_BITSHIFT			16


//------------ Timer control register defs ------------------------------------
#define C66XX_TIMER_TCR_READRSTMODE_HI_BITMASK				0x04000000
#define C66XX_TIMER_TCR_READRSTMODE_HI_BITSHIFT				26
#define C66XX_TIMER_TCR_ENAMODE_HI_BITMASK					0x00c00000
#define C66XX_TIMER_TCR_ENAMODE_HI_BITSHIFT					22
#define C66XX_TIMER_TCR_PWID_HI_BITMASK						0x00300000
#define C66XX_TIMER_TCR_PWID_HI_BITSHIFT					20
#define C66XX_TIMER_TCR_CP_HI_BITMASK						0x00080000
#define C66XX_TIMER_TCR_CP_HI_BITSHIFT						19
#define C66XX_TIMER_TCR_INVOUTP_HI_BITMASK					0x00020000
#define C66XX_TIMER_TCR_INVOUTP_HI_BITSHIFT					17
#define C66XX_TIMER_TCR_TSTAT_HI_BITMASK					0x00010000
#define C66XX_TIMER_TCR_TSTAT_HI_BITSHIFT					16
#define C66XX_TIMER_TCR_CAPEVTMODE_LO_BITMASK				0x00003000
#define C66XX_TIMER_TCR_CAPEVTMODE_LO_BITSHIFT				12
#define C66XX_TIMER_TCR_CAPMODE_LO_BITMASK					0x00000800
#define C66XX_TIMER_TCR_CAPMODE_LO_BITSHIFT					11
#define C66XX_TIMER_TCR_READRSTMODE_LO_BITMASK				0x00000400
#define C66XX_TIMER_TCR_READRSTMODE_LO_BITSHIFT				10
#define C66XX_TIMER_TCR_TIEN_LO_BITMASK						0x00000200
#define C66XX_TIMER_TCR_TIEN_LO_BITSHIFT					9
#define C66XX_TIMER_TCR_CLKSRC_LO_BITMASK					0x00000100
#define C66XX_TIMER_TCR_CLKSRC_LO_BITSHIFT					8
#define C66XX_TIMER_TCR_ENAMODE_LO_BITMASK					0x000000c0
#define C66XX_TIMER_TCR_ENAMODE_LO_BITSHIFT					6
#define C66XX_TIMER_TCR_PWID_LO_BITMASK						0x00000030
#define C66XX_TIMER_TCR_PWID_LO_BITSHIFT					4
#define C66XX_TIMER_TCR_CP_LO_BITMASK						0x00000008
#define C66XX_TIMER_TCR_CP_LO_BITSHIFT						3
#define C66XX_TIMER_TCR_INVINP_LO_BITMASK					0x00000004
#define C66XX_TIMER_TCR_INVINP_LO_BITSHIFT					2
#define C66XX_TIMER_TCR_INVOUTP_LO_BITMASK					0x00000002
#define C66XX_TIMER_TCR_INVOUTP_LO_BITSHIFT					1
#define C66XX_TIMER_TCR_TSTAT_LO_BITMASK					0x00000001
#define C66XX_TIMER_TCR_TSTAT_LO_BITSHIFT					0

#define C66XX_TIMER_TCR_ENAMODE_DISABLED					0
#define C66XX_TIMER_TCR_ENAMODE_ONE_SHOT					1
#define C66XX_TIMER_TCR_ENAMODE_CONT						2
#define C66XX_TIMER_TCR_ENAMODE_CONT_RELOAD					3

#define C66XX_TIMER_TCR_PWID_1_CLK							0
#define C66XX_TIMER_TCR_PWID_2_CLK							1
#define C66XX_TIMER_TCR_PWID_3_CLK							2
#define C66XX_TIMER_TCR_PWID_4_CLK							3

#define C66XX_TIMER_TCR_CAPEVTMODE_RISING_EDGE				0
#define C66XX_TIMER_TCR_CAPEVTMODE_FALLING_EDGE				1
#define C66XX_TIMER_TCR_CAPEVTMODE_ANY_EDGE					2


//------------ Timer global control register defs -----------------------------
#define C66XX_TIMER_TGCR_TDDRHI_BITMASK						0x0000f000
#define C66XX_TIMER_TGCR_TDDRHI_BITSHIFT					12
#define C66XX_TIMER_TGCR_PSCHI_BITMASK						0x00000f00
#define C66XX_TIMER_TGCR_PSCHI_BITSHIFT						8
#define C66XX_TIMER_TGCR_PLUSEN_BITMASK						0x00000010
#define C66XX_TIMER_TGCR_PLUSEN_BITSHIFT					4
#define C66XX_TIMER_TGCR_TIMMODE_BITMASK					0x0000000c
#define C66XX_TIMER_TGCR_TIMMODE_BITSHIFT					2
#define C66XX_TIMER_TGCR_TIMHIRS_BITMASK					0x00000002
#define C66XX_TIMER_TGCR_TIMHIRS_BITSHIFT					1
#define C66XX_TIMER_TGCR_TIMLORS_BITMASK					0x00000001
#define C66XX_TIMER_TGCR_TIMLORS_BITSHIFT					0

#define C66XX_TIMER_TGCR_TIMMODE_64BIT_GPT					0
#define C66XX_TIMER_TGCR_TIMMODE_32BIT_UNCHAINED			1
#define C66XX_TIMER_TGCR_TIMMODE_64BIT_WDT					2
#define C66XX_TIMER_TGCR_TIMMODE_32BIT_CHAINED				3


//------------ Watchdog Timer Control Register defs ---------------------------
#define C66XX_TIMER_WDTCR_WDKEY_BITMASK						0xffff0000
#define C66XX_TIMER_WDTCR_WDKEY_BITSHIFT					16
#define C66XX_TIMER_WDTCR_WDFLAG_BITMASK					0x00008000
#define C66XX_TIMER_WDTCR_WDFLAG_BITSHIFT					15
#define C66XX_TIMER_WDTCR_WDEN_BITMASK						0x00004000
#define C66XX_TIMER_WDTCR_WDEN_BITSHIFT						14

#define C66XX_TIMER_WDTCR_WDKEY_FIRST_KEY					0xa5c6
#define C66XX_TIMER_WDTCR_WDKEY_SECOND_KEY					0xda7e


//------------ Timer interrupt control and status register defs ---------------
#define C66XX_TIMER_INTCTLSTAT_EVTINTSTAT_HI_BITMASK		0x00080000
#define C66XX_TIMER_INTCTLSTAT_EVTINTSTAT_HI_BITSHIFT		19
#define C66XX_TIMER_INTCTLSTAT_EVTINTEN_HI_BITMASK			0x00040000
#define C66XX_TIMER_INTCTLSTAT_EVTINTEN_HI_BITSHIFT			18
#define C66XX_TIMER_INTCTLSTAT_PRDINTSTAT_HI_BITMASK		0x00020000
#define C66XX_TIMER_INTCTLSTAT_PRDINTSTAT_HI_BITSHIFT		17
#define C66XX_TIMER_INTCTLSTAT_PRDINTEN_HI_BITMASK			0x00010000
#define C66XX_TIMER_INTCTLSTAT_PRDINTEN_HI_BITSHIFT			16
#define C66XX_TIMER_INTCTLSTAT_EVTINTSTAT_LO_BITMASK		0x00000008
#define C66XX_TIMER_INTCTLSTAT_EVTINTSTAT_LO_BITSHIFT		3
#define C66XX_TIMER_INTCTLSTAT_EVTINTEN_LO_BITMASK			0x00000004
#define C66XX_TIMER_INTCTLSTAT_EVTINTEN_LO_BITSHIFT			2
#define C66XX_TIMER_INTCTLSTAT_PRDINTSTAT_LO_BITMASK		0x00000002
#define C66XX_TIMER_INTCTLSTAT_PRDINTSTAT_LO_BITSHIFT		1
#define C66XX_TIMER_INTCTLSTAT_PRDINTEN_LO_BITMASK			0x00000001
#define C66XX_TIMER_INTCTLSTAT_PRDINTEN_LO_BITSHIFT			0

//=============================================================================



//=============================================================================
#endif /* __C66XX_DEF_HXX__ */