From 11cd32aae7b4caf09ef03a7cab7224f55f2a23f6 Mon Sep 17 00:00:00 2001 From: Gavin Liu Date: Fri, 3 Apr 2020 18:05:06 +0800 Subject: [PATCH] nxp:mimxrt1050: Add support for MIMXRT1050_EVK Add configration for MIMXRT1050_EVK with external QSPI flash. With the Soc security modules like HAB, BEE, DCP and others, the physical external flash can be treated as internal flash with the same security feature. The configration of MIMXRT1050_EVK supports: - 8MB QSPI flash in default - mbed-bootloader-rt1050-qspi-internal_flash-no_rot-94579e9.bin - Ethernet connecing with Pelion - FLASHIAP - kvstore - OTA For the Hyper flash, please delete the line: "target.macros_remove" : ["HYPERFLASH_BOOT"] and adjust the other settings to match the Hyper flash size and flash map. Signed-off-by: Gavin Liu --- README.md | 1 + ...050-qspi-internal_flash-no_rot-94579e9.bin | Bin 0 -> 42048 bytes mbed_app.json | 26 ++++++++++++++++++ 3 files changed, 27 insertions(+) create mode 100644 bootloader/mbed-bootloader-rt1050-qspi-internal_flash-no_rot-94579e9.bin diff --git a/README.md b/README.md index 23407ad..ef1c66f 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ Nuvoton `NUMAKER_PFM_M487` | Ethernet | SD card (NUSD) Nuvoton `NUMAKER_PFM_NUC472` | Ethernet | SD card (NUSD) | Build-only NXP `K64F` | Ethernet | Internal Flash | NXP `K66F` | Ethernet | Internal Flash | +NXP `MIMXRT1050_EVK` | Ethernet | External QSPI Flash | Renesas `GR_LYCHEE` | Wi-Fi ESP32 | External Flash ([See security limitation of this board](https://os.mbed.com/platforms/Renesas-GR-LYCHEE/#security-limitation-of-this-platform)) | Build-only Renesas `RZ_A1H` | Ethernet | External Flash ([See security limitation of this board](https://os.mbed.com/platforms/Renesas-GR-PEACH/#security-limitation-of-this-platform)) | Build-only Seeed `ARCH_MAX` | Ethernet | SD card | Build-only diff --git a/bootloader/mbed-bootloader-rt1050-qspi-internal_flash-no_rot-94579e9.bin b/bootloader/mbed-bootloader-rt1050-qspi-internal_flash-no_rot-94579e9.bin new file mode 100644 index 0000000000000000000000000000000000000000..13e9b5e33f2e7a5ccf6c8a67e23c69aaf2f38691 GIT binary patch literal 42048 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