Commit Graph

420 Commits (bigbrett-patch-1)

Author SHA1 Message Date
Daniele Lacamera 9759773f9d Added simulator tests with delta updates 2023-03-21 18:03:38 +01:00
Daniele Lacamera e39ce78b30 Fix fprintf format string warning 2023-03-21 18:03:38 +01:00
Daniele Lacamera 887f96c7b0 Fix fprintf warnings 2023-03-21 18:03:38 +01:00
Daniele Lacamera 57a8fb30f1 Added test scripts 2023-03-21 18:03:38 +01:00
Daniele Lacamera 6aa5c114e5 Added option to sim target to simulate powerfails 2023-03-21 18:03:38 +01:00
Daniele Lacamera 2f2a6d416d Support encrypted images in MMU targets 2023-03-09 16:31:29 +01:00
Brett Nicholas 6dacae2945 removed imx_rt10xx_nor files from codebase and replaced with SDK reference 2023-03-06 17:31:48 +01:00
Brett Nicholas 0759c1e7cd changed comment style and copyright year 2023-03-06 17:31:48 +01:00
Brett Nicholas 680ce5f8e8 first commit - test app boots on MIMXRT1064-EVK 2023-03-06 17:31:48 +01:00
David Garske 80ac15693c Fixed STM32H7 UART 5. Added CMake support for DEBUG_UART. Adjust example config to use correct QSPI offsets for update partition. 2023-03-06 16:25:06 +01:00
David Garske 40f2f82dd7 Add support for UART5. 2023-02-02 12:11:23 -08:00
David Garske 8dd0ee347f Support for the STM32 OCTOSPI peripheral. 2023-02-02 12:11:23 -08:00
David Garske 47e9d7a591
Merge pull request #261 from cmcquinn/cmake-fixes
Improvements and fixes for CMake
2023-01-13 15:28:55 -08:00
David Garske 63c35ac95a Fixes for NXP P1021 NAND flash mapping and boot page. 2022-12-29 18:27:40 +01:00
David Garske f91e82a452 Progress on NXP P1021 eLBC FCM driver for NAND flash. 2022-12-29 18:27:40 +01:00
David Garske c6983b8c42 Progress on P1021 support (work in progress). 2022-12-29 18:27:40 +01:00
David Garske 022b8d3c13 Progress on adding NXP QorIQ P1021 support. 2022-12-29 18:27:40 +01:00
David Garske e88a7dcae3 Progress on DDR support for QorIQ. Refactor the platform to use "nxp_". 2022-12-29 18:27:40 +01:00
Daniele Lacamera 74a26d20c8 Fixed regressions on TPM SPI communication
that were introduced in #265
2022-12-29 16:11:34 +01:00
David Garske e746c3f65a Fix for wolfBoot with wolfTPM. Tested with `cp ./config/examples/stm32wb-tpm.config .config && make clean && make`. 2022-12-28 19:15:50 +01:00
David Garske a93eacf510 Improve QSPI driver performance. 2022-12-22 15:29:24 -08:00
David Garske 8d7d4d4f74 Fixes for QSPI read. Adds alternate byte support. Cleanup of simple QSPI read/write. 2022-12-22 15:02:31 -08:00
David Garske c3cf21a81f STM32 QSPI cleanups. 2022-12-21 14:06:31 -08:00
David Garske 5331f5ee23 QSPI Flash tests passing in single SPI mode (working on Quad mode).
```
wolfBoot Init
Flash ID (ret 0): 0x1870EF, status 0
Erase Sector: Ret 0
Flash Write: Ret 0, Address 0x200000, Page 0, Len 256
Write Page: Ret 0
Flash Read: Ret 0, Address 0x200000, Len 256, Cmd 0xB
Read Page: Ret 0
Checking...
Flash Test Passed
```
2022-12-20 16:44:53 -08:00
David Garske 26bed3e893 Fixes for QSPI driver (CS is controller by QSPI). Fix little endian byte ordering for UART printf feature. 2022-12-20 15:00:26 -08:00
Daniele Lacamera bf62ebe3fd Fix GPIO mode for SPI CS pins 2022-12-20 13:54:17 +01:00
David Garske 1766864a6b Fixes for STM32 QSPI and cleanups. Added build-option for QSPI clock (`QSPI_CLOCK_MHZ`). 2022-12-20 13:31:28 +01:00
David Garske a9526bab8f STM32 QSPI Flash support. Refactor SPI to allow different GPIO base/AF for each pin. Adds `DEBUG_UART` support for H7. 2022-12-20 13:31:28 +01:00
Daniele Lacamera 4ee867b2dd Fixes for stm32wb test
- added img->hdr_ok flag when opening external flash image
- correct return value for uart_flash ext_flash functions
- correct image size in prepare_encrypte_update.sh
2022-12-16 17:49:46 +01:00
Cameron McQuinn 8ace007cd8 Improvements and fixes for CMake 2022-12-15 00:56:57 -07:00
David Garske b1d7c43043 Fix for external SPI broken with cd6597e2a0 2022-12-14 23:07:38 +01:00
Lealem Amedie 18bfcecd6b wolfBoot cmake support 2022-12-07 13:00:10 -08:00
David Garske 4c92552fc7 Progress on DDR support. 2022-12-06 06:20:48 +01:00
David Garske 2a481af879 Fix bug with update_ram.c when using fixed partitions. Support for MMU setup on e6500. Progress on DDR support. 2022-12-06 06:20:48 +01:00
David Garske bc89cb6594 Added minimalistic printf UART support (enabled with `DEBUG_UART`). 2022-12-06 06:20:48 +01:00
David Garske bfed41889b Improvements to the NXP T2080 support. Adds NOR Flash and IFC configuration. Adds CPLD support. Make `DEBUG_UART` a configure option. 2022-12-06 06:20:48 +01:00
David Garske 2fc899254f Cleanups for NXP T2080 DEOS support:
* Expanded the NXP QorIQ T2080 documentation in `docs/Targets.md`.
* T2080 fixes for boot code placement and generation of .bin.
* T2080 UART driver cleanup.
* Improve bin-assemble fill speed and report items added.
* Make portability fixes to enable building in `mingw32-make`.
* Cleanup the `docs/Targets.md` sections and links.
* Cleanup execute bits on code files.
2022-12-06 06:20:48 +01:00
David Garske c3b5ac156b Experimental STM32U5 external flash support. 2022-11-23 18:13:03 +01:00
David Garske 62c7cd296a Fixes for wolfBoot Xilinx QSPI support. 2022-10-10 11:58:57 +02:00
David Garske c346fab41b Support for NAII 68PPC2 with NXP T2080 on DEOS 2022-09-23 15:44:49 +02:00
Daniele Lacamera a6fdec3901 self-encrypt prototype; tested on stm32l0 2022-09-21 18:49:52 +02:00
Daniele Lacamera 93dd53ac0f Fixed support for raspberry-pi 2022-07-21 20:18:34 +02:00
Daniele Lacamera b6465dc0b2 WIP raspi fix 2022-07-21 20:18:34 +02:00
Daniele Lacamera c4ca592f43 Fixed rpi load address, do_boot jump 2022-07-21 20:18:34 +02:00
Daniele Lacamera 1d0eea8c6a Fix uninitialized pointers + segfault in test-lib 2022-07-20 20:18:16 +02:00
Marco Oliverio c077207b01 feature: simulated target
This commit introduces a simulated target where the internal and optionally the
external flash can be simulated and backed by files. Using this target will
produce an executable wolfBoot ELF image.
2022-07-12 10:13:10 +02:00
David Garske f63c323677 Cleanups and restore a few changes. 2022-05-20 08:06:07 +02:00
David Garske 6068a8047c wolfBoot improvements (from elms):
* Add `WOLFBOOT_DUALBOOT` for dynamic fallback
* Refactor header field parsing
* Cleanup compiler warnings and logic extra check
* Option to leave out partition based functions
* Add `WOLFBOOT_FIXED_PARTITIONS` enable using partition enum and related functions
* Wrap all delta update references
* Update raspberry documentation
* EFI refactoring
* Add `keytools_check` target
* Add "library" target
2022-05-20 08:06:07 +02:00
David Garske 57627140a3
Merge pull request #199 from danielinux/i.mx-rt1050
Added support for NXP i.MX-RT105x
2022-04-27 11:35:44 -07:00
Daniele Lacamera bc111ae41c Removed duplicate definition section 2022-04-27 14:37:53 +02:00
Daniele Lacamera ee2e250376 [RT1050] Fix flash geometry configuration 2022-04-27 14:26:22 +02:00
Daniele Lacamera 51de556e1b Added support for NXP i.MX-RT105x 2022-04-21 18:53:24 +02:00
Daniele Lacamera 6f2c761078 Do not override HAL_GetTick when building library 2022-04-13 11:25:35 +02:00
David Garske b46c5b222c Cleanup STM32H7 target documentation and code. 2022-02-14 10:51:53 -08:00
David Garske e3aaeccdb2 Minor fixes to get the IAR example building. 2022-02-14 10:47:02 -08:00
Daniele Lacamera daff2a04a8 Fixed STM32L4 HAL, added IMAGE_HEADER_SIZE option 2022-02-02 12:05:14 +01:00
David Garske 5463105eab Adds STM32U5 support. Thank you ST. 2022-01-24 00:07:03 -08:00
Daniele Lacamera 34341f96f7 Change FLASH origin for stm32f4 to 0x08000000 2022-01-21 00:07:19 +01:00
Elms 78ace2ee17 Fixes for Cortex R5 self-update
- load `f021_lookup_bank()` into RAM
 - `arch_reboot()` for TMS570
2021-12-20 10:08:07 -08:00
Marco Oliverio a187442455 support booting EFI application on x86_64 architecture
Co-authored-by: Daniele Lacamera <daniele@wolfssl.com>
2021-11-30 18:43:50 +01:00
David Garske 62132201bf Peer review feedback. Rename secure boot function and move build option macro around function. 2021-11-29 23:17:43 -08:00
David Garske cf15e71796 Fix indent and line length. 2021-11-29 23:17:43 -08:00
David Garske d2f762c8eb Improve the SEC_SIZE check and add build option to disable check. Add TODO note. 2021-11-29 23:17:43 -08:00
David Garske 905730d927 Fixes for secure user memory feature. 2021-11-29 23:17:43 -08:00
David Garske 2526dbb40a Fix to use flash base address on STM32G0. 2021-11-29 23:17:43 -08:00
David Garske 56174581c6 Secure boot support (experimental) 2021-11-29 23:17:43 -08:00
Daniele Lacamera 33102a54fd Fixed STM32L5 dual-bank mode 2021-11-17 11:53:57 +01:00
Elms aaa8438f3f TMS570LC43xx: Fix status updates via NVM_FLASH_WRITEONCE 2021-10-07 01:45:18 -07:00
Elms d302c633c2 TMS570LC43xx: flash updates and init stack pointer
- cleanup warnings and rework exceptions to be more robust
 - CORTEX R5: Initialization of stack pointer
 - updates to F021 flash from testing
 - sync options for command line build with IDE
2021-10-07 01:45:18 -07:00
Hajer KALLEL 2a6c394e97 Changed FLASH ORIGIN 2021-08-26 13:03:49 -07:00
David Garske ff28cec38a Minor cleanups. Add the required Cube HAL to app Makefile. 2021-08-26 13:03:49 -07:00
Hajer KALLEL ad067f1462 Fixed ident at line 171 2021-08-26 13:03:49 -07:00
Hajer KALLEL 0f0c7708fe Replaced tab with 4 spaces at line 119 2021-08-26 13:03:49 -07:00
Hajer KALLEL 963bce9fac Fixed indentations and if else braces
Added hal_flash_lock(); and renamed clear_errors(); to hal_flash_clear_errors();
2021-08-26 13:03:49 -07:00
Hajer KALLEL 9c6c5f3246 stm32l4xx hal configuration 2021-08-26 13:03:49 -07:00
Hajer KALLEL e75b5274ef Added support for STM32L4 2021-08-26 13:03:49 -07:00
Hajer KALLEL b35be0e545 Added HAL_GetTick def for compilation 2021-08-26 13:03:49 -07:00
Hajer KALLEL 0db770810b added RAMFUNCTION and checked indentation 2021-08-26 13:03:49 -07:00
Hajer KALLEL d5b550c110 Added support for STM32L4x6 2021-08-26 13:03:49 -07:00
Hajer KALLEL 8272fa3972 a 2021-08-26 13:03:49 -07:00
Hajer KALLEL e3a4e2378e Added support for STM32L4x6 2021-08-26 13:03:49 -07:00
David Garske d38de3b432 Update copyright year 2021-07-19 07:50:02 -07:00
Daniele Lacamera 0964ca0587 Maximize available RAM for RSA4096+fastmath test 2021-07-14 18:03:49 +02:00
Elms d6bf2e3c59 TMS570LC430xx: use `wolfBoot_printf` instead of `printf` 2021-06-23 09:12:17 +02:00
Elms 529b138b7c TMS570LC43xx: cleanup ISR and add build release project 2021-06-23 09:12:17 +02:00
Elms f8685b195c TMS570LC43xx: add project files for Hercules Code Composer Studio 2021-06-23 09:12:17 +02:00
Elms ee0f93fee0 TMS570LC43xx: Add flash from RAM and test-app and cleanup
* add flash demo from RAM
 * clean up linker script and flags
 * Add hercules test-app: link script and minimal c file

`make CCS_ROOT=/c/ti/ccs1031/ccs/tools/compiler/ti-cgt-arm_20.2.4.LTS F021_DIR=/c/ti/Hercules/F021\ Flash\ API/02.01.01`
2021-06-23 09:12:17 +02:00
David Garske 31b785fe7e Progress with cross-compiling wolfBoot. Will also be creating CCS project. 2021-06-23 09:12:17 +02:00
Elms a9ceedf298 TMS570LC43xx: fixup formatting
* add GPL headers
 * fix up whitespace (no tabs)
 * C style comments blocks
2021-06-08 18:14:41 +02:00
Elms b988cd3748 PPC-t2080: Add minimal test app
With debug it will spin for a while and print a count
Also improce config example
2021-06-08 18:14:41 +02:00
Elms a25ba8c27d PPC-t2080: Add PPC and NXP T2080 startup 2021-06-08 18:14:41 +02:00
Daniele Lacamera b957b7e56a Correct BANK2 offset in STM32H7. Fixed flag to check on flash write
operations.

Should solve #109.
2021-02-05 10:46:33 +01:00
David Garske 72c9f21417 Fixes to wolfBoot Zynq QSPI driver to properly handle DMA mode (on by default). Fixes for entering 4-byte mode, which requires setting write enable. Made configuration macros overridable. 2021-02-03 10:17:58 +01:00
David Garske 7f2061a9cb Add support for using the Xilinx BSP QSPI driver. Update to latest wolfSSL (fixes chacha build error in Visual Studio). 2021-02-03 10:17:58 +01:00
Daniele Lacamera 119954115f Added UART driver for stm32l0 2020-12-08 12:09:54 +01:00
Daniele Lacamera 6208f48bc8 Fix for issue #89: Workaround for ECC in STM32H7 driver. Fixed erase
function.
2020-11-26 17:43:21 +01:00
Daniele Lacamera 2394c7424e Fixed stm32h7.c hal write from app 2020-11-26 17:43:21 +01:00
Daniele Lacamera f8c577e291 Fixed offset alignment in STM32H7 hal_flash_write 2020-11-26 17:43:21 +01:00
Glenn Ergeerts 4a84fd369e configure GPIO pull-down and speed settings for SPI CLK, MISO and MOSI for STM32L0 2020-11-19 13:51:28 +01:00
Glenn Ergeerts 3682e66818 stm32l0: add support for external SPI flash 2020-11-19 13:30:14 +01:00
Daniele Lacamera c7998c817a Fixed hal_flash_write in stm32h7, added dualbank option 2020-11-17 10:27:03 +01:00
David Garske 4706d2f126 Peer review fixes. Fixes for SHA3 and RSA4096 in makefiles. Fixes for Xilinx SDK excludes. Cleanup of the printf to use the built-in facilities (`wolfBoot_printf`). 2020-11-12 10:47:32 +01:00
David Garske f77186b68b Fix for QSPI clock. 2020-11-12 10:47:32 +01:00
David Garske 3719816795 Minor build fixes. 2020-11-12 10:47:32 +01:00
David Garske bd87099f10 eFuse reading. 2020-11-12 10:47:32 +01:00
David Garske f2fe944d8e Zynqmp updates to use xil_printf. Adds UART support for debugging. 2020-11-12 10:47:32 +01:00
David Garske 709ce000a7 Increase stack/heap for Zynq. Add additional Zynq debugging logs for update_ram.c. Pass return code from `wolfBoot_verify_signature` when calling `wolfBoot_verify_authenticity`. 2020-11-12 10:47:32 +01:00
Liam 4e823af012 surround faster speed in ifdef so it only gets used for STM32L0 platform 2020-11-05 14:07:24 +01:00
Liam 579871f72e increase spi speed 2020-11-05 14:07:24 +01:00
David Garske c5ec4e31d8
Merge pull request #81 from danielinux/imx-rt1060
i.MX-RT1060 support
2020-10-09 09:35:29 -07:00
Daniele Lacamera f533c7c654 Cleanup test application + removed unused components 2020-10-09 16:53:07 +02:00
Daniele Lacamera d6257fb62d RT1060: Added support for HW SHA acceleration via DCP 2020-10-09 13:44:06 +02:00
Daniele Lacamera 9186c263a2 Fixed IMX-RT-1060 flash driver, working update 2020-10-09 13:26:28 +02:00
Daniele Lacamera c26d2c0517 Fixed bootloader link step; added stub for nor flash driver 2020-10-07 18:41:02 +02:00
Daniele Lacamera f649685ee6 Fixed address base for Block-based write access in secure mode 2020-09-30 18:35:28 +02:00
Daniele Lacamera 7e1773199d Minor fixes to block-based claim procedure 2020-09-30 17:45:39 +02:00
Daniele Lacamera 9d09f61b40 Integration of support for DISABLE_BACKUP in stm32l5 (TZEN=1 case) 2020-09-28 18:50:47 +02:00
Daniele Lacamera cbe002fad7 Merge branch 'update-flags-in-boot-partition' into stm32l5 2020-09-28 17:10:28 +02:00
Daniele Lacamera 4e5517d0d9 Added makefile options + test application for i.mx-RT1060
(work in progress)
2020-09-28 14:45:15 +02:00
Daniele Lacamera 9f04c6242e Fixed DUALBANK_SWAP mode in STM32L5
- Added proper unlock procedure for FLASH_OPTKEYR
- fork bootloader when running with non-swapped banks
2020-09-09 14:26:30 -07:00
Daniele Lacamera f8d1779ef2 Added description for non-secure (dual-bank) mode on L5.
Minor fixes for L5: added missing linker sections, disabled MPU.
2020-09-09 14:26:30 -07:00
Daniele Lacamera fd0b13079a Added support for dual bank swap in stm32l5 2020-09-09 14:26:30 -07:00
Daniele Lacamera d184381eec Added SECBB support to write on non-secure pages 2020-09-09 14:26:30 -07:00
Daniele Lacamera 5614c75f1e Fixed address alignment, TZEN=0 mode not yet working 2020-09-09 14:26:30 -07:00
Daniele Lacamera 81acc3fc6d Moved target-specific initialization to hal/ 2020-09-09 14:26:30 -07:00
Daniele Lacamera 12ea412029 Cosmetic fixes (whitespaces) 2020-09-09 14:26:30 -07:00
Daniele Lacamera db12405f13 Fixed "comparison always true" warning 2020-09-09 14:26:30 -07:00
David Garske 43c2e3dd79 Experimental support for STM32L5 2020-09-09 14:26:30 -07:00
David Garske d31bfc2032
Merge pull request #71 from wolfSSL/lpc_fix
LPC: Fix aligned page address write
2020-07-14 15:28:27 -07:00
Daniele Lacamera 8187f9f159 LPC: Fix aligned page address write 2020-07-15 00:04:31 +02:00
Daniele Lacamera 533fa9b4a2 Added RAMFUNCTION tag to SPI flash functions 2020-07-06 10:13:52 +02:00
Daniele Lacamera eb2774e78b Updated comment in uart_drv_stm32wb.c 2020-06-16 17:52:50 +02:00
Daniele Lacamera c9f8f6a12e Added uart driver for stm32wb 2020-06-16 17:52:50 +02:00
Daniele Lacamera d21dfc2778 Merge branch 'master' into psoc6_hwcrypto 2020-06-16 09:36:54 +02:00
Daniele Lacamera b662f961c7 stm32wb: Fixed alignment problem in hal_write, + bug in PNB mask 2020-06-12 12:25:28 +02:00
Daniele Lacamera 35545ffed9 Fixes for stm32wb hal 2020-06-10 22:52:33 +02:00
Daniele Lacamera 17707b7a37 Support for PSOC6 crypto support: added compile option 2020-06-05 11:49:57 +02:00
Daniele Lacamera 60d599542d PSoc6 uses HW crypto accelerator for sha256 2020-06-05 11:39:37 +02:00
Daniele Lacamera 00811394db Fixed VTOR startup value, added return value check to Cy_* functions 2020-05-29 08:16:18 +02:00
David Garske 2560bdc6d7 Added TPM RSA verify support. Added support for using software SHA-256 hasing with TPM because its much faster. (Note: to use TPM for hashing define `WOLFBOOT_HASH_TPM`). 2020-05-25 08:28:02 -07:00
Daniele Lacamera 28e29cb20b Don't update clock settings before staging.
(mentioned in docs/Targets.md)
2020-05-20 06:53:00 -07:00
Daniele Lacamera 56d16f323c psoc6 hal: removed dead code 2020-05-20 06:53:00 -07:00
Daniele Lacamera f3d0d8fc83 PSoC6 support: updated configuration, docs added to Targets.md, revert
custom NVM_CACHE_SIZE
2020-05-20 06:53:00 -07:00
Daniele Lacamera 5d932fe857 Removed custom assembly code for psoc6: using boot_arm startup (in C) 2020-05-20 06:53:00 -07:00
Daniele Lacamera c3e19daa5d PSOC6: fixed clock setting (added flash wait states), minor include
paths fixes, removed test code
2020-05-20 06:53:00 -07:00
Daniele Lacamera 6dcbc3572d Psoc6: fixes for correct device bring-up 2020-05-20 06:53:00 -07:00
Daniele Lacamera 3db37a6b5c Updated NVM_CACHE_SIZE to match different configurations.
Progress on psoc6 HAL, fixed memory mapping and test app
2020-05-20 06:53:00 -07:00
Daniele Lacamera 49845bb72d Fixed compile flags for psoc6 2020-05-20 06:53:00 -07:00
Daniele Lacamera 75638394b1 Initial draft for psoc6 support 2020-05-20 06:53:00 -07:00
Daniele Lacamera 45055a43c8 Fix use-before-set variable in spi drv for nrf52 2020-05-19 18:16:17 +02:00
Daniele Lacamera f7da6c5f6e Added SPI support for nrf52 2020-05-19 18:16:17 +02:00
David Garske c6f6ce83c2
Merge pull request #40 from wolfSSL/iar
Example workspace/project to build under IAR
2020-04-07 10:53:35 -07:00
Daniele Lacamera 7ffcdca098 External, emulated non-volatile memory over UART 2020-04-03 14:27:42 +02:00
David Garske 85b7c4d52f Xilinx Zynq fixes and cleanups. Updated Xilinx SDK instructions for EL-1 / Hypervisor support. Updated the `zynq.ld` script to use 0x4000000 and only DDR0 region. Updated the example BIF files to use EL-1. Fix for cast warnings to `ext_flash_*` API's. 2020-03-30 07:52:07 -07:00
Daniele Lacamera 486e633069 Example workspace/project to build under IAR 2020-03-27 14:34:20 +01:00
David Garske 1d2a3abd9a Fix for Zynqmp tap delay and non EL-3 use of cpufreq. 2020-03-25 08:19:42 -07:00
David Garske 1bdfb3200a Added `NO_QNX` option to force not using QNX driver (when using QNX compiler). 2020-03-10 13:19:09 -07:00
David Garske 897e63b68c Added wolfBoot QNX QSPI driver support (builds, not tested). 2020-03-10 11:37:27 -07:00
David Garske 6b6d5611a7 Added support for initializting the GICv2 interrupt controller. This is required for QNX kernel boot. 2020-03-10 11:30:22 -07:00
David Garske 2867025ae5 Fixes for handling U-Boot image and DTS. Moved the Xilinx SDK project target settings into target.h. 2020-03-05 15:39:22 -08:00
David Garske c0b534edd7 wolfBoot Aarch64 support (Xilinx Zynq and Raspberry Pi):
* Added Aarch64 boot/startup support
* Added configuration templates for Raspberry Pi 3 and Xilinx ZynqMP UltraScale+
* Added Xilinx Zynq QSPI bare-metal Driver
* Added `NO_XIP` option for full `ext_flash_*` API on all partitions
* Added Xilinx SDK Project Template
* Added support for DTS image partitions
* Added wolfBoot signing tool in Native C (`tools/keytools/sign.c`).
* Added libwolfboot functions `int wolfBoot_fallback_is_possible(void);` and `int wolfBoot_dualboot_candidate(void);`
* Performance improvement to only hash application firmware image once
2020-03-04 12:04:46 -08:00
Daniele Lacamera 6ff8473c0e Option NVM_WRITEONCE not needed on LPC. (tested multi-write OK) 2020-03-04 16:21:50 +01:00
Daniele Lacamera a1a13c2318 LPC54xxx: fixed flash write 2020-03-04 16:17:49 +01:00
Daniele Lacamera 10186cac09 Added support for LPC (tested on LPC54606) 2020-03-04 08:53:13 +01:00
Chris Conlon 1f57ad9f39 update copyright to 2020 2020-01-03 15:36:00 -08:00
Daniele Lacamera 977b6e8975 Fixed CS pin pullup release 2019-12-23 13:34:24 +01:00
David Garske 00fff87d74 Revert SPIx_CR2 change. 2019-12-20 10:40:56 -08:00
David Garske a342b7824f Minor cleanups. 2019-12-20 10:22:13 -08:00
Daniele Lacamera 2f05d44c95 Fixed SPI defines, fix TPM SHA alignment in header 2019-12-20 19:08:31 +01:00
David Garske 5779baa8a9 Various items for STM32WB55 2019-12-20 19:08:31 +01:00
David Garske 485253f305 Fix build error with macro typo. 2019-12-20 19:08:31 +01:00
David Garske 79277d60ce Progress on expanding STM32WB testing support. Including external SPI/TPM and RSA. Fixes to prevent STM32WB macro collisions with PKA. Makefile improvements for combinations of PKA, SIGN and WOLFTPM. 2019-12-20 19:08:31 +01:00
Daniele Lacamera 25455744b6 Make Stm32 SPI driver more generic to reuse on other STM32 platforms 2019-12-20 19:08:31 +01:00
David Garske 515c4a015a Fix for external SPI CS for STM32F4. 2019-12-17 13:07:13 -08:00
David Garske 041ca75793 Added support for TPM2.0 module via wolfTPM. Tested with STM32F4. Build using `make SIGN=ECC256 WOLFTPM=1`. 2019-12-17 10:59:11 -08:00
David Garske fae6a974c8 Adds RSA support to wolfBoot using "SIGN=RSA2048". Includes RSA signing script tool in Python and instructions. 2019-12-17 09:44:02 -08:00
David Garske d146193615 Support for STM32H7. 2019-12-16 14:44:45 -08:00
Daniele Lacamera f1d983cbb6 Added missing file for stm32wb55 hal configuration 2019-11-13 09:17:32 +01:00
Daniele Lacamera 0b822cefbb Fixes to kinetis K82F 2019-11-11 14:27:16 -08:00
Daniele Lacamera c78f0d7026 Added support for STM32 PKA 2019-11-11 15:06:04 +01:00
Daniele Lacamera ca9ffbab7c Configuration (via .config), single entry point for options 2019-10-10 20:39:25 +02:00
Daniele Lacamera 3bd71fa96e Fixed erase page size and PG bit 2019-07-30 14:16:03 -07:00
Daniele Lacamera f9f10cb099 Added support for STM32WB 2019-07-30 14:16:03 -07:00
Daniele Lacamera 34def41dd1 Added support for STM32F7 + DUALBANK_SWAP hw-assisted support 2019-07-17 11:37:43 -07:00
David Garske da467e0ecf Updated wolfSSL sub-module. Enlarged RAM region to 36KB, which is good for any G07x or higher (note G03x or G04x only have 8KB RAM). 2019-07-17 11:35:15 -07:00
David Garske f2be454e08 Fixes for building STM32G0. 2019-07-16 12:04:34 -07:00
Daniele Lacamera 254882c5f2 Added support for STM32G0 (tested on STM32G070-Nucleo) 2019-07-16 08:46:14 -07:00
Daniele Lacamera e016722e66 Added support for STM32L0X3
(firmware update successfully tested on STM32L073)
2019-07-15 08:55:15 -07:00
Daniele Lacamera 88d0e4dcfb HiFive1 eSPI driver: Fixed return-to-hwmode, refactoring hal_flash_write
for short write operations
2019-07-08 19:10:16 +02:00
Daniele Lacamera 93fdc4a848 [hifive1] Flash Frequency set back to 50MHz 2019-06-27 13:11:32 +02:00
Daniele Lacamera 9cc558b7a2 [hifive1] fixed hal_flash_write 2019-06-27 12:40:40 +02:00
Daniele Lacamera e08d282879 [Hifive1 SPI] Changed order of SPI operations/direction changes 2019-06-26 19:24:39 +02:00
David Garske 68b5f67f23 Fix for `hal_flash_write` to use incremented data pointer for page. 2019-06-24 11:11:07 -07:00
David Garske 0a0e8f6a22 Fix for compile warning with operators and parens. 2019-06-24 10:54:47 -07:00
Daniele Lacamera 5c8bad047c Moved hifive1_write_page to separate module 2019-06-20 15:46:47 +02:00
Daniele Lacamera 637ffa9801 hifive hal: switch back to "hw mode" after erase/write operations 2019-06-19 15:56:39 +02:00
David Garske 92ed57832f Fixes for long jump. Targets.md fix for RAM_CODE typo. 2019-06-12 17:25:38 +02:00
David Garske 0f00f8e700 SiFive HiFive (FE310) RISC-V support
* HiFive1 HAL Support for PLL Clock, UART, RTC and Flash QSPI Erase/Write.
* HiFive1 update demo application for accepting firmware updates over UART.
* Added test-update-server application for pushing firmware image over UART.
* Fixes for building with `make SIGN=ECC256`.
* Improvements to wolfCrypt `user_settings.h`.
* General library cleanup (license headers and formatting)
* Updated the wolfSSL submodule to latest.
* Documentation updates including new `Targets.md` section for hardare instructions.
2019-06-07 13:08:15 -07:00
Daniele Lacamera 2ef5e47d61 Added test for bootloader update 2019-04-29 20:32:04 +02:00
Daniele Lacamera fc547e4a25 wolfBoot can update itself when compiled with RAM_CODE=1
- Added wolfBoot version
- Added extra 16bit header tag to identify the image type and authentication
- Implemented optional in-ram self-update of the bootloader, with version control
and authentication mechanism (not fail-safe)
2019-04-29 20:32:04 +02:00
Daniele Lacamera 937e9d46fb Introducing RAMCODE tag to transfer functions to RAM
- Moved functions in the flash write path to RAM, so their execution
does not depend on flash access

