You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ut...@apache.org on 2021/02/17 13:22:52 UTC

[mynewt-core] 03/05: hw: bsp: frdm-k82f: enable TRNG usage

This is an automated email from the ASF dual-hosted git repository.

utzig pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git

commit de7816922c95f2bd67f21af5c2e8a98853a9bec7
Author: Fabio Utzig <ut...@apache.org>
AuthorDate: Tue Feb 9 07:11:12 2021 -0300

    hw: bsp: frdm-k82f: enable TRNG usage
    
    Signed-off-by: Fabio Utzig <ut...@apache.org>
---
 hw/bsp/frdm-k82f/pkg.yml       |  3 +++
 hw/bsp/frdm-k82f/src/hal_bsp.c | 18 +++++++++++++++++-
 hw/bsp/frdm-k82f/syscfg.yml    |  3 +++
 3 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/hw/bsp/frdm-k82f/pkg.yml b/hw/bsp/frdm-k82f/pkg.yml
index 0389789..e8caa1e 100644
--- a/hw/bsp/frdm-k82f/pkg.yml
+++ b/hw/bsp/frdm-k82f/pkg.yml
@@ -65,3 +65,6 @@ pkg.deps.ENC_FLASH_DEV:
 
 pkg.deps.HASH:
     - "@apache-mynewt-core/hw/drivers/hash/hash_kinetis"
+
+pkg.deps.TRNG:
+    - "@apache-mynewt-core/hw/drivers/trng/trng_kinetis"
diff --git a/hw/bsp/frdm-k82f/src/hal_bsp.c b/hw/bsp/frdm-k82f/src/hal_bsp.c
index 71162d2..4460a15 100644
--- a/hw/bsp/frdm-k82f/src/hal_bsp.c
+++ b/hw/bsp/frdm-k82f/src/hal_bsp.c
@@ -35,6 +35,10 @@
 #include "hash/hash.h"
 #include "hash_kinetis/hash_kinetis.h"
 #endif
+#if MYNEWT_VAL(TRNG)
+#include "trng/trng.h"
+#include "trng_kinetis/trng_kinetis.h"
+#endif
 #if MYNEWT_VAL(UART_0) || MYNEWT_VAL(UART_1) || MYNEWT_VAL(UART_2) || \
     MYNEWT_VAL(UART_3) || MYNEWT_VAL(UART_4)
 #include "uart/uart.h"
@@ -106,6 +110,10 @@ static const struct nxp_hal_i2c_cfg hal_i2c3_cfg = {
 static struct hash_dev os_bsp_hash;
 #endif
 
+#if MYNEWT_VAL(TRNG)
+static struct trng_dev os_bsp_trng;
+#endif
+
 /*
  * What memory to include in coredump.
  */
@@ -116,7 +124,8 @@ static const struct hal_bsp_mem_dump dump_cfg[] = {
     }
 };
 
-static void init_hardware(void)
+static void
+init_hardware(void)
 {
     /* Disable the MPU otherwise USB cannot access the bus */
     SYSMPU->CESR = 0;
@@ -235,6 +244,13 @@ hal_bsp_init(void)
     assert(rc == 0);
 #endif
 
+#if MYNEWT_VAL(TRNG)
+    rc = os_dev_create(&os_bsp_trng.dev, "trng",
+                       OS_DEV_INIT_KERNEL, OS_DEV_INIT_PRIO_DEFAULT,
+                       kinetis_trng_dev_init, NULL);
+    assert(rc == 0);
+#endif
+
 #if MYNEWT_VAL(UART_0)
     rc = os_dev_create((struct os_dev *) &os_bsp_uart0, "uart0",
                        OS_DEV_INIT_PRIMARY, 0, uart_hal_init, NULL);
diff --git a/hw/bsp/frdm-k82f/syscfg.yml b/hw/bsp/frdm-k82f/syscfg.yml
index 34d8130..a1f4b43 100644
--- a/hw/bsp/frdm-k82f/syscfg.yml
+++ b/hw/bsp/frdm-k82f/syscfg.yml
@@ -75,3 +75,6 @@ syscfg.vals:
     REBOOT_LOG_FLASH_AREA: FLASH_AREA_REBOOT_LOG
     NFFS_FLASH_AREA: FLASH_AREA_NFFS
     COREDUMP_FLASH_AREA: FLASH_AREA_IMAGE_1
+
+    KINETIS_TRNG_USE_RNGA: 0
+    KINETIS_TRNG_USE_TRNG: 1