efi_loader: efi_net: hwaddr_size = 6
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Thu, 5 Oct 2017 14:35:58 +0000 (16:35 +0200)
committerAlexander Graf <agraf@suse.de>
Mon, 9 Oct 2017 05:00:32 +0000 (07:00 +0200)
The length of a MAC address is 6.
We have to set this length in the EFI_SIMPLE_NETWORK_MODE
structure of the EFI_SIMPLE_NETWORK_PROTOCOL.

Without this patch iPXE fails to initialize the network with
error message
SNP MAC(001e0633bcbf,0x0) has invalid hardware address length 0

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
lib/efi_loader/efi_net.c

index fb23bcf..9def34c 100644 (file)
@@ -245,6 +245,7 @@ int efi_net_register(void)
        netobj->net.mode = &netobj->net_mode;
        netobj->net_mode.state = EFI_NETWORK_STARTED;
        memcpy(netobj->net_mode.current_address.mac_addr, eth_get_ethaddr(), 6);
+       netobj->net_mode.hwaddr_size = ARP_HLEN;
        netobj->net_mode.max_packet_size = PKTSIZE;
 
        netobj->pxe.mode = &netobj->pxe_mode;