--- /dev/null
+TMI TinyOS Repository
+=====================
+
+What is TinyOS
+--------------
+
+TinyOS is a software development framework for building space and time
+efficient applications for deeply embedded systems, including wireless
+sensor networks. Some useful links:
+
+* [TinyOS Home Page](http://www.tinyos.net)
+* [TinyOS Documentation Wiki](http://docs.tinyos.net)
+
+Who is TMI
+----------
+
+Titanium Mirror, Inc. (TMI) is a software development conmpany specializing
+in computer network security, low power data acquisition, and highly available
+systems development. See our [Home Page](http://titaniummirror.com) for more
+information about our network security appliances. Contact us through the
+website to learn more about our embedded systems expertise.
+
+TMI's TinyOS Tree
+-----------------
+
+This repository tracks the official TinyOS 2.x development, and incorporates
+TMI's contributed code providing various enhancements for msp430 based target
+systems. TMI's code base is actively developed, and targeted to the current
+release of TinyOS. Enough information is provided in this repository to
+cherry pick features for your own TinyOS development, to use the TMI framework
+complete. A focus is placed on stability, as this framework is the core for
+our own development efforts.
+
+Features in the TMI repository include:
+
+* Support for newer MSP430 chipsets, such as the MSP430F2617. The TMI tree
+ requires a newer mspgcc v3.2.3 compiler; see below for more information.
+
+* An implementation for TI's USCI peripheral, used on newer MSP430
+ microprocessors in place of the older USART peripheral. This USCI
+ implementation supports RS-232 and SPI communication, with future planned
+ support for I2C.
+
+* Support for the newer basic clock + peripheral, and including a simpler
+ clock framework for easily configuring an msp430 target for clock speeds
+ other than the TinyOS 2.x default of 4MHz.
+
+* Support for a number of other hardware components, such as:
+ * Silicon Labs cp2103 USB/serial adapter
+ * Texas Instruments BQ2403x charge controller
+ * VTI SCP1000-D01 barometric pressure sensor
+
+* A modularized programming tool for msp430, tos-bsl, which allows for simple
+ expansion to new target device types. TMI has incorporated a module for
+ targeting devices using the Silicon Labs cp2103 USB/Serial adapter chip for
+ communications with a PC, including programming of the target microprocessor.
+
+* TMI is also soon to release two low power msp430-based embedded targets for
+ use in a variety of data acquisition, robotics, and other applications.
+ Support for these targets is also present within the TMI TinyOS tree.
+
+Using TMI's Ubuntu Packages
+===========================
+
+TMI will soon be releasing its version of msp430 compiler tools, TinyOS tools,
+and our TinyOS source tree via Ubuntu Debian packages available on Launchpad.
+TMI manages infrastructure in-house to package for our internal developers,
+who run Ubuntu versions Hardy and Karmic on both 32-bit and 64-bit x86 systems.
+When we release a public apt archive via a Launchpad PPA, other users of Ubuntu
+derived operating systems will be able to easily install and keep up to date
+their TinyOS development tools. Stay tuned!
+
+
+The Repository Structure
+========================
+
+The structure of TMI's TinyOS git repository is a bit complex. Here are the
+highlights:
+
+* The TMI repository slowly tracks all changes from the official TinyOS CVS
+ repository in its branch __upstream__.
+
+* CVS tags for released versios of TinyOS are replicated in the TMI repository.
+ For example, the CVS tag for release 2.1.0 is __release_tinyos_2_1_0_0__.
+ For auditability, the CVS release tags are imported into the TMI repo
+ unchanged.
+
+* Because of the differences between CVS and git's handling of tags, a checkout
+ of a CVS tag from git can provide different code than the same tag checked
+ out from CVS. This happened with __release_tinyos_2_1_0_0__ as an example.
+ The TMI tree resolves this by also posting a second tag for each release, of
+ the form tinyos/version, to which the actual CVS checkout is posted. For
+ example, the 2.1.0 git release tag is __tinyos/2.1.0__.
+
+* New development is done on the __master__ branch, which is merged to the
+ the latest official TinyOS release shortly after its release.
+
+* Periodically, TMI will release its custom code, based off the most recent
+ official TinyOS release. This is done by committing changes from branch to
+ a release branch of the form release/vrsion. The release branch for
+ TinyOS 2.1.0 is __release/2.1.0__. As each new version of TMI code is posted
+ to the branch, it is tagged. For example, version 2 of the TMI code on the
+ 2.1.0 TinyOS release is tagged __release/2.1.0/2__.
+
+* Many of TMI's enhancements we consider generally useful, and we strive to
+ get these changes considered for incorporation into the official TinyOS
+ tree. Therefore, the repository will contain patchset tags, each tagging
+ the head of a series of patches representing an uncluttered and clean
+ view of the TMI enhancements. Patchset tags take the form
+ patchset/tosver/tmiver, where tosver is the upstream TinyOS version and
+ tmiver is the TMI code version. For example, patches for TMI code version 2
+ against the TinyOS 2.1.0 release is tagged __patchset/2.1.0/2__. When
+ we rebase a patchset against the upstream head, we use a datecode for tosver.
+ So patchset version 2 against the TinyOS tree as seen at midnight on 11/30/09
+ would be tagged __patchset/20091130/2__.
+
+Submitting Enhancements
+=======================
+
+You may submit changes back to this tree via e-mail or via a publicly
+accessible git repository. Simply track our master branch and rebase any
+changes you publish against it.
+
+License
+=======
+
+All of TMI's source code is licensed per the BSD style license used by the
+upstream TinyOS repository. Certain files imported from upstream may use other
+licenses or offer secondary licenses. Check the individual files for details.