diff 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
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: