diff options
author | Mattijs Korpershoek <mkorpershoek@baylibre.com> | 2024-07-10 11:40:03 +0300 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2024-07-18 22:51:30 +0300 |
commit | be0b076c55a3de8a1a10053a8db9ff9ca8ffb8ac (patch) | |
tree | 1ec2b6fb0cd489ba8da24d469d5f8042e76bc9b3 | |
parent | 58fed99f46115fe8547e7978fa361bbbbb3f3b50 (diff) | |
download | u-boot-be0b076c55a3de8a1a10053a8db9ff9ca8ffb8ac.tar.xz |
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>
-rw-r--r-- | boot/bootflow.c | 12 | ||||
-rw-r--r-- | include/bootflow.h | 9 |
2 files changed, 21 insertions, 0 deletions
diff --git a/boot/bootflow.c b/boot/bootflow.c index 9aa3179c38..59d77d2385 100644 --- a/boot/bootflow.c +++ b/boot/bootflow.c @@ -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); diff --git a/include/bootflow.h b/include/bootflow.h index 6affc5e1a4..4d2fc7b69b 100644 --- a/include/bootflow.h +++ b/include/bootflow.h @@ -409,6 +409,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 * * This checks the bootdev in the bootflow to make sure it uses SPI flash |