FreeCalypso > hg > tcs211-l1-reconst
annotate STATUS @ 344:ad79bc0b3312
p_tpudr12.c reconstructed, perfect match to original TCS211 object
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Mon, 30 Oct 2017 05:27:59 +0000 | 
| parents | 01b78eaf67e2 | 
| children | ba47d35a72f3 | 
| rev | line source | 
|---|---|
| 283 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 Objects in l1_ext.lib: | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 | 
| 284 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 3 l1_afunc.obj: not exact, see explanation below | 
| 283 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 l1_async.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 l1_cmplx.obj: perfect match to 20070608 version except line number points | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 l1_init.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 l1_pwmgr.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 l1_small.obj: perfect match | 
| 289 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 9 l1_sync.obj: not exact, see explanation below | 
| 283 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 l1_trace.obj: bits match perfectly, diff only in symbolic metadata | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 l1_dyn_dwl_afunc.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 l1_dyn_dwl_apihisr.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 l1_dyn_dwl_async.obj: perfect match | 
| 284 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 15 l1_dyn_dwl_func.obj: not exact, see explanation below | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 16 l1_dyn_dwl_init.obj: sole diff is in the num_of_primitives oddity, | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 17 see explanation below | 
| 283 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 l1_dyn_dwl_sync.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 l1audio_abb.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 l1audio_afunc.obj: bits match perfectly, diff only in symbolic metadata | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 l1audio_async.obj: diffs only in register alloc and symbolic metadata | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 l1audio_back.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 l1audio_drive.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 l1audio_init.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 | 
| 336 
7ad882cbce4c
STATUS: updated for l1p_* deblobbing
 Mychaela Falconia <falcon@freecalypso.org> parents: 
289diff
changeset | 27 l1p_afun.obj: perfect match | 
| 
7ad882cbce4c
STATUS: updated for l1p_* deblobbing
 Mychaela Falconia <falcon@freecalypso.org> parents: 
289diff
changeset | 28 l1p_asyn.obj: perfect match | 
| 
7ad882cbce4c
STATUS: updated for l1p_* deblobbing
 Mychaela Falconia <falcon@freecalypso.org> parents: 
289diff
changeset | 29 l1p_cmpl.obj: perfect match to 20070608 version | 
| 
7ad882cbce4c
STATUS: updated for l1p_* deblobbing
 Mychaela Falconia <falcon@freecalypso.org> parents: 
289diff
changeset | 30 l1p_sync.obj: perfect match | 
| 
7ad882cbce4c
STATUS: updated for l1p_* deblobbing
 Mychaela Falconia <falcon@freecalypso.org> parents: 
289diff
changeset | 31 | 
| 283 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 l1tm_async.obj: bits match perfectly, diff only in the line number points | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 l1tm_func.obj: bits match perfectly, diffs only in symbolic and line numbers | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 l1tm_stats.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 Objects in l1_int.lib: | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 | 
| 288 
595cdc5ff4e5
tpudrv12 differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
285diff
changeset | 38 dl1_com.obj: not exact, see analysis below | 
| 283 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 l1_api_hisr.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 l1_cmplx_intram.obj: perfect match to 20070608 version | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 l1_ctl.obj: perfect match to 20070608 version | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 l1_drive.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 l1_func.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 l1_mfmgr.obj: perfect match | 
| 289 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 45 l1_sync_intram.obj: not exact, see explanation below | 
| 283 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 l1audio_func.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 l1audio_sync.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 | 
| 336 
7ad882cbce4c
STATUS: updated for l1p_* deblobbing
 Mychaela Falconia <falcon@freecalypso.org> parents: 
289diff
changeset | 50 l1p_cmpl_intram.obj: perfect match | 
| 
7ad882cbce4c
STATUS: updated for l1p_* deblobbing
 Mychaela Falconia <falcon@freecalypso.org> parents: 
289diff
changeset | 51 l1p_ctl.obj: perfect match | 
| 
7ad882cbce4c
STATUS: updated for l1p_* deblobbing
 Mychaela Falconia <falcon@freecalypso.org> parents: 
289diff
changeset | 52 l1p_driv.obj: not exact, needs additional review | 
| 
7ad882cbce4c
STATUS: updated for l1p_* deblobbing
 Mychaela Falconia <falcon@freecalypso.org> parents: 
289diff
changeset | 53 l1p_func.obj: perfect match | 
| 
7ad882cbce4c
STATUS: updated for l1p_* deblobbing
 Mychaela Falconia <falcon@freecalypso.org> parents: 
289diff
changeset | 54 l1p_sync_intram.obj: perfect match | 
| 341 
01b78eaf67e2
STATUS: macs.obj is a perfect match
 Mychaela Falconia <falcon@freecalypso.org> parents: 
336diff
changeset | 55 macs.obj: perfect match | 
| 336 
7ad882cbce4c
STATUS: updated for l1p_* deblobbing
 Mychaela Falconia <falcon@freecalypso.org> parents: 
289diff
changeset | 56 | 
| 283 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 Objects in l1_custom_ext.lib: | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 l1audio_cust.obj: dead functions not reconstructed, perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 otherwise | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 l1tm_cust.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 l1tm_tpu12.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 Objects in l1_custom_int.lib: | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 ind_os.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 l1_cust.obj: perfect match | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 Objects in tpudrv.lib: | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 | 
| 
974835ad720c
STATUS top level file added
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 tpudrv.obj: perfect match | 
| 288 
595cdc5ff4e5
tpudrv12 differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
285diff
changeset | 72 tpudrv12.obj: not exact, see analysis below | 
| 284 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 73 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 74 Detailed analysis of differences, i.e., cases where the reconstructed C code | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 75 compiles into an object that is not bit-identical to the original blob: | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 76 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 77 l1_afunc.obj: | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 78 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 79 The l1_afunc.c module from LoCosto is used without any changes: | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 80 it compiled right away after adding one constant to l1_const.h, | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 81 and the result of recompilation is identical to the original up until | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 82 the l1a_clip_txpwr() function, which is the last function in the module. | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 83 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 84 Disassembly of the original blob version of this function has been | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 85 analyzed and found to be identical in logic to the available C code, | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 86 but there must have been some change to the code expression that | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 87 results in different output from the compiler. In particular, the | 
| 285 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 88 symbolic info indicates the presence of a local variable named power | 
| 284 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 89 in the original, but no such local var exists in the LoCosto version. | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 90 The TSM30 version was of no help as it is entirely different there. | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 91 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 92 See g23m/objdiff/l1_ext/l1_afunc.notes for further info. | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 93 | 
| 289 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 94 l1_sync.obj: | 
| 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 95 | 
| 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 96 The last function in this module is l1s_dedicated_mode_manager(); | 
| 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 97 the two preceding functions match perfectly, but for this last function | 
| 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 98 when the reconstructed code is recompiled, the compiler's register | 
| 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 99 allocator makes different picks for reasons that could not be | 
| 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 100 successfully reversed. Because the code is compiled in Thumb mode | 
| 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 101 and the compiler made a different choice between low and high registers | 
| 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 102 in some places, the instructions do not line perfectly. The logic match | 
| 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 103 has instead been verified by manual comparison. | 
| 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 104 | 
| 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 105 l1_sync_intram.obj: | 
| 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 106 | 
| 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 107 Similar situation in the l1s_schedule_tasks() function: the function | 
| 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 108 is huge, there is an unknown set of factors determining what the | 
| 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 109 compiler's register allocator will do, and in this case there is even | 
| 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 110 a difference in the choice of register vs. stack for some temporaries. | 
| 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 111 As a result, the code does not line up and the logic had to be verified | 
| 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 112 manually. All other functions (preceding and following) match | 
| 
f2f7f4dff6d7
STATUS: analysis complete
 Mychaela Falconia <falcon@freecalypso.org> parents: 
