efi_loader: supply EFI network test

This patch provides an EFI application to check the correct function
of the Simple Network Protocol implementation.

It sends a DHCP request and analyzes the DHCP offer.

Different error conditions including a 10s timeout are checked.

A successful execution will look like this:

=> bootefi nettest
Scanning disk ide.blk#0...
Found 1 disks
WARNING: Invalid device tree, expect boot to fail
Network test
DHCP Discover
DHCP reply received from 192.168.76.2 (52:55:c0:a8:4c:02)
as broadcast message.
OK. The test was completed successfully.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
Heinrich Schuchardt
2017-10-05 16:36:07 +02:00
committed by Alexander Graf
parent 1b6332597f
commit 5ca23ed5bc
4 changed files with 467 additions and 1 deletions

View File

@@ -60,6 +60,17 @@ void efi_st_exit_boot_services(void);
void efi_st_printf(const char *fmt, ...)
__attribute__ ((format (__printf__, 1, 2)));
/*
* Compare memory.
* We cannot use lib/string.c due to different CFLAGS values.
*
* @buf1: first buffer
* @buf2: second buffer
* @length: number of bytes to compare
* @return: 0 if both buffers contain the same bytes
*/
int efi_st_memcmp(const void *buf1, const void *buf2, size_t length);
/*
* Reads an Unicode character from the input device.
*