From ced870e37bd23949be4a1f0de7ce4530a6b1a8e2 Mon Sep 17 00:00:00 2001 From: Jake Carter Date: Fri, 2 Aug 2024 16:57:34 -0600 Subject: [PATCH 1/6] TPU RevA: Fix incorrect usages of MXC_SETFIELD --- Libraries/PeriphDrivers/Source/TPU/tpu_reva.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c b/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c index 3c570c31ed7..3e12680bff4 100644 --- a/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c +++ b/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c @@ -261,7 +261,7 @@ int MXC_TPU_RevA_Cipher_Config(mxc_tpu_reva_regs_t *tpu, mxc_tpu_reva_modesel_t // ******************************* Function to Select the Source of the Cipher Key ************************************* int MXC_TPU_RevA_Cipher_KeySelect(mxc_tpu_reva_regs_t *tpu, mxc_tpu_reva_keysrc_t key_src) { - MXC_SETFIELD(tpu->cipher_ctrl, MXC_F_TPU_REVA_CIPHER_CTRL_SRC, key_src); + MXC_SETFIELD(tpu->cipher_ctrl, MXC_F_TPU_REVA_CIPHER_CTRL_SRC, key_src << MXC_F_TPU_REVA_CIPHER_CTRL_SRC_POS); return E_SUCCESS; } @@ -716,7 +716,7 @@ int MXC_TPU_RevA_MAA_Compute(mxc_tpu_reva_regs_t *tpu, mxc_tpu_maa_clcsel_t clc, memcpy((void *)MAA_M, (uint32_t *)mod, len); // Start MAA - MXC_SETFIELD(tpu->maa_ctrl, MXC_F_TPU_REVA_MAA_CTRL_CLC, clc); + MXC_SETFIELD(tpu->maa_ctrl, MXC_F_TPU_REVA_MAA_CTRL_CLC, clc << MXC_F_TPU_REVA_MAA_CTRL_CLC); tpu->maa_ctrl |= MXC_F_TPU_REVA_MAA_CTRL_STC; // Check if MAA Error occurs From 4f90f39bafc90024688932431010789c1d4a2568 Mon Sep 17 00:00:00 2001 From: Jake Carter Date: Fri, 2 Aug 2024 17:02:22 -0600 Subject: [PATCH 2/6] clang-format --- Libraries/PeriphDrivers/Source/TPU/tpu_reva.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c b/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c index 3e12680bff4..b31edaadeaf 100644 --- a/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c +++ b/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c @@ -261,7 +261,8 @@ int MXC_TPU_RevA_Cipher_Config(mxc_tpu_reva_regs_t *tpu, mxc_tpu_reva_modesel_t // ******************************* Function to Select the Source of the Cipher Key ************************************* int MXC_TPU_RevA_Cipher_KeySelect(mxc_tpu_reva_regs_t *tpu, mxc_tpu_reva_keysrc_t key_src) { - MXC_SETFIELD(tpu->cipher_ctrl, MXC_F_TPU_REVA_CIPHER_CTRL_SRC, key_src << MXC_F_TPU_REVA_CIPHER_CTRL_SRC_POS); + MXC_SETFIELD(tpu->cipher_ctrl, MXC_F_TPU_REVA_CIPHER_CTRL_SRC, + key_src << MXC_F_TPU_REVA_CIPHER_CTRL_SRC_POS); return E_SUCCESS; } From 851de155d803be14456a7fea99579fdb43c81c99 Mon Sep 17 00:00:00 2001 From: Jake Carter Date: Mon, 5 Aug 2024 10:35:01 -0600 Subject: [PATCH 3/6] Revert change to key_src setter --- Libraries/PeriphDrivers/Source/TPU/tpu_reva.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c b/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c index b31edaadeaf..81ee04cf30b 100644 --- a/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c +++ b/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c @@ -261,8 +261,8 @@ int MXC_TPU_RevA_Cipher_Config(mxc_tpu_reva_regs_t *tpu, mxc_tpu_reva_modesel_t // ******************************* Function to Select the Source of the Cipher Key ************************************* int MXC_TPU_RevA_Cipher_KeySelect(mxc_tpu_reva_regs_t *tpu, mxc_tpu_reva_keysrc_t key_src) { - MXC_SETFIELD(tpu->cipher_ctrl, MXC_F_TPU_REVA_CIPHER_CTRL_SRC, - key_src << MXC_F_TPU_REVA_CIPHER_CTRL_SRC_POS); + MXC_SETFIELD(tpu->cipher_ctrl, MXC_F_TPU_REVA_CIPHER_CTRL_SRC, key_src); + // Note: "key_src" enum is set with "S" definitions instead of "V" definitions, so shifting is not necessary return E_SUCCESS; } From 23c3379617df214037ad9d1f8859c7c50ab1b8f1 Mon Sep 17 00:00:00 2001 From: Jake Carter Date: Mon, 5 Aug 2024 11:41:22 -0600 Subject: [PATCH 4/6] Left shift clc value if MAA size >= 1024 --- Libraries/PeriphDrivers/Source/TPU/tpu_reva.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c b/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c index 81ee04cf30b..0d3b4472346 100644 --- a/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c +++ b/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c @@ -717,7 +717,13 @@ int MXC_TPU_RevA_MAA_Compute(mxc_tpu_reva_regs_t *tpu, mxc_tpu_maa_clcsel_t clc, memcpy((void *)MAA_M, (uint32_t *)mod, len); // Start MAA - MXC_SETFIELD(tpu->maa_ctrl, MXC_F_TPU_REVA_MAA_CTRL_CLC, clc << MXC_F_TPU_REVA_MAA_CTRL_CLC); + uint8_t clc_val = (uint8_t)clc; + if (((tpu->maa_maws & MXC_F_TPU_MAA_MAWS_MSGSZ) >> MXC_F_TPU_MAA_MAWS_MSGSZ_POS) >= 1024) { + // The actual value of the field must be left shifted by 1 if MAWS >= 1024 + clc_val <<= 1; + } + MXC_SETFIELD(tpu->maa_ctrl, MXC_F_TPU_REVA_MAA_CTRL_CLC, + clc_val << MXC_F_TPU_REVA_MAA_CTRL_CLC_POS); tpu->maa_ctrl |= MXC_F_TPU_REVA_MAA_CTRL_STC; // Check if MAA Error occurs From 5f5f7cd3207c718066fd5bb01dfaf3104dabe17a Mon Sep 17 00:00:00 2001 From: Jake Carter Date: Mon, 5 Aug 2024 16:06:09 -0600 Subject: [PATCH 5/6] Revert "Left shift clc value if MAA size >= 1024" This reverts commit 23c3379617df214037ad9d1f8859c7c50ab1b8f1. --- Libraries/PeriphDrivers/Source/TPU/tpu_reva.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c b/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c index 0d3b4472346..81ee04cf30b 100644 --- a/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c +++ b/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c @@ -717,13 +717,7 @@ int MXC_TPU_RevA_MAA_Compute(mxc_tpu_reva_regs_t *tpu, mxc_tpu_maa_clcsel_t clc, memcpy((void *)MAA_M, (uint32_t *)mod, len); // Start MAA - uint8_t clc_val = (uint8_t)clc; - if (((tpu->maa_maws & MXC_F_TPU_MAA_MAWS_MSGSZ) >> MXC_F_TPU_MAA_MAWS_MSGSZ_POS) >= 1024) { - // The actual value of the field must be left shifted by 1 if MAWS >= 1024 - clc_val <<= 1; - } - MXC_SETFIELD(tpu->maa_ctrl, MXC_F_TPU_REVA_MAA_CTRL_CLC, - clc_val << MXC_F_TPU_REVA_MAA_CTRL_CLC_POS); + MXC_SETFIELD(tpu->maa_ctrl, MXC_F_TPU_REVA_MAA_CTRL_CLC, clc << MXC_F_TPU_REVA_MAA_CTRL_CLC); tpu->maa_ctrl |= MXC_F_TPU_REVA_MAA_CTRL_STC; // Check if MAA Error occurs From e806278e02bec41adb97558b57a212adfd9e90e8 Mon Sep 17 00:00:00 2001 From: Jake Carter Date: Mon, 5 Aug 2024 16:08:06 -0600 Subject: [PATCH 6/6] Fix CLC vs CLC_POS typo --- Libraries/PeriphDrivers/Source/TPU/tpu_reva.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c b/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c index 81ee04cf30b..6607bde0ceb 100644 --- a/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c +++ b/Libraries/PeriphDrivers/Source/TPU/tpu_reva.c @@ -717,7 +717,8 @@ int MXC_TPU_RevA_MAA_Compute(mxc_tpu_reva_regs_t *tpu, mxc_tpu_maa_clcsel_t clc, memcpy((void *)MAA_M, (uint32_t *)mod, len); // Start MAA - MXC_SETFIELD(tpu->maa_ctrl, MXC_F_TPU_REVA_MAA_CTRL_CLC, clc << MXC_F_TPU_REVA_MAA_CTRL_CLC); + MXC_SETFIELD(tpu->maa_ctrl, MXC_F_TPU_REVA_MAA_CTRL_CLC, + clc << MXC_F_TPU_REVA_MAA_CTRL_CLC_POS); tpu->maa_ctrl |= MXC_F_TPU_REVA_MAA_CTRL_STC; // Check if MAA Error occurs