- RAMCODE can be enabled via "make RAM_CODE=1"
2019-04-29 20:32:04 +02:00
Daniele Lacamera b918014203 Multi-platform test application, added K82 to Kinetis port 2019-04-04 16:31:45 +02:00
Daniele Lacamera b5fd49a82a Initial experimental support for RISC-V
- New Makefile to support multiple architectures
- Separate architecture-specific start-up files
- Stub for a hifive1 HAL port
2019-04-01 14:01:14 +02:00
Daniele Lacamera da8175b856 stm32f4 SPI-flash: Remove unnecessary delay after CS-off 2019-03-18 12:10:40 +01:00
Daniele Lacamera fcf1985978 STM32F4 Hal: support internal flash up to 1MB 2019-03-18 12:10:03 +01:00
Daniele Lacamera 630a10eafa Automated tests for EXT_FLASH/SPI_FLASH 2019-03-15 11:16:34 +01:00
Daniele Lacamera 8eb8374795 Added NVM_FLASH_WRITEONCE compile option. Optimized write in kinetis HAL. 2019-03-10 12:40:21 +01:00
Daniele Lacamera 472cdd07b3 Kinetis hal: removed clock settings from libwolfboot 2019-03-10 09:49:14 +01:00
Daniele Lacamera 8a8875fc05 Added support for Kinetis SDK 2019-03-05 20:35:04 +01:00
Daniele Lacamera 6b5b1ed854 Added support for Texas Instrument cc26x2 2019-02-25 09:20:33 +01:00
Daniele Lacamera 503b008cf5 New feature: allow swapping from external memory (e.g. SPI flash) 2019-02-15 13:41:06 +01:00
Daniele Lacamera aa2abc8da2 Fixed Sam-R21 hal_flash_write() 2019-01-27 14:44:33 +01:00
Daniele Lacamera f4f65ae31d Added support for ATMEL SAM-R21 2019-01-08 09:08:46 +01:00
Daniele Lacamera ab35c7f8fe Fixed image swap, tested fail-recovery from interrupted update 2018-11-28 21:37:39 +01:00
Daniele Lacamera 1f196bd64c Major bug fixes in new update code 2018-11-27 07:37:40 +01:00
Daniele Lacamera 24f8c091ac Fixed nrf52 hal for unaligned byte write operations 2018-11-22 18:52:13 +01:00
Daniele Lacamera c5f644f97e Fixed nrf52 flash access 2018-10-25 08:19:54 +02:00
Daniele Lacamera 7f02df51c9 Added SWAP=0 option, fixed some warnings 2018-10-21 10:04:50 +02:00
Daniele Lacamera 34a8ae443d Added NO_VTOR to disable interrupt table relocation 2018-10-20 10:46:07 +02:00
Daniele Lacamera ec66c47375 First version of the bootloader 2018-10-11 12:23:58 +02:00