bootstd: Add bootflow_iter_check_mmc() helper

Some bootflows might be able to only boot from MMC devices.

Add a helper function these bootflows can use.

Reviewed-by: Igor Opaniuk <igor.opaniuk@gmail.com>
Reviewed-by: Julien Masson <jmasson@baylibre.com>
Reviewed-by: Guillaume La Roque <glaroque@baylibre.com>
Tested-by: Guillaume La Roque <glaroque@baylibre.com>
Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Mattijs Korpershoek 2024-07-10 10:40:03 +02:00 committed by Tom Rini
parent 58fed99f46
commit be0b076c55
2 changed files with 21 additions and 0 deletions

View file

@ -575,6 +575,18 @@ int bootflow_iter_check_blk(const struct bootflow_iter *iter)
return -ENOTSUPP;
}
int bootflow_iter_check_mmc(const struct bootflow_iter *iter)
{
const struct udevice *media = dev_get_parent(iter->dev);
enum uclass_id id = device_get_uclass_id(media);
log_debug("uclass %d: %s\n", id, uclass_get_name(id));
if (id == UCLASS_MMC)
return 0;
return -ENOTSUPP;
}
int bootflow_iter_check_sf(const struct bootflow_iter *iter)
{
const struct udevice *media = dev_get_parent(iter->dev);

View file

@ -408,6 +408,15 @@ void bootflow_remove(struct bootflow *bflow);
*/
int bootflow_iter_check_blk(const struct bootflow_iter *iter);
/**
* bootflow_iter_check_mmc() - Check that a bootflow uses a MMC device
*
* This checks the bootdev in the bootflow to make sure it uses a mmc device
*
* Return: 0 if OK, -ENOTSUPP if some other device is used (e.g. ethernet)
*/
int bootflow_iter_check_mmc(const struct bootflow_iter *iter);
/**
* bootflow_iter_check_sf() - Check that a bootflow uses SPI FLASH
*