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 |
