The OSD3358-SM-RED development board includes a hardware secure boot setup using an Atmel AT97SC3205T TPM and Secure NOR Flash.
We currently do not have an application note for secure boot. But, please see below for resources that are available to execute secure boot:
Secure U-Boot for the BeagleBone Black using CryptoCape:
U-Boot with Atmel's I2C TPM, libTLCL, and libsboot (Secure Boot)
https://github.com/theopolis/u-boot-sboot
12 forks.
18 stars.
0 open issues.
We would recommend purchasing a development kit from Microchip for the TPM to get a better understanding of its capabilities
and of the software libraries that have been developed around it.
TPM datasheet and capabilities:
https://www.microchip.com/wwwproducts/en/at97sc3205t)
https://csrc.nist.gov/csrc/media/projects/cryptographic-module-validation-program/documents/security-policies/140sp2014.pdf
TPM development kit:
https://www.digikey.com/product-detail/en/microchip-technology/AT97SC3205T-SDK2/AT97SC3205T-SDK2-ND/4494595
TPM crypto functions
The BeagleBone CryptoCape incorporates the same TPM and open-source device tree overlays and documentation exist that provide excellent references:
https://cryptotronix.com/cryptocape-tpm/
https://www.sparkfun.com/products/retired/12773 (see Documents section)
https://cryptotronix.com/products/cryptocape/
In order to access the TPM in the Linux kernel, you need to make sure it is declared in the device tree. If you look at the CryptoCape device tree overlay:
https://github.com/beagleboard/bb.org-overlays/blob/master/src/arm/BB-BONE-CRYPTO-00A0.dts
you can see that the TPM is declared under I2C2:
fragment@2 {
target = <&i2c2>; <– I2C peripheral
overlay {
status = “okay”; <– Make sure peripheral is enabled
/ this is the configuration part /
clock-frequency = <100000>;
address-cells = <1>;
size-cells = <0>;
tpm@29 {
compatible = “atmel,at97sc3204t”; <– Declaring the appropriate Linux driver for the TPM
reg = <0x29>; <– Declaring the I2C address of the TPM
};
};
};
You can use
Device Tree Overlays for bb.org boards
https://github.com/beagleboard/bb.org-overlays
177 forks.
205 stars.
67 open issues.
#define PLATFORMBASE "/sys/devices/platform/ocp/"
– GetGpio()
has extra argument to handle returning gpio to the terminal – QueryMode()
has extra argument for removing new line for ListAllPins()
– extract_pin_name()
uses PLATFORMBASE
to return all Physical pin names – main()
has additional check for -g
and -a`", Robert Nelsonand
https://github.com/RobertCNelson/dtb-rebuilder/tree/4.9-ti
in order to modify the device tree overlay for your design. This will allow you to configure the TPM for your system.
Octavo Systems LLC all rights reserved
OCTAVO is registered in the U.S. Patent and Trademark Office. OSD, C-SiP, and the Octavo Logo are trademarks of Octavo Systems LLC.
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields