Skip to content
Snippets Groups Projects
Commit 146242cc authored by Simon Glass's avatar Simon Glass Committed by Tom Rini
Browse files

bootstd: Use a function to detect network in EFI bootmeth


This checks for a network-based bootflow in two places, one of which is
less than ideal. Move the correct test into a function and use it in both
places.

Signed-off-by: Simon Glass's avatarSimon Glass <sjg@chromium.org>
parent 0c0c82b5
No related branches found
No related tags found
No related merge requests found
......@@ -94,6 +94,20 @@ static int get_efi_pxe_vci(char *str, int max_len)
return 0;
}
/**
* bootmeth_uses_network() - check if the media device is Ethernet
*
* @bflow: Bootflow to check
* Returns: true if the media device is Ethernet, else false
*/
static bool bootmeth_uses_network(struct bootflow *bflow)
{
const struct udevice *media = dev_get_parent(bflow->dev);
return IS_ENABLED(CONFIG_CMD_DHCP) &&
device_get_uclass_id(media) == UCLASS_ETH;
}
static void set_efi_bootdev(struct blk_desc *desc, struct bootflow *bflow)
{
const struct udevice *media_dev;
......@@ -354,11 +368,9 @@ static int distro_efi_read_bootflow_net(struct bootflow *bflow)
static int distro_efi_read_bootflow(struct udevice *dev, struct bootflow *bflow)
{
const struct udevice *media = dev_get_parent(bflow->dev);
int ret;
if (IS_ENABLED(CONFIG_CMD_DHCP) &&
device_get_uclass_id(media) == UCLASS_ETH) {
if (bootmeth_uses_network(bflow)) {
/* we only support reading from one device, so ignore 'dev' */
ret = distro_efi_read_bootflow_net(bflow);
if (ret)
......@@ -378,7 +390,7 @@ int distro_efi_boot(struct udevice *dev, struct bootflow *bflow)
char cmd[50];
/* A non-zero buffer indicates the kernel is there */
if (bflow->buf) {
if (!bootmeth_uses_network(bflow)) {
/* Set the EFI bootdev again, since reading an FDT loses it! */
if (bflow->blk) {
struct blk_desc *desc = dev_get_uclass_plat(bflow->blk);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment