diff options
| author | maor1993 <[email protected]> | 2025-10-07 15:05:09 +0300 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-10-07 15:05:09 +0300 |
| commit | 04a36e9f62385fb4338908de66045f36fec664ea (patch) | |
| tree | 714fcc21114946e33b2be8eb6037bdc3dd9bb596 /embassy-boot | |
| parent | cd91fe3b30dbb3d5b3c9c7d9e7cb151d721fb8d5 (diff) | |
| parent | 07016a4ffbe0b0ea689b83a6ddf19ab1b6a9a79a (diff) | |
Merge branch 'embassy-rs:main' into main
Diffstat (limited to 'embassy-boot')
| -rw-r--r-- | embassy-boot/Cargo.toml | 2 | ||||
| -rw-r--r-- | embassy-boot/src/boot_loader.rs | 6 | ||||
| -rw-r--r-- | embassy-boot/src/firmware_updater/asynch.rs | 4 | ||||
| -rw-r--r-- | embassy-boot/src/firmware_updater/blocking.rs | 6 | ||||
| -rw-r--r-- | embassy-boot/src/lib.rs | 15 | ||||
| -rw-r--r-- | embassy-boot/src/test_flash/blocking.rs | 2 |
6 files changed, 19 insertions, 16 deletions
diff --git a/embassy-boot/Cargo.toml b/embassy-boot/Cargo.toml index a18438c81..8c5c1f633 100644 --- a/embassy-boot/Cargo.toml +++ b/embassy-boot/Cargo.toml | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | [package] | 1 | [package] |
| 2 | edition = "2021" | 2 | edition = "2024" |
| 3 | name = "embassy-boot" | 3 | name = "embassy-boot" |
| 4 | version = "0.6.1" | 4 | version = "0.6.1" |
| 5 | description = "A lightweight bootloader supporting firmware updates in a power-fail-safe way, with trial boots and rollbacks." | 5 | description = "A lightweight bootloader supporting firmware updates in a power-fail-safe way, with trial boots and rollbacks." |
diff --git a/embassy-boot/src/boot_loader.rs b/embassy-boot/src/boot_loader.rs index 5bffdc5ea..c38940d6e 100644 --- a/embassy-boot/src/boot_loader.rs +++ b/embassy-boot/src/boot_loader.rs | |||
| @@ -1,11 +1,11 @@ | |||
| 1 | use core::cell::RefCell; | 1 | use core::cell::RefCell; |
| 2 | 2 | ||
| 3 | use embassy_embedded_hal::flash::partition::BlockingPartition; | 3 | use embassy_embedded_hal::flash::partition::BlockingPartition; |
| 4 | use embassy_sync::blocking_mutex::raw::NoopRawMutex; | ||
| 5 | use embassy_sync::blocking_mutex::Mutex; | 4 | use embassy_sync::blocking_mutex::Mutex; |
| 5 | use embassy_sync::blocking_mutex::raw::NoopRawMutex; | ||
| 6 | use embedded_storage::nor_flash::{NorFlash, NorFlashError, NorFlashErrorKind}; | 6 | use embedded_storage::nor_flash::{NorFlash, NorFlashError, NorFlashErrorKind}; |
| 7 | 7 | ||
| 8 | use crate::{State, DFU_DETACH_MAGIC, REVERT_MAGIC, STATE_ERASE_VALUE, SWAP_MAGIC}; | 8 | use crate::{DFU_DETACH_MAGIC, REVERT_MAGIC, STATE_ERASE_VALUE, SWAP_MAGIC, State}; |
| 9 | 9 | ||
| 10 | /// Errors returned by bootloader | 10 | /// Errors returned by bootloader |
| 11 | #[derive(PartialEq, Eq, Debug)] | 11 | #[derive(PartialEq, Eq, Debug)] |
| @@ -94,7 +94,7 @@ impl<'a, ACTIVE: NorFlash, DFU: NorFlash, STATE: NorFlash> | |||
| 94 | dfu_flash: &'a Mutex<NoopRawMutex, RefCell<DFU>>, | 94 | dfu_flash: &'a Mutex<NoopRawMutex, RefCell<DFU>>, |
| 95 | state_flash: &'a Mutex<NoopRawMutex, RefCell<STATE>>, | 95 | state_flash: &'a Mutex<NoopRawMutex, RefCell<STATE>>, |
| 96 | ) -> Self { | 96 | ) -> Self { |
| 97 | extern "C" { | 97 | unsafe extern "C" { |
| 98 | static __bootloader_state_start: u32; | 98 | static __bootloader_state_start: u32; |
| 99 | static __bootloader_state_end: u32; | 99 | static __bootloader_state_end: u32; |
| 100 | static __bootloader_active_start: u32; | 100 | static __bootloader_active_start: u32; |
diff --git a/embassy-boot/src/firmware_updater/asynch.rs b/embassy-boot/src/firmware_updater/asynch.rs index 66e311e38..26d4d39bd 100644 --- a/embassy-boot/src/firmware_updater/asynch.rs +++ b/embassy-boot/src/firmware_updater/asynch.rs | |||
| @@ -6,7 +6,7 @@ use embassy_sync::blocking_mutex::raw::NoopRawMutex; | |||
| 6 | use embedded_storage_async::nor_flash::NorFlash; | 6 | use embedded_storage_async::nor_flash::NorFlash; |
| 7 | 7 | ||
| 8 | use super::FirmwareUpdaterConfig; | 8 | use super::FirmwareUpdaterConfig; |
| 9 | use crate::{FirmwareUpdaterError, State, BOOT_MAGIC, DFU_DETACH_MAGIC, STATE_ERASE_VALUE, SWAP_MAGIC}; | 9 | use crate::{BOOT_MAGIC, DFU_DETACH_MAGIC, FirmwareUpdaterError, STATE_ERASE_VALUE, SWAP_MAGIC, State}; |
| 10 | 10 | ||
| 11 | /// FirmwareUpdater is an application API for interacting with the BootLoader without the ability to | 11 | /// FirmwareUpdater is an application API for interacting with the BootLoader without the ability to |
| 12 | /// 'mess up' the internal bootloader state | 12 | /// 'mess up' the internal bootloader state |
| @@ -25,7 +25,7 @@ impl<'a, DFU: NorFlash, STATE: NorFlash> | |||
| 25 | dfu_flash: &'a embassy_sync::mutex::Mutex<NoopRawMutex, DFU>, | 25 | dfu_flash: &'a embassy_sync::mutex::Mutex<NoopRawMutex, DFU>, |
| 26 | state_flash: &'a embassy_sync::mutex::Mutex<NoopRawMutex, STATE>, | 26 | state_flash: &'a embassy_sync::mutex::Mutex<NoopRawMutex, STATE>, |
| 27 | ) -> Self { | 27 | ) -> Self { |
| 28 | extern "C" { | 28 | unsafe extern "C" { |
| 29 | static __bootloader_state_start: u32; | 29 | static __bootloader_state_start: u32; |
| 30 | static __bootloader_state_end: u32; | 30 | static __bootloader_state_end: u32; |
| 31 | static __bootloader_dfu_start: u32; | 31 | static __bootloader_dfu_start: u32; |
diff --git a/embassy-boot/src/firmware_updater/blocking.rs b/embassy-boot/src/firmware_updater/blocking.rs index 0fedac1ea..5554025fc 100644 --- a/embassy-boot/src/firmware_updater/blocking.rs +++ b/embassy-boot/src/firmware_updater/blocking.rs | |||
| @@ -6,7 +6,7 @@ use embassy_sync::blocking_mutex::raw::NoopRawMutex; | |||
| 6 | use embedded_storage::nor_flash::NorFlash; | 6 | use embedded_storage::nor_flash::NorFlash; |
| 7 | 7 | ||
| 8 | use super::FirmwareUpdaterConfig; | 8 | use super::FirmwareUpdaterConfig; |
| 9 | use crate::{FirmwareUpdaterError, State, BOOT_MAGIC, DFU_DETACH_MAGIC, STATE_ERASE_VALUE, SWAP_MAGIC}; | 9 | use crate::{BOOT_MAGIC, DFU_DETACH_MAGIC, FirmwareUpdaterError, STATE_ERASE_VALUE, SWAP_MAGIC, State}; |
| 10 | 10 | ||
| 11 | /// Blocking FirmwareUpdater is an application API for interacting with the BootLoader without the ability to | 11 | /// Blocking FirmwareUpdater is an application API for interacting with the BootLoader without the ability to |
| 12 | /// 'mess up' the internal bootloader state | 12 | /// 'mess up' the internal bootloader state |
| @@ -55,7 +55,7 @@ impl<'a, DFU: NorFlash, STATE: NorFlash> | |||
| 55 | dfu_flash: &'a embassy_sync::blocking_mutex::Mutex<NoopRawMutex, core::cell::RefCell<DFU>>, | 55 | dfu_flash: &'a embassy_sync::blocking_mutex::Mutex<NoopRawMutex, core::cell::RefCell<DFU>>, |
| 56 | state_flash: &'a embassy_sync::blocking_mutex::Mutex<NoopRawMutex, core::cell::RefCell<STATE>>, | 56 | state_flash: &'a embassy_sync::blocking_mutex::Mutex<NoopRawMutex, core::cell::RefCell<STATE>>, |
| 57 | ) -> Self { | 57 | ) -> Self { |
| 58 | extern "C" { | 58 | unsafe extern "C" { |
| 59 | static __bootloader_state_start: u32; | 59 | static __bootloader_state_start: u32; |
| 60 | static __bootloader_state_end: u32; | 60 | static __bootloader_state_end: u32; |
| 61 | static __bootloader_dfu_start: u32; | 61 | static __bootloader_dfu_start: u32; |
| @@ -399,8 +399,8 @@ mod tests { | |||
| 399 | use core::cell::RefCell; | 399 | use core::cell::RefCell; |
| 400 | 400 | ||
| 401 | use embassy_embedded_hal::flash::partition::BlockingPartition; | 401 | use embassy_embedded_hal::flash::partition::BlockingPartition; |
| 402 | use embassy_sync::blocking_mutex::raw::NoopRawMutex; | ||
| 403 | use embassy_sync::blocking_mutex::Mutex; | 402 | use embassy_sync::blocking_mutex::Mutex; |
| 403 | use embassy_sync::blocking_mutex::raw::NoopRawMutex; | ||
| 404 | use sha1::{Digest, Sha1}; | 404 | use sha1::{Digest, Sha1}; |
| 405 | 405 | ||
| 406 | use super::*; | 406 | use super::*; |
diff --git a/embassy-boot/src/lib.rs b/embassy-boot/src/lib.rs index e2c4cf771..7dc811f66 100644 --- a/embassy-boot/src/lib.rs +++ b/embassy-boot/src/lib.rs | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | #![no_std] | 1 | #![no_std] |
| 2 | #![allow(async_fn_in_trait)] | 2 | #![allow(async_fn_in_trait)] |
| 3 | #![allow(unsafe_op_in_unsafe_fn)] | ||
| 3 | #![warn(missing_docs)] | 4 | #![warn(missing_docs)] |
| 4 | #![doc = include_str!("../README.md")] | 5 | #![doc = include_str!("../README.md")] |
| 5 | mod fmt; | 6 | mod fmt; |
| @@ -341,11 +342,13 @@ mod tests { | |||
| 341 | &mut aligned, | 342 | &mut aligned, |
| 342 | ); | 343 | ); |
| 343 | 344 | ||
| 344 | assert!(block_on(updater.verify_and_mark_updated( | 345 | assert!( |
| 345 | &public_key.to_bytes(), | 346 | block_on(updater.verify_and_mark_updated( |
| 346 | &signature.to_bytes(), | 347 | &public_key.to_bytes(), |
| 347 | firmware_len as u32, | 348 | &signature.to_bytes(), |
| 348 | )) | 349 | firmware_len as u32, |
| 349 | .is_ok()); | 350 | )) |
| 351 | .is_ok() | ||
| 352 | ); | ||
| 350 | } | 353 | } |
| 351 | } | 354 | } |
diff --git a/embassy-boot/src/test_flash/blocking.rs b/embassy-boot/src/test_flash/blocking.rs index 5ec476c65..7334346fd 100644 --- a/embassy-boot/src/test_flash/blocking.rs +++ b/embassy-boot/src/test_flash/blocking.rs | |||
| @@ -1,8 +1,8 @@ | |||
| 1 | use core::cell::RefCell; | 1 | use core::cell::RefCell; |
| 2 | 2 | ||
| 3 | use embassy_embedded_hal::flash::partition::BlockingPartition; | 3 | use embassy_embedded_hal::flash::partition::BlockingPartition; |
| 4 | use embassy_sync::blocking_mutex::raw::NoopRawMutex; | ||
| 5 | use embassy_sync::blocking_mutex::Mutex; | 4 | use embassy_sync::blocking_mutex::Mutex; |
| 5 | use embassy_sync::blocking_mutex::raw::NoopRawMutex; | ||
| 6 | use embedded_storage::nor_flash::NorFlash; | 6 | use embedded_storage::nor_flash::NorFlash; |
| 7 | 7 | ||
| 8 | use crate::BootLoaderConfig; | 8 | use crate::BootLoaderConfig; |