288diff
changeset | 113 perfectly. | 
| 284 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 114 | 
| 285 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 115 dl1_com.obj: | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 116 | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 117 The reconstruction of this module is not exact, but the logic has | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 118 been verified to be an exact match except for the removal of some | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 119 non-functional bogons. Specifically: | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 120 | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 121 l1_create_ISR(): diff in one local variable name (result vs. status), | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 122 affects the generated assert string, but the length stays the same. | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 123 This assert string also contains the line number which differs | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 124 (3 digits in both cases), and the location of the string changes | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 125 because of the diffs in later functions listed below. | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 126 Verified exact match otherwise. | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 127 | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 128 TP_FrameIntHandler(): verified exact match. | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 129 | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 130 layer_1_sync_HISR_entry(): the version in the blob contains a | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 131 non-functional bogon which has not been reconstructed, see the | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 132 comments in the reconstructed source. Verified to be an exact match | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 133 except for the removal of this bogon. | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 134 | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 135 rx_tch_data(): empty function in both versions, trivial exact match. | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 136 | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 137 tx_tch_data(): this stub function is supposed to return a pointer, | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 138 but the original blob does a bare bx lr, returning whatever happens to | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 139 be in r0 on entry, which is unpredictable as the function takes no | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 140 arguments. The reconstructed version returns NULL. | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 141 | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 142 Strings and literals after the functions: manually verified to be an | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 143 exact match. | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 144 | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 145 .bss section: the original blob contains these defunct uninitialized | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 146 data objects: BACK_queue, DLL1_queue, L1C1_queue, RRM1_queue, pool_52, | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 147 pool_100, pool_400, pool_1600, and a static variable i in | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 148 layer_1_sync_HISR_entry() related to the bogon mentioned above. These | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 149 global data objects are not referenced from anywhere else in the | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 150 firmware and the link succeeds without them being present, hence they | 
| 
4d9af8de3973
STATUS: dl1_com differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
284diff
changeset | 151 have been omitted from the reconstruction. The rest is an exact match. | 
| 284 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 152 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 153 l1_dyn_dwl_func.obj: | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 154 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 155 The LoCosto version uses a function (implemented in l1_func.c in | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 156 the LoCosto code) named l1_memcpy_16bit() to download patch bits | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 157 into the DSP's API RAM; the function does what the name says, and | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 158 the logic of using 16-bit accesses when hitting this API RAM makes | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 159 perfect sense to me (Mychaela). The original TCS211 code apparently | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 160 used plain memcpy(), which the compiler turned into its C$MEMCPY call. | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 161 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 162 If one does a #define l1_memcpy_16bit memcpy in l1_dyn_dwl_func.c, | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 163 the resulting l1_dyn_dwl_func.obj is almost bit-identical to the | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 164 original blob: the only diff is in register allocation - the compiler's | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 165 register allocator picks a different choice of registers, but all | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 166 instructions still perfectly line up. | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 167 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 168 For production use of our reconstructed TCS211 L1 code, we have adopted | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 169 the version with l1_memcpy_16bit() - the function body itself has been | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 170 moved into l1_dyn_dwl_func.c so that l1_func.c remains a perfect match. | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 171 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 172 l1_dyn_dwl_init.obj: | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 173 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 174 In the TCS211 configuration without L1_GTT, there are a total of 5 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 175 signals (aka primitives aka L1 messages) which trigger a dynamic | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 176 DSP patch download. These 5 signals are enumerated in | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 177 signal_patch_array[] in l1_dyn_dwl_afunc.c (which has been reconstructed | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 178 to a perfect match), and their total count (which should be 5) goes into | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 179 l1a.dyn_dwnld.num_of_primitives, set in l1_dyn_dwnld_initialize_var() in | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 180 l1_dyn_dwl_init.c. | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 181 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 182 In the original blob version this num_of_primitives variable ends up | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 183 being set to 6: first set to 2, then incremented by 4. In the LoCosto | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 184 source this var is first set to 0 as they apparently have no patches | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 185 that are independent of compilation config options, and then incremented | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 186 for every enabled option. | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 187 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 188 In our reconstruction we have made the GPRS and AMR_SCH patches and the | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 189 primitives that trigger them mandatory, and conditionalized the E2 and | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 190 AMR_MMS patches on MELODY_E2. The GPRS and AMR_MMS critters are | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 191 preinstalled by the static patch, and get pushed out by AMR_SCH and E2, | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 192 respectively. Of the 5 primitives listed in signal_patch_array[] in | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 193 the original blob, the first 2 are always-present core ones, whereas | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 194 the last 3 are specific to E2. The AMR_MMS patch is reinstated upon | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 195 L1_BACK_MELODY_E2_UNLOAD_INSTRUMENT_CON. | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 196 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 197 Based on the above reasoning, our reconstructed version sets | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 198 l1a.dyn_dwnld.num_of_primitives to 5 in the full configuration: first | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 199 sets to 2, then increments by 3. If one makes a sans-MELODY_E2 build, | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 200 only the GPRS and AMR_SCH patches will be retained, and only the two | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 201 non-E2 primitives for entry into and exit from dedicated mode. | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 202 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 203 l1audio_async.obj: | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 204 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 205 The only bit diff is in register allocation - the compiler's register | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 206 allocator picks a different choice of registers, but all instructions | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 207 still perfectly line up. There is also a slight diff in the symbolic | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 208 metadata emitted for functions, which might be related to the diff in | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 209 the register allocation. | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 210 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 211 The root cause of these diffs could not be found, but there is no | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 212 functional difference as only some in-function temporary registers | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 213 have been interchanged. | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 214 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 215 l1audio_cust.obj: | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 216 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 217 The original blob version has these demo/test functions at the end of | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 218 the module: | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 219 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 220 audio_melo_e1_demo1_start() | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 221 audio_melo_e1_demo1_stop() | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 222 audio_melo_e1_demo2_start() | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 223 audio_melo_e1_demo2_stop() | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 224 audio_melo_e2_load_lsi() | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 225 audio_melo_e2_demo1_start() | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 226 audio_melo_e2_demo1_stop() | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 227 audio_melo_e2_demo2_start() | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 228 audio_melo_e2_demo2_stop() | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 229 | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 230 These functions are dead code, i.e., they are not called or referenced | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 231 from anywhere else in the firmware, and the link succeeds without them | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 232 being present. These dead functions have been omitted from the | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 233 reconstructed version. The reconstruction is a perfect match otherwise. | 
| 
33b35965b4a0
STATUS: began analysis of the differences in the non-exact objects
 Mychaela Falconia <falcon@freecalypso.org> parents: 
283diff
changeset | 234 | 
| 288 
595cdc5ff4e5
tpudrv12 differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
285diff
changeset | 235 tpudrv12.obj: | 
| 
595cdc5ff4e5
tpudrv12 differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
285diff
changeset | 236 | 
| 
595cdc5ff4e5
tpudrv12 differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
285diff
changeset | 237 The reconstruction of this module was more of a translation of logic | 
| 
595cdc5ff4e5
tpudrv12 differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
285diff
changeset | 238 from disassembly to C than adaptation of source from other versions, | 
| 
595cdc5ff4e5
tpudrv12 differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
285diff
changeset | 239 hence it is not a bit-for-bit match or even close. However, the logic | 
| 
595cdc5ff4e5
tpudrv12 differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
285diff
changeset | 240 has been carefully verified and confirmed to match the original; see | 
| 
595cdc5ff4e5
tpudrv12 differences analyzed and documented
 Mychaela Falconia <falcon@freecalypso.org> parents: 
285diff
changeset | 241 chipsetsw/layer1/tpu_drivers/source0/tpudrv12.notes for the details. | 
