Revision 1.4 will be replaced with 1.5 which will adapt a different JTAG connector. The new connector will allow the Atmel SAM-ICE debugger to connect directly to the openTPM. A cable does not exist that allows the TAG CONNECT to plug directly into the SAM-ICE debugger.
This revision forgoes all 0201 components for 0402 resistors and capacitors. Trace width was increased for power supply lines and JTAG connections. The JTAG’s voltage reference line is now connected to the TAG CONNECT footprint. Ground footprint was optimized for the bottom and inner-signal layer.
The first thing you may notice about the following photos is the jumper wire on the debug port. This is due to the fact that VTREF was left accidentally disconnected from VCC. This prevents the JTAG port from operating correctly as it can not sense a voltage on this line. The next revision, 1.3, will correct this issue. I will also replace all 0201 components with ones that are size 0402. This will make hand assembly easier for the user.
Initially the device was not recognized by the computer. I checked the voltages and incoming 5.0V was good from the connector to the voltage regulator but there was nothing on the output side. After reflowing the voltage regulator the device was immediately recognized as a Bossa Program Port.
Bossa is a flash programming utility for Atmel’s SAM family of flash-based ARM microcontrollers. Upon attempting to install Bossa on a Windows 10 machine, the installer stops prematurely.
I will attempt to contact the creators of this software in order to find a solution to get it to install properly on Windows 10. In the meantime, I was able to use Atmel’s SAM-BA software and a default configuration for one of their evaluation kits to install the example code provided with their TPM SDK.
Upon uploading this code, a Teensy USB Serial port appeared in Device Manager. I used PuTTY to connect to the COM4 at 9600 baud and the following appeared.
After pressing 1 to startup the TPM, I attempted to verify the TPM was in fact working. I did this by pressing t to get the version number of the device.
The correct version number appeared. I know this because this is the number printed on the actual device.
Stay tuned for revision 1.3 which will use larger components and fix the JTAG voltage sense line issue. Code to interact with the CryptoAuthentication components will be developed soon.
This revision makes use of the 3rd layer for signals and ground. This revision frees up the ground plane on the top layer and connects the top ground plane to the debug connector.
A PDF of the schematic is available here.
This revision is available on Open Source Hardware Park. It is a shared project. You can order them directly from OSH Park. We ordered three PCBs and they will be manufactured on July 30th then about a week after we will receive them in the mail.
After a few hours designing in EAGLE CAD, we have developed a rough concept of the Open Hardware USB based TPM. A SAM4S microcontroller from Atmel featuring an ARM Cortex M4 which operates at 120MHz maximum speed. This device contains Atmel’s full suite of CryptoAuthentication and an SPI version of their TCG 1.2 Trusted Platform Module.
Atmel offers an evaluation kit for the Atmel CryptoAuthentication™ Family in the same enclosure we intend on building the openTPM. The enclosure is a USB-31 series from Polycase.
We are setting out to build a Trusted Platform Module (TPM) into a USB form factor.
This should afford an easy way to add TPM capabilities to a device that lacks this important feature. The TPM is usually built in at the factory or offered as part of an add-on card. We can build a hardware root-of-trust for signing certificates, hashing data and generating random numbers. This is essential for proper cryptography to work in a trusted environment.
Our initial offering will include an Atmel AT97SC3205 trusted security module that conforms to Trusted Computing Group (TCG) Main v1.2, r116, TIS v1.3 specifications. USB functionality will be provided by an Atmel SAM4S microcontroller operating at 120MHz.