bootmeth_pxe: Implement the fallback option
Provide this feature in PXE, so that it matches extlinux. Use plat data for this, just like extlinux. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -139,16 +139,16 @@ static int extlinux_pxe_read_file(struct udevice *dev, struct bootflow *bflow,
|
||||
|
||||
static int extlinux_pxe_boot(struct udevice *dev, struct bootflow *bflow)
|
||||
{
|
||||
struct extlinux_plat *plat = dev_get_plat(dev);
|
||||
struct pxe_context *ctx = dev_get_priv(dev);
|
||||
struct extlinux_info info;
|
||||
ulong addr;
|
||||
int ret;
|
||||
|
||||
addr = map_to_sysmem(bflow->buf);
|
||||
info.dev = dev;
|
||||
info.bflow = bflow;
|
||||
ret = pxe_setup_ctx(ctx, extlinux_pxe_getfile, &info, false,
|
||||
bflow->subdir, false, false, bflow);
|
||||
plat->info.dev = dev;
|
||||
plat->info.bflow = bflow;
|
||||
ret = pxe_setup_ctx(ctx, extlinux_pxe_getfile, &plat->info, false,
|
||||
bflow->subdir, false, plat->use_fallback, bflow);
|
||||
if (ret)
|
||||
return log_msg_ret("ctx", -EINVAL);
|
||||
|
||||
@@ -174,6 +174,7 @@ static struct bootmeth_ops extlinux_bootmeth_pxe_ops = {
|
||||
.read_bootflow = extlinux_pxe_read_bootflow,
|
||||
.read_file = extlinux_pxe_read_file,
|
||||
.boot = extlinux_pxe_boot,
|
||||
.set_property = extlinux_set_property,
|
||||
};
|
||||
|
||||
static const struct udevice_id extlinux_bootmeth_pxe_ids[] = {
|
||||
@@ -188,4 +189,5 @@ U_BOOT_DRIVER(bootmeth_zpxe) = {
|
||||
.ops = &extlinux_bootmeth_pxe_ops,
|
||||
.bind = extlinux_bootmeth_pxe_bind,
|
||||
.priv_auto = sizeof(struct pxe_context),
|
||||
.plat_auto = sizeof(struct extlinux_plat)
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user