Merge pull request #395 from marckleinebudde/mcp251xfd-dump
mcp251xfd dump: add support for dumps created with Linux kernel >= v5.18pull/396/head
commit
5aa72c5e9e
|
|
@ -60,6 +60,19 @@ mcp251xfd_dump_SOURCES = \
|
||||||
mcp251xfd/mcp251xfd-regmap.c \
|
mcp251xfd/mcp251xfd-regmap.c \
|
||||||
mcp251xfd/mcp251xfd.h
|
mcp251xfd/mcp251xfd.h
|
||||||
|
|
||||||
|
EXTRA_DIST += \
|
||||||
|
mcp251xfd/99-devcoredump.rules \
|
||||||
|
mcp251xfd/data/devcoredump-canfd-v5.15.dump \
|
||||||
|
mcp251xfd/data/devcoredump-canfd.dump \
|
||||||
|
mcp251xfd/data/devcoredump-classic-can-v5.15.dump \
|
||||||
|
mcp251xfd/data/devcoredump-classic-can.dump \
|
||||||
|
mcp251xfd/data/registers-canfd-v5.15.dump \
|
||||||
|
mcp251xfd/data/registers-canfd.dump \
|
||||||
|
mcp251xfd/data/registers-classic-can-v5.15.dump \
|
||||||
|
mcp251xfd/data/registers-classic-can.dump \
|
||||||
|
mcp251xfd/devcoredump \
|
||||||
|
mcp251xfd/mcp251xfd-gen-testdata.sh
|
||||||
|
|
||||||
bin_PROGRAMS = \
|
bin_PROGRAMS = \
|
||||||
asc2log \
|
asc2log \
|
||||||
bcmserver \
|
bcmserver \
|
||||||
|
|
@ -106,9 +119,7 @@ EXTRA_DIST += \
|
||||||
autogen.sh \
|
autogen.sh \
|
||||||
can-j1939-kickstart.md \
|
can-j1939-kickstart.md \
|
||||||
can-j1939.md \
|
can-j1939.md \
|
||||||
can-tc-init-etf.sh \
|
can-tc-init-etf.sh
|
||||||
mcp251xfd/99-devcoredump.rules \
|
|
||||||
mcp251xfd/devcoredump
|
|
||||||
|
|
||||||
MAINTAINERCLEANFILES = \
|
MAINTAINERCLEANFILES = \
|
||||||
configure \
|
configure \
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,706 @@
|
||||||
|
000: 024b0760
|
||||||
|
004: 001c0900
|
||||||
|
008: 00050200
|
||||||
|
00c: 00020600
|
||||||
|
010: 017fce42
|
||||||
|
014: 00010000
|
||||||
|
018: 40400040
|
||||||
|
01c: 3f1a0000
|
||||||
|
020: 00000000
|
||||||
|
024: 00000000
|
||||||
|
028: 00000000
|
||||||
|
02c: 00000000
|
||||||
|
030: 00000000
|
||||||
|
034: 00000000
|
||||||
|
038: 00000000
|
||||||
|
03c: 00000003
|
||||||
|
040: 03000029
|
||||||
|
044: 00000000
|
||||||
|
048: 00000024
|
||||||
|
04c: 00000000
|
||||||
|
050: 00600080
|
||||||
|
054: 00000005
|
||||||
|
058: 00000030
|
||||||
|
05c: e3600090
|
||||||
|
060: 00000307
|
||||||
|
064: 00000108
|
||||||
|
068: ef000029
|
||||||
|
06c: 00000300
|
||||||
|
070: 00000234
|
||||||
|
074: 00600000
|
||||||
|
078: 00000000
|
||||||
|
07c: 00000610
|
||||||
|
080: 00600000
|
||||||
|
084: 00000000
|
||||||
|
088: 00000620
|
||||||
|
08c: 00600000
|
||||||
|
090: 00000000
|
||||||
|
094: 00000630
|
||||||
|
098: 00600000
|
||||||
|
09c: 00000000
|
||||||
|
0a0: 00000640
|
||||||
|
0a4: 00600000
|
||||||
|
0a8: 00000000
|
||||||
|
0ac: 00000650
|
||||||
|
0b0: 00600000
|
||||||
|
0b4: 00000000
|
||||||
|
0b8: 00000660
|
||||||
|
0bc: 00600000
|
||||||
|
0c0: 00000000
|
||||||
|
0c4: 00000670
|
||||||
|
0c8: 00600000
|
||||||
|
0cc: 00000000
|
||||||
|
0d0: 00000680
|
||||||
|
0d4: 00600000
|
||||||
|
0d8: 00000000
|
||||||
|
0dc: 00000690
|
||||||
|
0e0: 00600000
|
||||||
|
0e4: 00000000
|
||||||
|
0e8: 000006a0
|
||||||
|
0ec: 00600000
|
||||||
|
0f0: 00000000
|
||||||
|
0f4: 000006b0
|
||||||
|
0f8: 00600000
|
||||||
|
0fc: 00000000
|
||||||
|
100: 000006c0
|
||||||
|
104: 00600000
|
||||||
|
108: 00000000
|
||||||
|
10c: 000006d0
|
||||||
|
110: 00600000
|
||||||
|
114: 00000000
|
||||||
|
118: 000006e0
|
||||||
|
11c: 00600000
|
||||||
|
120: 00000000
|
||||||
|
124: 000006f0
|
||||||
|
128: 00600000
|
||||||
|
12c: 00000000
|
||||||
|
130: 00000700
|
||||||
|
134: 00600000
|
||||||
|
138: 00000000
|
||||||
|
13c: 00000710
|
||||||
|
140: 00600000
|
||||||
|
144: 00000000
|
||||||
|
148: 00000720
|
||||||
|
14c: 00600000
|
||||||
|
150: 00000000
|
||||||
|
154: 00000730
|
||||||
|
158: 00600000
|
||||||
|
15c: 00000000
|
||||||
|
160: 00000740
|
||||||
|
164: 00600000
|
||||||
|
168: 00000000
|
||||||
|
16c: 00000750
|
||||||
|
170: 00600000
|
||||||
|
174: 00000000
|
||||||
|
178: 00000760
|
||||||
|
17c: 00600000
|
||||||
|
180: 00000000
|
||||||
|
184: 00000770
|
||||||
|
188: 00600000
|
||||||
|
18c: 00000000
|
||||||
|
190: 00000780
|
||||||
|
194: 00600000
|
||||||
|
198: 00000000
|
||||||
|
19c: 00000790
|
||||||
|
1a0: 00600000
|
||||||
|
1a4: 00000000
|
||||||
|
1a8: 000007a0
|
||||||
|
1ac: 00600000
|
||||||
|
1b0: 00000000
|
||||||
|
1b4: 000007b0
|
||||||
|
1b8: 00600000
|
||||||
|
1bc: 00000000
|
||||||
|
1c0: 000007c0
|
||||||
|
1c4: 00600000
|
||||||
|
1c8: 00000000
|
||||||
|
1cc: 000007d0
|
||||||
|
1d0: 00000082
|
||||||
|
1d4: 00000000
|
||||||
|
1d8: 00000000
|
||||||
|
1dc: 00000000
|
||||||
|
1e0: 00000000
|
||||||
|
1e4: 00000000
|
||||||
|
1e8: 00000000
|
||||||
|
1ec: 00000000
|
||||||
|
1f0: 00000000
|
||||||
|
1f4: 00000000
|
||||||
|
1f8: 00000000
|
||||||
|
1fc: 00000000
|
||||||
|
200: 00000000
|
||||||
|
204: 00000000
|
||||||
|
208: 00000000
|
||||||
|
20c: 00000000
|
||||||
|
210: 00000000
|
||||||
|
214: 00000000
|
||||||
|
218: 00000000
|
||||||
|
21c: 00000000
|
||||||
|
220: 00000000
|
||||||
|
224: 00000000
|
||||||
|
228: 00000000
|
||||||
|
22c: 00000000
|
||||||
|
230: 00000000
|
||||||
|
234: 00000000
|
||||||
|
238: 00000000
|
||||||
|
23c: 00000000
|
||||||
|
240: 00000000
|
||||||
|
244: 00000000
|
||||||
|
248: 00000000
|
||||||
|
24c: 00000000
|
||||||
|
250: 00000000
|
||||||
|
254: 00000000
|
||||||
|
258: 00000000
|
||||||
|
25c: 00000000
|
||||||
|
260: 00000000
|
||||||
|
264: 00000000
|
||||||
|
268: 00000000
|
||||||
|
26c: 00000000
|
||||||
|
270: 00000000
|
||||||
|
274: 00000000
|
||||||
|
278: 00000000
|
||||||
|
27c: 00000000
|
||||||
|
280: 00000000
|
||||||
|
284: 00000000
|
||||||
|
288: 00000000
|
||||||
|
28c: 00000000
|
||||||
|
290: 00000000
|
||||||
|
294: 00000000
|
||||||
|
298: 00000000
|
||||||
|
29c: 00000000
|
||||||
|
2a0: 00000000
|
||||||
|
2a4: 00000000
|
||||||
|
2a8: 00000000
|
||||||
|
2ac: 00000000
|
||||||
|
2b0: 00000000
|
||||||
|
2b4: 00000000
|
||||||
|
2b8: 00000000
|
||||||
|
2bc: 00000000
|
||||||
|
2c0: 00000000
|
||||||
|
2c4: 00000000
|
||||||
|
2c8: 00000000
|
||||||
|
2cc: 00000000
|
||||||
|
2d0: 00000000
|
||||||
|
2d4: 00000000
|
||||||
|
2d8: 00000000
|
||||||
|
2dc: 00000000
|
||||||
|
2e0: 00000000
|
||||||
|
2e4: 00000000
|
||||||
|
2e8: 00000000
|
||||||
|
2ec: 00000000
|
||||||
|
400: 00000002
|
||||||
|
404: 00000008
|
||||||
|
408: 005897d8
|
||||||
|
40c: 00000002
|
||||||
|
410: 00000208
|
||||||
|
414: 00daf340
|
||||||
|
418: 00000002
|
||||||
|
41c: 00000408
|
||||||
|
420: 01585768
|
||||||
|
424: 00000000
|
||||||
|
428: 00000000
|
||||||
|
42c: 00000000
|
||||||
|
430: 00000002
|
||||||
|
434: 00000008
|
||||||
|
438: 00000000
|
||||||
|
43c: 00000000
|
||||||
|
440: 00000000
|
||||||
|
444: 00000000
|
||||||
|
448: 00000000
|
||||||
|
44c: 00000000
|
||||||
|
450: 00000000
|
||||||
|
454: 00000000
|
||||||
|
458: 00000000
|
||||||
|
45c: 00000000
|
||||||
|
460: 00000000
|
||||||
|
464: 00000000
|
||||||
|
468: 00000000
|
||||||
|
46c: 00000000
|
||||||
|
470: 00000000
|
||||||
|
474: 00000000
|
||||||
|
478: 00000002
|
||||||
|
47c: 00000208
|
||||||
|
480: 00000001
|
||||||
|
484: 00000000
|
||||||
|
488: 00000000
|
||||||
|
48c: 00000000
|
||||||
|
490: 00000000
|
||||||
|
494: 00000000
|
||||||
|
498: 00000000
|
||||||
|
49c: 00000000
|
||||||
|
4a0: 00000000
|
||||||
|
4a4: 00000000
|
||||||
|
4a8: 00000000
|
||||||
|
4ac: 00000000
|
||||||
|
4b0: 00000000
|
||||||
|
4b4: 00000000
|
||||||
|
4b8: 00000000
|
||||||
|
4bc: 00000000
|
||||||
|
4c0: 00000002
|
||||||
|
4c4: 00000408
|
||||||
|
4c8: 00000002
|
||||||
|
4cc: 00000000
|
||||||
|
4d0: 00000000
|
||||||
|
4d4: 00000000
|
||||||
|
4d8: 00000000
|
||||||
|
4dc: 00000000
|
||||||
|
4e0: 00000000
|
||||||
|
4e4: 00000000
|
||||||
|
4e8: 00000000
|
||||||
|
4ec: 00000000
|
||||||
|
4f0: 00000000
|
||||||
|
4f4: 00000000
|
||||||
|
4f8: 00000000
|
||||||
|
4fc: 00000000
|
||||||
|
500: 00000000
|
||||||
|
504: 00000000
|
||||||
|
508: 00000000
|
||||||
|
50c: 00000000
|
||||||
|
510: 00000000
|
||||||
|
514: 00000000
|
||||||
|
518: 00000000
|
||||||
|
51c: 00000000
|
||||||
|
520: 00000000
|
||||||
|
524: 00000000
|
||||||
|
528: 00000000
|
||||||
|
52c: 00000000
|
||||||
|
530: 00000000
|
||||||
|
534: 00000000
|
||||||
|
538: 00000000
|
||||||
|
53c: 00000000
|
||||||
|
540: 00000000
|
||||||
|
544: 00000000
|
||||||
|
548: 00000000
|
||||||
|
54c: 00000000
|
||||||
|
550: 00000002
|
||||||
|
554: 00000008
|
||||||
|
558: 005897d8
|
||||||
|
55c: 00000000
|
||||||
|
560: 00000000
|
||||||
|
564: 00000000
|
||||||
|
568: 00000000
|
||||||
|
56c: 00000000
|
||||||
|
570: 00000000
|
||||||
|
574: 00000000
|
||||||
|
578: 00000000
|
||||||
|
57c: 00000000
|
||||||
|
580: 00000000
|
||||||
|
584: 00000000
|
||||||
|
588: 00000000
|
||||||
|
58c: 00000000
|
||||||
|
590: 00000000
|
||||||
|
594: 00000000
|
||||||
|
598: 00000000
|
||||||
|
59c: 00000002
|
||||||
|
5a0: 00000008
|
||||||
|
5a4: 00daf340
|
||||||
|
5a8: 00000001
|
||||||
|
5ac: 00000000
|
||||||
|
5b0: 00000000
|
||||||
|
5b4: 00000000
|
||||||
|
5b8: 00000000
|
||||||
|
5bc: 00000000
|
||||||
|
5c0: 00000000
|
||||||
|
5c4: 00000000
|
||||||
|
5c8: 00000000
|
||||||
|
5cc: 00000000
|
||||||
|
5d0: 00000000
|
||||||
|
5d4: 00000000
|
||||||
|
5d8: 00000000
|
||||||
|
5dc: 00000000
|
||||||
|
5e0: 00000000
|
||||||
|
5e4: 00000000
|
||||||
|
5e8: 00000002
|
||||||
|
5ec: 00000008
|
||||||
|
5f0: 01585768
|
||||||
|
5f4: 00000002
|
||||||
|
5f8: 00000000
|
||||||
|
5fc: 00000000
|
||||||
|
600: 00000000
|
||||||
|
604: 00000000
|
||||||
|
608: 00000000
|
||||||
|
60c: 00000000
|
||||||
|
610: 00000000
|
||||||
|
614: 00000000
|
||||||
|
618: 00000000
|
||||||
|
61c: 00000000
|
||||||
|
620: 00000000
|
||||||
|
624: 00000000
|
||||||
|
628: 00000000
|
||||||
|
62c: 00000000
|
||||||
|
630: 00000000
|
||||||
|
634: 00000000
|
||||||
|
638: 00000000
|
||||||
|
63c: 00000000
|
||||||
|
640: 00000000
|
||||||
|
644: 00000000
|
||||||
|
648: 00000000
|
||||||
|
64c: 00000000
|
||||||
|
650: 00000000
|
||||||
|
654: 00000000
|
||||||
|
658: 00000000
|
||||||
|
65c: 00000000
|
||||||
|
660: 00000000
|
||||||
|
664: 00000000
|
||||||
|
668: 00000000
|
||||||
|
66c: 00000000
|
||||||
|
670: 00000000
|
||||||
|
674: 00000000
|
||||||
|
678: 00000000
|
||||||
|
67c: 00000000
|
||||||
|
680: 00000000
|
||||||
|
684: 00000000
|
||||||
|
688: 00000000
|
||||||
|
68c: 00000000
|
||||||
|
690: 00000000
|
||||||
|
694: 00000000
|
||||||
|
698: 00000000
|
||||||
|
69c: 00000000
|
||||||
|
6a0: 00000000
|
||||||
|
6a4: 00000000
|
||||||
|
6a8: 00000000
|
||||||
|
6ac: 00000000
|
||||||
|
6b0: 00000000
|
||||||
|
6b4: 00000000
|
||||||
|
6b8: 00000000
|
||||||
|
6bc: 00000000
|
||||||
|
6c0: 00000000
|
||||||
|
6c4: 00000000
|
||||||
|
6c8: 00000000
|
||||||
|
6cc: 00000000
|
||||||
|
6d0: 00000000
|
||||||
|
6d4: 00000000
|
||||||
|
6d8: 00000000
|
||||||
|
6dc: 00000000
|
||||||
|
6e0: 00000000
|
||||||
|
6e4: 00000000
|
||||||
|
6e8: 00000000
|
||||||
|
6ec: 00000000
|
||||||
|
6f0: 00000000
|
||||||
|
6f4: 00000000
|
||||||
|
6f8: 00000000
|
||||||
|
6fc: 00000000
|
||||||
|
700: 00000000
|
||||||
|
704: 00000000
|
||||||
|
708: 00000000
|
||||||
|
70c: 00000000
|
||||||
|
710: 00000000
|
||||||
|
714: 00000000
|
||||||
|
718: 00000000
|
||||||
|
71c: 00000000
|
||||||
|
720: 00000000
|
||||||
|
724: 00000000
|
||||||
|
728: 00000000
|
||||||
|
72c: 00000000
|
||||||
|
730: 00000000
|
||||||
|
734: 00000000
|
||||||
|
738: 00000000
|
||||||
|
73c: 00000000
|
||||||
|
740: 00000000
|
||||||
|
744: 00000000
|
||||||
|
748: 00000000
|
||||||
|
74c: 00000000
|
||||||
|
750: 00000000
|
||||||
|
754: 00000000
|
||||||
|
758: 00000000
|
||||||
|
75c: 00000000
|
||||||
|
760: 00000000
|
||||||
|
764: 00000000
|
||||||
|
768: 00000000
|
||||||
|
76c: 00000000
|
||||||
|
770: 00000000
|
||||||
|
774: 00000000
|
||||||
|
778: 00000000
|
||||||
|
77c: 00000000
|
||||||
|
780: 00000000
|
||||||
|
784: 00000000
|
||||||
|
788: 00000000
|
||||||
|
78c: 00000000
|
||||||
|
790: 00000000
|
||||||
|
794: 00000000
|
||||||
|
798: 00000000
|
||||||
|
79c: 00000000
|
||||||
|
7a0: 00000000
|
||||||
|
7a4: 00000000
|
||||||
|
7a8: 00000000
|
||||||
|
7ac: 00000000
|
||||||
|
7b0: 00000000
|
||||||
|
7b4: 00000000
|
||||||
|
7b8: 00000000
|
||||||
|
7bc: 00000000
|
||||||
|
7c0: 00000000
|
||||||
|
7c4: 00000000
|
||||||
|
7c8: 00000000
|
||||||
|
7cc: 00000000
|
||||||
|
7d0: 00000000
|
||||||
|
7d4: 00000000
|
||||||
|
7d8: 00000000
|
||||||
|
7dc: 00000000
|
||||||
|
7e0: 00000000
|
||||||
|
7e4: 00000000
|
||||||
|
7e8: 00000000
|
||||||
|
7ec: 00000000
|
||||||
|
7f0: 00000000
|
||||||
|
7f4: 00000000
|
||||||
|
7f8: 00000000
|
||||||
|
7fc: 00000000
|
||||||
|
800: 00000000
|
||||||
|
804: 00000000
|
||||||
|
808: 00000000
|
||||||
|
80c: 00000000
|
||||||
|
810: 00000000
|
||||||
|
814: 00000000
|
||||||
|
818: 00000000
|
||||||
|
81c: 00000000
|
||||||
|
820: 00000000
|
||||||
|
824: 00000000
|
||||||
|
828: 00000000
|
||||||
|
82c: 00000000
|
||||||
|
830: 00000000
|
||||||
|
834: 00000000
|
||||||
|
838: 00000000
|
||||||
|
83c: 00000000
|
||||||
|
840: 00000000
|
||||||
|
844: 00000000
|
||||||
|
848: 00000000
|
||||||
|
84c: 00000000
|
||||||
|
850: 00000000
|
||||||
|
854: 00000000
|
||||||
|
858: 00000000
|
||||||
|
85c: 00000000
|
||||||
|
860: 00000000
|
||||||
|
864: 00000000
|
||||||
|
868: 00000000
|
||||||
|
86c: 00000000
|
||||||
|
870: 00000000
|
||||||
|
874: 00000000
|
||||||
|
878: 00000000
|
||||||
|
87c: 00000000
|
||||||
|
880: 00000000
|
||||||
|
884: 00000000
|
||||||
|
888: 00000000
|
||||||
|
88c: 00000000
|
||||||
|
890: 00000000
|
||||||
|
894: 00000000
|
||||||
|
898: 00000000
|
||||||
|
89c: 00000000
|
||||||
|
8a0: 00000000
|
||||||
|
8a4: 00000000
|
||||||
|
8a8: 00000000
|
||||||
|
8ac: 00000000
|
||||||
|
8b0: 00000000
|
||||||
|
8b4: 00000000
|
||||||
|
8b8: 00000000
|
||||||
|
8bc: 00000000
|
||||||
|
8c0: 00000000
|
||||||
|
8c4: 00000000
|
||||||
|
8c8: 00000000
|
||||||
|
8cc: 00000000
|
||||||
|
8d0: 00000000
|
||||||
|
8d4: 00000000
|
||||||
|
8d8: 00000000
|
||||||
|
8dc: 00000000
|
||||||
|
8e0: 00000000
|
||||||
|
8e4: 00000000
|
||||||
|
8e8: 00000000
|
||||||
|
8ec: 00000000
|
||||||
|
8f0: 00000000
|
||||||
|
8f4: 00000000
|
||||||
|
8f8: 00000000
|
||||||
|
8fc: 00000000
|
||||||
|
900: 00000000
|
||||||
|
904: 00000000
|
||||||
|
908: 00000000
|
||||||
|
90c: 00000000
|
||||||
|
910: 00000000
|
||||||
|
914: 00000000
|
||||||
|
918: 00000000
|
||||||
|
91c: 00000000
|
||||||
|
920: 00000000
|
||||||
|
924: 00000000
|
||||||
|
928: 00000000
|
||||||
|
92c: 00000000
|
||||||
|
930: 00000000
|
||||||
|
934: 00000000
|
||||||
|
938: 00000000
|
||||||
|
93c: 00000000
|
||||||
|
940: 00000000
|
||||||
|
944: 00000000
|
||||||
|
948: 00000000
|
||||||
|
94c: 00000000
|
||||||
|
950: 00000000
|
||||||
|
954: 00000000
|
||||||
|
958: 00000000
|
||||||
|
95c: 00000000
|
||||||
|
960: 00000000
|
||||||
|
964: 00000000
|
||||||
|
968: 00000000
|
||||||
|
96c: 00000000
|
||||||
|
970: 00000000
|
||||||
|
974: 00000000
|
||||||
|
978: 00000000
|
||||||
|
97c: 00000000
|
||||||
|
980: 00000000
|
||||||
|
984: 00000000
|
||||||
|
988: 00000000
|
||||||
|
98c: 00000000
|
||||||
|
990: 00000000
|
||||||
|
994: 00000000
|
||||||
|
998: 00000000
|
||||||
|
99c: 00000000
|
||||||
|
9a0: 00000000
|
||||||
|
9a4: 00000000
|
||||||
|
9a8: 00000000
|
||||||
|
9ac: 00000000
|
||||||
|
9b0: 00000000
|
||||||
|
9b4: 00000000
|
||||||
|
9b8: 00000000
|
||||||
|
9bc: 00000000
|
||||||
|
9c0: 00000000
|
||||||
|
9c4: 00000000
|
||||||
|
9c8: 00000000
|
||||||
|
9cc: 00000000
|
||||||
|
9d0: 00000000
|
||||||
|
9d4: 00000000
|
||||||
|
9d8: 00000000
|
||||||
|
9dc: 00000000
|
||||||
|
9e0: 00000000
|
||||||
|
9e4: 00000000
|
||||||
|
9e8: 00000000
|
||||||
|
9ec: 00000000
|
||||||
|
9f0: 00000000
|
||||||
|
9f4: 00000000
|
||||||
|
9f8: 00000000
|
||||||
|
9fc: 00000000
|
||||||
|
a00: 00000000
|
||||||
|
a04: 00000000
|
||||||
|
a08: 00000000
|
||||||
|
a0c: 00000000
|
||||||
|
a10: 00000000
|
||||||
|
a14: 00000000
|
||||||
|
a18: 00000000
|
||||||
|
a1c: 00000000
|
||||||
|
a20: 00000000
|
||||||
|
a24: 00000000
|
||||||
|
a28: 00000000
|
||||||
|
a2c: 00000000
|
||||||
|
a30: 00000000
|
||||||
|
a34: 00000000
|
||||||
|
a38: 00000000
|
||||||
|
a3c: 00000000
|
||||||
|
a40: 00000000
|
||||||
|
a44: 00000000
|
||||||
|
a48: 00000000
|
||||||
|
a4c: 00000000
|
||||||
|
a50: 00000000
|
||||||
|
a54: 00000000
|
||||||
|
a58: 00000000
|
||||||
|
a5c: 00000000
|
||||||
|
a60: 00000000
|
||||||
|
a64: 00000000
|
||||||
|
a68: 00000000
|
||||||
|
a6c: 00000000
|
||||||
|
a70: 00000000
|
||||||
|
a74: 00000000
|
||||||
|
a78: 00000000
|
||||||
|
a7c: 00000000
|
||||||
|
a80: 00000000
|
||||||
|
a84: 00000000
|
||||||
|
a88: 00000000
|
||||||
|
a8c: 00000000
|
||||||
|
a90: 00000000
|
||||||
|
a94: 00000000
|
||||||
|
a98: 00000000
|
||||||
|
a9c: 00000000
|
||||||
|
aa0: 00000000
|
||||||
|
aa4: 00000000
|
||||||
|
aa8: 00000000
|
||||||
|
aac: 00000000
|
||||||
|
ab0: 00000000
|
||||||
|
ab4: 00000000
|
||||||
|
ab8: 00000000
|
||||||
|
abc: 00000000
|
||||||
|
ac0: 00000000
|
||||||
|
ac4: 00000000
|
||||||
|
ac8: 00000000
|
||||||
|
acc: 00000000
|
||||||
|
ad0: 00000000
|
||||||
|
ad4: 00000000
|
||||||
|
ad8: 00000000
|
||||||
|
adc: 00000000
|
||||||
|
ae0: 00000000
|
||||||
|
ae4: 00000000
|
||||||
|
ae8: 00000000
|
||||||
|
aec: 00000000
|
||||||
|
af0: 00000000
|
||||||
|
af4: 00000000
|
||||||
|
af8: 00000000
|
||||||
|
afc: 00000000
|
||||||
|
b00: 00000000
|
||||||
|
b04: 00000000
|
||||||
|
b08: 00000000
|
||||||
|
b0c: 00000000
|
||||||
|
b10: 00000000
|
||||||
|
b14: 00000000
|
||||||
|
b18: 00000000
|
||||||
|
b1c: 00000000
|
||||||
|
b20: 00000000
|
||||||
|
b24: 00000000
|
||||||
|
b28: 00000000
|
||||||
|
b2c: 00000000
|
||||||
|
b30: 00000000
|
||||||
|
b34: 00000000
|
||||||
|
b38: 00000000
|
||||||
|
b3c: 00000000
|
||||||
|
b40: 00000000
|
||||||
|
b44: 00000000
|
||||||
|
b48: 00000000
|
||||||
|
b4c: 00000000
|
||||||
|
b50: 00000000
|
||||||
|
b54: 00000000
|
||||||
|
b58: 00000000
|
||||||
|
b5c: 00000000
|
||||||
|
b60: 00000000
|
||||||
|
b64: 00000000
|
||||||
|
b68: 00000000
|
||||||
|
b6c: 00000000
|
||||||
|
b70: 00000000
|
||||||
|
b74: 00000000
|
||||||
|
b78: 00000000
|
||||||
|
b7c: 00000000
|
||||||
|
b80: 00000000
|
||||||
|
b84: 00000000
|
||||||
|
b88: 00000000
|
||||||
|
b8c: 00000000
|
||||||
|
b90: 00000000
|
||||||
|
b94: 00000000
|
||||||
|
b98: 00000000
|
||||||
|
b9c: 00000000
|
||||||
|
ba0: 00000000
|
||||||
|
ba4: 00000000
|
||||||
|
ba8: 00000000
|
||||||
|
bac: 00000000
|
||||||
|
bb0: 00000000
|
||||||
|
bb4: 00000000
|
||||||
|
bb8: 00000000
|
||||||
|
bbc: 00000000
|
||||||
|
bc0: 00000000
|
||||||
|
bc4: 00000000
|
||||||
|
bc8: 00000000
|
||||||
|
bcc: 00000000
|
||||||
|
bd0: 00000000
|
||||||
|
bd4: 00000000
|
||||||
|
bd8: 00000000
|
||||||
|
bdc: 00000000
|
||||||
|
be0: 00000000
|
||||||
|
be4: 00000000
|
||||||
|
be8: 00000000
|
||||||
|
bec: 00000000
|
||||||
|
bf0: 00000000
|
||||||
|
bf4: 00000000
|
||||||
|
bf8: 00000000
|
||||||
|
bfc: 00000000
|
||||||
|
e00: 00000468
|
||||||
|
e04: 03030003
|
||||||
|
e08: 03000305
|
||||||
|
e0c: 00000007
|
||||||
|
e10: 00000000
|
||||||
|
e14: 00000000
|
||||||
|
|
@ -0,0 +1,706 @@
|
||||||
|
000: 05ab0760
|
||||||
|
004: 001c0900
|
||||||
|
008: 00050200
|
||||||
|
00c: 00020600
|
||||||
|
010: 012937f8
|
||||||
|
014: 00010000
|
||||||
|
018: 40400040
|
||||||
|
01c: 3f1a0000
|
||||||
|
020: 00000000
|
||||||
|
024: 00000000
|
||||||
|
028: 00000000
|
||||||
|
02c: 00000000
|
||||||
|
030: 00000000
|
||||||
|
034: 00000000
|
||||||
|
038: 00000000
|
||||||
|
03c: 00000003
|
||||||
|
040: 03000029
|
||||||
|
044: 00000000
|
||||||
|
048: 00000024
|
||||||
|
04c: 00000000
|
||||||
|
050: 00600080
|
||||||
|
054: 00000005
|
||||||
|
058: 00000030
|
||||||
|
05c: ef000029
|
||||||
|
060: 00000300
|
||||||
|
064: 00000114
|
||||||
|
068: e3000029
|
||||||
|
06c: 00000000
|
||||||
|
070: 000004f0
|
||||||
|
074: e3600090
|
||||||
|
078: 00000307
|
||||||
|
07c: 000006f8
|
||||||
|
080: 00600000
|
||||||
|
084: 00000000
|
||||||
|
088: 00000740
|
||||||
|
08c: 00600000
|
||||||
|
090: 00000000
|
||||||
|
094: 00000750
|
||||||
|
098: 00600000
|
||||||
|
09c: 00000000
|
||||||
|
0a0: 00000760
|
||||||
|
0a4: 00600000
|
||||||
|
0a8: 00000000
|
||||||
|
0ac: 00000770
|
||||||
|
0b0: 00600000
|
||||||
|
0b4: 00000000
|
||||||
|
0b8: 00000780
|
||||||
|
0bc: 00600000
|
||||||
|
0c0: 00000000
|
||||||
|
0c4: 00000790
|
||||||
|
0c8: 00600000
|
||||||
|
0cc: 00000000
|
||||||
|
0d0: 000007a0
|
||||||
|
0d4: 00600000
|
||||||
|
0d8: 00000000
|
||||||
|
0dc: 000007b0
|
||||||
|
0e0: 00600000
|
||||||
|
0e4: 00000000
|
||||||
|
0e8: 000007c0
|
||||||
|
0ec: 00600000
|
||||||
|
0f0: 00000000
|
||||||
|
0f4: 000007d0
|
||||||
|
0f8: 00600000
|
||||||
|
0fc: 00000000
|
||||||
|
100: 000007e0
|
||||||
|
104: 00600000
|
||||||
|
108: 00000000
|
||||||
|
10c: 000007f0
|
||||||
|
110: 00600000
|
||||||
|
114: 00000000
|
||||||
|
118: 00000800
|
||||||
|
11c: 00600000
|
||||||
|
120: 00000000
|
||||||
|
124: 00000810
|
||||||
|
128: 00600000
|
||||||
|
12c: 00000000
|
||||||
|
130: 00000820
|
||||||
|
134: 00600000
|
||||||
|
138: 00000000
|
||||||
|
13c: 00000830
|
||||||
|
140: 00600000
|
||||||
|
144: 00000000
|
||||||
|
148: 00000840
|
||||||
|
14c: 00600000
|
||||||
|
150: 00000000
|
||||||
|
154: 00000850
|
||||||
|
158: 00600000
|
||||||
|
15c: 00000000
|
||||||
|
160: 00000860
|
||||||
|
164: 00600000
|
||||||
|
168: 00000000
|
||||||
|
16c: 00000870
|
||||||
|
170: 00600000
|
||||||
|
174: 00000000
|
||||||
|
178: 00000880
|
||||||
|
17c: 00600000
|
||||||
|
180: 00000000
|
||||||
|
184: 00000890
|
||||||
|
188: 00600000
|
||||||
|
18c: 00000000
|
||||||
|
190: 000008a0
|
||||||
|
194: 00600000
|
||||||
|
198: 00000000
|
||||||
|
19c: 000008b0
|
||||||
|
1a0: 00600000
|
||||||
|
1a4: 00000000
|
||||||
|
1a8: 000008c0
|
||||||
|
1ac: 00600000
|
||||||
|
1b0: 00000000
|
||||||
|
1b4: 000008d0
|
||||||
|
1b8: 00600000
|
||||||
|
1bc: 00000000
|
||||||
|
1c0: 000008e0
|
||||||
|
1c4: 00600000
|
||||||
|
1c8: 00000000
|
||||||
|
1cc: 000008f0
|
||||||
|
1d0: 00008281
|
||||||
|
1d4: 00000000
|
||||||
|
1d8: 00000000
|
||||||
|
1dc: 00000000
|
||||||
|
1e0: 00000000
|
||||||
|
1e4: 00000000
|
||||||
|
1e8: 00000000
|
||||||
|
1ec: 00000000
|
||||||
|
1f0: 00000000
|
||||||
|
1f4: 00000000
|
||||||
|
1f8: 00000000
|
||||||
|
1fc: 00000000
|
||||||
|
200: 00000000
|
||||||
|
204: 00000000
|
||||||
|
208: 00000000
|
||||||
|
20c: 00000000
|
||||||
|
210: 00000000
|
||||||
|
214: 00000000
|
||||||
|
218: 00000000
|
||||||
|
21c: 00000000
|
||||||
|
220: 00000000
|
||||||
|
224: 00000000
|
||||||
|
228: 00000000
|
||||||
|
22c: 00000000
|
||||||
|
230: 00000000
|
||||||
|
234: 00000000
|
||||||
|
238: 00000000
|
||||||
|
23c: 00000000
|
||||||
|
240: 00000000
|
||||||
|
244: 00000000
|
||||||
|
248: 00000000
|
||||||
|
24c: 00000000
|
||||||
|
250: 00000000
|
||||||
|
254: 00000000
|
||||||
|
258: 00000000
|
||||||
|
25c: 00000000
|
||||||
|
260: 00000000
|
||||||
|
264: 00000000
|
||||||
|
268: 00000000
|
||||||
|
26c: 00000000
|
||||||
|
270: 00000000
|
||||||
|
274: 00000000
|
||||||
|
278: 00000000
|
||||||
|
27c: 00000000
|
||||||
|
280: 00000000
|
||||||
|
284: 00000000
|
||||||
|
288: 00000000
|
||||||
|
28c: 00000000
|
||||||
|
290: 00000000
|
||||||
|
294: 00000000
|
||||||
|
298: 00000000
|
||||||
|
29c: 00000000
|
||||||
|
2a0: 00000000
|
||||||
|
2a4: 00000000
|
||||||
|
2a8: 00000000
|
||||||
|
2ac: 00000000
|
||||||
|
2b0: 00000000
|
||||||
|
2b4: 00000000
|
||||||
|
2b8: 00000000
|
||||||
|
2bc: 00000000
|
||||||
|
2c0: 00000000
|
||||||
|
2c4: 00000000
|
||||||
|
2c8: 00000000
|
||||||
|
2cc: 00000000
|
||||||
|
2d0: 00000000
|
||||||
|
2d4: 00000000
|
||||||
|
2d8: 00000000
|
||||||
|
2dc: 00000000
|
||||||
|
2e0: 00000000
|
||||||
|
2e4: 00000000
|
||||||
|
2e8: 00000000
|
||||||
|
2ec: 00000000
|
||||||
|
400: 00000002
|
||||||
|
404: 00000008
|
||||||
|
408: 002badca
|
||||||
|
40c: 00000002
|
||||||
|
410: 00000208
|
||||||
|
414: 00a5e13a
|
||||||
|
418: 00000002
|
||||||
|
41c: 00000408
|
||||||
|
420: 01202382
|
||||||
|
424: 00000000
|
||||||
|
428: 00000000
|
||||||
|
42c: 00000000
|
||||||
|
430: 00000002
|
||||||
|
434: 00000008
|
||||||
|
438: 002badca
|
||||||
|
43c: 00000000
|
||||||
|
440: 00000000
|
||||||
|
444: 00000000
|
||||||
|
448: 00000000
|
||||||
|
44c: 00000000
|
||||||
|
450: 00000000
|
||||||
|
454: 00000000
|
||||||
|
458: 00000000
|
||||||
|
45c: 00000000
|
||||||
|
460: 00000000
|
||||||
|
464: 00000000
|
||||||
|
468: 00000000
|
||||||
|
46c: 00000000
|
||||||
|
470: 00000000
|
||||||
|
474: 00000000
|
||||||
|
478: 00000000
|
||||||
|
47c: 00000002
|
||||||
|
480: 00000008
|
||||||
|
484: 00a5e13a
|
||||||
|
488: 00000001
|
||||||
|
48c: 00000000
|
||||||
|
490: 00000000
|
||||||
|
494: 00000000
|
||||||
|
498: 00000000
|
||||||
|
49c: 00000000
|
||||||
|
4a0: 00000000
|
||||||
|
4a4: 00000000
|
||||||
|
4a8: 00000000
|
||||||
|
4ac: 00000000
|
||||||
|
4b0: 00000000
|
||||||
|
4b4: 00000000
|
||||||
|
4b8: 00000000
|
||||||
|
4bc: 00000000
|
||||||
|
4c0: 00000000
|
||||||
|
4c4: 00000000
|
||||||
|
4c8: 00000002
|
||||||
|
4cc: 00000008
|
||||||
|
4d0: 01202382
|
||||||
|
4d4: 00000002
|
||||||
|
4d8: 00000000
|
||||||
|
4dc: 00000000
|
||||||
|
4e0: 00000000
|
||||||
|
4e4: 00000000
|
||||||
|
4e8: 00000000
|
||||||
|
4ec: 00000000
|
||||||
|
4f0: 00000000
|
||||||
|
4f4: 00000000
|
||||||
|
4f8: 00000000
|
||||||
|
4fc: 00000000
|
||||||
|
500: 00000000
|
||||||
|
504: 00000000
|
||||||
|
508: 00000000
|
||||||
|
50c: 00000000
|
||||||
|
510: 00000000
|
||||||
|
514: 00000000
|
||||||
|
518: 00000000
|
||||||
|
51c: 00000000
|
||||||
|
520: 00000000
|
||||||
|
524: 00000000
|
||||||
|
528: 00000000
|
||||||
|
52c: 00000000
|
||||||
|
530: 00000000
|
||||||
|
534: 00000000
|
||||||
|
538: 00000000
|
||||||
|
53c: 00000000
|
||||||
|
540: 00000000
|
||||||
|
544: 00000000
|
||||||
|
548: 00000000
|
||||||
|
54c: 00000000
|
||||||
|
550: 00000000
|
||||||
|
554: 00000000
|
||||||
|
558: 00000000
|
||||||
|
55c: 00000000
|
||||||
|
560: 00000000
|
||||||
|
564: 00000000
|
||||||
|
568: 00000000
|
||||||
|
56c: 00000000
|
||||||
|
570: 00000000
|
||||||
|
574: 00000000
|
||||||
|
578: 00000000
|
||||||
|
57c: 00000000
|
||||||
|
580: 00000000
|
||||||
|
584: 00000000
|
||||||
|
588: 00000000
|
||||||
|
58c: 00000000
|
||||||
|
590: 00000000
|
||||||
|
594: 00000000
|
||||||
|
598: 00000000
|
||||||
|
59c: 00000000
|
||||||
|
5a0: 00000000
|
||||||
|
5a4: 00000000
|
||||||
|
5a8: 00000000
|
||||||
|
5ac: 00000000
|
||||||
|
5b0: 00000000
|
||||||
|
5b4: 00000000
|
||||||
|
5b8: 00000000
|
||||||
|
5bc: 00000000
|
||||||
|
5c0: 00000000
|
||||||
|
5c4: 00000000
|
||||||
|
5c8: 00000000
|
||||||
|
5cc: 00000000
|
||||||
|
5d0: 00000000
|
||||||
|
5d4: 00000000
|
||||||
|
5d8: 00000000
|
||||||
|
5dc: 00000000
|
||||||
|
5e0: 00000000
|
||||||
|
5e4: 00000000
|
||||||
|
5e8: 00000000
|
||||||
|
5ec: 00000000
|
||||||
|
5f0: 00000000
|
||||||
|
5f4: 00000000
|
||||||
|
5f8: 00000000
|
||||||
|
5fc: 00000000
|
||||||
|
600: 00000000
|
||||||
|
604: 00000000
|
||||||
|
608: 00000000
|
||||||
|
60c: 00000000
|
||||||
|
610: 00000000
|
||||||
|
614: 00000000
|
||||||
|
618: 00000000
|
||||||
|
61c: 00000000
|
||||||
|
620: 00000000
|
||||||
|
624: 00000000
|
||||||
|
628: 00000000
|
||||||
|
62c: 00000000
|
||||||
|
630: 00000000
|
||||||
|
634: 00000000
|
||||||
|
638: 00000000
|
||||||
|
63c: 00000000
|
||||||
|
640: 00000000
|
||||||
|
644: 00000000
|
||||||
|
648: 00000000
|
||||||
|
64c: 00000000
|
||||||
|
650: 00000000
|
||||||
|
654: 00000000
|
||||||
|
658: 00000000
|
||||||
|
65c: 00000000
|
||||||
|
660: 00000000
|
||||||
|
664: 00000000
|
||||||
|
668: 00000000
|
||||||
|
66c: 00000000
|
||||||
|
670: 00000000
|
||||||
|
674: 00000000
|
||||||
|
678: 00000000
|
||||||
|
67c: 00000000
|
||||||
|
680: 00000000
|
||||||
|
684: 00000000
|
||||||
|
688: 00000000
|
||||||
|
68c: 00000000
|
||||||
|
690: 00000000
|
||||||
|
694: 00000000
|
||||||
|
698: 00000000
|
||||||
|
69c: 00000000
|
||||||
|
6a0: 00000000
|
||||||
|
6a4: 00000000
|
||||||
|
6a8: 00000000
|
||||||
|
6ac: 00000000
|
||||||
|
6b0: 00000000
|
||||||
|
6b4: 00000000
|
||||||
|
6b8: 00000000
|
||||||
|
6bc: 00000000
|
||||||
|
6c0: 00000000
|
||||||
|
6c4: 00000000
|
||||||
|
6c8: 00000000
|
||||||
|
6cc: 00000000
|
||||||
|
6d0: 00000000
|
||||||
|
6d4: 00000000
|
||||||
|
6d8: 00000000
|
||||||
|
6dc: 00000000
|
||||||
|
6e0: 00000000
|
||||||
|
6e4: 00000000
|
||||||
|
6e8: 00000000
|
||||||
|
6ec: 00000000
|
||||||
|
6f0: 00000000
|
||||||
|
6f4: 00000000
|
||||||
|
6f8: 00000000
|
||||||
|
6fc: 00000000
|
||||||
|
700: 00000000
|
||||||
|
704: 00000000
|
||||||
|
708: 00000000
|
||||||
|
70c: 00000000
|
||||||
|
710: 00000000
|
||||||
|
714: 00000000
|
||||||
|
718: 00000000
|
||||||
|
71c: 00000000
|
||||||
|
720: 00000000
|
||||||
|
724: 00000000
|
||||||
|
728: 00000000
|
||||||
|
72c: 00000000
|
||||||
|
730: 00000000
|
||||||
|
734: 00000000
|
||||||
|
738: 00000000
|
||||||
|
73c: 00000000
|
||||||
|
740: 00000000
|
||||||
|
744: 00000000
|
||||||
|
748: 00000000
|
||||||
|
74c: 00000000
|
||||||
|
750: 00000000
|
||||||
|
754: 00000000
|
||||||
|
758: 00000000
|
||||||
|
75c: 00000000
|
||||||
|
760: 00000000
|
||||||
|
764: 00000000
|
||||||
|
768: 00000000
|
||||||
|
76c: 00000000
|
||||||
|
770: 00000000
|
||||||
|
774: 00000000
|
||||||
|
778: 00000000
|
||||||
|
77c: 00000000
|
||||||
|
780: 00000000
|
||||||
|
784: 00000000
|
||||||
|
788: 00000000
|
||||||
|
78c: 00000000
|
||||||
|
790: 00000000
|
||||||
|
794: 00000000
|
||||||
|
798: 00000000
|
||||||
|
79c: 00000000
|
||||||
|
7a0: 00000000
|
||||||
|
7a4: 00000000
|
||||||
|
7a8: 00000000
|
||||||
|
7ac: 00000000
|
||||||
|
7b0: 00000000
|
||||||
|
7b4: 00000000
|
||||||
|
7b8: 00000000
|
||||||
|
7bc: 00000000
|
||||||
|
7c0: 00000000
|
||||||
|
7c4: 00000000
|
||||||
|
7c8: 00000000
|
||||||
|
7cc: 00000000
|
||||||
|
7d0: 00000000
|
||||||
|
7d4: 00000000
|
||||||
|
7d8: 00000000
|
||||||
|
7dc: 00000000
|
||||||
|
7e0: 00000000
|
||||||
|
7e4: 00000000
|
||||||
|
7e8: 00000000
|
||||||
|
7ec: 00000000
|
||||||
|
7f0: 00000000
|
||||||
|
7f4: 00000000
|
||||||
|
7f8: 00000000
|
||||||
|
7fc: 00000000
|
||||||
|
800: 00000000
|
||||||
|
804: 00000000
|
||||||
|
808: 00000000
|
||||||
|
80c: 00000000
|
||||||
|
810: 00000000
|
||||||
|
814: 00000000
|
||||||
|
818: 00000000
|
||||||
|
81c: 00000000
|
||||||
|
820: 00000000
|
||||||
|
824: 00000000
|
||||||
|
828: 00000000
|
||||||
|
82c: 00000000
|
||||||
|
830: 00000000
|
||||||
|
834: 00000000
|
||||||
|
838: 00000000
|
||||||
|
83c: 00000000
|
||||||
|
840: 00000000
|
||||||
|
844: 00000000
|
||||||
|
848: 00000000
|
||||||
|
84c: 00000000
|
||||||
|
850: 00000000
|
||||||
|
854: 00000000
|
||||||
|
858: 00000000
|
||||||
|
85c: 00000000
|
||||||
|
860: 00000000
|
||||||
|
864: 00000000
|
||||||
|
868: 00000000
|
||||||
|
86c: 00000000
|
||||||
|
870: 00000000
|
||||||
|
874: 00000000
|
||||||
|
878: 00000000
|
||||||
|
87c: 00000000
|
||||||
|
880: 00000000
|
||||||
|
884: 00000000
|
||||||
|
888: 00000000
|
||||||
|
88c: 00000000
|
||||||
|
890: 00000000
|
||||||
|
894: 00000000
|
||||||
|
898: 00000000
|
||||||
|
89c: 00000000
|
||||||
|
8a0: 00000000
|
||||||
|
8a4: 00000000
|
||||||
|
8a8: 00000000
|
||||||
|
8ac: 00000000
|
||||||
|
8b0: 00000000
|
||||||
|
8b4: 00000000
|
||||||
|
8b8: 00000000
|
||||||
|
8bc: 00000000
|
||||||
|
8c0: 00000000
|
||||||
|
8c4: 00000000
|
||||||
|
8c8: 00000000
|
||||||
|
8cc: 00000000
|
||||||
|
8d0: 00000000
|
||||||
|
8d4: 00000000
|
||||||
|
8d8: 00000000
|
||||||
|
8dc: 00000000
|
||||||
|
8e0: 00000000
|
||||||
|
8e4: 00000000
|
||||||
|
8e8: 00000000
|
||||||
|
8ec: 00000000
|
||||||
|
8f0: 00000000
|
||||||
|
8f4: 00000000
|
||||||
|
8f8: 00000000
|
||||||
|
8fc: 00000000
|
||||||
|
900: 00000000
|
||||||
|
904: 00000000
|
||||||
|
908: 00000000
|
||||||
|
90c: 00000000
|
||||||
|
910: 00000000
|
||||||
|
914: 00000000
|
||||||
|
918: 00000000
|
||||||
|
91c: 00000000
|
||||||
|
920: 00000000
|
||||||
|
924: 00000000
|
||||||
|
928: 00000000
|
||||||
|
92c: 00000000
|
||||||
|
930: 00000000
|
||||||
|
934: 00000000
|
||||||
|
938: 00000000
|
||||||
|
93c: 00000000
|
||||||
|
940: 00000000
|
||||||
|
944: 00000000
|
||||||
|
948: 00000000
|
||||||
|
94c: 00000000
|
||||||
|
950: 00000000
|
||||||
|
954: 00000000
|
||||||
|
958: 00000000
|
||||||
|
95c: 00000000
|
||||||
|
960: 00000000
|
||||||
|
964: 00000000
|
||||||
|
968: 00000000
|
||||||
|
96c: 00000000
|
||||||
|
970: 00000000
|
||||||
|
974: 00000000
|
||||||
|
978: 00000000
|
||||||
|
97c: 00000000
|
||||||
|
980: 00000000
|
||||||
|
984: 00000000
|
||||||
|
988: 00000000
|
||||||
|
98c: 00000000
|
||||||
|
990: 00000000
|
||||||
|
994: 00000000
|
||||||
|
998: 00000000
|
||||||
|
99c: 00000000
|
||||||
|
9a0: 00000000
|
||||||
|
9a4: 00000000
|
||||||
|
9a8: 00000000
|
||||||
|
9ac: 00000000
|
||||||
|
9b0: 00000000
|
||||||
|
9b4: 00000000
|
||||||
|
9b8: 00000000
|
||||||
|
9bc: 00000000
|
||||||
|
9c0: 00000000
|
||||||
|
9c4: 00000000
|
||||||
|
9c8: 00000000
|
||||||
|
9cc: 00000000
|
||||||
|
9d0: 00000000
|
||||||
|
9d4: 00000000
|
||||||
|
9d8: 00000000
|
||||||
|
9dc: 00000000
|
||||||
|
9e0: 00000000
|
||||||
|
9e4: 00000000
|
||||||
|
9e8: 00000000
|
||||||
|
9ec: 00000000
|
||||||
|
9f0: 00000000
|
||||||
|
9f4: 00000000
|
||||||
|
9f8: 00000000
|
||||||
|
9fc: 00000000
|
||||||
|
a00: 00000000
|
||||||
|
a04: 00000000
|
||||||
|
a08: 00000000
|
||||||
|
a0c: 00000000
|
||||||
|
a10: 00000000
|
||||||
|
a14: 00000000
|
||||||
|
a18: 00000000
|
||||||
|
a1c: 00000000
|
||||||
|
a20: 00000002
|
||||||
|
a24: 00000008
|
||||||
|
a28: 00000000
|
||||||
|
a2c: 00000000
|
||||||
|
a30: 00000000
|
||||||
|
a34: 00000000
|
||||||
|
a38: 00000000
|
||||||
|
a3c: 00000000
|
||||||
|
a40: 00000000
|
||||||
|
a44: 00000000
|
||||||
|
a48: 00000000
|
||||||
|
a4c: 00000000
|
||||||
|
a50: 00000000
|
||||||
|
a54: 00000000
|
||||||
|
a58: 00000000
|
||||||
|
a5c: 00000000
|
||||||
|
a60: 00000000
|
||||||
|
a64: 00000000
|
||||||
|
a68: 00000002
|
||||||
|
a6c: 00000208
|
||||||
|
a70: 00000001
|
||||||
|
a74: 00000000
|
||||||
|
a78: 00000000
|
||||||
|
a7c: 00000000
|
||||||
|
a80: 00000000
|
||||||
|
a84: 00000000
|
||||||
|
a88: 00000000
|
||||||
|
a8c: 00000000
|
||||||
|
a90: 00000000
|
||||||
|
a94: 00000000
|
||||||
|
a98: 00000000
|
||||||
|
a9c: 00000000
|
||||||
|
aa0: 00000000
|
||||||
|
aa4: 00000000
|
||||||
|
aa8: 00000000
|
||||||
|
aac: 00000000
|
||||||
|
ab0: 00000002
|
||||||
|
ab4: 00000408
|
||||||
|
ab8: 00000002
|
||||||
|
abc: 00000000
|
||||||
|
ac0: 00000000
|
||||||
|
ac4: 00000000
|
||||||
|
ac8: 00000000
|
||||||
|
acc: 00000000
|
||||||
|
ad0: 00000000
|
||||||
|
ad4: 00000000
|
||||||
|
ad8: 00000000
|
||||||
|
adc: 00000000
|
||||||
|
ae0: 00000000
|
||||||
|
ae4: 00000000
|
||||||
|
ae8: 00000000
|
||||||
|
aec: 00000000
|
||||||
|
af0: 00000000
|
||||||
|
af4: 00000000
|
||||||
|
af8: 00000000
|
||||||
|
afc: 00000000
|
||||||
|
b00: 00000000
|
||||||
|
b04: 00000000
|
||||||
|
b08: 00000000
|
||||||
|
b0c: 00000000
|
||||||
|
b10: 00000000
|
||||||
|
b14: 00000000
|
||||||
|
b18: 00000000
|
||||||
|
b1c: 00000000
|
||||||
|
b20: 00000000
|
||||||
|
b24: 00000000
|
||||||
|
b28: 00000000
|
||||||
|
b2c: 00000000
|
||||||
|
b30: 00000000
|
||||||
|
b34: 00000000
|
||||||
|
b38: 00000000
|
||||||
|
b3c: 00000000
|
||||||
|
b40: 00000000
|
||||||
|
b44: 00000000
|
||||||
|
b48: 00000000
|
||||||
|
b4c: 00000000
|
||||||
|
b50: 00000000
|
||||||
|
b54: 00000000
|
||||||
|
b58: 00000000
|
||||||
|
b5c: 00000000
|
||||||
|
b60: 00000000
|
||||||
|
b64: 00000000
|
||||||
|
b68: 00000000
|
||||||
|
b6c: 00000000
|
||||||
|
b70: 00000000
|
||||||
|
b74: 00000000
|
||||||
|
b78: 00000000
|
||||||
|
b7c: 00000000
|
||||||
|
b80: 00000000
|
||||||
|
b84: 00000000
|
||||||
|
b88: 00000000
|
||||||
|
b8c: 00000000
|
||||||
|
b90: 00000000
|
||||||
|
b94: 00000000
|
||||||
|
b98: 00000000
|
||||||
|
b9c: 00000000
|
||||||
|
ba0: 00000000
|
||||||
|
ba4: 00000000
|
||||||
|
ba8: 00000000
|
||||||
|
bac: 00000000
|
||||||
|
bb0: 00000000
|
||||||
|
bb4: 00000000
|
||||||
|
bb8: 00000000
|
||||||
|
bbc: 00000000
|
||||||
|
bc0: 00000000
|
||||||
|
bc4: 00000000
|
||||||
|
bc8: 00000000
|
||||||
|
bcc: 00000000
|
||||||
|
bd0: 00000000
|
||||||
|
bd4: 00000000
|
||||||
|
bd8: 00000000
|
||||||
|
bdc: 00000000
|
||||||
|
be0: 00000000
|
||||||
|
be4: 00000000
|
||||||
|
be8: 00000000
|
||||||
|
bec: 00000000
|
||||||
|
bf0: 00000000
|
||||||
|
bf4: 00000000
|
||||||
|
bf8: 00000000
|
||||||
|
bfc: 00000000
|
||||||
|
e00: 00000468
|
||||||
|
e04: 03030003
|
||||||
|
e08: 03000305
|
||||||
|
e0c: 00000007
|
||||||
|
e10: 00000000
|
||||||
|
e14: 00000000
|
||||||
|
|
@ -0,0 +1,706 @@
|
||||||
|
000: 024b0760
|
||||||
|
004: 001c0900
|
||||||
|
008: 000e0303
|
||||||
|
00c: 00021000
|
||||||
|
010: 0380d6b3
|
||||||
|
014: 00010000
|
||||||
|
018: 40400040
|
||||||
|
01c: 3f1a0000
|
||||||
|
020: 00000000
|
||||||
|
024: 00000000
|
||||||
|
028: 00000000
|
||||||
|
02c: 00000000
|
||||||
|
030: 00000000
|
||||||
|
034: 00000000
|
||||||
|
038: 00000000
|
||||||
|
03c: 00000007
|
||||||
|
040: 07000029
|
||||||
|
044: 00000000
|
||||||
|
048: 00000054
|
||||||
|
04c: 00000000
|
||||||
|
050: 00600080
|
||||||
|
054: 00000005
|
||||||
|
058: 00000060
|
||||||
|
05c: 07600090
|
||||||
|
060: 00000707
|
||||||
|
064: 000000d0
|
||||||
|
068: 1f000029
|
||||||
|
06c: 00000700
|
||||||
|
070: 0000016c
|
||||||
|
074: 00600000
|
||||||
|
078: 00000000
|
||||||
|
07c: 00000360
|
||||||
|
080: 00600000
|
||||||
|
084: 00000000
|
||||||
|
088: 00000370
|
||||||
|
08c: 00600000
|
||||||
|
090: 00000000
|
||||||
|
094: 00000380
|
||||||
|
098: 00600000
|
||||||
|
09c: 00000000
|
||||||
|
0a0: 00000390
|
||||||
|
0a4: 00600000
|
||||||
|
0a8: 00000000
|
||||||
|
0ac: 000003a0
|
||||||
|
0b0: 00600000
|
||||||
|
0b4: 00000000
|
||||||
|
0b8: 000003b0
|
||||||
|
0bc: 00600000
|
||||||
|
0c0: 00000000
|
||||||
|
0c4: 000003c0
|
||||||
|
0c8: 00600000
|
||||||
|
0cc: 00000000
|
||||||
|
0d0: 000003d0
|
||||||
|
0d4: 00600000
|
||||||
|
0d8: 00000000
|
||||||
|
0dc: 000003e0
|
||||||
|
0e0: 00600000
|
||||||
|
0e4: 00000000
|
||||||
|
0e8: 000003f0
|
||||||
|
0ec: 00600000
|
||||||
|
0f0: 00000000
|
||||||
|
0f4: 00000400
|
||||||
|
0f8: 00600000
|
||||||
|
0fc: 00000000
|
||||||
|
100: 00000410
|
||||||
|
104: 00600000
|
||||||
|
108: 00000000
|
||||||
|
10c: 00000420
|
||||||
|
110: 00600000
|
||||||
|
114: 00000000
|
||||||
|
118: 00000430
|
||||||
|
11c: 00600000
|
||||||
|
120: 00000000
|
||||||
|
124: 00000440
|
||||||
|
128: 00600000
|
||||||
|
12c: 00000000
|
||||||
|
130: 00000450
|
||||||
|
134: 00600000
|
||||||
|
138: 00000000
|
||||||
|
13c: 00000460
|
||||||
|
140: 00600000
|
||||||
|
144: 00000000
|
||||||
|
148: 00000470
|
||||||
|
14c: 00600000
|
||||||
|
150: 00000000
|
||||||
|
154: 00000480
|
||||||
|
158: 00600000
|
||||||
|
15c: 00000000
|
||||||
|
160: 00000490
|
||||||
|
164: 00600000
|
||||||
|
168: 00000000
|
||||||
|
16c: 000004a0
|
||||||
|
170: 00600000
|
||||||
|
174: 00000000
|
||||||
|
178: 000004b0
|
||||||
|
17c: 00600000
|
||||||
|
180: 00000000
|
||||||
|
184: 000004c0
|
||||||
|
188: 00600000
|
||||||
|
18c: 00000000
|
||||||
|
190: 000004d0
|
||||||
|
194: 00600000
|
||||||
|
198: 00000000
|
||||||
|
19c: 000004e0
|
||||||
|
1a0: 00600000
|
||||||
|
1a4: 00000000
|
||||||
|
1a8: 000004f0
|
||||||
|
1ac: 00600000
|
||||||
|
1b0: 00000000
|
||||||
|
1b4: 00000500
|
||||||
|
1b8: 00600000
|
||||||
|
1bc: 00000000
|
||||||
|
1c0: 00000510
|
||||||
|
1c4: 00600000
|
||||||
|
1c8: 00000000
|
||||||
|
1cc: 00000520
|
||||||
|
1d0: 00000082
|
||||||
|
1d4: 00000000
|
||||||
|
1d8: 00000000
|
||||||
|
1dc: 00000000
|
||||||
|
1e0: 00000000
|
||||||
|
1e4: 00000000
|
||||||
|
1e8: 00000000
|
||||||
|
1ec: 00000000
|
||||||
|
1f0: 00000000
|
||||||
|
1f4: 00000000
|
||||||
|
1f8: 00000000
|
||||||
|
1fc: 00000000
|
||||||
|
200: 00000000
|
||||||
|
204: 00000000
|
||||||
|
208: 00000000
|
||||||
|
20c: 00000000
|
||||||
|
210: 00000000
|
||||||
|
214: 00000000
|
||||||
|
218: 00000000
|
||||||
|
21c: 00000000
|
||||||
|
220: 00000000
|
||||||
|
224: 00000000
|
||||||
|
228: 00000000
|
||||||
|
22c: 00000000
|
||||||
|
230: 00000000
|
||||||
|
234: 00000000
|
||||||
|
238: 00000000
|
||||||
|
23c: 00000000
|
||||||
|
240: 00000000
|
||||||
|
244: 00000000
|
||||||
|
248: 00000000
|
||||||
|
24c: 00000000
|
||||||
|
250: 00000000
|
||||||
|
254: 00000000
|
||||||
|
258: 00000000
|
||||||
|
25c: 00000000
|
||||||
|
260: 00000000
|
||||||
|
264: 00000000
|
||||||
|
268: 00000000
|
||||||
|
26c: 00000000
|
||||||
|
270: 00000000
|
||||||
|
274: 00000000
|
||||||
|
278: 00000000
|
||||||
|
27c: 00000000
|
||||||
|
280: 00000000
|
||||||
|
284: 00000000
|
||||||
|
288: 00000000
|
||||||
|
28c: 00000000
|
||||||
|
290: 00000000
|
||||||
|
294: 00000000
|
||||||
|
298: 00000000
|
||||||
|
29c: 00000000
|
||||||
|
2a0: 00000000
|
||||||
|
2a4: 00000000
|
||||||
|
2a8: 00000000
|
||||||
|
2ac: 00000000
|
||||||
|
2b0: 00000000
|
||||||
|
2b4: 00000000
|
||||||
|
2b8: 00000000
|
||||||
|
2bc: 00000000
|
||||||
|
2c0: 00000000
|
||||||
|
2c4: 00000000
|
||||||
|
2c8: 00000000
|
||||||
|
2cc: 00000000
|
||||||
|
2d0: 00000000
|
||||||
|
2d4: 00000000
|
||||||
|
2d8: 00000000
|
||||||
|
2dc: 00000000
|
||||||
|
2e0: 00000000
|
||||||
|
2e4: 00000000
|
||||||
|
2e8: 00000000
|
||||||
|
2ec: 00000000
|
||||||
|
400: 00000002
|
||||||
|
404: 00000008
|
||||||
|
408: 00640279
|
||||||
|
40c: 00000002
|
||||||
|
410: 00000208
|
||||||
|
414: 00e52ec1
|
||||||
|
418: 00000002
|
||||||
|
41c: 00000408
|
||||||
|
420: 01627f61
|
||||||
|
424: 00000002
|
||||||
|
428: 00000608
|
||||||
|
42c: 01e002a1
|
||||||
|
430: 00000002
|
||||||
|
434: 00000808
|
||||||
|
438: 025f8459
|
||||||
|
43c: 00000002
|
||||||
|
440: 00000a08
|
||||||
|
444: 02dc5e61
|
||||||
|
448: 00000002
|
||||||
|
44c: 00000c08
|
||||||
|
450: 0359f7d1
|
||||||
|
454: 00000000
|
||||||
|
458: 00000000
|
||||||
|
45c: 00000000
|
||||||
|
460: 00000002
|
||||||
|
464: 00000008
|
||||||
|
468: 00000000
|
||||||
|
46c: 00000000
|
||||||
|
470: 00000002
|
||||||
|
474: 00000208
|
||||||
|
478: 00000001
|
||||||
|
47c: 00000000
|
||||||
|
480: 00000002
|
||||||
|
484: 00000408
|
||||||
|
488: 00000002
|
||||||
|
48c: 00000000
|
||||||
|
490: 00000002
|
||||||
|
494: 00000608
|
||||||
|
498: 00000003
|
||||||
|
49c: 00000000
|
||||||
|
4a0: 00000002
|
||||||
|
4a4: 00000808
|
||||||
|
4a8: 00000004
|
||||||
|
4ac: 00000000
|
||||||
|
4b0: 00000002
|
||||||
|
4b4: 00000a08
|
||||||
|
4b8: 00000005
|
||||||
|
4bc: 00000000
|
||||||
|
4c0: 00000002
|
||||||
|
4c4: 00000c08
|
||||||
|
4c8: 00000006
|
||||||
|
4cc: 00000000
|
||||||
|
4d0: 00000000
|
||||||
|
4d4: 00000000
|
||||||
|
4d8: 00000000
|
||||||
|
4dc: 00000000
|
||||||
|
4e0: 00000002
|
||||||
|
4e4: 00000008
|
||||||
|
4e8: 00640279
|
||||||
|
4ec: 00000000
|
||||||
|
4f0: 00000000
|
||||||
|
4f4: 00000002
|
||||||
|
4f8: 00000008
|
||||||
|
4fc: 00e52ec1
|
||||||
|
500: 00000001
|
||||||
|
504: 00000000
|
||||||
|
508: 00000002
|
||||||
|
50c: 00000008
|
||||||
|
510: 01627f61
|
||||||
|
514: 00000002
|
||||||
|
518: 00000000
|
||||||
|
51c: 00000002
|
||||||
|
520: 00000008
|
||||||
|
524: 01e002a1
|
||||||
|
528: 00000003
|
||||||
|
52c: 00000000
|
||||||
|
530: 00000002
|
||||||
|
534: 00000008
|
||||||
|
538: 025f8459
|
||||||
|
53c: 00000004
|
||||||
|
540: 00000000
|
||||||
|
544: 00000002
|
||||||
|
548: 00000008
|
||||||
|
54c: 02dc5e61
|
||||||
|
550: 00000005
|
||||||
|
554: 00000000
|
||||||
|
558: 00000002
|
||||||
|
55c: 00000008
|
||||||
|
560: 0359f7d1
|
||||||
|
564: 00000006
|
||||||
|
568: 00000000
|
||||||
|
56c: 00000000
|
||||||
|
570: 00000000
|
||||||
|
574: 00000000
|
||||||
|
578: 00000000
|
||||||
|
57c: 00000000
|
||||||
|
580: 00000000
|
||||||
|
584: 00000000
|
||||||
|
588: 00000000
|
||||||
|
58c: 00000000
|
||||||
|
590: 00000000
|
||||||
|
594: 00000000
|
||||||
|
598: 00000000
|
||||||
|
59c: 00000000
|
||||||
|
5a0: 00000000
|
||||||
|
5a4: 00000000
|
||||||
|
5a8: 00000000
|
||||||
|
5ac: 00000000
|
||||||
|
5b0: 00000000
|
||||||
|
5b4: 00000000
|
||||||
|
5b8: 00000000
|
||||||
|
5bc: 00000000
|
||||||
|
5c0: 00000000
|
||||||
|
5c4: 00000000
|
||||||
|
5c8: 00000000
|
||||||
|
5cc: 00000000
|
||||||
|
5d0: 00000000
|
||||||
|
5d4: 00000000
|
||||||
|
5d8: 00000000
|
||||||
|
5dc: 00000000
|
||||||
|
5e0: 00000000
|
||||||
|
5e4: 00000000
|
||||||
|
5e8: 00000000
|
||||||
|
5ec: 00000000
|
||||||
|
5f0: 00000000
|
||||||
|
5f4: 00000000
|
||||||
|
5f8: 00000000
|
||||||
|
5fc: 00000000
|
||||||
|
600: 00000000
|
||||||
|
604: 00000000
|
||||||
|
608: 00000000
|
||||||
|
60c: 00000000
|
||||||
|
610: 00000000
|
||||||
|
614: 00000000
|
||||||
|
618: 00000000
|
||||||
|
61c: 00000000
|
||||||
|
620: 00000000
|
||||||
|
624: 00000000
|
||||||
|
628: 00000000
|
||||||
|
62c: 00000000
|
||||||
|
630: 00000000
|
||||||
|
634: 00000000
|
||||||
|
638: 00000000
|
||||||
|
63c: 00000000
|
||||||
|
640: 00000000
|
||||||
|
644: 00000000
|
||||||
|
648: 00000000
|
||||||
|
64c: 00000000
|
||||||
|
650: 00000000
|
||||||
|
654: 00000000
|
||||||
|
658: 00000000
|
||||||
|
65c: 00000000
|
||||||
|
660: 00000000
|
||||||
|
664: 00000000
|
||||||
|
668: 00000000
|
||||||
|
66c: 00000000
|
||||||
|
670: 00000000
|
||||||
|
674: 00000000
|
||||||
|
678: 00000000
|
||||||
|
67c: 00000000
|
||||||
|
680: 00000000
|
||||||
|
684: 00000000
|
||||||
|
688: 00000000
|
||||||
|
68c: 00000000
|
||||||
|
690: 00000000
|
||||||
|
694: 00000000
|
||||||
|
698: 00000000
|
||||||
|
69c: 00000000
|
||||||
|
6a0: 00000000
|
||||||
|
6a4: 00000000
|
||||||
|
6a8: 00000000
|
||||||
|
6ac: 00000000
|
||||||
|
6b0: 00000000
|
||||||
|
6b4: 00000000
|
||||||
|
6b8: 00000000
|
||||||
|
6bc: 00000000
|
||||||
|
6c0: 00000000
|
||||||
|
6c4: 00000000
|
||||||
|
6c8: 00000000
|
||||||
|
6cc: 00000000
|
||||||
|
6d0: 00000000
|
||||||
|
6d4: 00000000
|
||||||
|
6d8: 00000000
|
||||||
|
6dc: 00000000
|
||||||
|
6e0: 00000000
|
||||||
|
6e4: 00000000
|
||||||
|
6e8: 00000000
|
||||||
|
6ec: 00000000
|
||||||
|
6f0: 00000000
|
||||||
|
6f4: 00000000
|
||||||
|
6f8: 00000000
|
||||||
|
6fc: 00000000
|
||||||
|
700: 00000000
|
||||||
|
704: 00000000
|
||||||
|
708: 00000000
|
||||||
|
70c: 00000000
|
||||||
|
710: 00000000
|
||||||
|
714: 00000000
|
||||||
|
718: 00000000
|
||||||
|
71c: 00000000
|
||||||
|
720: 00000000
|
||||||
|
724: 00000000
|
||||||
|
728: 00000000
|
||||||
|
72c: 00000000
|
||||||
|
730: 00000000
|
||||||
|
734: 00000000
|
||||||
|
738: 00000000
|
||||||
|
73c: 00000000
|
||||||
|
740: 00000000
|
||||||
|
744: 00000000
|
||||||
|
748: 00000000
|
||||||
|
74c: 00000000
|
||||||
|
750: 00000000
|
||||||
|
754: 00000000
|
||||||
|
758: 00000000
|
||||||
|
75c: 00000000
|
||||||
|
760: 00000000
|
||||||
|
764: 00000000
|
||||||
|
768: 00000000
|
||||||
|
76c: 00000000
|
||||||
|
770: 00000000
|
||||||
|
774: 00000000
|
||||||
|
778: 00000000
|
||||||
|
77c: 00000000
|
||||||
|
780: 00000000
|
||||||
|
784: 00000000
|
||||||
|
788: 00000000
|
||||||
|
78c: 00000000
|
||||||
|
790: 00000000
|
||||||
|
794: 00000000
|
||||||
|
798: 00000000
|
||||||
|
79c: 00000000
|
||||||
|
7a0: 00000000
|
||||||
|
7a4: 00000000
|
||||||
|
7a8: 00000000
|
||||||
|
7ac: 00000000
|
||||||
|
7b0: 00000000
|
||||||
|
7b4: 00000000
|
||||||
|
7b8: 00000000
|
||||||
|
7bc: 00000000
|
||||||
|
7c0: 00000000
|
||||||
|
7c4: 00000000
|
||||||
|
7c8: 00000000
|
||||||
|
7cc: 00000000
|
||||||
|
7d0: 00000000
|
||||||
|
7d4: 00000000
|
||||||
|
7d8: 00000000
|
||||||
|
7dc: 00000000
|
||||||
|
7e0: 00000000
|
||||||
|
7e4: 00000000
|
||||||
|
7e8: 00000000
|
||||||
|
7ec: 00000000
|
||||||
|
7f0: 00000000
|
||||||
|
7f4: 00000000
|
||||||
|
7f8: 00000000
|
||||||
|
7fc: 00000000
|
||||||
|
800: 00000000
|
||||||
|
804: 00000000
|
||||||
|
808: 00000000
|
||||||
|
80c: 00000000
|
||||||
|
810: 00000000
|
||||||
|
814: 00000000
|
||||||
|
818: 00000000
|
||||||
|
81c: 00000000
|
||||||
|
820: 00000000
|
||||||
|
824: 00000000
|
||||||
|
828: 00000000
|
||||||
|
82c: 00000000
|
||||||
|
830: 00000000
|
||||||
|
834: 00000000
|
||||||
|
838: 00000000
|
||||||
|
83c: 00000000
|
||||||
|
840: 00000000
|
||||||
|
844: 00000000
|
||||||
|
848: 00000000
|
||||||
|
84c: 00000000
|
||||||
|
850: 00000000
|
||||||
|
854: 00000000
|
||||||
|
858: 00000000
|
||||||
|
85c: 00000000
|
||||||
|
860: 00000000
|
||||||
|
864: 00000000
|
||||||
|
868: 00000000
|
||||||
|
86c: 00000000
|
||||||
|
870: 00000000
|
||||||
|
874: 00000000
|
||||||
|
878: 00000000
|
||||||
|
87c: 00000000
|
||||||
|
880: 00000000
|
||||||
|
884: 00000000
|
||||||
|
888: 00000000
|
||||||
|
88c: 00000000
|
||||||
|
890: 00000000
|
||||||
|
894: 00000000
|
||||||
|
898: 00000000
|
||||||
|
89c: 00000000
|
||||||
|
8a0: 00000000
|
||||||
|
8a4: 00000000
|
||||||
|
8a8: 00000000
|
||||||
|
8ac: 00000000
|
||||||
|
8b0: 00000000
|
||||||
|
8b4: 00000000
|
||||||
|
8b8: 00000000
|
||||||
|
8bc: 00000000
|
||||||
|
8c0: 00000000
|
||||||
|
8c4: 00000000
|
||||||
|
8c8: 00000000
|
||||||
|
8cc: 00000000
|
||||||
|
8d0: 00000000
|
||||||
|
8d4: 00000000
|
||||||
|
8d8: 00000000
|
||||||
|
8dc: 00000000
|
||||||
|
8e0: 00000000
|
||||||
|
8e4: 00000000
|
||||||
|
8e8: 00000000
|
||||||
|
8ec: 00000000
|
||||||
|
8f0: 00000000
|
||||||
|
8f4: 00000000
|
||||||
|
8f8: 00000000
|
||||||
|
8fc: 00000000
|
||||||
|
900: 00000000
|
||||||
|
904: 00000000
|
||||||
|
908: 00000000
|
||||||
|
90c: 00000000
|
||||||
|
910: 00000000
|
||||||
|
914: 00000000
|
||||||
|
918: 00000000
|
||||||
|
91c: 00000000
|
||||||
|
920: 00000000
|
||||||
|
924: 00000000
|
||||||
|
928: 00000000
|
||||||
|
92c: 00000000
|
||||||
|
930: 00000000
|
||||||
|
934: 00000000
|
||||||
|
938: 00000000
|
||||||
|
93c: 00000000
|
||||||
|
940: 00000000
|
||||||
|
944: 00000000
|
||||||
|
948: 00000000
|
||||||
|
94c: 00000000
|
||||||
|
950: 00000000
|
||||||
|
954: 00000000
|
||||||
|
958: 00000000
|
||||||
|
95c: 00000000
|
||||||
|
960: 00000000
|
||||||
|
964: 00000000
|
||||||
|
968: 00000000
|
||||||
|
96c: 00000000
|
||||||
|
970: 00000000
|
||||||
|
974: 00000000
|
||||||
|
978: 00000000
|
||||||
|
97c: 00000000
|
||||||
|
980: 00000000
|
||||||
|
984: 00000000
|
||||||
|
988: 00000000
|
||||||
|
98c: 00000000
|
||||||
|
990: 00000000
|
||||||
|
994: 00000000
|
||||||
|
998: 00000000
|
||||||
|
99c: 00000000
|
||||||
|
9a0: 00000000
|
||||||
|
9a4: 00000000
|
||||||
|
9a8: 00000000
|
||||||
|
9ac: 00000000
|
||||||
|
9b0: 00000000
|
||||||
|
9b4: 00000000
|
||||||
|
9b8: 00000000
|
||||||
|
9bc: 00000000
|
||||||
|
9c0: 00000000
|
||||||
|
9c4: 00000000
|
||||||
|
9c8: 00000000
|
||||||
|
9cc: 00000000
|
||||||
|
9d0: 00000000
|
||||||
|
9d4: 00000000
|
||||||
|
9d8: 00000000
|
||||||
|
9dc: 00000000
|
||||||
|
9e0: 00000000
|
||||||
|
9e4: 00000000
|
||||||
|
9e8: 00000000
|
||||||
|
9ec: 00000000
|
||||||
|
9f0: 00000000
|
||||||
|
9f4: 00000000
|
||||||
|
9f8: 00000000
|
||||||
|
9fc: 00000000
|
||||||
|
a00: 00000000
|
||||||
|
a04: 00000000
|
||||||
|
a08: 00000000
|
||||||
|
a0c: 00000000
|
||||||
|
a10: 00000000
|
||||||
|
a14: 00000000
|
||||||
|
a18: 00000000
|
||||||
|
a1c: 00000000
|
||||||
|
a20: 00000000
|
||||||
|
a24: 00000000
|
||||||
|
a28: 00000000
|
||||||
|
a2c: 00000000
|
||||||
|
a30: 00000000
|
||||||
|
a34: 00000000
|
||||||
|
a38: 00000000
|
||||||
|
a3c: 00000000
|
||||||
|
a40: 00000000
|
||||||
|
a44: 00000000
|
||||||
|
a48: 00000000
|
||||||
|
a4c: 00000000
|
||||||
|
a50: 00000000
|
||||||
|
a54: 00000000
|
||||||
|
a58: 00000000
|
||||||
|
a5c: 00000000
|
||||||
|
a60: 00000000
|
||||||
|
a64: 00000000
|
||||||
|
a68: 00000000
|
||||||
|
a6c: 00000000
|
||||||
|
a70: 00000000
|
||||||
|
a74: 00000000
|
||||||
|
a78: 00000000
|
||||||
|
a7c: 00000000
|
||||||
|
a80: 00000000
|
||||||
|
a84: 00000000
|
||||||
|
a88: 00000000
|
||||||
|
a8c: 00000000
|
||||||
|
a90: 00000000
|
||||||
|
a94: 00000000
|
||||||
|
a98: 00000000
|
||||||
|
a9c: 00000000
|
||||||
|
aa0: 00000000
|
||||||
|
aa4: 00000000
|
||||||
|
aa8: 00000000
|
||||||
|
aac: 00000000
|
||||||
|
ab0: 00000000
|
||||||
|
ab4: 00000000
|
||||||
|
ab8: 00000000
|
||||||
|
abc: 00000000
|
||||||
|
ac0: 00000000
|
||||||
|
ac4: 00000000
|
||||||
|
ac8: 00000000
|
||||||
|
acc: 00000000
|
||||||
|
ad0: 00000000
|
||||||
|
ad4: 00000000
|
||||||
|
ad8: 00000000
|
||||||
|
adc: 00000000
|
||||||
|
ae0: 00000000
|
||||||
|
ae4: 00000000
|
||||||
|
ae8: 00000000
|
||||||
|
aec: 00000000
|
||||||
|
af0: 00000000
|
||||||
|
af4: 00000000
|
||||||
|
af8: 00000000
|
||||||
|
afc: 00000000
|
||||||
|
b00: 00000000
|
||||||
|
b04: 00000000
|
||||||
|
b08: 00000000
|
||||||
|
b0c: 00000000
|
||||||
|
b10: 00000000
|
||||||
|
b14: 00000000
|
||||||
|
b18: 00000000
|
||||||
|
b1c: 00000000
|
||||||
|
b20: 00000000
|
||||||
|
b24: 00000000
|
||||||
|
b28: 00000000
|
||||||
|
b2c: 00000000
|
||||||
|
b30: 00000000
|
||||||
|
b34: 00000000
|
||||||
|
b38: 00000000
|
||||||
|
b3c: 00000000
|
||||||
|
b40: 00000000
|
||||||
|
b44: 00000000
|
||||||
|
b48: 00000000
|
||||||
|
b4c: 00000000
|
||||||
|
b50: 00000000
|
||||||
|
b54: 00000000
|
||||||
|
b58: 00000000
|
||||||
|
b5c: 00000000
|
||||||
|
b60: 00000000
|
||||||
|
b64: 00000000
|
||||||
|
b68: 00000000
|
||||||
|
b6c: 00000000
|
||||||
|
b70: 00000000
|
||||||
|
b74: 00000000
|
||||||
|
b78: 00000000
|
||||||
|
b7c: 00000000
|
||||||
|
b80: 00000000
|
||||||
|
b84: 00000000
|
||||||
|
b88: 00000000
|
||||||
|
b8c: 00000000
|
||||||
|
b90: 00000000
|
||||||
|
b94: 00000000
|
||||||
|
b98: 00000000
|
||||||
|
b9c: 00000000
|
||||||
|
ba0: 00000000
|
||||||
|
ba4: 00000000
|
||||||
|
ba8: 00000000
|
||||||
|
bac: 00000000
|
||||||
|
bb0: 00000000
|
||||||
|
bb4: 00000000
|
||||||
|
bb8: 00000000
|
||||||
|
bbc: 00000000
|
||||||
|
bc0: 00000000
|
||||||
|
bc4: 00000000
|
||||||
|
bc8: 00000000
|
||||||
|
bcc: 00000000
|
||||||
|
bd0: 00000000
|
||||||
|
bd4: 00000000
|
||||||
|
bd8: 00000000
|
||||||
|
bdc: 00000000
|
||||||
|
be0: 00000000
|
||||||
|
be4: 00000000
|
||||||
|
be8: 00000000
|
||||||
|
bec: 00000000
|
||||||
|
bf0: 00000000
|
||||||
|
bf4: 00000000
|
||||||
|
bf8: 00000000
|
||||||
|
bfc: 00000000
|
||||||
|
e00: 00000468
|
||||||
|
e04: 03030003
|
||||||
|
e08: 03000305
|
||||||
|
e0c: 00000007
|
||||||
|
e10: 00000000
|
||||||
|
e14: 00000000
|
||||||
|
|
@ -0,0 +1,706 @@
|
||||||
|
000: 05ab0760
|
||||||
|
004: 001c0900
|
||||||
|
008: 000e0303
|
||||||
|
00c: 00021000
|
||||||
|
010: 03184e05
|
||||||
|
014: 00010000
|
||||||
|
018: 40400040
|
||||||
|
01c: 3f1a0000
|
||||||
|
020: 00000000
|
||||||
|
024: 00000000
|
||||||
|
028: 00000000
|
||||||
|
02c: 00000000
|
||||||
|
030: 00000000
|
||||||
|
034: 00000000
|
||||||
|
038: 00000000
|
||||||
|
03c: 00000007
|
||||||
|
040: 07000029
|
||||||
|
044: 00000000
|
||||||
|
048: 00000054
|
||||||
|
04c: 00000000
|
||||||
|
050: 00600080
|
||||||
|
054: 00000005
|
||||||
|
058: 00000060
|
||||||
|
05c: 1f000029
|
||||||
|
060: 00000700
|
||||||
|
064: 000000ec
|
||||||
|
068: 1f000029
|
||||||
|
06c: 00000000
|
||||||
|
070: 000002e0
|
||||||
|
074: 0f000029
|
||||||
|
078: 00000000
|
||||||
|
07c: 00000560
|
||||||
|
080: 07600090
|
||||||
|
084: 00000707
|
||||||
|
088: 00000710
|
||||||
|
08c: 00600000
|
||||||
|
090: 00000000
|
||||||
|
094: 00000720
|
||||||
|
098: 00600000
|
||||||
|
09c: 00000000
|
||||||
|
0a0: 00000730
|
||||||
|
0a4: 00600000
|
||||||
|
0a8: 00000000
|
||||||
|
0ac: 00000740
|
||||||
|
0b0: 00600000
|
||||||
|
0b4: 00000000
|
||||||
|
0b8: 00000750
|
||||||
|
0bc: 00600000
|
||||||
|
0c0: 00000000
|
||||||
|
0c4: 00000760
|
||||||
|
0c8: 00600000
|
||||||
|
0cc: 00000000
|
||||||
|
0d0: 00000770
|
||||||
|
0d4: 00600000
|
||||||
|
0d8: 00000000
|
||||||
|
0dc: 00000780
|
||||||
|
0e0: 00600000
|
||||||
|
0e4: 00000000
|
||||||
|
0e8: 00000790
|
||||||
|
0ec: 00600000
|
||||||
|
0f0: 00000000
|
||||||
|
0f4: 000007a0
|
||||||
|
0f8: 00600000
|
||||||
|
0fc: 00000000
|
||||||
|
100: 000007b0
|
||||||
|
104: 00600000
|
||||||
|
108: 00000000
|
||||||
|
10c: 000007c0
|
||||||
|
110: 00600000
|
||||||
|
114: 00000000
|
||||||
|
118: 000007d0
|
||||||
|
11c: 00600000
|
||||||
|
120: 00000000
|
||||||
|
124: 000007e0
|
||||||
|
128: 00600000
|
||||||
|
12c: 00000000
|
||||||
|
130: 000007f0
|
||||||
|
134: 00600000
|
||||||
|
138: 00000000
|
||||||
|
13c: 00000800
|
||||||
|
140: 00600000
|
||||||
|
144: 00000000
|
||||||
|
148: 00000810
|
||||||
|
14c: 00600000
|
||||||
|
150: 00000000
|
||||||
|
154: 00000820
|
||||||
|
158: 00600000
|
||||||
|
15c: 00000000
|
||||||
|
160: 00000830
|
||||||
|
164: 00600000
|
||||||
|
168: 00000000
|
||||||
|
16c: 00000840
|
||||||
|
170: 00600000
|
||||||
|
174: 00000000
|
||||||
|
178: 00000850
|
||||||
|
17c: 00600000
|
||||||
|
180: 00000000
|
||||||
|
184: 00000860
|
||||||
|
188: 00600000
|
||||||
|
18c: 00000000
|
||||||
|
190: 00000870
|
||||||
|
194: 00600000
|
||||||
|
198: 00000000
|
||||||
|
19c: 00000880
|
||||||
|
1a0: 00600000
|
||||||
|
1a4: 00000000
|
||||||
|
1a8: 00000890
|
||||||
|
1ac: 00600000
|
||||||
|
1b0: 00000000
|
||||||
|
1b4: 000008a0
|
||||||
|
1b8: 00600000
|
||||||
|
1bc: 00000000
|
||||||
|
1c0: 000008b0
|
||||||
|
1c4: 00600000
|
||||||
|
1c8: 00000000
|
||||||
|
1cc: 000008c0
|
||||||
|
1d0: 00838281
|
||||||
|
1d4: 00000000
|
||||||
|
1d8: 00000000
|
||||||
|
1dc: 00000000
|
||||||
|
1e0: 00000000
|
||||||
|
1e4: 00000000
|
||||||
|
1e8: 00000000
|
||||||
|
1ec: 00000000
|
||||||
|
1f0: 00000000
|
||||||
|
1f4: 00000000
|
||||||
|
1f8: 00000000
|
||||||
|
1fc: 00000000
|
||||||
|
200: 00000000
|
||||||
|
204: 00000000
|
||||||
|
208: 00000000
|
||||||
|
20c: 00000000
|
||||||
|
210: 00000000
|
||||||
|
214: 00000000
|
||||||
|
218: 00000000
|
||||||
|
21c: 00000000
|
||||||
|
220: 00000000
|
||||||
|
224: 00000000
|
||||||
|
228: 00000000
|
||||||
|
22c: 00000000
|
||||||
|
230: 00000000
|
||||||
|
234: 00000000
|
||||||
|
238: 00000000
|
||||||
|
23c: 00000000
|
||||||
|
240: 00000000
|
||||||
|
244: 00000000
|
||||||
|
248: 00000000
|
||||||
|
24c: 00000000
|
||||||
|
250: 00000000
|
||||||
|
254: 00000000
|
||||||
|
258: 00000000
|
||||||
|
25c: 00000000
|
||||||
|
260: 00000000
|
||||||
|
264: 00000000
|
||||||
|
268: 00000000
|
||||||
|
26c: 00000000
|
||||||
|
270: 00000000
|
||||||
|
274: 00000000
|
||||||
|
278: 00000000
|
||||||
|
27c: 00000000
|
||||||
|
280: 00000000
|
||||||
|
284: 00000000
|
||||||
|
288: 00000000
|
||||||
|
28c: 00000000
|
||||||
|
290: 00000000
|
||||||
|
294: 00000000
|
||||||
|
298: 00000000
|
||||||
|
29c: 00000000
|
||||||
|
2a0: 00000000
|
||||||
|
2a4: 00000000
|
||||||
|
2a8: 00000000
|
||||||
|
2ac: 00000000
|
||||||
|
2b0: 00000000
|
||||||
|
2b4: 00000000
|
||||||
|
2b8: 00000000
|
||||||
|
2bc: 00000000
|
||||||
|
2c0: 00000000
|
||||||
|
2c4: 00000000
|
||||||
|
2c8: 00000000
|
||||||
|
2cc: 00000000
|
||||||
|
2d0: 00000000
|
||||||
|
2d4: 00000000
|
||||||
|
2d8: 00000000
|
||||||
|
2dc: 00000000
|
||||||
|
2e0: 00000000
|
||||||
|
2e4: 00000000
|
||||||
|
2e8: 00000000
|
||||||
|
2ec: 00000000
|
||||||
|
400: 00000002
|
||||||
|
404: 00000008
|
||||||
|
408: 002a5227
|
||||||
|
40c: 00000002
|
||||||
|
410: 00000208
|
||||||
|
414: 00a49627
|
||||||
|
418: 00000002
|
||||||
|
41c: 00000408
|
||||||
|
420: 011edd47
|
||||||
|
424: 00000002
|
||||||
|
428: 00000608
|
||||||
|
42c: 0199149f
|
||||||
|
430: 00000002
|
||||||
|
434: 00000808
|
||||||
|
438: 021357d7
|
||||||
|
43c: 00000002
|
||||||
|
440: 00000a08
|
||||||
|
444: 028d9e07
|
||||||
|
448: 00000002
|
||||||
|
44c: 00000c08
|
||||||
|
450: 0307e45f
|
||||||
|
454: 00000000
|
||||||
|
458: 00000000
|
||||||
|
45c: 00000000
|
||||||
|
460: 00000002
|
||||||
|
464: 00000008
|
||||||
|
468: 002a5227
|
||||||
|
46c: 00000000
|
||||||
|
470: 00000000
|
||||||
|
474: 00000002
|
||||||
|
478: 00000008
|
||||||
|
47c: 00a49627
|
||||||
|
480: 00000001
|
||||||
|
484: 00000000
|
||||||
|
488: 00000002
|
||||||
|
48c: 00000008
|
||||||
|
490: 011edd47
|
||||||
|
494: 00000002
|
||||||
|
498: 00000000
|
||||||
|
49c: 00000002
|
||||||
|
4a0: 00000008
|
||||||
|
4a4: 0199149f
|
||||||
|
4a8: 00000003
|
||||||
|
4ac: 00000000
|
||||||
|
4b0: 00000002
|
||||||
|
4b4: 00000008
|
||||||
|
4b8: 021357d7
|
||||||
|
4bc: 00000004
|
||||||
|
4c0: 00000000
|
||||||
|
4c4: 00000002
|
||||||
|
4c8: 00000008
|
||||||
|
4cc: 028d9e07
|
||||||
|
4d0: 00000005
|
||||||
|
4d4: 00000000
|
||||||
|
4d8: 00000002
|
||||||
|
4dc: 00000008
|
||||||
|
4e0: 0307e45f
|
||||||
|
4e4: 00000006
|
||||||
|
4e8: 00000000
|
||||||
|
4ec: 00000000
|
||||||
|
4f0: 00000000
|
||||||
|
4f4: 00000000
|
||||||
|
4f8: 00000000
|
||||||
|
4fc: 00000000
|
||||||
|
500: 00000000
|
||||||
|
504: 00000000
|
||||||
|
508: 00000000
|
||||||
|
50c: 00000000
|
||||||
|
510: 00000000
|
||||||
|
514: 00000000
|
||||||
|
518: 00000000
|
||||||
|
51c: 00000000
|
||||||
|
520: 00000000
|
||||||
|
524: 00000000
|
||||||
|
528: 00000000
|
||||||
|
52c: 00000000
|
||||||
|
530: 00000000
|
||||||
|
534: 00000000
|
||||||
|
538: 00000000
|
||||||
|
53c: 00000000
|
||||||
|
540: 00000000
|
||||||
|
544: 00000000
|
||||||
|
548: 00000000
|
||||||
|
54c: 00000000
|
||||||
|
550: 00000000
|
||||||
|
554: 00000000
|
||||||
|
558: 00000000
|
||||||
|
55c: 00000000
|
||||||
|
560: 00000000
|
||||||
|
564: 00000000
|
||||||
|
568: 00000000
|
||||||
|
56c: 00000000
|
||||||
|
570: 00000000
|
||||||
|
574: 00000000
|
||||||
|
578: 00000000
|
||||||
|
57c: 00000000
|
||||||
|
580: 00000000
|
||||||
|
584: 00000000
|
||||||
|
588: 00000000
|
||||||
|
58c: 00000000
|
||||||
|
590: 00000000
|
||||||
|
594: 00000000
|
||||||
|
598: 00000000
|
||||||
|
59c: 00000000
|
||||||
|
5a0: 00000000
|
||||||
|
5a4: 00000000
|
||||||
|
5a8: 00000000
|
||||||
|
5ac: 00000000
|
||||||
|
5b0: 00000000
|
||||||
|
5b4: 00000000
|
||||||
|
5b8: 00000000
|
||||||
|
5bc: 00000000
|
||||||
|
5c0: 00000000
|
||||||
|
5c4: 00000000
|
||||||
|
5c8: 00000000
|
||||||
|
5cc: 00000000
|
||||||
|
5d0: 00000000
|
||||||
|
5d4: 00000000
|
||||||
|
5d8: 00000000
|
||||||
|
5dc: 00000000
|
||||||
|
5e0: 00000000
|
||||||
|
5e4: 00000000
|
||||||
|
5e8: 00000000
|
||||||
|
5ec: 00000000
|
||||||
|
5f0: 00000000
|
||||||
|
5f4: 00000000
|
||||||
|
5f8: 00000000
|
||||||
|
5fc: 00000000
|
||||||
|
600: 00000000
|
||||||
|
604: 00000000
|
||||||
|
608: 00000000
|
||||||
|
60c: 00000000
|
||||||
|
610: 00000000
|
||||||
|
614: 00000000
|
||||||
|
618: 00000000
|
||||||
|
61c: 00000000
|
||||||
|
620: 00000000
|
||||||
|
624: 00000000
|
||||||
|
628: 00000000
|
||||||
|
62c: 00000000
|
||||||
|
630: 00000000
|
||||||
|
634: 00000000
|
||||||
|
638: 00000000
|
||||||
|
63c: 00000000
|
||||||
|
640: 00000000
|
||||||
|
644: 00000000
|
||||||
|
648: 00000000
|
||||||
|
64c: 00000000
|
||||||
|
650: 00000000
|
||||||
|
654: 00000000
|
||||||
|
658: 00000000
|
||||||
|
65c: 00000000
|
||||||
|
660: 00000000
|
||||||
|
664: 00000000
|
||||||
|
668: 00000000
|
||||||
|
66c: 00000000
|
||||||
|
670: 00000000
|
||||||
|
674: 00000000
|
||||||
|
678: 00000000
|
||||||
|
67c: 00000000
|
||||||
|
680: 00000000
|
||||||
|
684: 00000000
|
||||||
|
688: 00000000
|
||||||
|
68c: 00000000
|
||||||
|
690: 00000000
|
||||||
|
694: 00000000
|
||||||
|
698: 00000000
|
||||||
|
69c: 00000000
|
||||||
|
6a0: 00000000
|
||||||
|
6a4: 00000000
|
||||||
|
6a8: 00000000
|
||||||
|
6ac: 00000000
|
||||||
|
6b0: 00000000
|
||||||
|
6b4: 00000000
|
||||||
|
6b8: 00000000
|
||||||
|
6bc: 00000000
|
||||||
|
6c0: 00000000
|
||||||
|
6c4: 00000000
|
||||||
|
6c8: 00000000
|
||||||
|
6cc: 00000000
|
||||||
|
6d0: 00000000
|
||||||
|
6d4: 00000000
|
||||||
|
6d8: 00000000
|
||||||
|
6dc: 00000000
|
||||||
|
6e0: 00000000
|
||||||
|
6e4: 00000000
|
||||||
|
6e8: 00000000
|
||||||
|
6ec: 00000000
|
||||||
|
6f0: 00000000
|
||||||
|
6f4: 00000000
|
||||||
|
6f8: 00000000
|
||||||
|
6fc: 00000000
|
||||||
|
700: 00000000
|
||||||
|
704: 00000000
|
||||||
|
708: 00000000
|
||||||
|
70c: 00000000
|
||||||
|
710: 00000000
|
||||||
|
714: 00000000
|
||||||
|
718: 00000000
|
||||||
|
71c: 00000000
|
||||||
|
720: 00000000
|
||||||
|
724: 00000000
|
||||||
|
728: 00000000
|
||||||
|
72c: 00000000
|
||||||
|
730: 00000000
|
||||||
|
734: 00000000
|
||||||
|
738: 00000000
|
||||||
|
73c: 00000000
|
||||||
|
740: 00000000
|
||||||
|
744: 00000000
|
||||||
|
748: 00000000
|
||||||
|
74c: 00000000
|
||||||
|
750: 00000000
|
||||||
|
754: 00000000
|
||||||
|
758: 00000000
|
||||||
|
75c: 00000000
|
||||||
|
760: 00000000
|
||||||
|
764: 00000000
|
||||||
|
768: 00000000
|
||||||
|
76c: 00000000
|
||||||
|
770: 00000000
|
||||||
|
774: 00000000
|
||||||
|
778: 00000000
|
||||||
|
77c: 00000000
|
||||||
|
780: 00000000
|
||||||
|
784: 00000000
|
||||||
|
788: 00000000
|
||||||
|
78c: 00000000
|
||||||
|
790: 00000000
|
||||||
|
794: 00000000
|
||||||
|
798: 00000000
|
||||||
|
79c: 00000000
|
||||||
|
7a0: 00000000
|
||||||
|
7a4: 00000000
|
||||||
|
7a8: 00000000
|
||||||
|
7ac: 00000000
|
||||||
|
7b0: 00000000
|
||||||
|
7b4: 00000000
|
||||||
|
7b8: 00000000
|
||||||
|
7bc: 00000000
|
||||||
|
7c0: 00000000
|
||||||
|
7c4: 00000000
|
||||||
|
7c8: 00000000
|
||||||
|
7cc: 00000000
|
||||||
|
7d0: 00000000
|
||||||
|
7d4: 00000000
|
||||||
|
7d8: 00000000
|
||||||
|
7dc: 00000000
|
||||||
|
7e0: 00000000
|
||||||
|
7e4: 00000000
|
||||||
|
7e8: 00000000
|
||||||
|
7ec: 00000000
|
||||||
|
7f0: 00000000
|
||||||
|
7f4: 00000000
|
||||||
|
7f8: 00000000
|
||||||
|
7fc: 00000000
|
||||||
|
800: 00000000
|
||||||
|
804: 00000000
|
||||||
|
808: 00000000
|
||||||
|
80c: 00000000
|
||||||
|
810: 00000000
|
||||||
|
814: 00000000
|
||||||
|
818: 00000000
|
||||||
|
81c: 00000000
|
||||||
|
820: 00000000
|
||||||
|
824: 00000000
|
||||||
|
828: 00000000
|
||||||
|
82c: 00000000
|
||||||
|
830: 00000000
|
||||||
|
834: 00000000
|
||||||
|
838: 00000000
|
||||||
|
83c: 00000000
|
||||||
|
840: 00000000
|
||||||
|
844: 00000000
|
||||||
|
848: 00000000
|
||||||
|
84c: 00000000
|
||||||
|
850: 00000000
|
||||||
|
854: 00000000
|
||||||
|
858: 00000000
|
||||||
|
85c: 00000000
|
||||||
|
860: 00000000
|
||||||
|
864: 00000000
|
||||||
|
868: 00000000
|
||||||
|
86c: 00000000
|
||||||
|
870: 00000000
|
||||||
|
874: 00000000
|
||||||
|
878: 00000000
|
||||||
|
87c: 00000000
|
||||||
|
880: 00000000
|
||||||
|
884: 00000000
|
||||||
|
888: 00000000
|
||||||
|
88c: 00000000
|
||||||
|
890: 00000000
|
||||||
|
894: 00000000
|
||||||
|
898: 00000000
|
||||||
|
89c: 00000000
|
||||||
|
8a0: 00000000
|
||||||
|
8a4: 00000000
|
||||||
|
8a8: 00000000
|
||||||
|
8ac: 00000000
|
||||||
|
8b0: 00000000
|
||||||
|
8b4: 00000000
|
||||||
|
8b8: 00000000
|
||||||
|
8bc: 00000000
|
||||||
|
8c0: 00000000
|
||||||
|
8c4: 00000000
|
||||||
|
8c8: 00000000
|
||||||
|
8cc: 00000000
|
||||||
|
8d0: 00000000
|
||||||
|
8d4: 00000000
|
||||||
|
8d8: 00000000
|
||||||
|
8dc: 00000000
|
||||||
|
8e0: 00000000
|
||||||
|
8e4: 00000000
|
||||||
|
8e8: 00000000
|
||||||
|
8ec: 00000000
|
||||||
|
8f0: 00000000
|
||||||
|
8f4: 00000000
|
||||||
|
8f8: 00000000
|
||||||
|
8fc: 00000000
|
||||||
|
900: 00000000
|
||||||
|
904: 00000000
|
||||||
|
908: 00000000
|
||||||
|
90c: 00000000
|
||||||
|
910: 00000000
|
||||||
|
914: 00000000
|
||||||
|
918: 00000000
|
||||||
|
91c: 00000000
|
||||||
|
920: 00000000
|
||||||
|
924: 00000000
|
||||||
|
928: 00000000
|
||||||
|
92c: 00000000
|
||||||
|
930: 00000000
|
||||||
|
934: 00000000
|
||||||
|
938: 00000000
|
||||||
|
93c: 00000000
|
||||||
|
940: 00000000
|
||||||
|
944: 00000000
|
||||||
|
948: 00000000
|
||||||
|
94c: 00000000
|
||||||
|
950: 00000000
|
||||||
|
954: 00000000
|
||||||
|
958: 00000000
|
||||||
|
95c: 00000000
|
||||||
|
960: 00000000
|
||||||
|
964: 00000000
|
||||||
|
968: 00000000
|
||||||
|
96c: 00000000
|
||||||
|
970: 00000000
|
||||||
|
974: 00000000
|
||||||
|
978: 00000000
|
||||||
|
97c: 00000000
|
||||||
|
980: 00000000
|
||||||
|
984: 00000000
|
||||||
|
988: 00000000
|
||||||
|
98c: 00000000
|
||||||
|
990: 00000000
|
||||||
|
994: 00000000
|
||||||
|
998: 00000000
|
||||||
|
99c: 00000000
|
||||||
|
9a0: 00000000
|
||||||
|
9a4: 00000000
|
||||||
|
9a8: 00000000
|
||||||
|
9ac: 00000000
|
||||||
|
9b0: 00000000
|
||||||
|
9b4: 00000000
|
||||||
|
9b8: 00000000
|
||||||
|
9bc: 00000000
|
||||||
|
9c0: 00000000
|
||||||
|
9c4: 00000000
|
||||||
|
9c8: 00000000
|
||||||
|
9cc: 00000000
|
||||||
|
9d0: 00000000
|
||||||
|
9d4: 00000000
|
||||||
|
9d8: 00000000
|
||||||
|
9dc: 00000000
|
||||||
|
9e0: 00000000
|
||||||
|
9e4: 00000000
|
||||||
|
9e8: 00000000
|
||||||
|
9ec: 00000000
|
||||||
|
9f0: 00000000
|
||||||
|
9f4: 00000000
|
||||||
|
9f8: 00000000
|
||||||
|
9fc: 00000000
|
||||||
|
a00: 00000000
|
||||||
|
a04: 00000000
|
||||||
|
a08: 00000000
|
||||||
|
a0c: 00000000
|
||||||
|
a10: 00000000
|
||||||
|
a14: 00000000
|
||||||
|
a18: 00000000
|
||||||
|
a1c: 00000000
|
||||||
|
a20: 00000000
|
||||||
|
a24: 00000000
|
||||||
|
a28: 00000000
|
||||||
|
a2c: 00000000
|
||||||
|
a30: 00000000
|
||||||
|
a34: 00000000
|
||||||
|
a38: 00000000
|
||||||
|
a3c: 00000000
|
||||||
|
a40: 00000000
|
||||||
|
a44: 00000000
|
||||||
|
a48: 00000000
|
||||||
|
a4c: 00000000
|
||||||
|
a50: 00000000
|
||||||
|
a54: 00000000
|
||||||
|
a58: 00000000
|
||||||
|
a5c: 00000000
|
||||||
|
a60: 00000000
|
||||||
|
a64: 00000000
|
||||||
|
a68: 00000000
|
||||||
|
a6c: 00000000
|
||||||
|
a70: 00000000
|
||||||
|
a74: 00000000
|
||||||
|
a78: 00000000
|
||||||
|
a7c: 00000000
|
||||||
|
a80: 00000000
|
||||||
|
a84: 00000000
|
||||||
|
a88: 00000000
|
||||||
|
a8c: 00000000
|
||||||
|
a90: 00000000
|
||||||
|
a94: 00000000
|
||||||
|
a98: 00000000
|
||||||
|
a9c: 00000000
|
||||||
|
aa0: 00000002
|
||||||
|
aa4: 00000008
|
||||||
|
aa8: 00000000
|
||||||
|
aac: 00000000
|
||||||
|
ab0: 00000002
|
||||||
|
ab4: 00000208
|
||||||
|
ab8: 00000001
|
||||||
|
abc: 00000000
|
||||||
|
ac0: 00000002
|
||||||
|
ac4: 00000408
|
||||||
|
ac8: 00000002
|
||||||
|
acc: 00000000
|
||||||
|
ad0: 00000002
|
||||||
|
ad4: 00000608
|
||||||
|
ad8: 00000003
|
||||||
|
adc: 00000000
|
||||||
|
ae0: 00000002
|
||||||
|
ae4: 00000808
|
||||||
|
ae8: 00000004
|
||||||
|
aec: 00000000
|
||||||
|
af0: 00000002
|
||||||
|
af4: 00000a08
|
||||||
|
af8: 00000005
|
||||||
|
afc: 00000000
|
||||||
|
b00: 00000002
|
||||||
|
b04: 00000c08
|
||||||
|
b08: 00000006
|
||||||
|
b0c: 00000000
|
||||||
|
b10: 00000000
|
||||||
|
b14: 00000000
|
||||||
|
b18: 00000000
|
||||||
|
b1c: 00000000
|
||||||
|
b20: 00000000
|
||||||
|
b24: 00000000
|
||||||
|
b28: 00000000
|
||||||
|
b2c: 00000000
|
||||||
|
b30: 00000000
|
||||||
|
b34: 00000000
|
||||||
|
b38: 00000000
|
||||||
|
b3c: 00000000
|
||||||
|
b40: 00000000
|
||||||
|
b44: 00000000
|
||||||
|
b48: 00000000
|
||||||
|
b4c: 00000000
|
||||||
|
b50: 00000000
|
||||||
|
b54: 00000000
|
||||||
|
b58: 00000000
|
||||||
|
b5c: 00000000
|
||||||
|
b60: 00000000
|
||||||
|
b64: 00000000
|
||||||
|
b68: 00000000
|
||||||
|
b6c: 00000000
|
||||||
|
b70: 00000000
|
||||||
|
b74: 00000000
|
||||||
|
b78: 00000000
|
||||||
|
b7c: 00000000
|
||||||
|
b80: 00000000
|
||||||
|
b84: 00000000
|
||||||
|
b88: 00000000
|
||||||
|
b8c: 00000000
|
||||||
|
b90: 00000000
|
||||||
|
b94: 00000000
|
||||||
|
b98: 00000000
|
||||||
|
b9c: 00000000
|
||||||
|
ba0: 00000000
|
||||||
|
ba4: 00000000
|
||||||
|
ba8: 00000000
|
||||||
|
bac: 00000000
|
||||||
|
bb0: 00000000
|
||||||
|
bb4: 00000000
|
||||||
|
bb8: 00000000
|
||||||
|
bbc: 00000000
|
||||||
|
bc0: 00000000
|
||||||
|
bc4: 00000000
|
||||||
|
bc8: 00000000
|
||||||
|
bcc: 00000000
|
||||||
|
bd0: 00000000
|
||||||
|
bd4: 00000000
|
||||||
|
bd8: 00000000
|
||||||
|
bdc: 00000000
|
||||||
|
be0: 00000000
|
||||||
|
be4: 00000000
|
||||||
|
be8: 00000000
|
||||||
|
bec: 00000000
|
||||||
|
bf0: 00000000
|
||||||
|
bf4: 00000000
|
||||||
|
bf8: 00000000
|
||||||
|
bfc: 00000000
|
||||||
|
e00: 00000468
|
||||||
|
e04: 03030003
|
||||||
|
e08: 03000305
|
||||||
|
e0c: 00000007
|
||||||
|
e10: 00000000
|
||||||
|
e14: 00000000
|
||||||
|
|
@ -21,7 +21,6 @@
|
||||||
#include "mcp251xfd.h"
|
#include "mcp251xfd.h"
|
||||||
#include "mcp251xfd-dump-userspace.h"
|
#include "mcp251xfd-dump-userspace.h"
|
||||||
|
|
||||||
|
|
||||||
struct mcp251xfd_dump_iter {
|
struct mcp251xfd_dump_iter {
|
||||||
const void *start;
|
const void *start;
|
||||||
const struct mcp251xfd_dump_object_header *hdr;
|
const struct mcp251xfd_dump_object_header *hdr;
|
||||||
|
|
@ -29,20 +28,20 @@ struct mcp251xfd_dump_iter {
|
||||||
const void *object_end;
|
const void *object_end;
|
||||||
};
|
};
|
||||||
|
|
||||||
static __attribute__((__unused__)) const char *
|
const char *
|
||||||
get_object_type_str(enum mcp251xfd_dump_object_type object_type)
|
get_object_type_str(enum mcp251xfd_dump_object_type object_type)
|
||||||
{
|
{
|
||||||
switch (object_type) {
|
switch (object_type) {
|
||||||
case MCP251XFD_DUMP_OBJECT_TYPE_REG:
|
case MCP251XFD_DUMP_OBJECT_TYPE_REG:
|
||||||
return "reg";
|
return "REG";
|
||||||
case MCP251XFD_DUMP_OBJECT_TYPE_TEF:
|
case MCP251XFD_DUMP_OBJECT_TYPE_TEF:
|
||||||
return "tef";
|
return "TEF";
|
||||||
case MCP251XFD_DUMP_OBJECT_TYPE_RX:
|
case MCP251XFD_DUMP_OBJECT_TYPE_RX:
|
||||||
return "rx";
|
return "RX";
|
||||||
case MCP251XFD_DUMP_OBJECT_TYPE_TX:
|
case MCP251XFD_DUMP_OBJECT_TYPE_TX:
|
||||||
return "tx";
|
return "TX";
|
||||||
case MCP251XFD_DUMP_OBJECT_TYPE_END:
|
case MCP251XFD_DUMP_OBJECT_TYPE_END:
|
||||||
return "end";
|
return "END";
|
||||||
default:
|
default:
|
||||||
return "<unknown>";
|
return "<unknown>";
|
||||||
}
|
}
|
||||||
|
|
@ -86,7 +85,7 @@ do_dev_coredump_read_reg(const struct mcp251xfd_priv *priv,
|
||||||
reg = le32toh(object->reg);
|
reg = le32toh(object->reg);
|
||||||
val = le32toh(object->val);
|
val = le32toh(object->val);
|
||||||
|
|
||||||
pr_debug("%s: object=0x%04zx reg=0x%04x - val=0x%08x\n",
|
pr_debug("%s: offset=0x%04zx reg=0x%04x - val=0x%08x\n",
|
||||||
__func__,
|
__func__,
|
||||||
(void *)object - iter->start,
|
(void *)object - iter->start,
|
||||||
reg, val);
|
reg, val);
|
||||||
|
|
@ -116,7 +115,7 @@ do_dev_coredump_read_ring(const struct mcp251xfd_priv *priv,
|
||||||
key = le32toh(object->reg);
|
key = le32toh(object->reg);
|
||||||
val = le32toh(object->val);
|
val = le32toh(object->val);
|
||||||
|
|
||||||
pr_debug("%s: reg=0x%04zx key=0x%02x: %8s - val=0x%08x\n",
|
pr_debug("%s: offset=0x%04zx key=0x%02x: %8s - val=0x%08x\n",
|
||||||
__func__,
|
__func__,
|
||||||
(void *)object - iter->start,
|
(void *)object - iter->start,
|
||||||
key, get_ring_key_str(key), val);
|
key, get_ring_key_str(key), val);
|
||||||
|
|
@ -144,7 +143,7 @@ do_dev_coredump_read_ring(const struct mcp251xfd_priv *priv,
|
||||||
ring->obj_size = val;
|
ring->obj_size = val;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return -EINVAL;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -167,6 +166,7 @@ do_dev_coredump_read(struct mcp251xfd_priv *priv,
|
||||||
le32toh(iter->hdr->magic) == MCP251XFD_DUMP_MAGIC) {
|
le32toh(iter->hdr->magic) == MCP251XFD_DUMP_MAGIC) {
|
||||||
const struct mcp251xfd_dump_object_header *hdr = iter->hdr;
|
const struct mcp251xfd_dump_object_header *hdr = iter->hdr;
|
||||||
enum mcp251xfd_dump_object_type object_type;
|
enum mcp251xfd_dump_object_type object_type;
|
||||||
|
struct mcp251xfd_ring ring;
|
||||||
size_t object_offset, object_len;
|
size_t object_offset, object_len;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
|
|
@ -180,6 +180,8 @@ do_dev_coredump_read(struct mcp251xfd_priv *priv,
|
||||||
iter->object_start = iter->start + object_offset;
|
iter->object_start = iter->start + object_offset;
|
||||||
iter->object_end = iter->object_start + object_len;
|
iter->object_end = iter->object_start + object_len;
|
||||||
|
|
||||||
|
mcp251xfd_dump_ring_init(&ring);
|
||||||
|
|
||||||
pr_debug("%s: hdr=0x%04zx type=0x%08x: %8s - offset=0x%04zx len=0x%04zx end=0x%04zx\n",
|
pr_debug("%s: hdr=0x%04zx type=0x%08x: %8s - offset=0x%04zx len=0x%04zx end=0x%04zx\n",
|
||||||
__func__,
|
__func__,
|
||||||
(void *)iter->hdr - iter->start,
|
(void *)iter->hdr - iter->start,
|
||||||
|
|
@ -191,13 +193,17 @@ do_dev_coredump_read(struct mcp251xfd_priv *priv,
|
||||||
err = do_dev_coredump_read_reg(priv, iter, mem);
|
err = do_dev_coredump_read_reg(priv, iter, mem);
|
||||||
break;
|
break;
|
||||||
case MCP251XFD_DUMP_OBJECT_TYPE_TEF:
|
case MCP251XFD_DUMP_OBJECT_TYPE_TEF:
|
||||||
err = do_dev_coredump_read_ring(priv, iter, priv->tef);
|
|
||||||
break;
|
|
||||||
case MCP251XFD_DUMP_OBJECT_TYPE_RX:
|
case MCP251XFD_DUMP_OBJECT_TYPE_RX:
|
||||||
err = do_dev_coredump_read_ring(priv, iter, priv->rx);
|
|
||||||
break;
|
|
||||||
case MCP251XFD_DUMP_OBJECT_TYPE_TX:
|
case MCP251XFD_DUMP_OBJECT_TYPE_TX:
|
||||||
err = do_dev_coredump_read_ring(priv, iter, priv->tx);
|
err = do_dev_coredump_read_ring(priv, iter, &ring);
|
||||||
|
if (err)
|
||||||
|
return err;
|
||||||
|
|
||||||
|
if (ring.fifo_nr >= ARRAY_SIZE(priv->ring))
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
priv->ring[ring.fifo_nr] = ring;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case MCP251XFD_DUMP_OBJECT_TYPE_END:
|
case MCP251XFD_DUMP_OBJECT_TYPE_END:
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
|
|
@ -12,14 +12,17 @@
|
||||||
#include "mcp251xfd.h"
|
#include "mcp251xfd.h"
|
||||||
#include "mcp251xfd-dump.h"
|
#include "mcp251xfd-dump.h"
|
||||||
|
|
||||||
#define MCP251XFD_TX_FIFO 1
|
#define MCP251XFD_DUMP_UNKNOWN (-1U)
|
||||||
#define MCP251XFD_RX_FIFO(x) (MCP251XFD_TX_FIFO + 1 + (x))
|
|
||||||
|
|
||||||
struct mcp251xfd_mem {
|
struct mcp251xfd_mem {
|
||||||
char buf[0x1000];
|
char buf[0x1000];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct mcp251xfd_ring {
|
struct mcp251xfd_ring {
|
||||||
|
enum mcp251xfd_dump_object_type type;
|
||||||
|
const struct mcp251xfd_dump_regs_fifo *fifo;
|
||||||
|
void *ram;
|
||||||
|
|
||||||
unsigned int head;
|
unsigned int head;
|
||||||
unsigned int tail;
|
unsigned int tail;
|
||||||
|
|
||||||
|
|
@ -30,25 +33,14 @@ struct mcp251xfd_ring {
|
||||||
u8 obj_size;
|
u8 obj_size;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define MCP251XFD_RING_TEF 0
|
||||||
|
|
||||||
struct mcp251xfd_priv {
|
struct mcp251xfd_priv {
|
||||||
struct regmap *map;
|
struct regmap *map;
|
||||||
|
struct mcp251xfd_ring ring[32];
|
||||||
struct mcp251xfd_ring tef[1];
|
|
||||||
struct mcp251xfd_ring tx[1];
|
|
||||||
struct mcp251xfd_ring rx[1];
|
|
||||||
|
|
||||||
u8 rx_ring_num;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline u8 mcp251xfd_get_ring_head(const struct mcp251xfd_ring *ring)
|
void mcp251xfd_dump_ring_init(struct mcp251xfd_ring *ring);
|
||||||
{
|
|
||||||
return ring->head & (ring->obj_num - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline u8 mcp251xfd_get_ring_tail(const struct mcp251xfd_ring *ring)
|
|
||||||
{
|
|
||||||
return ring->tail & (ring->obj_num - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
void mcp251xfd_dump(struct mcp251xfd_priv *priv);
|
void mcp251xfd_dump(struct mcp251xfd_priv *priv);
|
||||||
int mcp251xfd_dev_coredump_read(struct mcp251xfd_priv *priv,
|
int mcp251xfd_dev_coredump_read(struct mcp251xfd_priv *priv,
|
||||||
|
|
@ -57,5 +49,7 @@ int mcp251xfd_dev_coredump_read(struct mcp251xfd_priv *priv,
|
||||||
int mcp251xfd_regmap_read(struct mcp251xfd_priv *priv,
|
int mcp251xfd_regmap_read(struct mcp251xfd_priv *priv,
|
||||||
struct mcp251xfd_mem *mem,
|
struct mcp251xfd_mem *mem,
|
||||||
const char *file_path);
|
const char *file_path);
|
||||||
|
const char *
|
||||||
|
get_object_type_str(enum mcp251xfd_dump_object_type object_type);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
//
|
//
|
||||||
// Microchip MCP251xFD Family CAN controller debug tool
|
// Microchip MCP251xFD Family CAN controller debug tool
|
||||||
//
|
//
|
||||||
// Copyright (c) 2019, 2020, 2021 Pengutronix,
|
// Copyright (c) 2019, 2020, 2021, 2022 Pengutronix,
|
||||||
// Marc Kleine-Budde <kernel@pengutronix.de>
|
// Marc Kleine-Budde <kernel@pengutronix.de>
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
@ -72,6 +72,18 @@ struct mcp251xfd_dump_regs_mcp251xfd {
|
||||||
u32 devid;
|
u32 devid;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static bool
|
||||||
|
mcp251xfd_fifo_is_unused(const struct mcp251xfd_dump_regs_fifo *fifo)
|
||||||
|
{
|
||||||
|
return fifo->con == 0x00600000 && fifo->sta == 0x00000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool
|
||||||
|
mcp251xfd_fifo_is_rx(const struct mcp251xfd_dump_regs_fifo *fifo)
|
||||||
|
{
|
||||||
|
return !(fifo->con & MCP251XFD_REG_FIFOCON_TXEN);
|
||||||
|
}
|
||||||
|
|
||||||
#define __dump_bit(val, prefix, bit, desc) \
|
#define __dump_bit(val, prefix, bit, desc) \
|
||||||
pr_info("%16s %s\t\t%s\n", __stringify(bit), \
|
pr_info("%16s %s\t\t%s\n", __stringify(bit), \
|
||||||
(val) & prefix##_##bit ? "x" : " ", desc)
|
(val) & prefix##_##bit ? "x" : " ", desc)
|
||||||
|
|
@ -426,6 +438,8 @@ mcp251xfd_dump_regs(const struct mcp251xfd_priv *priv,
|
||||||
const struct mcp251xfd_dump_regs *regs,
|
const struct mcp251xfd_dump_regs *regs,
|
||||||
const struct mcp251xfd_dump_regs_mcp251xfd *regs_mcp251xfd)
|
const struct mcp251xfd_dump_regs_mcp251xfd *regs_mcp251xfd)
|
||||||
{
|
{
|
||||||
|
unsigned int i;
|
||||||
|
|
||||||
netdev_info(priv->ndev, "-------------------- register dump --------------------\n");
|
netdev_info(priv->ndev, "-------------------- register dump --------------------\n");
|
||||||
__dump_call(regs, con);
|
__dump_call(regs, con);
|
||||||
__dump_call(regs, nbtcfg);
|
__dump_call(regs, nbtcfg);
|
||||||
|
|
@ -444,29 +458,45 @@ mcp251xfd_dump_regs(const struct mcp251xfd_priv *priv,
|
||||||
__dump_call(regs, bdiag1);
|
__dump_call(regs, bdiag1);
|
||||||
__dump_call(regs_mcp251xfd, osc);
|
__dump_call(regs_mcp251xfd, osc);
|
||||||
__dump_call(regs_mcp251xfd, iocon);
|
__dump_call(regs_mcp251xfd, iocon);
|
||||||
pr_info("-------------------- TEF --------------------\n");
|
|
||||||
__dump_call(regs, tefcon);
|
for (i = 0; i < ARRAY_SIZE(regs->fifo); i++) {
|
||||||
__dump_call(regs, tefsta);
|
const struct mcp251xfd_dump_regs_fifo *fifo = ®s->fifo[i];
|
||||||
__dump_call(regs, tefua);
|
|
||||||
pr_info("-------------------- TX_FIFO --------------------\n");
|
if (mcp251xfd_fifo_is_unused(fifo))
|
||||||
__dump_call_fifo(fifocon, fifo[MCP251XFD_TX_FIFO].con);
|
continue;
|
||||||
__dump_call_fifo(fifosta, fifo[MCP251XFD_TX_FIFO].sta);
|
|
||||||
__dump_call_fifo(fifoua, fifo[MCP251XFD_TX_FIFO].ua);
|
pr_info("----------------------- FIFO %2d - ", i);
|
||||||
pr_info(" -------------------- RX_FIFO --------------------\n");
|
|
||||||
__dump_call_fifo(fifocon, fifo[MCP251XFD_RX_FIFO(0)].con);
|
if (i == 0) {
|
||||||
__dump_call_fifo(fifosta, fifo[MCP251XFD_RX_FIFO(0)].sta);
|
pr_info("TEF -----------------\n");
|
||||||
__dump_call_fifo(fifoua, fifo[MCP251XFD_RX_FIFO(0)].ua);
|
|
||||||
netdev_info(priv->ndev, "------------------------- end -------------------------\n");
|
__dump_call(regs, tefcon);
|
||||||
|
__dump_call(regs, tefsta);
|
||||||
|
__dump_call(regs, tefua);
|
||||||
|
} else {
|
||||||
|
if (mcp251xfd_fifo_is_rx(fifo))
|
||||||
|
pr_info("RX ------------------\n");
|
||||||
|
else
|
||||||
|
pr_info("TX ------------------\n");
|
||||||
|
|
||||||
|
__dump_call_fifo(fifocon, fifo[i].con);
|
||||||
|
__dump_call_fifo(fifosta, fifo[i].sta);
|
||||||
|
__dump_call_fifo(fifoua, fifo[i].ua);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
netdev_info(priv->ndev, "----------------------- end ---------------------------\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef __dump_call
|
#undef __dump_call
|
||||||
#undef __dump_call_fifo
|
#undef __dump_call_fifo
|
||||||
|
|
||||||
static u8 mcp251xfd_dump_get_fifo_size(const struct mcp251xfd_priv *priv, const struct mcp251xfd_dump_regs *regs, u32 fifo_con)
|
static u8
|
||||||
|
mcp251xfd_dump_get_fifo_size(const struct mcp251xfd_priv *priv,
|
||||||
|
const struct mcp251xfd_dump_regs_fifo *regs_fifo)
|
||||||
{
|
{
|
||||||
u8 obj_size;
|
u8 obj_size;
|
||||||
|
|
||||||
obj_size = FIELD_GET(MCP251XFD_REG_FIFOCON_PLSIZE_MASK, fifo_con);
|
obj_size = FIELD_GET(MCP251XFD_REG_FIFOCON_PLSIZE_MASK, regs_fifo->con);
|
||||||
switch (obj_size) {
|
switch (obj_size) {
|
||||||
case MCP251XFD_REG_FIFOCON_PLSIZE_8:
|
case MCP251XFD_REG_FIFOCON_PLSIZE_8:
|
||||||
return 8;
|
return 8;
|
||||||
|
|
@ -489,16 +519,91 @@ static u8 mcp251xfd_dump_get_fifo_size(const struct mcp251xfd_priv *priv, const
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8 mcp251xfd_dump_get_fifo_obj_num(const struct mcp251xfd_priv *priv, const struct mcp251xfd_dump_regs *regs, u32 fifo_con)
|
static u8
|
||||||
|
mcp251xfd_dump_get_tef_obj_size(const struct mcp251xfd_priv *priv,
|
||||||
|
const struct mcp251xfd_dump_regs_fifo *fifo)
|
||||||
|
{
|
||||||
|
return sizeof(struct mcp251xfd_hw_tef_obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
static u8
|
||||||
|
mcp251xfd_dump_get_rx_obj_size(const struct mcp251xfd_priv *priv,
|
||||||
|
const struct mcp251xfd_dump_regs_fifo *fifo)
|
||||||
|
{
|
||||||
|
return sizeof(struct mcp251xfd_hw_rx_obj_can) -
|
||||||
|
sizeof_field(struct mcp251xfd_hw_rx_obj_can, data) +
|
||||||
|
mcp251xfd_dump_get_fifo_size(priv, fifo);
|
||||||
|
}
|
||||||
|
|
||||||
|
static u8
|
||||||
|
mcp251xfd_dump_get_tx_obj_size(const struct mcp251xfd_priv *priv,
|
||||||
|
const struct mcp251xfd_dump_regs_fifo *fifo)
|
||||||
|
{
|
||||||
|
return sizeof(struct mcp251xfd_hw_tx_obj_can) -
|
||||||
|
sizeof_field(struct mcp251xfd_hw_tx_obj_can, data) +
|
||||||
|
mcp251xfd_dump_get_fifo_size(priv, fifo);
|
||||||
|
}
|
||||||
|
|
||||||
|
static u8
|
||||||
|
mcp251xfd_dump_get_fifo_obj_num(const struct mcp251xfd_priv *priv,
|
||||||
|
const struct mcp251xfd_dump_regs_fifo *fifo)
|
||||||
{
|
{
|
||||||
u8 obj_num;
|
u8 obj_num;
|
||||||
|
|
||||||
obj_num = FIELD_GET(MCP251XFD_REG_FIFOCON_FSIZE_MASK, fifo_con);
|
obj_num = FIELD_GET(MCP251XFD_REG_FIFOCON_FSIZE_MASK, fifo->con);
|
||||||
|
|
||||||
return obj_num + 1;
|
return obj_num + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mcp251xfd_dump_ram_fifo_obj_data(const struct mcp251xfd_priv *priv, const u8 *data, u8 dlc)
|
static u16
|
||||||
|
mcp251xfd_dump_get_ring_obj_addr(const struct mcp251xfd_priv *priv,
|
||||||
|
const struct mcp251xfd_ring *ring,
|
||||||
|
u8 n)
|
||||||
|
{
|
||||||
|
return ring->base + ring->obj_size * n;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void *
|
||||||
|
mcp251xfd_dump_get_ring_hw_obj(const struct mcp251xfd_priv *priv,
|
||||||
|
const struct mcp251xfd_ring *ring,
|
||||||
|
u8 n)
|
||||||
|
{
|
||||||
|
return ring->ram + ring->obj_size * n;
|
||||||
|
}
|
||||||
|
|
||||||
|
static u8
|
||||||
|
mcp251xfd_dump_get_ring_head(const struct mcp251xfd_priv *priv,
|
||||||
|
const struct mcp251xfd_ring *ring)
|
||||||
|
{
|
||||||
|
return ring->head & (ring->obj_num - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static u8
|
||||||
|
mcp251xfd_dump_get_ring_tail(const struct mcp251xfd_priv *priv,
|
||||||
|
const struct mcp251xfd_ring *ring)
|
||||||
|
{
|
||||||
|
return ring->tail & (ring->obj_num - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static u8
|
||||||
|
mcp251xfd_dump_get_chip_head(const struct mcp251xfd_priv *priv,
|
||||||
|
const struct mcp251xfd_ring *ring)
|
||||||
|
{
|
||||||
|
return FIELD_GET(MCP251XFD_REG_FIFOSTA_FIFOCI_MASK,
|
||||||
|
ring->fifo->sta);
|
||||||
|
}
|
||||||
|
|
||||||
|
static u8
|
||||||
|
mcp251xfd_dump_get_chip_tail(const struct mcp251xfd_priv *priv,
|
||||||
|
const struct mcp251xfd_ring *ring)
|
||||||
|
{
|
||||||
|
return (ring->fifo->ua -
|
||||||
|
(ring->base - MCP251XFD_RAM_START)) / ring->obj_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
mcp251xfd_dump_ring_obj_data(const struct mcp251xfd_priv *priv,
|
||||||
|
const u8 *data, u8 dlc)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
u8 len;
|
u8 len;
|
||||||
|
|
@ -529,326 +634,228 @@ static void mcp251xfd_dump_ram_fifo_obj_data(const struct mcp251xfd_priv *priv,
|
||||||
pr_cont("\n");
|
pr_cont("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TEF */
|
static void
|
||||||
|
mcp251xfd_dump_analyze_regs_and_ram(struct mcp251xfd_priv *priv,
|
||||||
static u8
|
const struct mcp251xfd_dump_regs *regs,
|
||||||
mcp251xfd_dump_get_tef_obj_num(const struct mcp251xfd_priv *priv,
|
const struct mcp251xfd_dump_ram *ram)
|
||||||
const struct mcp251xfd_dump_regs *regs)
|
|
||||||
{
|
{
|
||||||
return mcp251xfd_dump_get_fifo_obj_num(priv, regs, regs->tef.con);
|
u16 base = MCP251XFD_RAM_START;
|
||||||
|
u8 ring_nr_rx = 0, ring_nr_tx = 0;
|
||||||
|
unsigned int i;
|
||||||
|
|
||||||
|
for (i = 0; i < ARRAY_SIZE(regs->fifo); i++) {
|
||||||
|
const struct mcp251xfd_dump_regs_fifo *fifo;
|
||||||
|
struct mcp251xfd_ring *ring = &priv->ring[i];
|
||||||
|
|
||||||
|
if (i == MCP251XFD_RING_TEF) {
|
||||||
|
/* FIFO 0 is the TXQ, but it's unused by the driver
|
||||||
|
* put TEF here to make things easier.
|
||||||
|
*/
|
||||||
|
fifo = ®s->tef;
|
||||||
|
|
||||||
|
ring->type = MCP251XFD_DUMP_OBJECT_TYPE_TEF;
|
||||||
|
|
||||||
|
ring->nr = 0;
|
||||||
|
ring->obj_size = mcp251xfd_dump_get_tef_obj_size(priv, fifo);
|
||||||
|
} else {
|
||||||
|
fifo = ®s->fifo[i];
|
||||||
|
|
||||||
|
if (mcp251xfd_fifo_is_unused(fifo)) {
|
||||||
|
continue;
|
||||||
|
} else if (mcp251xfd_fifo_is_rx(fifo)) {
|
||||||
|
ring->type = MCP251XFD_DUMP_OBJECT_TYPE_RX;
|
||||||
|
ring->nr = ring_nr_rx++;
|
||||||
|
ring->obj_size = mcp251xfd_dump_get_rx_obj_size(priv, fifo);
|
||||||
|
} else {
|
||||||
|
ring->type = MCP251XFD_DUMP_OBJECT_TYPE_TX;
|
||||||
|
ring->nr = ring_nr_tx++;
|
||||||
|
ring->obj_size = mcp251xfd_dump_get_tx_obj_size(priv, fifo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ring->fifo = fifo;
|
||||||
|
ring->ram = (void *)ram + (base - MCP251XFD_RAM_START);
|
||||||
|
|
||||||
|
ring->base = base;
|
||||||
|
ring->fifo_nr = i;
|
||||||
|
ring->obj_num = mcp251xfd_dump_get_fifo_obj_num(priv, fifo);
|
||||||
|
|
||||||
|
base = mcp251xfd_dump_get_ring_obj_addr(priv, ring, ring->obj_num);
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Found %u RX-FIFO%s, %u TX-FIFO%s\n\n",
|
||||||
|
ring_nr_rx, ring_nr_rx > 1 ? "s" : "",
|
||||||
|
ring_nr_tx, ring_nr_tx > 1 ? "s" : "");
|
||||||
}
|
}
|
||||||
|
|
||||||
static u8
|
static const char *
|
||||||
mcp251xfd_dump_get_tef_tail(const struct mcp251xfd_priv *priv,
|
mcp251xfd_dump_ring_obj_one_fifo_flags_chip(const struct mcp251xfd_priv *priv,
|
||||||
const struct mcp251xfd_dump_regs *regs)
|
const struct mcp251xfd_ring *ring,
|
||||||
|
const u8 n)
|
||||||
{
|
{
|
||||||
return regs->tefua / sizeof(struct mcp251xfd_hw_tef_obj);
|
if (mcp251xfd_dump_get_chip_tail(priv, ring) != n)
|
||||||
|
return "";
|
||||||
|
|
||||||
|
if (ring->type == MCP251XFD_DUMP_OBJECT_TYPE_TX) {
|
||||||
|
if (!(ring->fifo->sta & MCP251XFD_REG_FIFOSTA_TFNRFNIF))
|
||||||
|
return " chip-FIFO-full";
|
||||||
|
if (ring->fifo->sta & MCP251XFD_REG_FIFOSTA_TFERFFIF)
|
||||||
|
return " chip-FIFO-empty";
|
||||||
|
} else {
|
||||||
|
if (ring->fifo->sta & MCP251XFD_REG_FIFOSTA_TFERFFIF)
|
||||||
|
return " chip-FIFO-full";
|
||||||
|
if (!(ring->fifo->sta & MCP251XFD_REG_FIFOSTA_TFNRFNIF))
|
||||||
|
return " chip-FIFO-empty";
|
||||||
|
}
|
||||||
|
|
||||||
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
static u16
|
static const char *
|
||||||
mcp251xfd_dump_get_tef_obj_rel_addr(const struct mcp251xfd_priv *priv,
|
mcp251xfd_dump_ring_obj_one_fifo_flags_ring(const struct mcp251xfd_priv *priv,
|
||||||
u8 n)
|
const struct mcp251xfd_ring *ring,
|
||||||
|
const u8 n)
|
||||||
{
|
{
|
||||||
return sizeof(struct mcp251xfd_hw_tef_obj) * n;
|
if (ring->head == MCP251XFD_DUMP_UNKNOWN ||
|
||||||
|
ring->tail == MCP251XFD_DUMP_UNKNOWN ||
|
||||||
|
mcp251xfd_dump_get_ring_tail(priv, ring) != n ||
|
||||||
|
mcp251xfd_dump_get_ring_head(priv, ring) != mcp251xfd_dump_get_ring_tail(priv, ring))
|
||||||
|
return "";
|
||||||
|
|
||||||
|
if (ring->head == ring->tail)
|
||||||
|
return " ring-FIFO-empty";
|
||||||
|
else
|
||||||
|
return " ring-FIFO-full";
|
||||||
|
|
||||||
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
static u16
|
|
||||||
mcp251xfd_dump_get_tef_obj_addr(const struct mcp251xfd_priv *priv,
|
|
||||||
u8 n)
|
|
||||||
{
|
|
||||||
return mcp251xfd_dump_get_tef_obj_rel_addr(priv, n) +
|
|
||||||
MCP251XFD_RAM_START;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* TX */
|
|
||||||
|
|
||||||
static u8
|
|
||||||
mcp251xfd_dump_get_tx_obj_size(const struct mcp251xfd_priv *priv,
|
|
||||||
const struct mcp251xfd_dump_regs *regs)
|
|
||||||
{
|
|
||||||
return sizeof(struct mcp251xfd_hw_tx_obj_can) -
|
|
||||||
sizeof_field(struct mcp251xfd_hw_tx_obj_can, data) +
|
|
||||||
mcp251xfd_dump_get_fifo_size(priv, regs, regs->tx_fifo.con);
|
|
||||||
}
|
|
||||||
|
|
||||||
static u8
|
|
||||||
mcp251xfd_dump_get_tx_obj_num(const struct mcp251xfd_priv *priv,
|
|
||||||
const struct mcp251xfd_dump_regs *regs)
|
|
||||||
{
|
|
||||||
return mcp251xfd_dump_get_fifo_obj_num(priv, regs, regs->tx_fifo.con);
|
|
||||||
}
|
|
||||||
|
|
||||||
static u16
|
|
||||||
mcp251xfd_dump_get_tx_obj_rel_addr(const struct mcp251xfd_priv *priv,
|
|
||||||
const struct mcp251xfd_dump_regs *regs,
|
|
||||||
u8 n)
|
|
||||||
{
|
|
||||||
return mcp251xfd_dump_get_tef_obj_rel_addr(priv, mcp251xfd_dump_get_tef_obj_num(priv, regs)) +
|
|
||||||
mcp251xfd_dump_get_tx_obj_size(priv, regs) * n;
|
|
||||||
}
|
|
||||||
|
|
||||||
static u16
|
|
||||||
mcp251xfd_dump_get_tx_obj_addr(const struct mcp251xfd_priv *priv,
|
|
||||||
const struct mcp251xfd_dump_regs *regs, u8 n)
|
|
||||||
{
|
|
||||||
return mcp251xfd_dump_get_tx_obj_rel_addr(priv, regs, n) +
|
|
||||||
MCP251XFD_RAM_START;
|
|
||||||
}
|
|
||||||
|
|
||||||
static u8
|
|
||||||
mcp251xfd_dump_get_tx_tail(const struct mcp251xfd_priv *priv,
|
|
||||||
const struct mcp251xfd_dump_regs *regs)
|
|
||||||
{
|
|
||||||
return (regs->fifo[MCP251XFD_TX_FIFO].ua -
|
|
||||||
mcp251xfd_dump_get_tx_obj_rel_addr(priv, regs, 0)) /
|
|
||||||
mcp251xfd_dump_get_tx_obj_size(priv, regs);
|
|
||||||
}
|
|
||||||
|
|
||||||
static u8
|
|
||||||
mcp251xfd_dump_get_tx_head(const struct mcp251xfd_priv *priv,
|
|
||||||
const struct mcp251xfd_dump_regs *regs)
|
|
||||||
{
|
|
||||||
return FIELD_GET(MCP251XFD_REG_FIFOSTA_FIFOCI_MASK,
|
|
||||||
regs->fifo[MCP251XFD_TX_FIFO].sta);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* RX */
|
|
||||||
|
|
||||||
static u8
|
|
||||||
mcp251xfd_dump_get_rx_obj_size(const struct mcp251xfd_priv *priv,
|
|
||||||
const struct mcp251xfd_dump_regs *regs)
|
|
||||||
{
|
|
||||||
return sizeof(struct mcp251xfd_hw_rx_obj_can) -
|
|
||||||
sizeof_field(struct mcp251xfd_hw_rx_obj_can, data) +
|
|
||||||
mcp251xfd_dump_get_fifo_size(priv, regs, regs->rx_fifo.con);
|
|
||||||
}
|
|
||||||
|
|
||||||
static u8
|
|
||||||
mcp251xfd_dump_get_rx_obj_num(const struct mcp251xfd_priv *priv,
|
|
||||||
const struct mcp251xfd_dump_regs *regs)
|
|
||||||
{
|
|
||||||
return mcp251xfd_dump_get_fifo_obj_num(priv, regs, regs->rx_fifo.con);
|
|
||||||
}
|
|
||||||
|
|
||||||
static u16
|
|
||||||
mcp251xfd_dump_get_rx_obj_rel_addr(const struct mcp251xfd_priv *priv,
|
|
||||||
const struct mcp251xfd_dump_regs *regs, u8 n)
|
|
||||||
{
|
|
||||||
return mcp251xfd_dump_get_tx_obj_rel_addr(priv, regs, mcp251xfd_dump_get_tx_obj_num(priv, regs)) +
|
|
||||||
mcp251xfd_dump_get_rx_obj_size(priv, regs) * n;
|
|
||||||
}
|
|
||||||
|
|
||||||
static u16
|
|
||||||
mcp251xfd_dump_get_rx_obj_addr(const struct mcp251xfd_priv *priv,
|
|
||||||
const struct mcp251xfd_dump_regs *regs, u8 n)
|
|
||||||
{
|
|
||||||
return mcp251xfd_dump_get_rx_obj_rel_addr(priv, regs, n) + MCP251XFD_RAM_START;
|
|
||||||
}
|
|
||||||
|
|
||||||
static u8
|
|
||||||
mcp251xfd_dump_get_rx_tail(const struct mcp251xfd_priv *priv,
|
|
||||||
const struct mcp251xfd_dump_regs *regs)
|
|
||||||
{
|
|
||||||
return (regs->fifo[MCP251XFD_RX_FIFO(0)].ua -
|
|
||||||
mcp251xfd_dump_get_rx_obj_rel_addr(priv, regs, 0)) /
|
|
||||||
mcp251xfd_dump_get_rx_obj_size(priv, regs);
|
|
||||||
}
|
|
||||||
|
|
||||||
static u8
|
|
||||||
mcp251xfd_dump_get_rx_head(const struct mcp251xfd_priv *priv,
|
|
||||||
const struct mcp251xfd_dump_regs *regs)
|
|
||||||
{
|
|
||||||
return FIELD_GET(MCP251XFD_REG_FIFOSTA_FIFOCI_MASK, regs->fifo[MCP251XFD_RX_FIFO(0)].sta);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* dump TEF */
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
mcp251xfd_dump_ram_tef_obj_one(const struct mcp251xfd_priv *priv,
|
mcp251xfd_dump_ring_obj_one(const struct mcp251xfd_priv *priv,
|
||||||
const struct mcp251xfd_dump_regs *regs,
|
const struct mcp251xfd_ring *ring,
|
||||||
const struct mcp251xfd_ring *tef,
|
const void *hw_obj, const u8 n)
|
||||||
const struct mcp251xfd_hw_tef_obj *hw_tef_obj,
|
|
||||||
u8 n)
|
|
||||||
{
|
{
|
||||||
pr_info("TEF Object: 0x%02x (0x%03x)%s%s%s%s%s\n",
|
const struct mcp251xfd_hw_tef_obj *hw_tef_obj = hw_obj;
|
||||||
n, mcp251xfd_dump_get_tef_obj_addr(priv, n),
|
const struct mcp251xfd_hw_rx_obj_canfd *hw_rx_obj = hw_obj;
|
||||||
mcp251xfd_get_ring_head(tef) == n ? " priv-HEAD" : "",
|
const struct mcp251xfd_hw_tx_obj_canfd *hw_tx_obj = hw_obj;
|
||||||
mcp251xfd_dump_get_tef_tail(priv, regs) == n ? " chip-TAIL" : "",
|
|
||||||
mcp251xfd_get_ring_tail(tef) == n ? " priv-TAIL" : "",
|
pr_info("%s-%d Object: "
|
||||||
(mcp251xfd_dump_get_tef_tail(priv, regs) == n ?
|
"0x%02x (0x%03x)"
|
||||||
((regs->tef.sta & MCP251XFD_REG_TEFSTA_TEFFIF) ? " chip-FIFO-full" :
|
"%s%s%s%s%s%s"
|
||||||
!(regs->tef.sta & MCP251XFD_REG_TEFSTA_TEFNEIF) ? " chip-FIFO-empty" : "") :
|
"\n",
|
||||||
("")),
|
get_object_type_str(ring->type), ring->nr,
|
||||||
(mcp251xfd_get_ring_head(tef) == mcp251xfd_get_ring_tail(tef) &&
|
n, mcp251xfd_dump_get_ring_obj_addr(priv, ring, n),
|
||||||
mcp251xfd_get_ring_tail(tef) == n ?
|
|
||||||
(priv->tef->head == priv->tef->tail ? " priv-FIFO-empty" : " priv-FIFO-full") :
|
ring->type != MCP251XFD_DUMP_OBJECT_TYPE_TEF && mcp251xfd_dump_get_chip_head(priv, ring) == n ? " chip-HEAD" : "",
|
||||||
("")));
|
ring->head != MCP251XFD_DUMP_UNKNOWN && mcp251xfd_dump_get_ring_head(priv, ring) == n ? " ring-HEAD" : "",
|
||||||
|
mcp251xfd_dump_get_chip_tail(priv, ring) == n ? " chip-TAIL" : "",
|
||||||
|
ring->tail != MCP251XFD_DUMP_UNKNOWN && mcp251xfd_dump_get_ring_tail(priv, ring) == n ? " ring-TAIL" : "",
|
||||||
|
mcp251xfd_dump_ring_obj_one_fifo_flags_chip(priv, ring, n),
|
||||||
|
mcp251xfd_dump_ring_obj_one_fifo_flags_ring(priv, ring, n)
|
||||||
|
);
|
||||||
pr_info("%16s = 0x%08x\n", "id", hw_tef_obj->id);
|
pr_info("%16s = 0x%08x\n", "id", hw_tef_obj->id);
|
||||||
pr_info("%16s = 0x%08x\n", "flags", hw_tef_obj->flags);
|
pr_info("%16s = 0x%08x\n", "flags", hw_tef_obj->flags);
|
||||||
pr_info("%16s = 0x%08x\n", "ts", hw_tef_obj->ts);
|
|
||||||
__dump_mask(hw_tef_obj->flags, MCP251XFD_OBJ_FLAGS, SEQ, "0x%06lx", "Sequence");
|
|
||||||
pr_info("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
if (ring->type == MCP251XFD_DUMP_OBJECT_TYPE_TEF ||
|
||||||
mcp251xfd_dump_ram_tef_obj(const struct mcp251xfd_priv *priv,
|
ring->type == MCP251XFD_DUMP_OBJECT_TYPE_RX)
|
||||||
const struct mcp251xfd_dump_regs *regs,
|
pr_info("%16s = 0x%08x\n", "ts", hw_tef_obj->ts);
|
||||||
const struct mcp251xfd_dump_ram *ram,
|
|
||||||
const struct mcp251xfd_ring *tef)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
pr_info("\nTEF Overview:\n");
|
if (ring->type == MCP251XFD_DUMP_OBJECT_TYPE_TEF) {
|
||||||
pr_info("%16s = 0x%02x 0x%08x\n", "head (p)",
|
__dump_mask(hw_tef_obj->flags, MCP251XFD_OBJ_FLAGS, SEQ, "0x%06lx", "Sequence");
|
||||||
mcp251xfd_get_ring_head(tef),
|
} else if (ring->type == MCP251XFD_DUMP_OBJECT_TYPE_TX) {
|
||||||
tef->head);
|
__dump_mask(hw_tx_obj->flags, MCP251XFD_OBJ_FLAGS, SEQ_MCP2517FD, "0x%06lx", "Sequence (MCP2517)");
|
||||||
pr_info("%16s = 0x%02x 0x%02x 0x%08x\n", "tail (c/p)",
|
__dump_mask(hw_tx_obj->flags, MCP251XFD_OBJ_FLAGS, SEQ_MCP2518FD, "0x%06lx", "Sequence (MCP2518)");
|
||||||
mcp251xfd_dump_get_tef_tail(priv, regs),
|
|
||||||
mcp251xfd_get_ring_tail(tef),
|
|
||||||
tef->tail);
|
|
||||||
pr_info("\n");
|
|
||||||
|
|
||||||
for (i = 0; i < mcp251xfd_dump_get_tef_obj_num(priv, regs); i++) {
|
|
||||||
const struct mcp251xfd_hw_tef_obj *hw_tef_obj;
|
|
||||||
u16 hw_tef_obj_rel_addr;
|
|
||||||
|
|
||||||
hw_tef_obj_rel_addr = mcp251xfd_dump_get_tef_obj_rel_addr(priv, i);
|
|
||||||
|
|
||||||
hw_tef_obj = (const struct mcp251xfd_hw_tef_obj *)&ram->ram[hw_tef_obj_rel_addr];
|
|
||||||
mcp251xfd_dump_ram_tef_obj_one(priv, regs, tef, hw_tef_obj, i);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* dump TX */
|
if (ring->type == MCP251XFD_DUMP_OBJECT_TYPE_RX ||
|
||||||
|
ring->type == MCP251XFD_DUMP_OBJECT_TYPE_TX) {
|
||||||
|
const u8* data;
|
||||||
|
u8 dlc;
|
||||||
|
|
||||||
static void
|
if (ring->type == MCP251XFD_DUMP_OBJECT_TYPE_RX)
|
||||||
mcp251xfd_dump_ram_tx_obj_one(const struct mcp251xfd_priv *priv,
|
data = hw_rx_obj->data;
|
||||||
const struct mcp251xfd_dump_regs *regs,
|
else
|
||||||
const struct mcp251xfd_ring *tx,
|
data = hw_tx_obj->data;
|
||||||
const struct mcp251xfd_hw_tx_obj_canfd *hw_tx_obj,
|
|
||||||
u8 n)
|
|
||||||
{
|
|
||||||
pr_info("TX Object: 0x%02x (0x%03x)%s%s%s%s%s%s\n",
|
|
||||||
n, mcp251xfd_dump_get_tx_obj_addr(priv, regs, n),
|
|
||||||
mcp251xfd_dump_get_tx_head(priv, regs) == n ? " chip-HEAD" : "",
|
|
||||||
mcp251xfd_get_ring_head(tx) == n ? " priv-HEAD" : "",
|
|
||||||
mcp251xfd_dump_get_tx_tail(priv, regs) == n ? " chip-TAIL" : "",
|
|
||||||
mcp251xfd_get_ring_tail(tx) == n ? " priv-TAIL" : "",
|
|
||||||
mcp251xfd_dump_get_tx_tail(priv, regs) == n ?
|
|
||||||
(!(regs->tx_fifo.sta & MCP251XFD_REG_FIFOSTA_TFNRFNIF) ? " chip-FIFO-full" :
|
|
||||||
(regs->tx_fifo.sta & MCP251XFD_REG_FIFOSTA_TFERFFIF) ? " chip-FIFO-empty" : "") :
|
|
||||||
(""),
|
|
||||||
(mcp251xfd_get_ring_head(tx) == mcp251xfd_get_ring_tail(tx) &&
|
|
||||||
mcp251xfd_get_ring_tail(tx) == n ?
|
|
||||||
(tx->head == tx->tail ? " priv-FIFO-empty" : " priv-FIFO-full") :
|
|
||||||
("")));
|
|
||||||
pr_info("%16s = 0x%08x\n", "id", hw_tx_obj->id);
|
|
||||||
pr_info("%16s = 0x%08x\n", "flags", hw_tx_obj->flags);
|
|
||||||
__dump_mask(hw_tx_obj->flags, MCP251XFD_OBJ_FLAGS, SEQ_MCP2517FD, "0x%06lx", "Sequence (MCP2517)");
|
|
||||||
__dump_mask(hw_tx_obj->flags, MCP251XFD_OBJ_FLAGS, SEQ_MCP2518FD, "0x%06lx", "Sequence (MCP2518)");
|
|
||||||
mcp251xfd_dump_ram_fifo_obj_data(priv,
|
|
||||||
hw_tx_obj->data,
|
|
||||||
FIELD_GET(MCP251XFD_OBJ_FLAGS_DLC, hw_tx_obj->flags));
|
|
||||||
pr_info("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
dlc = FIELD_GET(MCP251XFD_OBJ_FLAGS_DLC, hw_rx_obj->flags);
|
||||||
mcp251xfd_dump_ram_tx_obj(const struct mcp251xfd_priv *priv,
|
mcp251xfd_dump_ring_obj_data(priv, data, dlc);
|
||||||
const struct mcp251xfd_dump_regs *regs,
|
|
||||||
const struct mcp251xfd_dump_ram *ram,
|
|
||||||
const struct mcp251xfd_ring *tx)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
pr_info("\nTX Overview:\n");
|
|
||||||
pr_info("%16s = 0x%02x 0x%02x 0x%08x\n", "head (c/p)",
|
|
||||||
mcp251xfd_dump_get_tx_head(priv, regs),
|
|
||||||
mcp251xfd_get_ring_head(tx),
|
|
||||||
tx->head);
|
|
||||||
pr_info("%16s = 0x%02x 0x%02x 0x%08x\n", "tail (c/p)",
|
|
||||||
mcp251xfd_dump_get_tx_tail(priv, regs),
|
|
||||||
mcp251xfd_get_ring_tail(tx),
|
|
||||||
tx->tail);
|
|
||||||
pr_info("\n");
|
|
||||||
|
|
||||||
for (i = 0; i < mcp251xfd_dump_get_tx_obj_num(priv, regs); i++) {
|
|
||||||
const struct mcp251xfd_hw_tx_obj_canfd *hw_tx_obj;
|
|
||||||
u16 hw_tx_obj_rel_addr;
|
|
||||||
|
|
||||||
hw_tx_obj_rel_addr = mcp251xfd_dump_get_tx_obj_rel_addr(priv, regs, i);
|
|
||||||
|
|
||||||
hw_tx_obj = (const struct mcp251xfd_hw_tx_obj_canfd *)&ram->ram[hw_tx_obj_rel_addr];
|
|
||||||
mcp251xfd_dump_ram_tx_obj_one(priv, regs, tx, hw_tx_obj, i);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* dump RX */
|
|
||||||
|
|
||||||
static void
|
|
||||||
mcp251xfd_dump_ram_rx_obj_one(const struct mcp251xfd_priv *priv,
|
|
||||||
const struct mcp251xfd_dump_regs *regs,
|
|
||||||
const struct mcp251xfd_ring *rx,
|
|
||||||
const struct mcp251xfd_hw_rx_obj_canfd *hw_rx_obj,
|
|
||||||
u8 n)
|
|
||||||
{
|
|
||||||
pr_info("RX Object: 0x%02x (0x%03x)%s%s%s%s%s%s\n",
|
|
||||||
n, mcp251xfd_dump_get_rx_obj_addr(priv, regs, n),
|
|
||||||
mcp251xfd_dump_get_rx_head(priv, regs) == n ? " chip-HEAD" : "",
|
|
||||||
mcp251xfd_get_ring_head(rx) == n ? " priv-HEAD" : "",
|
|
||||||
mcp251xfd_dump_get_rx_tail(priv, regs) == n ? " chip-TAIL" : "",
|
|
||||||
mcp251xfd_get_ring_tail(rx) == n ? " priv-TAIL" : "",
|
|
||||||
mcp251xfd_dump_get_rx_tail(priv, regs) == n ?
|
|
||||||
((regs->rx_fifo.sta & MCP251XFD_REG_FIFOSTA_TFERFFIF) ? " chip-FIFO-full" :
|
|
||||||
!(regs->rx_fifo.sta & MCP251XFD_REG_FIFOSTA_TFNRFNIF) ? " chip-FIFO-empty" : "") :
|
|
||||||
(""),
|
|
||||||
(mcp251xfd_get_ring_head(rx) == mcp251xfd_get_ring_tail(rx) &&
|
|
||||||
mcp251xfd_get_ring_tail(rx) == n ?
|
|
||||||
(priv->rx->head == priv->rx->tail ? " priv-FIFO-empty" : " priv-FIFO-full") :
|
|
||||||
("")));
|
|
||||||
pr_info("%16s = 0x%08x\n", "id", hw_rx_obj->id);
|
|
||||||
pr_info("%16s = 0x%08x\n", "flags", hw_rx_obj->flags);
|
|
||||||
pr_info("%16s = 0x%08x\n", "ts", hw_rx_obj->ts);
|
|
||||||
mcp251xfd_dump_ram_fifo_obj_data(priv, hw_rx_obj->data, FIELD_GET(MCP251XFD_OBJ_FLAGS_DLC, hw_rx_obj->flags));
|
|
||||||
pr_info("\n");
|
pr_info("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
mcp251xfd_dump_ram_rx_obj(const struct mcp251xfd_priv *priv,
|
mcp251xfd_dump_ring(const struct mcp251xfd_priv *priv,
|
||||||
const struct mcp251xfd_dump_regs *regs,
|
const struct mcp251xfd_ring *ring,
|
||||||
const struct mcp251xfd_dump_ram *ram,
|
const struct mcp251xfd_dump_regs *regs)
|
||||||
const struct mcp251xfd_ring *rx)
|
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
pr_info("\nRX Overview:\n");
|
pr_info("\n%s-%d FIFO %d Overview:\n",
|
||||||
pr_info("%16s = 0x%02x 0x%02x 0x%08x\n", "head (c/p)",
|
get_object_type_str(ring->type), ring->nr, ring->fifo_nr);
|
||||||
mcp251xfd_dump_get_rx_head(priv, regs),
|
|
||||||
mcp251xfd_get_ring_head(rx), rx->head);
|
if (ring->type == MCP251XFD_DUMP_OBJECT_TYPE_TEF) {
|
||||||
pr_info("%16s = 0x%02x 0x%02x 0x%08x\n", "tail (c/p)",
|
if (ring->head == MCP251XFD_DUMP_UNKNOWN)
|
||||||
mcp251xfd_dump_get_rx_tail(priv, regs),
|
pr_info("%16s\n", "head ( / )");
|
||||||
mcp251xfd_get_ring_tail(rx), rx->tail);
|
else
|
||||||
|
pr_info("%16s = 0x%02x 0x%08x\n", "head ( /r)",
|
||||||
|
mcp251xfd_dump_get_ring_head(priv, ring),
|
||||||
|
ring->head);
|
||||||
|
} else {
|
||||||
|
if (ring->head == MCP251XFD_DUMP_UNKNOWN)
|
||||||
|
pr_info("%16s = 0x%02x\n", "head (c/ )",
|
||||||
|
mcp251xfd_dump_get_chip_head(priv, ring));
|
||||||
|
else
|
||||||
|
pr_info("%16s = 0x%02x 0x%02x 0x%08x\n", "head (c/r)",
|
||||||
|
mcp251xfd_dump_get_chip_head(priv, ring),
|
||||||
|
mcp251xfd_dump_get_ring_head(priv, ring),
|
||||||
|
ring->head);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ring->tail == MCP251XFD_DUMP_UNKNOWN)
|
||||||
|
pr_info("%16s = 0x%02x\n", "tail (c/ )",
|
||||||
|
mcp251xfd_dump_get_chip_tail(priv, ring));
|
||||||
|
else
|
||||||
|
pr_info("%16s = 0x%02x 0x%02x 0x%08x\n", "tail (c/r)",
|
||||||
|
mcp251xfd_dump_get_chip_tail(priv, ring),
|
||||||
|
mcp251xfd_dump_get_ring_tail(priv, ring),
|
||||||
|
ring->tail);
|
||||||
|
|
||||||
pr_info("\n");
|
pr_info("\n");
|
||||||
|
|
||||||
for (i = 0; i < mcp251xfd_dump_get_rx_obj_num(priv, regs); i++) {
|
for (i = 0; i < ring->obj_num; i++) {
|
||||||
const struct mcp251xfd_hw_rx_obj_canfd *hw_rx_obj;
|
void *hw_obj;
|
||||||
u16 hw_rx_obj_rel_addr;
|
|
||||||
|
|
||||||
hw_rx_obj_rel_addr = mcp251xfd_dump_get_rx_obj_rel_addr(priv, regs, i);
|
hw_obj = mcp251xfd_dump_get_ring_hw_obj(priv, ring, i);
|
||||||
hw_rx_obj = (const struct mcp251xfd_hw_rx_obj_canfd *)&ram->ram[hw_rx_obj_rel_addr];
|
mcp251xfd_dump_ring_obj_one(priv, ring, hw_obj, i);
|
||||||
|
|
||||||
mcp251xfd_dump_ram_rx_obj_one(priv, regs, rx, hw_rx_obj, i);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef __dump_mask
|
#undef __dump_mask
|
||||||
#undef __dump_bit
|
#undef __dump_bit
|
||||||
|
|
||||||
static void mcp251xfd_dump_ram(const struct mcp251xfd_priv *priv, const struct mcp251xfd_dump_regs *regs, const struct mcp251xfd_dump_ram *ram)
|
static void
|
||||||
|
mcp251xfd_dump_ram(const struct mcp251xfd_priv *priv,
|
||||||
|
const struct mcp251xfd_dump_regs *regs,
|
||||||
|
const struct mcp251xfd_dump_ram *ram)
|
||||||
{
|
{
|
||||||
|
unsigned int i;
|
||||||
|
|
||||||
netdev_info(priv->ndev, "----------------------- RAM dump ----------------------\n");
|
netdev_info(priv->ndev, "----------------------- RAM dump ----------------------\n");
|
||||||
mcp251xfd_dump_ram_tef_obj(priv, regs, ram, priv->tef);
|
|
||||||
mcp251xfd_dump_ram_tx_obj(priv, regs, ram, priv->tx);
|
for (i = 0; i < ARRAY_SIZE(regs->fifo); i++) {
|
||||||
mcp251xfd_dump_ram_rx_obj(priv, regs, ram, priv->rx);
|
const struct mcp251xfd_ring *ring = &priv->ring[i];
|
||||||
|
|
||||||
|
switch (ring->type) {
|
||||||
|
case MCP251XFD_DUMP_OBJECT_TYPE_TEF:
|
||||||
|
case MCP251XFD_DUMP_OBJECT_TYPE_RX:
|
||||||
|
case MCP251XFD_DUMP_OBJECT_TYPE_TX:
|
||||||
|
mcp251xfd_dump_ring(priv, ring, regs);
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
netdev_info(priv->ndev, "------------------------- end -------------------------\n");
|
netdev_info(priv->ndev, "------------------------- end -------------------------\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -877,6 +884,7 @@ void mcp251xfd_dump(struct mcp251xfd_priv *priv)
|
||||||
if (err)
|
if (err)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
mcp251xfd_dump_analyze_regs_and_ram(priv, ®s, &ram);
|
||||||
mcp251xfd_dump_regs(priv, ®s, ®s_mcp251xfd);
|
mcp251xfd_dump_regs(priv, ®s, ®s_mcp251xfd);
|
||||||
mcp251xfd_dump_ram(priv, ®s, &ram);
|
mcp251xfd_dump_ram(priv, ®s, &ram);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# SPDX-License-Identifier: GPL-2.0
|
||||||
|
#
|
||||||
|
# Copyright (c) 2023 Pengutronix,
|
||||||
|
# Marc Kleine-Budde <kernel@pengutronix.de>
|
||||||
|
|
||||||
|
set -x
|
||||||
|
set -e
|
||||||
|
|
||||||
|
DEV=${1:-can0}
|
||||||
|
SPI=${2:-$(ethtool -i ${DEV}|sed -ne "s/bus-info: //p")}
|
||||||
|
|
||||||
|
modprobe -r mcp251xfd
|
||||||
|
modprobe mcp251xfd
|
||||||
|
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
ip link set ${DEV} down
|
||||||
|
|
||||||
|
sleep 2
|
||||||
|
rm -vf /var/log/devcoredump-*.dump
|
||||||
|
|
||||||
|
ip link set ${DEV} up type can bitrate 1000000 dbitrate 4000000 fd on restart-ms 1000 berr-reporting off listen-only off loopback on
|
||||||
|
|
||||||
|
ethtool -g ${DEV} || true
|
||||||
|
ethtool -c ${DEV} || true
|
||||||
|
|
||||||
|
cangen ${DEV} -Di -L8 -I2 -p 10 -g 200 -n 3
|
||||||
|
|
||||||
|
cat /sys/kernel/debug/regmap/${SPI}-crc/registers > data/registers-canfd.dump
|
||||||
|
|
||||||
|
ip link set ${DEV} down
|
||||||
|
sleep 2
|
||||||
|
cp -av /var/log/devcoredump-*.dump data
|
||||||
|
|
||||||
|
|
||||||
|
ip link set ${DEV} up type can bitrate 1000000 fd off restart-ms 1000 berr-reporting off listen-only off loopback on
|
||||||
|
|
||||||
|
rm -vf /var/log/devcoredump-*.dump
|
||||||
|
|
||||||
|
ethtool -g ${DEV} || true
|
||||||
|
ethtool -c ${DEV} || true
|
||||||
|
|
||||||
|
cangen ${DEV} -Di -L8 -I2 -p 10 -g 200 -n 7
|
||||||
|
|
||||||
|
cat /sys/kernel/debug/regmap/${SPI}-crc/registers > data/registers-classic-can.dump
|
||||||
|
|
||||||
|
ip link set ${DEV} down
|
||||||
|
sleep 2
|
||||||
|
cp -av /var/log/devcoredump-*.dump data
|
||||||
|
|
@ -45,6 +45,17 @@ int regmap_bulk_read(struct regmap *map, unsigned int reg,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void mcp251xfd_dump_ring_init(struct mcp251xfd_ring *ring)
|
||||||
|
{
|
||||||
|
memset(ring, 0x0, sizeof(*ring));
|
||||||
|
|
||||||
|
ring->type = MCP251XFD_DUMP_UNKNOWN;
|
||||||
|
ring->head = MCP251XFD_DUMP_UNKNOWN;
|
||||||
|
ring->tail = MCP251XFD_DUMP_UNKNOWN;
|
||||||
|
ring->nr = (uint8_t)MCP251XFD_DUMP_UNKNOWN;
|
||||||
|
ring->fifo_nr = (uint8_t)MCP251XFD_DUMP_UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
struct mcp251xfd_mem mem = { };
|
struct mcp251xfd_mem mem = { };
|
||||||
|
|
@ -55,6 +66,7 @@ int main(int argc, char *argv[])
|
||||||
.map = &map,
|
.map = &map,
|
||||||
};
|
};
|
||||||
const char *file_path;
|
const char *file_path;
|
||||||
|
unsigned int i;
|
||||||
int opt, err;
|
int opt, err;
|
||||||
|
|
||||||
struct option long_options[] = {
|
struct option long_options[] = {
|
||||||
|
|
@ -83,6 +95,9 @@ int main(int argc, char *argv[])
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < ARRAY_SIZE(priv.ring); i++)
|
||||||
|
mcp251xfd_dump_ring_init(&priv.ring[i]);
|
||||||
|
|
||||||
err = mcp251xfd_dev_coredump_read(&priv, &mem, file_path);
|
err = mcp251xfd_dev_coredump_read(&priv, &mem, file_path);
|
||||||
if (err)
|
if (err)
|
||||||
err = mcp251xfd_regmap_read(&priv, &mem, file_path);
|
err = mcp251xfd_regmap_read(&priv, &mem, file_path);
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
//
|
//
|
||||||
// Microchip MCP251xFD Family CAN controller debug tool
|
// Microchip MCP251xFD Family CAN controller debug tool
|
||||||
//
|
//
|
||||||
// Copyright (c) 2020 Pengutronix,
|
// Copyright (c) 2020, 2022, 2023 Pengutronix,
|
||||||
// Marc Kleine-Budde <kernel@pengutronix.de>
|
// Marc Kleine-Budde <kernel@pengutronix.de>
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
@ -26,21 +26,37 @@ do_mcp251xfd_regmap_read(struct mcp251xfd_priv *priv,
|
||||||
FILE *reg_file;
|
FILE *reg_file;
|
||||||
uint16_t reg;
|
uint16_t reg;
|
||||||
uint32_t val;
|
uint32_t val;
|
||||||
|
unsigned int n = 0;
|
||||||
|
int ret, err = 0;
|
||||||
|
|
||||||
reg_file = fopen(file_path, "r");
|
reg_file = fopen(file_path, "r");
|
||||||
if (!reg_file)
|
if (!reg_file)
|
||||||
return -errno;
|
return -errno;
|
||||||
|
|
||||||
while (fscanf(reg_file, "%hx: %x\n", ®, &val) == 2) {
|
while ((ret = fscanf(reg_file, "%hx: %x\n", ®, &val)) != EOF) {
|
||||||
if (reg >= ARRAY_SIZE(mem->buf))
|
if (ret != 2) {
|
||||||
return -EINVAL;
|
fscanf(reg_file, "%*[^\n]\n");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (reg >= ARRAY_SIZE(mem->buf)) {
|
||||||
|
err = -EINVAL;
|
||||||
|
goto out_close;
|
||||||
|
}
|
||||||
|
|
||||||
*(uint32_t *)(mem->buf + reg) = val;
|
*(uint32_t *)(mem->buf + reg) = val;
|
||||||
|
|
||||||
|
n++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
printf("regmap: Found %u registers in %s\n", n, file_path);
|
||||||
|
if (!n)
|
||||||
|
err = -EINVAL;
|
||||||
|
|
||||||
|
out_close:
|
||||||
fclose(reg_file);
|
fclose(reg_file);
|
||||||
|
|
||||||
return 0;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
int mcp251xfd_regmap_read(struct mcp251xfd_priv *priv,
|
int mcp251xfd_regmap_read(struct mcp251xfd_priv *priv,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue