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 /disk/disk-uclass.c | |
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 'disk/disk-uclass.c')
-rw-r--r-- | disk/disk-uclass.c | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/disk/disk-uclass.c b/disk/disk-uclass.c index 551f8b1dca4..d32747e2242 100644 --- a/disk/disk-uclass.c +++ b/disk/disk-uclass.c @@ -65,7 +65,7 @@ int part_create_block_devices(struct udevice *blk_dev) return 0; } -static ulong blk_part_read(struct udevice *dev, lbaint_t start, +static ulong part_blk_read(struct udevice *dev, lbaint_t start, lbaint_t blkcnt, void *buffer) { struct udevice *parent; @@ -88,7 +88,7 @@ static ulong blk_part_read(struct udevice *dev, lbaint_t start, return ops->read(parent, start, blkcnt, buffer); } -static ulong blk_part_write(struct udevice *dev, lbaint_t start, +static ulong part_blk_write(struct udevice *dev, lbaint_t start, lbaint_t blkcnt, const void *buffer) { struct udevice *parent; @@ -111,7 +111,7 @@ static ulong blk_part_write(struct udevice *dev, lbaint_t start, return ops->write(parent, start, blkcnt, buffer); } -static ulong blk_part_erase(struct udevice *dev, lbaint_t start, +static ulong part_blk_erase(struct udevice *dev, lbaint_t start, lbaint_t blkcnt) { struct udevice *parent; @@ -135,9 +135,9 @@ static ulong blk_part_erase(struct udevice *dev, lbaint_t start, } static const struct blk_ops blk_part_ops = { - .read = blk_part_read, - .write = blk_part_write, - .erase = blk_part_erase, + .read = part_blk_read, + .write = part_blk_write, + .erase = part_blk_erase, }; U_BOOT_DRIVER(blk_partition) = { @@ -151,34 +151,34 @@ U_BOOT_DRIVER(blk_partition) = { */ static struct blk_desc *dev_get_blk(struct udevice *dev) { - struct blk_desc *block_dev; + struct blk_desc *desc; switch (device_get_uclass_id(dev)) { /* * We won't support UCLASS_BLK with dev_* interfaces. */ case UCLASS_PARTITION: - block_dev = dev_get_uclass_plat(dev_get_parent(dev)); + desc = dev_get_uclass_plat(dev_get_parent(dev)); break; default: - block_dev = NULL; + desc = NULL; break; } - return block_dev; + return desc; } -unsigned long dev_read(struct udevice *dev, lbaint_t start, - lbaint_t blkcnt, void *buffer) +unsigned long disk_blk_read(struct udevice *dev, lbaint_t start, + lbaint_t blkcnt, void *buffer) { - struct blk_desc *block_dev; + struct blk_desc *desc; const struct blk_ops *ops; struct disk_part *part; lbaint_t start_in_disk; ulong blks_read; - block_dev = dev_get_blk(dev); - if (!block_dev) + desc = dev_get_blk(dev); + if (!desc) return -ENOSYS; ops = blk_get_ops(dev); @@ -191,51 +191,51 @@ unsigned long dev_read(struct udevice *dev, lbaint_t start, start_in_disk += part->gpt_part_info.start; } - if (blkcache_read(block_dev->uclass_id, block_dev->devnum, - start_in_disk, blkcnt, block_dev->blksz, buffer)) + if (blkcache_read(desc->uclass_id, desc->devnum, start_in_disk, blkcnt, + desc->blksz, buffer)) return blkcnt; blks_read = ops->read(dev, start, blkcnt, buffer); if (blks_read == blkcnt) - blkcache_fill(block_dev->uclass_id, block_dev->devnum, - start_in_disk, blkcnt, block_dev->blksz, buffer); + blkcache_fill(desc->uclass_id, desc->devnum, start_in_disk, + blkcnt, desc->blksz, buffer); return blks_read; } -unsigned long dev_write(struct udevice *dev, lbaint_t start, - lbaint_t blkcnt, const void *buffer) +unsigned long disk_blk_write(struct udevice *dev, lbaint_t start, + lbaint_t blkcnt, const void *buffer) { - struct blk_desc *block_dev; + struct blk_desc *desc; const struct blk_ops *ops; - block_dev = dev_get_blk(dev); - if (!block_dev) + desc = dev_get_blk(dev); + if (!desc) return -ENOSYS; ops = blk_get_ops(dev); if (!ops->write) return -ENOSYS; - blkcache_invalidate(block_dev->uclass_id, block_dev->devnum); + blkcache_invalidate(desc->uclass_id, desc->devnum); return ops->write(dev, start, blkcnt, buffer); } -unsigned long dev_erase(struct udevice *dev, lbaint_t start, - lbaint_t blkcnt) +unsigned long disk_blk_erase(struct udevice *dev, lbaint_t start, + lbaint_t blkcnt) { - struct blk_desc *block_dev; + struct blk_desc *desc; const struct blk_ops *ops; - block_dev = dev_get_blk(dev); - if (!block_dev) + desc = dev_get_blk(dev); + if (!desc) return -ENOSYS; ops = blk_get_ops(dev); if (!ops->erase) return -ENOSYS; - blkcache_invalidate(block_dev->uclass_id, block_dev->devnum); + blkcache_invalidate(desc->uclass_id, desc->devnum); return ops->erase(dev, start, blkcnt); } |