# HG changeset patch # User Mychaela Falconia # Date 1489524720 0 # Node ID 4d9af8de3973cfa28cd8ee9fb9003219a1869b5a # Parent 33b35965b4a0c449f9621274d6bc892fc2577bdd STATUS: dl1_com differences analyzed and documented diff -r 33b35965b4a0 -r 4d9af8de3973 STATUS --- 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: