annotate doc/Roadmap @ 923:10b4bed10192

gsm-fw/L1: fix for the DSP patch corruption bug The L1 code we got from the LoCosto fw contains a feature for DSP CPU load measurement. This feature is a LoCosto-ism, i.e., not applicable to earlier DBB chips (Calypso) with their respective earlier DSP ROMs. Most of the code dealing with that feature is conditionalized as #if (DSP >= 38), but one spot was missed, and the MCU code was writing into an API word dealing with this feature. In TCS211 this DSP API word happens to be used by the DSP code patch, hence that write was corrupting the patched DSP code.
author Mychaela Falconia <falcon@ivan.Harhan.ORG>
date Mon, 19 Oct 2015 17:13:56 +0000
parents 6500e1817d9b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
462
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
1 The ultimate goal of the FreeCalypso project is to produce a GSM firmware
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
2 version that:
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
3
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
4 a) runs on the Calypso targets of interest to us: not only the FIC/Openmoko
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
5 GTA0x GSM modem, but also some complete dumbphones like Mot C139 and/or
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
6 Pirelli DP-L10;
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
7
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
8 b) operates each target device it runs on in a way that is practically usable:
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
9 to me (lead developer Space Falcon) practical usability means providing a
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
10 standard AT command interface on modems like GTA0x and operating as a self-
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
11 contained standard cellphone with a UI on complete "dumbphone" targets;
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
12
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
13 c) is rebuildable from source in a way that would allow us to exercise the
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
14 traditional Four Freedoms of free software as defined by the FSF.
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
15
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
16 Our starting point is TI's Leonardo reference firmware version from Sotovik, a
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
17 mixture of source and linkable binary object modules. It can be built into a
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
18 complete and functional firmware image with TI's TMS470 compiler+linker+etc
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
19 toolchain, and can run on two hardware targets:
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
20
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
21 a) TI's Leonardo development board for the Calypso/Iota/Rita chipset -
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
22 legendary unobtainium hardware;
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
23
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
24 b) FIC/Openmoko GTA0x GSM modem - while this device is *not* what I wish to use
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
25 with the "end user" hat on, it is an available and working hw platform for
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
26 development.
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
27
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
28 This Leonardo starting point does kinda-sorta satisfy the "rebuildable from
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
29 source" requirement, as I was able to port it from the Leonardo board to the
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
30 GTA0x modem, but it is still quite far from what the FreeCalypso project
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
31 ultimately seeks to achieve.
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
32
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
33 What I, the lead developer, ultimately seek is not an AT-controlled modem
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
34 embedded in a "Linux" smartphone, but a complete and standalone "dumbphone",
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
35 with the UI driven by the Calypso. Transforming our starting and working
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
36 reference version from something that runs on the GTA0x modem and presents an
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
37 AT command interface into something that can run on a complete "dumbphone" and
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
38 present a self-contained UI can be done in several possible ways:
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
39
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
40 1. One could proceed further with the same approach that was used to produce
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
41 leo2moko: keep making small incremental changes to the Leonardo semi-src,
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
42 while keeping most of the binary object blobs intact at least initially, and
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
43 sticking with the original proprietary TMS470 compiler toolchain (running
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
44 under wine, as it's a bunch of M$ Windows binaries) throughout the journey.
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
45
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
46 Advantage: no massive "forklift" step required at the very beginning of the
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
47 journey, one can do small incremental steps instead. One possible roadmap
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
48 with this approach might be (just thinking out loud here) to start with
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
49 finding a way to redirect the AT command channel to something wrapped inside
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
50 RVTMUX, then port the fw to run on a target like Pirelli DP-L10, still
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
51 controlled via AT commands but passed via RVTMUX, and then try to add the
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
52 "dumbphone" UI layers. Some of the binary object blobs would certainly need
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
53 to be "cracked" and modified in this process, most sensibly by replacing
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
54 each blob in need of modification with a reconstructed source piece, but
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
55 this work would be done incrementally, rather than in a massive "forklift"
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
56 step upfront.
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
57
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
58 Disadvantage: this approach requires sticking with the original proprietary
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
59 compiler toolchain throughout at least most of the journey, which means
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
60 keeping the Weendoze poison that toolchain comes with. This aspect was
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
61 enough to turn me personally away from this approach.
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
62
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
63 2. One could move away from the proprietary compiler toolchain and replace it
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
64 with gcc, while still retaining those parts of the Leonardo firmware for
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
65 which we only have linkable binary objects but no C source, by teaching the
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
66 GNU toolchain (gcc+binutils) to emulate the TMS470 compiler's ABI: COFF
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
67 objects, a very different way of doing ARM/Thumb interworking, and a host of
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
68 other differences from how the GNU toolchain for ARM normally does things.
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
69 (I've done similar work on GCC and GNU Binutils in the past; let us not
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
70 forget that GNU started out by emulating various inter-component interfaces,
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
71 including ABIs, of various proprietary Unix versions.)
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
72
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
73 The advantage of this approach should be obvious. While in the long run we
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
74 would certainly like to get rid of all binary object blobs and replace them
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
75 with reconstructed source pieces, life would be much easier if we could do
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
76 this work incrementally, one blob at a time in a regression-tested working
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
77 fw version, rather than all upfront.
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
78
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
79 Disadvantage: teaching gcc and binutils to emulate TI's TMS470 ABI well
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
80 enough to where one could compile some sources with gcc, link the resulting
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
81 .o's with TI's blobs and get a working fw image at the end would be no easy
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
82 matter. In fact, it would be a massive amount of work, and considering that
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
83 this work would serve absolutely no purpose but to allow linking with some
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
84 proprietary binary blobs, finding the justification for the effort would be
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
85 difficult.
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
86
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
87 3. The approach I am currently following is the most ambitious one: start by
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
88 deblobbing the firmware, i.e., replacing all binary object blobs with
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
89 reconstructed source pieces, and then simply compile the all-C source with
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
90 the GNU toolchain for ARM7 in its default ABI.
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
91
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
92 Advantage: having the firmware in the form of full C source that builds with
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
93 a free compiler (a compiler that is itself bona fide Free Software) is
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
94 obviously the ultimate best. No blobs means no need to waste creative energy
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
95 on emulating proprietary compiler ABIs.
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
96
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
97 Disadvantage: all the hardest work is upfront, and needs to be done in a
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
98 "forklift" manner.
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
99
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
100 It should be obvious that incrementality, or division into manageable, bite-
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
101 sized pieces, is an essential requirement for successful execution of any large
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
102 scale project, and FreeCalypso is no different. Because our chosen approach
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
103 unfortunately does not allow us to make small incremental modifications to a
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
104 fully functional fw version, I currently achieve the needed incrementality in a
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
105 different way: by starting out with a firmware "skeleton" that compiles into an
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
106 image and runs on the hardware, but does nothing useful yet, and then slowly
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
107 adding chunks of "meat" to this skeleton in incremental steps aiming in the
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
108 direction of the complete & working fw version that is our reference. As I add
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
109 each "chunk of meat" to our gcc-built gsm-fw, I test it on the hardware and
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
110 compare its operation against the leo2moko reference version - that is our form
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
111 of pseudo-regression testing.
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
112
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
113 Where the missing source bits come from
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
114 =======================================
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
115
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
116 How can we replace a binary object blob with a corresponding source piece if we
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
117 lack the original source? In two ways:
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
118
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
119 1. In many cases we can lift the corresponding source piece from another TI
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
120 source leak, e.g., the LoCosto one. Calypso and LoCosto chipsets are
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
121 different, so code specific to LoCosto hardware won't run on Calypso targets,
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
122 but much of the code is chipset-independent. The LoCosto source leak is
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
123 important because it contains real C source for many of the chipset-
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
124 independent components for which our Leonardo reference version has only
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
125 binary blobs.
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
126
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
127 2. When no original or suitable substitute source can be found anywhere, we
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
128 have to bite the bullet, pass the blob through a suitable disassembler (I
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
129 wrote one that is specifically taylored for reversing code built with the
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
130 TMS470 compiler), and then write a piece of new C code that replicates the
6500e1817d9b doc/Roadmap: written
Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
parents:
diff changeset
131 logic found in the disassembled blob.