Josh Branning <[email protected]> wrote: > If you choose to place your contributions into the public domain then > that's very nice of you.
Thank you. :) There is also a practical matter in that copyrights and licenses are completely worthless unless one is prepared to enforce them by suing the violators. I can never, ever, ever sue anyone - I have renounced my citizenship in all "legitimate" countries and live as an outlaw; according to countries with laws I have no right to live at all, nor any other rights, hence no court of any law-based countries will ever do anything in any case involving me, except maybe arrest me on the spot and send me away to a supermax prison for the world's most wanted and most dangerous terrorists. So why bother putting copyright or license statements on my work if they can never be enforced? Hence I don't bother. > I see peeklinux has the original > http://svn.peeklinux.com/trunk/peek-build/m23/L1/layer1/tpu_drivers/source1/tpudrv61.c > > Locosto driver that you use in your source tree. Peeklinux is presumably > under the GPL. I never quite figured out exactly what the peeklinux project was trying to do and exactly what they accomplished, and I don't understand their licensing situation either. However, the LoCosto firmware source code in question most certainly does NOT originate with this peeklinux project. I became aware of its existence in 2013-05 when it came up in a Google search for "Condat GSM stack"; prior to that find the only TI-chipset GSM firmware source I was aware of was the famous TSM30 from 2003-2004. When I "discovered" the LoCosto source in 2013-05, I got two hits: one is the same svn.peeklinux.com you are referring to, and the other was this: http://scottn.us/downloads/peek/ It was the latter that I used as my starting point, and I archived it on my own "GSM mini-Wikileaks" FTP site: ftp://ftp.ifctf.org/pub/GSM/LoCosto/ (as a precaution against ScottN, whoever he is, taking his copy down :) Digging in the peeklinux project's svn history, one can see that they imported the same code (minus the removal of some generated files found in ScottN's version) on 2010-06-26 as SVN revision r329. (The original code found at scottn.us targets TI's I-Sample reference board for the LoCosto chipset; presumably peeklinux project's later changes were to adapt the code from this I-Sample platform to their Peek hardware target.) But it should be obvious to anyone with a clue that the code in question is a "pirate" source leak that almost certainly was NOT released legally by Texas Instruments, the company that claimed (and probably continues to claim) copyright on this code because it was written by programmers who signed their rights over in exchange for a paycheck. The code in question must have leaked from TI some time between 2009-03-27 (the date on the SBuild_*.log files) and 2010-06-26 (the date when peeklinux imported it), and based on my knowledge of TI's history, I am leaning more toward 2009. You see, 2009 was the year when TI decided to completely exit the cellular baseband chipset business: they stopped making and selling the chips in question, the Wireless Terminal Business Unit was dissolved, all offices where that work was done were closed, and all employees who did that work were laid off. (Some were given the option of remaining with TI if they moved to Dallas, Texas - I personally know one of those laid-off TI employees and she told me - but who wants to live in that hell-hole?) When TI exited that business in 2009, all associated "intellectual property", including all firmware sources, was basically thrown in the trash can. (Literally - maybe or maybe not, as I wasn't there to witness, but certainly figuratively.) It is perfectly reasonable to assume that one or more of the 1000 or so laid-off employees did not want to see their work perish, and so it got leaked in full disregard of any copyrights held by TI's ghost. I don't know how the peeklinux project handled the GPL situation. It is possible (IANAL) that they may be in violation of the letter of the GPL by mixing GPL code with the "illegally pirated" code sans license, but they most certainly did NOT violate the *spirit* of the GPL, which is simply that you must not take GPL code and incorporate into a product which you distribute sans source or with other bad restrictions. A mixed pirate/FOSS developer who takes GPL code, combines it with some other code that was illegally pirated in disregard of copyrights and licenses, and releases the result as if it were free software (w/o concern for legalities) is NOT doing anything bad or immoral, and is NOT violating the spirit of the GPL - only the letter perhaps. And because I do not follow any laws other than my own, to me it is only the spirit of the GPL that matters, and not the letter. > I guess to find your modifications, My modifications are a backport from the LoCosto chipset to the earlier Calypso. Of course TI back in the day had the working firmware (in full source code form inside their company) for Calypso well before they had it for LoCosto, but unfortunately no such leak exists, or at least I never found one. Instead we have these two: 1. The LoCosto source discussed earlier - it is the complete firmware that runs on the I-Sample reference board, and almost all of it is real C source, with very few binary object pieces. 2. The Leonardo semi-source: ftp://ftp.ifctf.org/pub/GSM/TI_src/Sotovik/ The latter version runs on the Calypso chipset (Leonardo board), is fully functional, but only about 50% source, the other half being binary object libraries. (Of course the leak is just as unauthorized as the LoCosto one.) I considered going the LoCosto route. For the LoCosto we have not only the firmware source, but also the schematics and even the PCB design file for the I-Sample board: http://scottn.us/downloads/peek/HW%20doc/I-Sample%20ref.%20design/ I could easily make gerber files that that PCB file, send them to fab, and have a nice shiny physical I-Sample board in my hands. But I decided against this route because two things are missing: 1. The protocol for feeding firmware images to the LoCosto chip's Boot ROM over its native USB interface. TI never released the protocol description, only their tool in the form of a M$ Windows binary sans source, and I don't even have a copy of the latter - ScottN's site has what looks like empty directories there: http://scottn.us/downloads/peek/Tool/CSST/ 2. The weird "Sbuild" tools needed for the process of rebuilding the LoCosto fw from source are also missing. One would have to do a ton of work creating a new build system (writing Makefiles etc) before one can rebuild that source. Peeklinux seems to have done some of this, but I don't know how they handled the firmware loading problem. So I took a different approach. I decided to produce a fully liberated GSM firmware suite targeting the older Calypso chipset instead of LoCosto. Calypso has no native Unusable Serial Botch interface, uses a plain UART instead, and the protocol for feeding code to the Calypso Boot ROM over its UART is very simple and well-understood. (See freecalypso-sw/loadtools for the implementation which was written by me from scratch and is therefore in the public domain.) I do plan on building my own hardware (modems and dumbphones) with the Calypso chipset - the reason there have been no updates to freecalypso-sw since 2014-10 is because I'm been focusing on the hw work in these recent months. However, there are several existing Calypso hardware targets which I've been using for gsm-fw development. On the firmware side, my approach has been to follow the skeletal structure of the known-well-working Leonardo semi-src version, the one that is half source, half blobs. In all places where the Leonardo semi-src had real C source, I took the latter. In places where the Leonardo version had binary objects only whereas the LoCosto version had C source, I took the LoCosto source and backported it to Calypso, using disassembly of Leonardo objects as a guide where necessary. Both Calypso and LoCosto firmwares are based on the Nucleus RTOS, and both semi-src finds have it in binary object form only. However, I found FreeNucleus by Comrade XVilka, and used it successfully. There is also a layer of code between Nucleus and TI/Condat's GPF for which we also got binary objects, but no source in either version - I had to reconstruct it by writing new C code based on disassembly of the binary objects. As you can see, turning liberated ex-proprietary firmware into something that can be truly free is no easy task. > I'd have to get a diff between tpudrv12.c and tpudrv61.c I produced tpudrv12.c by doing a sort of "diff" between tpudrv61.c and a disassembly of tpudrv12.obj binary object from Leonardo. No other way was available to me: LoCosto's built-in RF block is quite different from Rita, and the only source of knowledge for how to drive the latter within the framework of TI's fw architecture was contained in the tpudrv12.obj COFF object. I hope that with this explanation you now have a somewhat better picture of the mess we have on our hands, and maybe even a little better appreciation for the work involved in turning this mess into a practically available and usable dumbphone with free firmware. Hasta la Victoria, Siempre, SF _______________________________________________ Replicant mailing list [email protected] http://lists.osuosl.org/mailman/listinfo/replicant
