view LICENSE @ 303:f76436d19a7a default tip

!GPRS config: fix long-standing AT+COPS chance hanging bug There has been a long-standing bug in FreeCalypso going back years: sometimes in the AT command bring-up sequence of an ACI-only MS, the AT+COPS command would produce only a power scan followed by cessation of protocol stack activity (only L1 ADC traces), instead of the expected network search sequence. This behaviour was seen in different FC firmware versions going back to Citrine, and seemed to follow some law of chance, not reliably repeatable. This bug has been tracked down and found to be specific to !GPRS configuration, stemming from our TCS2/TCS3 hybrid and reconstruction of !GPRS support that was bitrotten in TCS3.2/LoCosto version. ACI module psa_mms.c, needed only for !GPRS, was missing in the TCS3 version and had to be pulled from TCS2 - but as it turns out, there is a new field in the MMR_REG_REQ primitive that needs to be set correctly, and that psa_mms.c module is the place where this initialization needed to be added.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 08 Jun 2023 08:23:37 +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.