From d683edf7d96ba65c0711d81d73b5b30f145660e8 Mon Sep 17 00:00:00 2001 From: pennam Date: Fri, 25 Oct 2024 10:19:26 +0200 Subject: [PATCH 1/2] Reapply "Opta: secure_qspi: simplify code" This reverts commit 1399d6477548f3f5585155652511d68d3ef85951. --- variants/OPTA/variant.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/variants/OPTA/variant.cpp b/variants/OPTA/variant.cpp index e076647bb..342a7a3c8 100644 --- a/variants/OPTA/variant.cpp +++ b/variants/OPTA/variant.cpp @@ -283,19 +283,17 @@ static bool has_otp_info = false; bool getSecureFlashData() { static OptaBoardInfo info; - uint8_t temp_buf[sizeof(OptaBoardInfo) + 1]; - int ret = 0; - static SecureQSPIFBlockDevice secure_root; - secure_root.init(); - // read secure sector 2 ( address 1 << 13 ) - ret = secure_root.readSecure(temp_buf, (1 << 13), sizeof(temp_buf)); + char temp_buf[sizeof(OptaBoardInfo) + 1]; + int ret = QSPI_STATUS_OK; + mbed::QSPI _qspi(QSPI_FLASH1_IO0, QSPI_FLASH1_IO1, QSPI_FLASH1_IO2, QSPI_FLASH1_IO3, QSPI_FLASH1_SCK, QSPI_FLASH1_CSN, QSPIF_POLARITY_MODE_0); + auto rxlen = sizeof(temp_buf); + ret = _qspi.read(0x48, -1, 1 << 13, temp_buf, &rxlen); memcpy(&info, &temp_buf[1], sizeof(OptaBoardInfo)); if (info.magic == OTP_QSPI_MAGIC) { _boardInfo = (uint8_t*)&info; has_otp_info = true; } - secure_root.deinit(); - return ret == 0; + return ret == QSPI_STATUS_OK; } uint8_t* boardInfo() { From 4ad1efd1414e3814438ae81f64a2379cdc213d79 Mon Sep 17 00:00:00 2001 From: pennam Date: Fri, 25 Oct 2024 13:45:33 +0200 Subject: [PATCH 2/2] Ensure getSecureFlashData is called before QSPIFBlockDevice constructor --- variants/OPTA/variant.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/variants/OPTA/variant.cpp b/variants/OPTA/variant.cpp index 342a7a3c8..eabe1cdab 100644 --- a/variants/OPTA/variant.cpp +++ b/variants/OPTA/variant.cpp @@ -296,6 +296,15 @@ bool getSecureFlashData() { return ret == QSPI_STATUS_OK; } +class SecureQSPIReader { +public: + SecureQSPIReader() { + getSecureFlashData(); + } +}; + +SecureQSPIReader __reader __attribute__ ((init_priority (101))); + uint8_t* boardInfo() { return _boardInfo; } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy