
This series introduces an EFI driver to manage EFI net objects. The main functionalities implemented here are the following: - Support multiple efi_net_obj - Manage efi_net_obj with EFI driver - Support calling [dis]connect_controller with a handle having a snp protocol installed. The patches can be found at https://github.com/0n41rd4/u-boot/tree/efi-net-driver on top of upstream/next.
Best regards, Adriano
Adriano Cordova (21): legacy-net: wget: fix wget_info handling after new tcp legacy stack efi_loader: expose symbols to be used by the EFI network stack efi_loader: efi_setup: Add efi_start_obj_list() to efi_setup.c efi_loader: efi_net: Add efi_net_do_start() to efi_net.c efi_loader: efi_device_path: Let network device paths receive the net udevice as an argument efi_loader: efi_net: Add support for multiple efi_net_obj efi_driver: efi_net: Add EFI network device driver efi_loader: efi_net: Reuse efi_net_obj's efi_loader: efi_net: Let efi_net_obj store pointers to efi_simple_network, efi_simple_network_mode, and the efi handle efi_net: efi_loader: Add efi_netobj_alloc to allocate an efi_net_obj efi_loader: efi_net: Manage EFI net objects with efi_[dis]connect_controller eth_uclass: Add eth_create_device to create a net udevice efi_driver: efi_net: UCLASS_ETH "efi_netdev" U-Boot driver efi_driver: efi_uclass: Add unbind method to efi_driver_ops efi_driver: efi_net: Add efi_net_unbind_drv method to efi_net driver efi_loader: efi_net: Add functions to [un]register http and ip4_config2 protocols, and add pxe protocol on demand efi_loader: efi_net: add snp_owner field to efi_net_obj struct efi_selftest: Add selftest for counting EFI netdevices py/tests: test_efi_selftest: Add test for counting EFI netdevices py/tests: test_efi_selftest: Add test for removing EFI netdevices efi_selftest: Add test for efi_netdev driver
include/efi_driver.h | 4 + include/efi_loader.h | 80 +- include/net-common.h | 3 + lib/efi_driver/Makefile | 1 + lib/efi_driver/efi_net_device.c | 289 ++++++ lib/efi_driver/efi_uclass.c | 6 +- lib/efi_loader/efi_bootbin.c | 3 +- lib/efi_loader/efi_boottime.c | 23 +- lib/efi_loader/efi_device_path.c | 23 +- lib/efi_loader/efi_http.c | 36 +- lib/efi_loader/efi_ipconfig.c | 41 +- lib/efi_loader/efi_net.c | 1063 ++++++++++++++++---- lib/efi_loader/efi_setup.c | 27 +- lib/efi_selftest/Makefile | 2 +- lib/efi_selftest/efi_selftest_net_device.c | 65 ++ lib/efi_selftest/efi_selftest_net_driver.c | 310 ++++++ lib/efi_selftest/efi_selftest_snp.c | 1 - net/eth-uclass.c | 32 + net/wget.c | 18 +- test/py/tests/test_efi_selftest.py | 45 + 20 files changed, 1810 insertions(+), 262 deletions(-) create mode 100644 lib/efi_driver/efi_net_device.c create mode 100644 lib/efi_selftest/efi_selftest_net_device.c create mode 100644 lib/efi_selftest/efi_selftest_net_driver.c