Commit Graph

366 Commits (master)

Author SHA1 Message Date
Daniele Lacamera dbf913deb0 x86: ATA: support ATA commands
support ATA commands to read, write and identify a SATA disk.

Signed-off-by: Marco Oliverio <marco@wolfssl.com>
2023-07-24 18:12:14 +00:00
Daniele Lacamera 8ed6dd3281 x86: AHCI: support AHCI
supports querying the ports, detecting the disk and configuring FIS areas.

Signed-off-by: Marco Oliverio <marco@wolfssl.com>
2023-07-24 18:12:14 +00:00
Marco Oliverio 8ce80d6a65 PCI: add initial support
It support basic enumeration (only bus 0), and reading/writing to config space
register.
2023-07-24 18:12:13 +00:00
Marco Oliverio 1e754ca8f5 x86: common I/O, MMIO and misc architecture specific functions 2023-07-24 18:12:13 +00:00
Marco Oliverio 9aee0b4cdd TPM: support WOLFTPM_MMIO 2023-07-24 18:12:13 +00:00
Daniele Lacamera efa28e3787 x86_64: support SP_MATH on x86_64 architecture
Signed-off-by: Marco Oliverio <marco@wolfssl.com>
2023-07-24 18:12:13 +00:00
Marco Oliverio 0fd34f23c7 ELF: add mmu callback to map segments before loading 2023-07-24 18:12:13 +00:00
Daniele Lacamera 2600df9a21 Updated bootloader version 2023-07-06 14:17:52 +02:00
David Garske 1d6c421b41 Disable dynamic stack for SP math and SP math all. 2023-07-05 18:34:42 +02:00
Daniele Lacamera 17b948bd25 Added WOLFSSL_SP_NO_DYN_STACK to user_settings.h 2023-07-05 18:34:42 +02:00
Daniele Lacamera 180d819d4a Added WOLFSSL_SP_NO_DYN_STACK 2023-07-05 18:34:42 +02:00
David Garske db15f9b0f1 Further NXP P1021 fixes and improvements:
* Added ELF32 and ELF64 loader support (config `ELF=1` or build option `WOLFBOOT_ELF`).
* Add ELF support to `update_ram.c` loader.
* Add support for loading entire flash image to RAM when `EXT_FLASH=1` and `NO_XIP=1` (or `WOLFBOOT_USE_RAMBOOT`).
* Added QUICC Engine support to load microcode and enable.
* Add multiple core support for NXP P1021.
* Fixes to resolve first stage boot ROM relocation.
  - Implemented temporary workaround to resolve stack traps.
* Added PPC GOT relocation support.
* Fix for the PPC `isr_empty` handler address.
* Fix to allow stack to use DDR by having assembly setup DDR TLB. After relocating wolfBoot use stack on DDR.
* Cleanup wolfBoot output.
  - Only remove extra .bin/.elf created unless `make distclean` is used.
  - Don't output the key grep test (only check result).
  - Adjust build order (first stage, wolfboot, test app, key, sign test app and factory).
  - Fix to make sure linker script is rebuilt before objects.

Sample NXP P1021 Output:

```
Relocating BOOT ROM to DDR
Loading wolfBoot to DDR
Jumping to full wolfBoot
wolfBoot HAL Init
Flash Init: Ret 0, ID 0x76207620
QE: Length 63732, Count 1
QE: uploading 'Microcode for P1021 r1.0' version 0.0.1
QE: Traps 0
MP: Starting core 2 (spin table 0xFFFFF240)
Versions: Boot 1, Update 0
Trying Boot partition at 0x200000
Loading header 512 bytes to 0x1DFFFE00
Loading image 3170724 bytes to 0x1E000000
Image size 3170724
Firmware Valid
Loading elf at 0x1E000000
Found valid elf32 (big endian)
Booting at 0x6000
```
2023-07-05 17:03:57 +02:00
David Garske a56e2252c1 Revert the TPM based key store (root of trust). This feature is not ready for next release. 2023-07-04 08:36:41 +02:00
Hideki Miyazaki 5ed7390c40 reorganize folders under IDE/Renesas 2023-06-10 08:53:32 +02:00
Takashi Kojo 6393c48860 print partition info 2023-06-10 08:53:32 +02:00
Takashi Kojo def2a530e4 Simple boot 2023-06-10 08:53:32 +02:00
Hideki Miyazaki 170bb9a585 Support Renesas RA6M4 with SCE use 2023-05-17 14:15:18 +02:00
billphipps 106b78086a
Merge pull request #302 from dgarske/nxp_tpm
Support for NXP P1021 eSPI and TPM (and fixes for eLBC NAND)
2023-05-10 20:17:27 -04:00
David Garske 28ee143a1b Update the new `spi_xfer` to include a "continue" flag to allow leaving the CS asserted. 2023-05-10 15:26:57 -07:00
David Garske 0b7603f7bf
Merge pull request #303 from jpbland1/preseal
add script for preseal a public key to tpm
2023-05-05 15:02:55 -07:00
John Bland bf3ebee8bb use correct digest when getting unsealing the pubkey
add deinit call when wolfboot exits so the TPM doesn't have a hanging session
2023-05-05 16:27:22 -04:00
David Garske fb20f2d41f Fix the eLBC NAND flash driver issues with page/col selection. Allow override of the `WOLFBOOT_SHA_BLOCK_SIZE`.
```
wolfBoot HAL Init
Flash Init: Ret 0, ID 0x76207620
Part: Active 0, Address 0
Boot partition: 200000
Image size 3964
Firmware Valid
Loading 3964 bytes to RAM at 1E000000
Booting at 1E000000
```
2023-05-05 12:18:16 -07:00
David Garske 0f110e4cd9 Progress on eSPI support for NXP P1021 TPM. 2023-05-04 15:23:45 -07:00
David Garske ef35f473c9
Merge pull request #296 from jpbland1/tpm-root-trust
wolfTPM pubkey storage with policy based access restriction
2023-05-04 15:09:06 -07:00
John Bland eb30566bba add encryption key unsealing from the tpm
make the config/examples/stm32f4-tpm-keystore.config config use ecc256
2023-04-24 13:23:09 -04:00
David Garske 69ca95eb94 Adds `factory_wstage1.bin` option to include first stage loader. Fix test-app verbose issue. 2023-04-21 16:41:00 +02:00
David Garske 553ec760fd NXP QorIQ refactor for shared PPC (e500 / e6500) registers
* Fixes for e500 L1/L2 cache.
* Fixes for eLBC and DDR3 drivers on P1021.
* Fixes for LAW and TLB for P1021.
* Fix for the e500v2 core peripheral issues with data barrier / coherency safety.
* Support for SP math all (`SPMATHALL=1`).
* Support for stage 1 loader (`make stage1`).
2023-04-21 16:41:00 +02:00
Daniele Lacamera 65635b3940 Updated version & README.md 2023-04-13 17:34:26 +02:00
John Bland 3fbc99d36e wolfTPM pubkey storage with policy based access restriction
this update uses the tpm to retreive the public key used to validate the image that will boot and restricts access to that key by tpm policy. when the image is updated it's signature is used to extend the PCR and when the image is loaded it's signature must match what was sealed in order to get the public key from the tpm. enabling this option is done by setting WOLFBOOT_TPM_KEYSTORE in .config
2023-04-11 11:46:21 -04:00
David Garske 6f12975bc5
Merge pull request #289 from danielinux/gh-action-rsa4096
Parallelize renode tests execution, remove unfeasible test, add compile-time check for large stack usage
2023-03-21 10:01:17 -07:00
Daniele Lacamera 43fa7b17f1 Added WOLFBOOT_HUGE_STACK option
The option can be enabled to use RSA4096 with fast math.
2023-03-21 17:06:22 +01:00
Daniele Lacamera 0b06efd347 Added unit test for encrypted external flash 2023-03-14 08:57:14 +01:00
Daniele Lacamera 2f2a6d416d Support encrypted images in MMU targets 2023-03-09 16:31:29 +01:00
David Garske cb1eaff8e8 Support for SP math with AARCH64 when hardware supports it. 2023-03-09 07:05:24 +01:00
David Garske 8dd0ee347f Support for the STM32 OCTOSPI peripheral. 2023-02-02 12:11:23 -08:00
Daniele Lacamera 3d517cfe8c NVM_FLASH_WRITEONCE refactoring
- Using two sectors to keep partition/sector flags
- Keep two redundant set of flags, update one at a time
- Erase is done when the sector is old
- Flags update is faster because Erase is done in advance
- Accessing trailer information (including encryption keys) is done by
  selecting the newest information

Tested via renode, using nrf52 with NVM_FLASH_WRITEONCE flag on.
2023-01-26 09:22:48 +01:00
Daniele Lacamera f250a5b5d4 Update wolfBoot version 2022-12-30 10:57:05 +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 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 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 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 da6d364f1e Fixes for encrypt/decrypt with unaligned address. Fix issue with byte count result on Mac. Cleanups for uart-flash-server. 2022-12-16 17:50:02 +01:00
Lealem Amedie 18bfcecd6b wolfBoot cmake support 2022-12-07 13:00:10 -08:00
David Garske 6d45564112 Test size increases. Improve user_settings.h ECC options. 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 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
Daniele Lacamera 5114e308ae Updated wolfSSL and wolfTPM submodules 2022-10-14 12:48:47 +02:00
Daniele Lacamera a6fdec3901 self-encrypt prototype; tested on stm32l0 2022-09-21 18:49:52 +02:00
Daniele Lacamera f6eeb8dd5d Preparing release v1.12 2022-07-26 09:57:32 +02:00
David Garske 3c2c26bf3a Fixes for IAR. Switch to new `src/keystore.c` for keys. Fixes for building keytools in Visual Studio. 2022-07-26 09:34:53 +02:00
Daniele Lacamera 5252ac2f68 Added default sector size to raspi3.config
(mandatory to compile sign.c)
2022-07-21 21:28:17 +02:00
Daniele Lacamera 93dd53ac0f Fixed support for raspberry-pi 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 9605dd283f Fixes for test cases using keystore 2022-07-19 15:33:29 +02:00
Daniele Lacamera 513163a77b Added "ARMORED" check for part id flags mask 2022-07-19 15:32:28 +02:00
Daniele Lacamera 1e11f3081b keygen.c : exporting keystore also in binary format 2022-07-19 15:32:28 +02:00
Daniele Lacamera 1542a15c90 Keystore: array of public keys generated by keygen 2022-07-19 15:32:28 +02:00
Daniele Lacamera acfdd1f676 Added support for RSA3072 2022-05-31 12:13:34 +02:00
Daniele Lacamera 063c21430c Added partition ID. Extended sign manual 2022-05-24 13:31:50 +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 acd96323a2 Prepare release 1.11 2022-05-05 07:28:21 +02:00
Daniele Lacamera f04889ee29 Added SHA2-384 support for integrity checks 2022-04-06 09:41:37 +02:00
Daniele Lacamera d06178c3a8 Added new signature algo: ECC384 2022-04-01 12:21:42 -07:00
Daniele Lacamera a017e482b9 Removed dead code after reviewer's comments 2022-03-23 09:19:33 +01:00
Daniele Lacamera 7b7282e74d Added comment as suggested by reviewer. 2022-03-17 12:10:57 +01:00
Daniele Lacamera 986855ce0a Review's feedback 2022-03-17 11:53:49 +01:00
Daniele Lacamera 4527347173 Error if attempting to build ARMORED on not-arm-gcc 2022-03-17 10:48:49 +01:00
Daniele Lacamera 73fe84c55c Fixed version check armor, add no-downgrade tests 2022-03-16 11:19:05 +01:00
Daniele Lacamera 0684245187 Added canary vars around signature_ok flag, improved checks 2022-03-15 12:36:24 +01:00
Daniele Lacamera 0665eeff67 Reverted 'return -1' fix; removed _update() optim. 2022-03-14 18:14:50 +01:00
Daniele Lacamera a72715caa3 Improved "return -1" in version check 2022-03-14 17:58:43 +01:00
Daniele Lacamera 028d184b17 Added armored image version, improve armor 2022-03-14 17:45:47 +01:00
Daniele Lacamera 32ecb5c3b6 Added pre-boot sanity check 2022-03-14 16:04:11 +01:00
Daniele Lacamera 75fb9f70e3 Fixed ECC with no armor 2022-03-14 15:22:04 +01:00
Daniele Lacamera 9ac4a6d365 Armored signature verification back-end 2022-03-14 15:12:36 +01:00
Daniele Lacamera 5a15fe1138 Added armored panic() function form arm cortex-m 2022-03-14 13:06:13 +01:00
Daniele Lacamera 61275ec9dd Update Chacha ENCRYPT_BLOCK_SIZE to match IV ctr 2022-02-07 16:35:25 +01:00
Marco Oliverio 0f9613837a libwolfboot: make crypto_*() functions public 2022-02-07 15:03:08 +01:00
Daniele Lacamera 43a5a38629 Fixes to AES-CTR encryption after testing 2022-01-31 16:46:09 +01:00
Daniele Lacamera 5551666e08 Draft: added AES encryption support 2022-01-28 20:26:59 +01:00
Daniele Lacamera b3ada3a265 Version up to 1.10.0000 2022-01-10 17:35:27 +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 f26dd61e23 Fixed delta updates from external devices (+ test) 2021-10-07 14:32:51 +02:00
Daniele Lacamera aaf780fae9 Added test for delta-update-ext 2021-10-07 14:32:51 +02:00
Daniele Lacamera 922c17f1cc Draft: integrate delta updates with external flash support 2021-10-07 14:32:48 +02: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
Daniele Lacamera aba428b243 Changed bitrate for uart_flash tests 2021-08-24 10:00:04 +02:00
Daniele Lacamera 012bba3ce3 Fixed after review comments 2021-08-20 10:10:51 +02:00
Daniele Lacamera 39ee01a948 Added roll-back feature via inverse patch 2021-08-17 15:44:34 +02:00
Daniele Lacamera 3b0c434a13 Added missing header delta.h 2021-08-16 12:00:39 +02:00
Daniele Lacamera b74a4f69e2 Changed delta mechanism + added key tool diff function 2021-08-16 11:59:45 +02:00
Daniele Lacamera 13541ec046 Delta updates, draft update mechanism with hdr replacement 2021-08-16 11:56:13 +02:00
Daniele Lacamera 7ff1887ad7 Initial delta code + HDR tag for manifest 2021-08-16 11:54:27 +02:00
Daniele Lacamera 572414fba6 Use library version as default WOLFBOOT_VERSION 2021-07-19 17:02:40 +02:00
David Garske 64661ef08c Add wolfBoot library version. 2021-07-19 07:53:08 -07:00
David Garske d38de3b432 Update copyright year 2021-07-19 07:50:02 -07:00
Daniele Lacamera 45570e6c21 Fixes for USE_FAST_MATH 2021-07-13 18:09:20 +02:00
Daniele Lacamera 4c4d7d69f8 Add support for WOLFBOOT_SMALL_STACK 2021-07-09 10:15:37 +02:00
Daniele Lacamera f2bab09777 Added support for SIGN=NONE 2021-06-28 13:52:00 +02:00
Elms 1a33885cfb handle big endianess with header 2021-05-14 09:38:31 +02:00
David Garske 7793433b3a Updated RSA to use inline operation and disable OAEP padding. This allows removal of the XMALLOC/XFREE SP code. Once PR https://github.com/wolfSSL/wolfssl/pull/3918 is merged we can update submodule. 2021-03-26 16:38:08 +01:00
David Garske c14e70a12c Changed RSA4096 to use SP math. Fix to disable dynamic stacks `WOLFSSL_SP_NO_DYN_STACK`. Added G0 details. Update submodules. 2021-03-26 16:38:08 +01:00
Daniele Lacamera 3516620f1a fix wolfTPM option 2021-01-26 09:07:03 +01:00
Dimitar Tomov bf74ba9cb4 Added ifndef to wolfTPM specific build settings for wolfCrypt
Signed-off-by: Dimitar Tomov <dimi@wolfssl.com>
2021-01-26 08:13:26 +01:00
Dimitar Tomov 2f3fc6600b Latest wolfTPM has Parameter Encryption that requires HMAC and AES support
* Add new src/tpm2_param_enc object for wolfTPM
* Enable wolfcrypt HMAC support required for TPM2.0 KDFa
* Enable wolfcrypt AES support required for AES CFB parameter encryption

Signed-off-by: Dimitar Tomov <dimi@wolfssl.com>
2021-01-26 08:13:26 +01:00
Daniele Lacamera 82da68028b Fix fallback using encryption by storing the key after swaping
partitions
2021-01-11 13:07:07 +01:00
Glenn Ergeerts 3682e66818 stm32l0: add support for external SPI flash 2020-11-19 13:30:14 +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
Daniele Lacamera 4e27d9197f Added compile-time option to invert FLAGS logic (FLAGS_INVERT=1) 2020-11-03 11:05:14 +01:00
Daniele Lacamera 72eb2c205b Relocate sector flags in FLAGS_HOME mode to a constant location 2020-10-16 10:29:19 +02:00
Daniele Lacamera 533fa9b4a2 Added RAMFUNCTION tag to SPI flash functions 2020-07-06 10:13:52 +02:00
Daniele Lacamera f3f27ae2cb Fixed ChaCha20 IV usage/setting. Test/docs updated. 2020-06-18 11:12:01 +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 aa3fb3fab0 Changed set|get_sector_flag argument to uint16_t
On some platforms with very small sector size this index could overflow
2020-05-29 08:19: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 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 f7da6c5f6e Added SPI support for nrf52 2020-05-19 18:16:17 +02:00
Daniele Lacamera aaa5f962e6 minor changes after code review 2020-04-07 16:39:37 +02:00
Daniele Lacamera 92e1f632c1 Removed magic numbers for bitrate 2020-04-03 20:24:13 +02:00
Daniele Lacamera f04aac6a9f Added missing include file 2020-04-03 20:19:45 +02:00
David Garske e7446c570f Fixes for Device Tree (DTS) handling. Updated documentation. 2020-03-06 15:33:41 -08: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 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
Chris Conlon 1f57ad9f39 update copyright to 2020 2020-01-03 15:36:00 -08: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 6ed1e5ca5f Fixes for external SPI build options. 2019-12-17 10:38:18 -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 0b822cefbb Fixes to kinetis K82F 2019-11-11 14:27:16 -08:00
Daniele Lacamera ca9ffbab7c Configuration (via .config), single entry point for options 2019-10-10 20:39:25 +02:00
Daniele Lacamera 1970fbdd2e Fix for header type on SPI flash 2019-09-19 08:44:55 +02:00
Daniele Lacamera 34def41dd1 Added support for STM32F7 + DUALBANK_SWAP hw-assisted support 2019-07-17 11:37:43 -07:00
David Garske 33e3607e21 Updates to documentation for RISC-V addresses. Added link to wolfBoot-examples repo. Revert target.h changes. 2019-06-10 17:58:31 +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 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 7f60f68474 Faster sector copy 2019-03-10 09:48:06 +01:00
Daniele Lacamera bfa3f50a60 Restored target.h for default test 2019-02-15 14:45:27 +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 41c60f4bd2 Ecc256 signature verification with sp-math support, work in progress 2019-01-21 05:28:59 +01:00
Daniele Lacamera 61bbfef35c Separated library functions for in-app use 2018-11-22 16:22:30 +01:00
Daniele Lacamera ce98d46cb3 Separate include file for application access 2018-11-22 16:13:50 +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 2819d6a184 Added 'flash_area_get_image_buildnum' to retrieve build # 2018-10-30 21:29:31 +01:00
Daniele Lacamera 32c4cb7abe Reverted target.h to default configuration 2018-10-26 12:19:28 +02:00
Daniele Lacamera 6f203a84c3 Fixed upgrade in OVERWRITE_ONLY mode 2018-10-26 12:15:25 +02: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 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