FreeCalypso > hg > tcs211-l1-reconst
comparison STATUS @ 285:4d9af8de3973
STATUS: dl1_com differences analyzed and documented
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 14 Mar 2017 20:52:00 +0000 |
parents | 33b35965b4a0 |
children | 595cdc5ff4e5 |
comparison
equal
deleted
inserted
replaced
284:33b35965b4a0 | 285:4d9af8de3973 |
---|---|
71 | 71 |
72 Disassembly of the original blob version of this function has been | 72 Disassembly of the original blob version of this function has been |
73 analyzed and found to be identical in logic to the available C code, | 73 analyzed and found to be identical in logic to the available C code, |
74 but there must have been some change to the code expression that | 74 but there must have been some change to the code expression that |
75 results in different output from the compiler. In particular, the | 75 results in different output from the compiler. In particular, the |
76 symbolic info indicates the present of a local variable named power | 76 symbolic info indicates the presence of a local variable named power |
77 in the original, but no such local var exists in the LoCosto version. | 77 in the original, but no such local var exists in the LoCosto version. |
78 The TSM30 version was of no help as it is entirely different there. | 78 The TSM30 version was of no help as it is entirely different there. |
79 | 79 |
80 See g23m/objdiff/l1_ext/l1_afunc.notes for further info. | 80 See g23m/objdiff/l1_ext/l1_afunc.notes for further info. |
81 | 81 |
82 l1_sync.obj: needs further review | 82 l1_sync.obj: needs further review |
83 l1_sync_intram.obj: ditto | 83 l1_sync_intram.obj: ditto |
84 | 84 |
85 dl1_com.obj: not exact, needs review | 85 dl1_com.obj: |
86 | |
87 The reconstruction of this module is not exact, but the logic has | |
88 been verified to be an exact match except for the removal of some | |
89 non-functional bogons. Specifically: | |
90 | |
91 l1_create_ISR(): diff in one local variable name (result vs. status), | |
92 affects the generated assert string, but the length stays the same. | |
93 This assert string also contains the line number which differs | |
94 (3 digits in both cases), and the location of the string changes | |
95 because of the diffs in later functions listed below. | |
96 Verified exact match otherwise. | |
97 | |
98 TP_FrameIntHandler(): verified exact match. | |
99 | |
100 layer_1_sync_HISR_entry(): the version in the blob contains a | |
101 non-functional bogon which has not been reconstructed, see the | |
102 comments in the reconstructed source. Verified to be an exact match | |
103 except for the removal of this bogon. | |
104 | |
105 rx_tch_data(): empty function in both versions, trivial exact match. | |
106 | |
107 tx_tch_data(): this stub function is supposed to return a pointer, | |
108 but the original blob does a bare bx lr, returning whatever happens to | |
109 be in r0 on entry, which is unpredictable as the function takes no | |
110 arguments. The reconstructed version returns NULL. | |
111 | |
112 Strings and literals after the functions: manually verified to be an | |
113 exact match. | |
114 | |
115 .bss section: the original blob contains these defunct uninitialized | |
116 data objects: BACK_queue, DLL1_queue, L1C1_queue, RRM1_queue, pool_52, | |
117 pool_100, pool_400, pool_1600, and a static variable i in | |
118 layer_1_sync_HISR_entry() related to the bogon mentioned above. These | |
119 global data objects are not referenced from anywhere else in the | |
120 firmware and the link succeeds without them being present, hence they | |
121 have been omitted from the reconstruction. The rest is an exact match. | |
86 | 122 |
87 l1_dyn_dwl_func.obj: | 123 l1_dyn_dwl_func.obj: |
88 | 124 |
89 The LoCosto version uses a function (implemented in l1_func.c in | 125 The LoCosto version uses a function (implemented in l1_func.c in |
90 the LoCosto code) named l1_memcpy_16bit() to download patch bits | 126 the LoCosto code) named l1_memcpy_16bit() to download patch bits |