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
David Garske
f283929161
Improvements to gap fill. The default gap filling byte is `0xFF`. If using `FLAGS_INVERT=1` uses `0x00`. Can be overridden at build-time using `FILL_BYTE`. Fixes ZD 15356.
2022-12-19 11:38:00 +01:00
Lealem Amedie
18bfcecd6b
wolfBoot cmake support
2022-12-07 13:00:10 -08: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
Daniele Lacamera
ba88748b38
Add -fomit-frame-pointer to CFLAGS
2022-10-13 14:22:55 +02:00
Daniele Lacamera
a6fdec3901
self-encrypt prototype; tested on stm32l0
2022-09-21 18:49:52 +02:00
Daniele Lacamera
16dc1628af
Fixed target 'simulator'
2022-07-21 20:23:13 +02:00
Daniele Lacamera
93dd53ac0f
Fixed support for raspberry-pi
2022-07-21 20:18:34 +02:00
Daniele Lacamera
1542a15c90
Keystore: array of public keys generated by keygen
2022-07-19 15:32:28 +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
Daniele Lacamera
acfdd1f676
Added support for RSA3072
2022-05-31 12:13:34 +02:00
Daniele Lacamera
cb0a903999
Reverted UPDATE_OBJS:= in Makefile (breaks lib build)
2022-05-20 08:06:07 +02:00
David Garske
f63c323677
Cleanups and restore a few changes.
2022-05-20 08:06:07 +02:00
Daniele Lacamera
48466be46c
Minor fixes
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
Daniele Lacamera
d06178c3a8
Added new signature algo: ECC384
2022-04-01 12:21:42 -07:00
Daniele Lacamera
ce8d01864c
Added basic test cases with renode
2022-02-11 10:48:47 +01:00
David Garske
5463105eab
Adds STM32U5 support. Thank you ST.
2022-01-24 00:07:03 -08:00
Daniele Lacamera
7b7ddb8b7b
Fixes to build PSOC6
2022-01-10 09:19:22 +01:00
Daniele Lacamera
2e7b63eae5
Adding support for ED448 verification
2021-12-13 12:05:37 +01: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
Daniele Lacamera
012bba3ce3
Fixed after review comments
2021-08-20 10:10:51 +02:00
David Garske
9c1daee6b5
Change `make keytools` to force rebuild the tools.
2021-08-19 09:29:11 -07:00
Daniele Lacamera
301bc3e0b6
Test through 'test-delta' target
...
- changed syntax for test-expect-version to accept a UART_DEV
2021-08-16 12:00:39 +02:00
Daniele Lacamera
38e9cd17f6
Fixed diff/patch.
...
- Added test
- Removed debug printfs
2021-08-16 11:59:46 +02:00
Daniele Lacamera
68bd170b6c
Added delta tool
2021-08-16 11:59:46 +02:00
Daniele Lacamera
572414fba6
Use library version as default WOLFBOOT_VERSION
2021-07-19 17:02:40 +02:00
Daniele Lacamera
6aa5ee96ca
Updated submodules, added -Werror
2021-07-15 17:38:12 +02:00
Elms
b4f68d0c6b
TMS570LC43xx: fix default compiler programs and options
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
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
c1e000faa0
make: clean up and check_config update
...
Also add emacs backup files to ignore
2021-06-08 18:14:41 +02:00
Elms
7766613532
test: self-update cleanup
...
remove clean and distclean from test 34 and 44
remove wolfboot-align
2021-05-14 09:38:31 +02:00
Elms
4c63cfd974
cleanup makefiles
2021-05-14 09:38:31 +02:00
Elms
4d20c34332
distclean cleans tools subdirs
2021-05-14 09:38:31 +02:00
Elms
36c50a7e4a
tools: Add bin-assemble for pasting together binary blobs
2021-05-14 09:38:31 +02:00
Elms
dd8b35207f
make: allow extra config `CFLAGS`
2021-05-14 09:38:31 +02:00
Elms
9d724b3ced
make: Permit different bootloader/image order
...
use objdump more when possible
2021-05-14 09:38:31 +02:00
Elms
08e9796822
make: Add PPC arch and refactor some of Makefile
2021-05-14 09:38:31 +02:00
Daniele Lacamera
6ad218de28
Fix distclean target
2021-02-01 18:31:06 +01:00
David Garske
ecfc4b5008
Support for overriding the wolfBoot root (`WOLFBOOT_ROOT`) to allow proper detection of the signing/keygen tools.
2021-02-01 12:44:17 +01:00
Dimitar Tomov
f57008ff7f
Enable WOLFTPM_USER_SETTINGS to use custom(non-POSIX) options
...
Signed-off-by: Dimitar Tomov <dimi@wolfssl.com>
2021-01-26 08:13:26 +01:00
Daniele Lacamera
cbe002fad7
Merge branch 'update-flags-in-boot-partition' into stm32l5
2020-09-28 17:10:28 +02:00
Daniele Lacamera
75898806eb
Added option FLAGS_HOME to store UPDATE flags in the BOOT partition
2020-09-11 11:25:51 +02:00
Daniele Lacamera
61890b0bdb
Fixed stm32l5 artifacts
2020-09-09 14:26:30 -07:00
Daniele Lacamera
f8d1f1d28a
Don't create contiguous factory.bin on STM32L5
2020-09-09 14:26:30 -07:00
David Garske
c473a53ebe
Improvements to the key tools documentation.
2020-06-24 09:04:24 -07:00
David Garske
0c5b66c39e
Fixes for TPM with RSA.
...
* Requires PR https://github.com/wolfSSL/wolfTPM/pull/101
* Cleanup of software vs. TPM code `wolfBoot_verify_signature` functions (ECC and RSA)
* Adjusted the stack size checks with TPM.
* Added STM32F4 programming/debugging instructions.
* In V=1 mode show the keygen command.
2020-06-23 11:57:09 -07:00
Daniele Lacamera
2f5f2970b2
Removed unused makefile targets
2020-06-18 11:19:15 +02:00
Daniele Lacamera
861259316f
include test-enc.mk in main Makefile
2020-06-17 10:39:40 +02:00
Daniele Lacamera
845eef7db0
Encryption: address alignment fixes, stm32wb fixes
2020-06-16 17:52:50 +02:00
Daniele Lacamera
53bf4d04db
Encrypt: API design
2020-06-16 17:50:55 +02:00
Daniele Lacamera
1d24d326b1
Experimental: chacha20 encryption for external partitions
2020-06-16 17:50:55 +02:00
Daniele Lacamera
c4c786d254
Merge pull request #49 from dgarske/winfixes
...
Fixes for building C signing tools on Windows (Cygwin/MinGW).
2020-06-01 21:54:14 +02:00
David Garske
93d62112e9
Merge pull request #52 from danielinux/mpu
...
Added support for memory protection on ARM using MPU
2020-05-26 06:42:01 -07: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
7ade0ee2c0
Added support for memory protection on ARM using MPU
2020-05-25 15:14:41 +02:00
David Garske
5a8032d619
Add detection for `tools/keytools/sign.exe` and `tools/keytools/keygen.exe`. Show more commands with `make V=1`.
2020-05-23 11:08:30 -07:00
Daniele Lacamera
ed94f79fd9
Using WOLFBOOT_ROOT instead of relative paths in configs
2020-05-22 19:14:38 +02: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
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
75638394b1
Initial draft for psoc6 support
2020-05-20 06:53:00 -07: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
David Garske
3f1a18f8a9
Fixed unused warning fixes and missing errno.h in keygen.c. Update tools/keytools Makefile to build keygen. Cleanup to support using C version of "sign" and "keygen" after "make keytools".
2020-04-07 18:27:05 +02:00
Daniele Lacamera
48405e0dcd
Make clean: remove temporary file
2020-04-07 10:56:08 +02:00
Daniele Lacamera
7ffcdca098
External, emulated non-volatile memory over UART
2020-04-03 14:27:42 +02:00
Daniele Lacamera
988258099e
Fixed regression in ed25519 mode
2020-03-19 13:28:31 +01: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
c32c5da6a1
Renamed KINETIS to MCUXPRESSO, added initial support for LPC family
2020-03-04 08:01:05 +01:00
Daniele Lacamera
d33c5acac8
Added support for SHA3
2020-01-07 20:35:31 +01:00
Daniele Lacamera
c847529698
Added RSA-4096 bit support
2020-01-07 11:32:09 +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
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
ac9e2b8647
Updated SP build options and stack usage warning.
2019-12-17 09:44:02 -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
Daniele Lacamera
f359134de8
Added -ffunction-sections -fdata-sections to CFLAGS to group unused
...
symbols
2019-11-19 18:10:41 +01:00
Daniele Lacamera
1c6ea8d732
Minor fix to Makefile to ensure config changes are effective
2019-10-16 16:25:16 +02:00
Daniele Lacamera
ca9ffbab7c
Configuration (via .config), single entry point for options
2019-10-10 20:39:25 +02:00
Daniele Lacamera
93b0aceaea
Removed dead code (old crypto front-end)
2019-07-30 17:49:47 +02:00
Daniele Lacamera
34def41dd1
Added support for STM32F7 + DUALBANK_SWAP hw-assisted support
2019-07-17 11:37:43 -07:00
Daniele Lacamera
e016722e66
Added support for STM32L0X3
...
(firmware update successfully tested on STM32L073)
2019-07-15 08:55:15 -07: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
0c14005e14
Fixed retrieving partition offset during build
...
fix for #12
2019-05-29 15:43:22 +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
905e6a049a
Should fix 'make clean' on MacOS
2019-04-24 20:14:52 +02:00
Daniele Lacamera
94af1b74cb
Fixed MacOS compatibility + python3 requirement
2019-04-24 20:14:06 +02:00
Daniele Lacamera
75fc9cc59a
C Host key tools rewritten in python (fix for #4 )
2019-04-17 07:15:59 +02:00
Daniele Lacamera
97a88ff76c
Added sifive-hifive test application with external bsp
2019-04-04 16:33:24 +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
2cb57e9326
wolfSSL submodule: to commit b528997d30
2019-03-22 08:38:21 +01:00
Daniele Lacamera
6324e8fe37
[CI] SPI tests fixed
2019-03-18 12:21:44 +01:00
Daniele Lacamera
630a10eafa
Automated tests for EXT_FLASH/SPI_FLASH
2019-03-15 11:16:34 +01:00
Daniele Lacamera
ccf794cf4c
Added test makefile targets for test automation
2019-03-13 14:56:33 +01:00
Daniele Lacamera
d3d938d087
Kinetis SDK path: fixed command line variable
2019-03-10 14:09:38 +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
27a306b7f5
Prevent downgrade attacks by default, unless compiled with
...
ALLOW_DOWNGRADE=1
2019-02-15 15:16:07 +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
07db864ab1
EXT flash support: image header mapping
2019-02-13 13:08:32 +01:00
Daniele Lacamera
3a455383a1
STM32F4 Test application: modified to turn a led on early at boot to measure
...
boot time.
2019-01-22 11:58:42 +01:00
Daniele Lacamera
e14efd641a
ECC verification: added support for ASM optimization, enabled by default
...
(turn off with NO_ASM=1)
2019-01-21 09:51:12 +01:00
Daniele Lacamera
a5b15bc40f
Fixed static buffer allocation for ECC signature verification
2019-01-21 06:36:03 +01:00
Daniele Lacamera
41c60f4bd2
Ecc256 signature verification with sp-math support, work in progress
2019-01-21 05:28:59 +01:00
Daniele Lacamera
9410a6fe7b
Fixed Makefile to add Cortex-M0 support
2019-01-08 09:08:23 +01:00
Daniele Lacamera
24f8c091ac
Fixed nrf52 hal for unaligned byte write operations
2018-11-22 18:52:13 +01:00
Daniele Lacamera
61bbfef35c
Separated library functions for in-app use
2018-11-22 16:22:30 +01:00
Daniele Lacamera
9403c711ad
Update mechanism implemented, ed25519 signing tool changed
2018-11-22 15:47:41 +01:00
Daniele Lacamera
6b3dfe2e69
Removed dependency on bootutil. Starting from a new clean-room update design
2018-11-21 07:00:35 +01:00
Daniele Lacamera
62fcc55285
Simplified code structure, got rid of some configuration defines
2018-10-23 12:14:50 +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
efa8d63200
Using 0x20000 as start of primary partition in the example
2018-10-15 07:39:52 +02:00
Daniele Lacamera
ec66c47375
First version of the bootloader
2018-10-11 12:23:58 +02:00