summaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2016-05-06 21:01:01 +0200
committerTom Rini <trini@konsulko.com>2016-05-27 10:01:10 -0400
commit0efe1bcf5c2ce89d7c2467550e2823d7f95733e0 (patch)
treef040d19ef28c73746c329475e1ee4ac0524c1be7 /cmd
parent7e6621a1cae2d2442d3d7641ff1df17b3f03ad4b (diff)
downloadtalos-obmc-uboot-0efe1bcf5c2ce89d7c2467550e2823d7f95733e0.tar.gz
talos-obmc-uboot-0efe1bcf5c2ce89d7c2467550e2823d7f95733e0.zip
efi_loader: Add network access support
We can now successfully boot EFI applications from disk, but users may want to also run them from a PXE setup. This patch implements rudimentary network support, allowing a payload to send and receive network packets. With this patch, I was able to successfully run grub2 with network access inside of QEMU's -M xlnx-ep108. Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'cmd')
-rw-r--r--cmd/bootefi.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/cmd/bootefi.c b/cmd/bootefi.c
index 7f552fc0d4..d3a2331870 100644
--- a/cmd/bootefi.c
+++ b/cmd/bootefi.c
@@ -197,6 +197,13 @@ static unsigned long do_bootefi_exec(void *efi, void *fdt)
#ifdef CONFIG_LCD
efi_gop_register();
#endif
+#ifdef CONFIG_NET
+ void *nethandle = loaded_image_info.device_handle;
+ efi_net_register(&nethandle);
+
+ if (!memcmp(bootefi_device_path[0].str, "N\0e\0t", 6))
+ loaded_image_info.device_handle = nethandle;
+#endif
/* Call our payload! */
#ifdef DEBUG_EFI
OpenPOWER on IntegriCloud