Skip to content

Commit 7cdfd91

Browse files
Ron EldorRon Eldor
authored andcommitted
Add guidelines for porting CC310 on Mbed OS
Add guidelines for porting CC310 on a new platform
1 parent 5e8e736 commit 7cdfd91

File tree

1 file changed

+21
-0
lines changed
  • features/mbedtls/targets/TARGET_CRYPTOCELL310

1 file changed

+21
-0
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Guidelines for porting Cryptocell to Mbed OS
2+
3+
Cryptocell (CC) 310 is a Hardware accelerator that can be ported to several boards, assuming these boards have CC 310 embedded in their Hardware.
4+
CC 310 driver is consisted of three libraries:
5+
6+
* A common core library(`libcc_core.a`)
7+
* A platform specific trng library, containing trng related information, for sampling sufficient entropy on the specific platform(`libcc_trng.a`)
8+
* A platform specific library containig extra information, such as the CC register's base addresses on the specific board.(`libcc_ext.a`)
9+
10+
In order to port your CC 310 driver to Mbed OS, on your specific target, do the following:
11+
12+
1. In `targets.json` add the following to your target:
13+
* `MBEDTLS_CONFIG_HW_SUPPORT` to `macros_add` key.
14+
* `CRYPTOCELL` to `device_has_add` key.
15+
* `CRYPTOCELL310` to `extra_labels_add` key.
16+
1. In `objects.h` include `objects_cryptocell.h`.(You can condition it with `#if DEVICE_CRYPTOCELL` in case you have another `trng` engine for a differnt board, and `objects.h` is common file for your boards, in this case your common `trng_api.c` file should be compiled only if `#if !defined(DEVICE_CRYPTOCELL)`).
17+
1. In `features/mbedtls/targets/TARGET_CRYPTOCELL310/TARGET_<target name>` add your platform specific libraries for all toolchains in `TOOLCHAIN_ARM`, `TOOLCHAIN_GCC_ARM` and `TOOLCHAIN_IAR` respectively.
18+
1. Add your CC setup code:
19+
* Implement `cc_platform_setup()` and `cc_platform_terminate()` to enable CC on your platform, in case you have such limitations. You can implement these functions as empty functions.
20+
* Define `cc_platform_ctx` in `cc_platform.h` in a way that will suit your implementation.
21+

0 commit comments

Comments
 (0)