FreeCalypso > hg > fc-tourmaline
view LICENSE @ 78:c632896652ba
mfw/ti1_key.c: properly initialize notified_keys array
The code in this ti1_key.c layer needs to call kpd_subscribe() and
kpd_define_key_notification() functions in order to register with the
KPD driver. The original code passed KPD_NB_PHYSICAL_KEYS in
nb_notified_keys - this constant is defined to 24 in kpd_cfg.h on all
platforms of interest to us - but it only filled the first 23 slots
in the notified_keys array, resulting in stack garbage being passed
to KPD API functions. The fix consists of initializing the last
missed array slot to KPD_KEY_RECORD, the key ID for the right side
button on the D-Sample handset.
On our current hw targets this "Record" button exists as the EXTRA
button on our Luna keypad board and as the camera button on the
Pirelli DP-L10. There is no support whatsoever for this button
in current BMI+MFW, we have no plans of doing anything with Pirelli's
camera button even if we do get our UI fw running on that phone,
and the Mother's dream of building our own FreeCalypso handset with
the same button arrangement as D-Sample (including the right side
button) is currently very nebulous - but let us nonetheless handle
the full set of buttons on the KPD to MFW interface, and let upper
layers weed out unsupported buttons.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 25 Oct 2020 23:41:01 +0000 |
parents | 4e178a0e90f6 |
children |
line wrap: on
line source
Copyright status of code ======================== Every current FreeCalypso GSM firmware offering consists of two subdivisions of code with different ownership: 1) All FreeCalypso GSM firmware offerings are based on TCS211 and TCS3.2 GSM firmware deliveries from TI. 2) Every FreeCalypso GSM firmware offering also contains highly significant new code developed in the context of FreeCalypso by Mother Mychaela; these value-added changes and new developments which differentiate FreeCalypso from TI's original are highly significant, these changes and additions are what makes our FreeCalypso GSM firmwares valuable and practically usable unlike the fragmented bits and pieces of TI's original code found on the Internet, and we (FreeCalypso) shall vigorously pursue every available form of Intellectual Property protection in defending our rightful interest in these value-added new developments. All FreeCalypso GSM firmware offerings constitute Derivative Works under U.S. copyright law, derived from previous works that were produced and copyrighted by TI, but also containing highly significant original work that is deserving of copyright protection. The present version of this LICENSE file supercedes any previous versions that may have been committed into this Mercurial version control repository at any time in the past. Anyone who downloads or clones code from this Mercurial source repository after the posting date of this LICENSE notice must agree to the terms of this license, even if you choose to work with an older version of the actual code. If you do not agree with this license, then you have no right to download or use our code at all. Portions of code taken from TI ============================== All TI-owned code that has been incorporated into FreeCalypso originates from the following four sources in this order of importance, from most to least significant: a) TCS211 firmware semi-src (partial source + objects) delivery dated 2007-06-08; b) TCS3.2_N5.24_M18_V1.11_M23BTH_PSL1_src.zip LoCosto firmware delivery dated 2009-03-27; c) Fragments of TCS211 firmware source contained in the MV100-0.1.rar Internet find, dated 2004-07-02 or earlier; d) Bits of Layer1 code from the TSM30 source published by HispaPhreak in 2004, dated 2003-11-06 or earlier. All of this code is presumed to be copyrighted by Texas Instruments (TI), with a copyright year of 2009 or earlier. Because TI no longer provides any support for their discontinued GSM baseband chips or for their associated firmware, the exact licensing terms for their code are unclear. We (FreeCalypso) have repeatedly reached out to TI over the years, explaining in our letters to TI exactly what we are doing with their old code and asking for licensing clarification, but never received any response. In the absence of any communication from TI telling us otherwise, we operate on the assumption that the license terms applicable to the code we are using from TI are the same as customary in the semiconductor device industry as a whole. It is customary in the industry for makers of many complex integrated circuit (IC) chips to also produce specialized firmware that is required in order to use these chips effectively; if any given semiconductor device company X is primarily in the business of making and selling IC chips and provides firmware solely as an accessory to those chips rather than as a product in its own right, then the following license terms are generally customary for all such firmware articles throughout the industry: * Because the firmware is a required accessory for making use of the chips and because the chips rather than the firmware are the revenue-generating product, IC chip makers almost universally license their firmware under terms that allow unlimited use of the firmware FOR AS LONG AS that firmware is used together with chips bought from the company, and not otherwise. * It is generally considered severe misuse and likely copyright infringement or IP theft to take some company's firmware and use it WITHOUT buying the original chips for which that firmware was made. Back to FreeCalypso and TI, we (FreeCalypso) use TI's code ONLY by way of running it on genuine TI-made Calypso chips which we buy on various IC surplus markets. Even though these chips were originally made by TI decades ago and TI has likely lost all institutional memory of them, the fact remains that at some point in the distant past these chips were legitimately sold by and bought from TI, with all subsequent transfers of ownership falling under the first-sale doctrine. When these chips were first sold by TI decades ago, they were accompanied by a license for the associated firmware to be used together with the chips, and we make the argument that because the firmware is a required accessory for using the chips and has been so from the beginning, as the ownership of our TI-made chips passed down the chain, the license to the associated firmware rides along with the physical chips, following the same first-sale doctrine. We (FreeCalypso) absolutely do not condone or encourage anyone to use TI's firmware without TI-made chips, and we never engage in any such misuse ourselves. Anyone who attempts to port TI's firmware to some non-TI chipset platform or otherwise use it without TI-made chips will very likely be infringing on TI's copyright, as TI had developed the firmware solely for use together with their chips, and use without TI-made chips would constitute theft of their work. We shall not provide any assistance whatsoever to anyone seeking to port the present firmware to a non-TI chipset or to an SDR setup or any other arrangement that is not firmly cemented around TI-made Calypso chips, as doing so would almost certainly go against TI's reasonable rights. Because we use TI's code only by way of running it on genuine TI-made Calypso chips, in the absence of TI telling us otherwise, we have every good reason to believe that our manner of using TI's firmware code is fully consistent with TI's original intent in the way it was developed and licensed, and is therefore fully lawful and not infringing in any way. FreeCalypso original work ========================= All code we got from TI dates from 2009 or earlier; absolutely no activity by any party took place between 2009 and 2013, and all new development from 2013 onward is original to FreeCalypso. All changes and additions to TI's code base that have been made within the context of FreeCalypso from 2013 to the present are the work of Mother Mychaela Nadezhda Falconia and are copyrighted as such: Copyright (C) Mychaela N. Falconia, 2013-2020, All rights reserved Changes and additions falling under Falconia copyright include all of the following: * The novel and innovative way in which components from TI's TCS211 and TCS3.2 firmwares have been stitched together in order to produce our signature TCS2/TCS3 hybrid (resulting in firmware that runs on Calypso rather than LoCosto, yet at the same time is fully recompilable from source) is hereby claimed to be sufficiently creative and original to be deserving of copyright protection in the 17 USC 101 definition of a "compilation". * All instances of translation from disassembly to C (producing recompilable C code that replaces components which were previously available only as linkable binary objects) are Mother Mychaela's creative work falling under Falconia copyright. This category critically includes the tpudrv12.c time-based RF driver and the OSL and OSX components of GPF. * All changes for compiling with a GNU gcc+binutils toolchain instead of TI's TMS470 compiler, included in FC Citrine, FC Selenite and future FC firmwares. These changes include newly written assembly code and linker scripts. * All FreeCalypso firmware configuration and build systems are original to Falconia and do not originate from TI at all. This category includes the Makefile hierarchy and Bourne shell code in FC Citrine, the Bourne shell-based Makefile generation system of FC Magnetite, and all future FC firmware configuration and build systems based on these two. * All conditional compilation changes that make it possible to build our firmwares for various Calypso targets, both new and historical, that are not Openmoko GTA01 or GTA02 modems. * The quite-different-from-TI FFS configuration in FC Citrine, including the FFS-in-RAM trick that is original to FreeCalypso. * All support for newer (post-TI) flash chips in FC Magnetite, FC Selenite and all future FC firmwares based on the Magnetite/Selenite line. * The mechanism for passing AT commands and responses over the RVTMUX interface is novel and original to FreeCalypso, likewise falling under Falconia copyright. * FreeCalypso-added AT@VPATH and AT@VSEL mechanisms for using the Calypso chip's MCSI digital voice interface for purposes other than just Bluetooth. * All other changes and additions to TI's code base that have been implemented in FreeCalypso since 2013 and through the present. License terms ============= For all FreeCalypso GSM firmware offerings that contain Falconia-copyrighted code and other changes and additions that fall under Falconia copyright, the following three (3) modes of usage are allowed without requiring any license fee payment: 1) Using FreeCalypso GSM firmware on Falconia-made FreeCalypso hardware: those who purchase FreeCalypso hardware products (board-level hardware) from Falconia Partners LLC, as well as any downstream possessors of these physical products under the first-sale doctrine, are hereby given a license to use all of our FreeCalypso firmware versions *on that Falconia-made hardware* for any purpose whatsoever, without restrictions on commercial usage, including the right to make any arbitrary modifications of your choosing to our code base, for as long as our firmware or any derivative works based on our firmware are used ONLY on Falconia-made hardware units. 2) End user usage: in the case of those firmware configurations for which official binary end user releases are provided, downloading prebuilt official binary firmware images from freecalypso.org and installing them on the hardware they are intended for, including hardware models produced by manufacturers other than Falconia, is always permitted without any further conditions or restrictions. Please note that this permission applies ONLY to official FreeCalypso firmware releases; if you make any changes of your own to our firmware, then this permission no longer applies - instead you would need to qualify under one of the other two permissions. 3) Non-commercial hobbyist tinkerer usage: personal hobbyists, tinkerers and enthusiasts are allowed and encouraged to play with our firmware as much as they like, including running the firmware on whatever hardware you like and making whatever modifications you like, as long as your usage is strictly non-commercial. Users in this category are considered to be peers and equal colleagues to the Mother, and will be given the warmest welcome in the FreeCalypso community. Any TI lorekeepers are included in this category and are most especially welcome. Restrictions on commercial usage ================================ There is one specific form of usage which is expressly prohibited without payment of a license fee: namely, for-profit commercial usage of FreeCalypso GSM firmware on non-Falconia-made hardware that does not fit under end user usage permission as defined above. Anyone who creates a derivative work based on FreeCalypso GSM fw, modified in ways which are not endorsed or approved of in any way by the Mother, and then uses that FreeCalypso-based derivative work as part of a purely commercial for-profit venture or enterprise must either buy FreeCalypso hardware from Falconia Partners LLC and limit their commercial use of FreeCalypso-based derivative works to just that Falconia-made hardware, or buy a commercial license (for a to-be-negotiated price depending on the exact nature of your commercial usage) from copyright holder Mychaela N. Falconia, allowing commercial use on non-Falconia-made hardware. Doing otherwise constitutes severe infringement on Mother Mychaela's copyright. No part of Mother Mychaela's FreeCalypso family of projects has *ever* been intended to serve as a free giveaway or handout of tools or software components or any other materials to for-profit commercial entities, instead the ONLY parties to whom I (copyright holder Mychaela N. Falconia) grant permission to use my software and firmware on a "gift" basis (not requiring purchase of my hardware or a license fee payment in lieu thereof) are personal hobbyist tinkerers and end users as defined in the previous section. It is my natural right as the author of a highly creative work of many years to decide who gets to use it for free and who does not, and in my capacity as the rightful copyright holder I deem it so that if you use my work as part of any commercial for-profit venture or enterprise that does not provide any value or benefit whatsoever to what _I_ define as the FreeCalypso community, then I am legally entitled in my capacity as the copyright holder to require payment for such peculiar use of my creative work. Redistribution and derivative works =================================== For as long as I (Mother Mychaela) am alive, for as long as I contunue to actively serve in my current position as the Mother of FreeCalypso, and for as long as the official FreeCalypso source code repositories at freecalypso.org remain up and publicly serving, reposting or redistribution of FreeCalypso GSM firmware source code via any other Internet sites is NOT permitted. Unaltered official binary firmware release images downloaded from freecalypso.org may be freely redistributed in any medium without restrictions. As far as derivative works go, the only parties who may legally produce such derivative works under the terms of the present license without payment of a commercial license fee are either non-commercial personal hobbyist tinkerers or lawful owners of Falconia-made FreeCalypso hardware devices. If you have made some modifications of your own to FreeCalypso GSM firmware and have done so on a strictly non-commercial basis, i.e., NOT in connection with any kind of for-profit venture or enterprise, and you would like to share your modified version with other non-commercial hobbyists, enthusiasts or tinkerers, then I am very much open to such sharing, but you MUST contact me first to work out the details. This contact requirement is unfortunately necessary in order to deter predatory and exploitative for-profit commercial misuses of the work.