[PATCH 00/21] EFI driver to support multiple network interfaces

Adriano Cordova adrianox at gmail.com
Wed Jan 22 18:08:37 CET 2025


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

-- 
2.43.0



More information about the U-Boot mailing list