summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2016-05-06 21:01:07 +0200
committerTom Rini <trini@konsulko.com>2016-05-27 15:39:45 -0400
commit20898ea9340a4fd1631a4057b8de011b9f166255 (patch)
treed382080b46614d7b86b7aaf41a2eba406187094e /net
parent210be5c4cb0e1bf22bd0e0438cc8e52e3ccbcf5e (diff)
distro: Add efi pxe boot code
Now that we can expose network functionality to EFI applications, the logical next step is to load them via pxe to execute them as well. This patch adds the necessary bits to the distro script to automatically load and execute EFI payloads. It identifies the dhcp client as a uEFI capable PXE client, hoping the server returns a tftp path to a workable EFI binary that we can then execute. To enable boards that don't come with a working device tree preloaded, this patch also adds support to load a device tree from the /dtb directory on the remote tftp server. Signed-off-by: Alexander Graf <agraf@suse.de> Reviewed-by: Tom Rini <trini@konsulko.com>
Diffstat (limited to 'net')
-rw-r--r--net/bootp.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/net/bootp.c b/net/bootp.c
index d718e35b63..85dc524df4 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -413,12 +413,21 @@ static void bootp_timeout_handler(void)
static u8 *add_vci(u8 *e)
{
+ char *vci = NULL;
+ char *env_vci = getenv("bootp_vci");
+
#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_NET_VCI_STRING)
- put_vci(e, CONFIG_SPL_NET_VCI_STRING);
+ vci = CONFIG_SPL_NET_VCI_STRING;
#elif defined(CONFIG_BOOTP_VCI_STRING)
- put_vci(e, CONFIG_BOOTP_VCI_STRING);
+ vci = CONFIG_BOOTP_VCI_STRING;
#endif
+ if (env_vci)
+ vci = env_vci;
+
+ if (vci)
+ put_vci(e, vci);
+
return e;
}