FreeCalypso > hg > tcs211-l1-reconst
changeset 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 | 91edaae9d4a6 |
files | STATUS |
diffstat | 1 files changed, 38 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/STATUS Tue Mar 14 19:07:14 2017 +0000 +++ b/STATUS Tue Mar 14 20:52:00 2017 +0000 @@ -73,7 +73,7 @@ analyzed and found to be identical in logic to the available C code, but there must have been some change to the code expression that results in different output from the compiler. In particular, the - symbolic info indicates the present of a local variable named power + symbolic info indicates the presence of a local variable named power in the original, but no such local var exists in the LoCosto version. The TSM30 version was of no help as it is entirely different there. @@ -82,7 +82,43 @@ l1_sync.obj: needs further review l1_sync_intram.obj: ditto -dl1_com.obj: not exact, needs review +dl1_com.obj: + + The reconstruction of this module is not exact, but the logic has + been verified to be an exact match except for the removal of some + non-functional bogons. Specifically: + + l1_create_ISR(): diff in one local variable name (result vs. status), + affects the generated assert string, but the length stays the same. + This assert string also contains the line number which differs + (3 digits in both cases), and the location of the string changes + because of the diffs in later functions listed below. + Verified exact match otherwise. + + TP_FrameIntHandler(): verified exact match. + + layer_1_sync_HISR_entry(): the version in the blob contains a + non-functional bogon which has not been reconstructed, see the + comments in the reconstructed source. Verified to be an exact match + except for the removal of this bogon. + + rx_tch_data(): empty function in both versions, trivial exact match. + + tx_tch_data(): this stub function is supposed to return a pointer, + but the original blob does a bare bx lr, returning whatever happens to + be in r0 on entry, which is unpredictable as the function takes no + arguments. The reconstructed version returns NULL. + + Strings and literals after the functions: manually verified to be an + exact match. + + .bss section: the original blob contains these defunct uninitialized + data objects: BACK_queue, DLL1_queue, L1C1_queue, RRM1_queue, pool_52, + pool_100, pool_400, pool_1600, and a static variable i in + layer_1_sync_HISR_entry() related to the bogon mentioned above. These + global data objects are not referenced from anywhere else in the + firmware and the link succeeds without them being present, hence they + have been omitted from the reconstruction. The rest is an exact match. l1_dyn_dwl_func.obj: