diff options
author | Tom Rini <trini@konsulko.com> | 2022-10-31 14:43:04 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2022-10-31 14:43:04 -0400 |
commit | a90afc6730e6c67ad37f4c98a02891a93b4ff971 (patch) | |
tree | 724c085433631e142a56c052d667139cba29b4a6 /include/part.h | |
parent | 6f38d91158e7e4199753b79e0a25c1a65175aba4 (diff) | |
parent | 77bec9e3d8bd2dc307447b92a3d5cefd693a62ad (diff) |
Merge branch '2022-10-31-vbe-implement-the-full-firmware-flow'
To quote Simon:
This series provides an implementation of VBE from TPL through to U-Boot
proper, using VBE to load the relevant firmware stages. It buils a single
image.bin file containing all the phases:
TPL - initial phase, loads VPL using binman symbols
VPL - main firmware phase, loads SPL using VBE parameters
SPL - loads U-Boot proper using VBE parameters
U-Boot - final firmware phase, where OS booting is processed
This series does not include the OS-booting phase. That will be the
subject of a future series.
The implementation is entirely handled by sandbox. It should be possible
to enable this on a real board without much effort, but that is also the
subject of a future series.
Diffstat (limited to 'include/part.h')
-rw-r--r-- | include/part.h | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/include/part.h b/include/part.h index 6f604e7315a..807370d9429 100644 --- a/include/part.h +++ b/include/part.h @@ -313,12 +313,42 @@ struct udevice; */ int part_create_block_devices(struct udevice *blk_dev); -unsigned long dev_read(struct udevice *dev, lbaint_t start, - lbaint_t blkcnt, void *buffer); -unsigned long dev_write(struct udevice *dev, lbaint_t start, - lbaint_t blkcnt, const void *buffer); -unsigned long dev_erase(struct udevice *dev, lbaint_t start, - lbaint_t blkcnt); +/** + * disk_blk_read() - read blocks from a disk partition + * + * @dev: Device to read from (UCLASS_PARTITION) + * @start: Start block number to read in the partition (0=first) + * @blkcnt: Number of blocks to read + * @buffer: Destination buffer for data read + * Returns: number of blocks read, or -ve error number (see the + * IS_ERR_VALUE() macro + */ +ulong disk_blk_read(struct udevice *dev, lbaint_t start, lbaint_t blkcnt, + void *buffer); + +/** + * disk_blk_write() - write to a disk partition + * + * @dev: Device to write to (UCLASS_PARTITION) + * @start: Start block number to write in the partition (0=first) + * @blkcnt: Number of blocks to write + * @buffer: Source buffer for data to write + * Returns: number of blocks written, or -ve error number (see the + * IS_ERR_VALUE() macro + */ +ulong disk_blk_write(struct udevice *dev, lbaint_t start, lbaint_t blkcnt, + const void *buffer); + +/** + * disk_blk_erase() - erase a section of a disk partition + * + * @dev: Device to (partially) erase (UCLASS_PARTITION) + * @start: Start block number to erase in the partition (0=first) + * @blkcnt: Number of blocks to erase + * Returns: number of blocks erased, or -ve error number (see the + * IS_ERR_VALUE() macro + */ +ulong disk_blk_erase(struct udevice *dev, lbaint_t start, lbaint_t blkcnt); /* * We don't support printing partition information in SPL and only support |