aboutsummaryrefslogtreecommitdiff
path: root/embassy-boot/boot/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'embassy-boot/boot/src/lib.rs')
-rw-r--r--embassy-boot/boot/src/lib.rs44
1 files changed, 10 insertions, 34 deletions
diff --git a/embassy-boot/boot/src/lib.rs b/embassy-boot/boot/src/lib.rs
index d53c613a3..3109f2b47 100644
--- a/embassy-boot/boot/src/lib.rs
+++ b/embassy-boot/boot/src/lib.rs
@@ -10,7 +10,7 @@ mod firmware_updater;
10mod mem_flash; 10mod mem_flash;
11mod partition; 11mod partition;
12 12
13pub use boot_loader::{BootError, BootFlash, BootLoader, Flash, FlashConfig, MultiFlashConfig, SingleFlashConfig}; 13pub use boot_loader::{BootError, BootFlash, BootLoader, FlashConfig, MultiFlashConfig, SingleFlashConfig};
14pub use firmware_updater::{FirmwareUpdater, FirmwareUpdaterError}; 14pub use firmware_updater::{FirmwareUpdater, FirmwareUpdaterError};
15pub use partition::Partition; 15pub use partition::Partition;
16 16
@@ -77,12 +77,8 @@ mod tests {
77 77
78 let mut bootloader: BootLoader = BootLoader::new(ACTIVE, DFU, STATE); 78 let mut bootloader: BootLoader = BootLoader::new(ACTIVE, DFU, STATE);
79 79
80 let mut magic = [0; 4];
81 let mut page = [0; 4096]; 80 let mut page = [0; 4096];
82 assert_eq!( 81 assert_eq!(State::Boot, bootloader.prepare_boot(&mut flash, &mut page).unwrap());
83 State::Boot,
84 bootloader.prepare_boot(&mut flash, &mut magic, &mut page).unwrap()
85 );
86 } 82 }
87 83
88 #[test] 84 #[test]
@@ -103,19 +99,14 @@ mod tests {
103 99
104 let mut bootloader: BootLoader = BootLoader::new(ACTIVE, DFU, STATE); 100 let mut bootloader: BootLoader = BootLoader::new(ACTIVE, DFU, STATE);
105 let mut updater = FirmwareUpdater::new(DFU, STATE); 101 let mut updater = FirmwareUpdater::new(DFU, STATE);
106 let mut offset = 0; 102 block_on(updater.write_firmware(0, &update, &mut flash)).unwrap();
107 for chunk in update.chunks(4096) {
108 block_on(updater.write_firmware(offset, chunk, &mut flash)).unwrap();
109 offset += chunk.len();
110 }
111 block_on(updater.mark_updated(&mut flash, &mut aligned)).unwrap(); 103 block_on(updater.mark_updated(&mut flash, &mut aligned)).unwrap();
112 104
113 let mut magic = [0; 4]; 105 let mut page = [0; 1024];
114 let mut page = [0; 4096];
115 assert_eq!( 106 assert_eq!(
116 State::Swap, 107 State::Swap,
117 bootloader 108 bootloader
118 .prepare_boot(&mut SingleFlashConfig::new(&mut flash), &mut magic, &mut page) 109 .prepare_boot(&mut SingleFlashConfig::new(&mut flash), &mut page)
119 .unwrap() 110 .unwrap()
120 ); 111 );
121 112
@@ -132,7 +123,7 @@ mod tests {
132 assert_eq!( 123 assert_eq!(
133 State::Swap, 124 State::Swap,
134 bootloader 125 bootloader
135 .prepare_boot(&mut SingleFlashConfig::new(&mut flash), &mut magic, &mut page) 126 .prepare_boot(&mut SingleFlashConfig::new(&mut flash), &mut page)
136 .unwrap() 127 .unwrap()
137 ); 128 );
138 129
@@ -150,7 +141,7 @@ mod tests {
150 assert_eq!( 141 assert_eq!(
151 State::Boot, 142 State::Boot,
152 bootloader 143 bootloader
153 .prepare_boot(&mut SingleFlashConfig::new(&mut flash), &mut magic, &mut page) 144 .prepare_boot(&mut SingleFlashConfig::new(&mut flash), &mut page)
154 .unwrap() 145 .unwrap()
155 ); 146 );
156 } 147 }
@@ -176,25 +167,16 @@ mod tests {
176 167
177 let mut updater = FirmwareUpdater::new(DFU, STATE); 168 let mut updater = FirmwareUpdater::new(DFU, STATE);
178 169
179 let mut offset = 0; 170 block_on(updater.write_firmware(0, &update, &mut dfu)).unwrap();
180 for chunk in update.chunks(2048) {
181 block_on(updater.write_firmware(offset, chunk, &mut dfu)).unwrap();
182 offset += chunk.len();
183 }
184 block_on(updater.mark_updated(&mut state, &mut aligned)).unwrap(); 171 block_on(updater.mark_updated(&mut state, &mut aligned)).unwrap();
185 172
186 let mut bootloader: BootLoader = BootLoader::new(ACTIVE, DFU, STATE); 173 let mut bootloader: BootLoader = BootLoader::new(ACTIVE, DFU, STATE);
187 let mut magic = [0; 4];
188 let mut page = [0; 4096]; 174 let mut page = [0; 4096];
189 175
190 assert_eq!( 176 assert_eq!(
191 State::Swap, 177 State::Swap,
192 bootloader 178 bootloader
193 .prepare_boot( 179 .prepare_boot(&mut MultiFlashConfig::new(&mut active, &mut state, &mut dfu), &mut page)
194 &mut MultiFlashConfig::new(&mut active, &mut state, &mut dfu),
195 &mut magic,
196 &mut page
197 )
198 .unwrap() 180 .unwrap()
199 ); 181 );
200 182
@@ -229,22 +211,16 @@ mod tests {
229 211
230 let mut updater = FirmwareUpdater::new(DFU, STATE); 212 let mut updater = FirmwareUpdater::new(DFU, STATE);
231 213
232 let mut offset = 0; 214 block_on(updater.write_firmware(0, &update, &mut dfu)).unwrap();
233 for chunk in update.chunks(4096) {
234 block_on(updater.write_firmware(offset, chunk, &mut dfu)).unwrap();
235 offset += chunk.len();
236 }
237 block_on(updater.mark_updated(&mut state, &mut aligned)).unwrap(); 215 block_on(updater.mark_updated(&mut state, &mut aligned)).unwrap();
238 216
239 let mut bootloader: BootLoader = BootLoader::new(ACTIVE, DFU, STATE); 217 let mut bootloader: BootLoader = BootLoader::new(ACTIVE, DFU, STATE);
240 let mut magic = [0; 4];
241 let mut page = [0; 4096]; 218 let mut page = [0; 4096];
242 assert_eq!( 219 assert_eq!(
243 State::Swap, 220 State::Swap,
244 bootloader 221 bootloader
245 .prepare_boot( 222 .prepare_boot(
246 &mut MultiFlashConfig::new(&mut active, &mut state, &mut dfu,), 223 &mut MultiFlashConfig::new(&mut active, &mut state, &mut dfu,),
247 &mut magic,
248 &mut page 224 &mut page
249 ) 225 )
250 .unwrap() 226 .unwrap()