|
1 | 1 | # Guidelines for porting Cryptocell to Mbed OS
|
2 | 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: |
| 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. |
5 | 4 |
|
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`) |
| 5 | +The CC 310 driver consists of three libraries: |
9 | 6 |
|
10 |
| -In order to port your CC 310 driver to Mbed OS, on your specific target, do the following: |
| 7 | +* A common core library(`libcc_core.a`). |
| 8 | +* A platform-specific TRNG library, containing TRNG-related information, for sampling sufficient entropy on the specific platform(`libcc_trng.a`). |
| 9 | +* A platform-specific library containig extra information, such as the CC register's base addresses on the specific board. (`libcc_ext.a`) |
| 10 | + |
| 11 | +To port your CC 310 driver to Mbed OS on your specific target, do the following: |
11 | 12 |
|
12 | 13 | 1. In `targets.json` add the following to your target:
|
13 | 14 | * `MBEDTLS_CONFIG_HW_SUPPORT` to `macros_add` key.
|
14 | 15 | * `CRYPTOCELL` to `device_has_add` key.
|
15 | 16 | * `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. |
| 17 | +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)`). |
| 18 | +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 | 19 | 1. Add your CC setup code:
|
19 | 20 | * 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 | + * Define `cc_platform_ctx` in `cc_platform.h` in a way that suits your implementation. |
21 | 22 |
|
0 commit comments