1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//! Flash memory.
//!
//! Flash is the one kind of storage a board maps straight into its address
//! space and then *writes through the same window it executes from*, which is
//! why it belongs here rather than behind a block-device seam: the guest's view
//! of it is a memory map with a command protocol layered on top, not a disk.
//!
//! | Module | Feature | Covers |
//! | --- | --- | --- |
//! | [`cfi`] | `dev-flash-cfi` | parallel NOR flash: the CFI query and the Intel/Sharp command set |
//!
//! `no_std + alloc`, no dependencies. The backing store is a **media slot**,
//! the same seam a firmware image or a NES cartridge arrives through, rather
//! than `fstool`: the contents of a NOR part are a flat image with no partition
//! table, no filesystem and no sector geometry, and binding one through the
//! disk-image crate would drag `std` into a `no_std` device to gain nothing
//! (`CLAUDE.md`, "`no_std`").
pub use Cfi;
/// Add every flash class to a registry.
///
/// # Errors
///
/// [`Error::Config`](crate::core::Error::Config) if a name is already claimed.
/// Bind every flash class into the machine graph.
///
/// # Errors
///
/// As [`register`].
/// Every flash class's validator schema.