Skip to content

Commit 2bff647

Browse files
committed
sim: Add a K64fMulti flash device
This device is similar to the K64f device, but it is twice as large, and has the extra partitions needed to test multi-image. Signed-off-by: David Brown <[email protected]>
1 parent 06ef06e commit 2bff647

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

sim/src/image.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,23 @@ impl ImagesBuilder {
279279
flash.insert(1, dev1);
280280
(flash, areadesc)
281281
}
282+
DeviceName::K64fMulti => {
283+
// NXP style flash, but larger, to support multiple images.
284+
let dev = SimFlash::new(vec![4096; 256], align as usize, erased_val);
285+
286+
let dev_id = 0;
287+
let mut areadesc = AreaDesc::new();
288+
areadesc.add_flash_sectors(dev_id, &dev);
289+
areadesc.add_image(0x020000, 0x020000, FlashId::Image0, dev_id);
290+
areadesc.add_image(0x040000, 0x020000, FlashId::Image1, dev_id);
291+
areadesc.add_image(0x060000, 0x001000, FlashId::ImageScratch, dev_id);
292+
areadesc.add_image(0x080000, 0x020000, FlashId::Image2, dev_id);
293+
areadesc.add_image(0x0a0000, 0x020000, FlashId::Image3, dev_id);
294+
295+
let mut flash = SimMultiFlash::new();
296+
flash.insert(dev_id, dev);
297+
(flash, areadesc)
298+
}
282299
}
283300
}
284301
}

sim/src/lib.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,13 @@ struct Args {
4545
}
4646

4747
#[derive(Copy, Clone, Debug, Deserialize)]
48-
pub enum DeviceName { Stm32f4, K64f, K64fBig, Nrf52840, Nrf52840SpiFlash, }
48+
pub enum DeviceName { Stm32f4, K64f, K64fBig, K64fMulti, Nrf52840, Nrf52840SpiFlash, }
4949

5050
pub static ALL_DEVICES: &'static [DeviceName] = &[
5151
DeviceName::Stm32f4,
5252
DeviceName::K64f,
5353
DeviceName::K64fBig,
54+
DeviceName::K64fMulti,
5455
DeviceName::Nrf52840,
5556
DeviceName::Nrf52840SpiFlash,
5657
];
@@ -61,6 +62,7 @@ impl fmt::Display for DeviceName {
6162
DeviceName::Stm32f4 => "stm32f4",
6263
DeviceName::K64f => "k64f",
6364
DeviceName::K64fBig => "k64fbig",
65+
DeviceName::K64fMulti => "k64fmulti",
6466
DeviceName::Nrf52840 => "nrf52840",
6567
DeviceName::Nrf52840SpiFlash => "Nrf52840SpiFlash",
6668
};

0 commit comments

Comments
 (0)