mirror of https://github.com/ARMmbed/mbed-os.git
9049860b25
Remove additional redundant libraries, that were accidently added in merges |
||
---|---|---|
.. | ||
TARGET_MCU_NRF52840 | ||
binaries | ||
include | ||
Readme.md | ||
cc_internal.c | ||
cc_internal.h | ||
ccm_alt.c | ||
ccm_alt.h | ||
ecdh_alt.c | ||
ecdsa_alt.c | ||
ecdsa_alt.c.mod | ||
mbedtls_device.h | ||
objects_cryptocell.h | ||
platform_alt.c | ||
platform_alt.h | ||
sha1_alt.c | ||
sha1_alt.h | ||
sha256_alt.c | ||
sha256_alt.h | ||
trng.c |
Readme.md
Guidelines for porting Cryptocell to Mbed OS
Cryptocell (CC) 310 is a hardware accelerator that can be ported to several boards, assuming these boards have CC 310 embedded in their hardware.
The CC 310 driver consists of three libraries:
- A common core library(
libcc_core.a
). - A platform-specific TRNG library, containing TRNG-related information, for sampling sufficient entropy on the specific platform(
libcc_trng.a
). - A platform-specific library containing extra information, such as the CC register's base addresses on the specific board. (
libcc_ext.a
)
To port your CC 310 driver to Mbed OS on your specific target, do the following:
- In
targets.json
add the following to your target:MBEDTLS_CONFIG_HW_SUPPORT
tomacros_add
key. This instructs Mbed TLS to look for an alternative cryptographic implementation.CRYPTOCELL310
tofeature
. Use this in your common code that you need to remove from compilation in case CC exists in your board. Use#if !defined(FEATURE_CRYPTOCELL310)
and#if defined(FEATURE_CRYPTOCELL310)
.
- In
objects.h
, includeobjects_cryptocell.h
. You can use theFEATURE_CRYPTOCELL310
precompilation check as defined above. - In
features/cryptocell/FEATURE_CRYPTOCELL310/TARGET_<target name>
, add your platform-specific libraries for all toolchains inTOOLCHAIN_ARM
,TOOLCHAIN_GCC_ARM
andTOOLCHAIN_IAR
respectively. - Add your CC setup code:
- Implement
cc_platform_setup()
andcc_platform_terminate()
to enable CC on your platform, in case you have board-specific setup functionality, required for CC setup. These functions can be empty. - Define
cc_platform_ctx
incc_platform.h
in a way that suits your implementation.
- Implement