]> git.sur5r.net Git - u-boot/commit
efi_loader: Fix network DP with DM_ETH
authorAlexander Graf <agraf@suse.de>
Thu, 15 Mar 2018 16:33:38 +0000 (17:33 +0100)
committerAlexander Graf <agraf@suse.de>
Wed, 4 Apr 2018 09:09:18 +0000 (11:09 +0200)
commitf9cfad1a61e3461dcf256ecfb83f4eaf68142d1b
tree93c706e04c1eb4fc61d06c5a385f37e8a779b327
parent813468cdbd7287f0b2e38f9702aa3eee37b1c5b5
efi_loader: Fix network DP with DM_ETH

When CONFIG_DM_ETH is set, we assemble the device path properly with a
full device hierarchy. Our helper function dp_fill() even put the MAC
node itself in it for us.

However, for non-DM compatibility we also have code in that added the
MAC node manually. That code now runs on top of the existing MAC node:

  Handle 0x3db2f6b0
    /HardwareVendor(e61d73b9-a384-4acc-aeab-82e828f3628b)[0: ]
    /USBClass(0,0,9,0,0)/USBClass(424,9514,9,0,2)/MacAddr(b8:27:eb:e1:81:47,1)
    /MacAddr(b8:27:eb:e1:81:47,57)/EndEntire

We obviously don't need the additional node and in fact, grub chokes on
it and fails to match the DP against the ethernet device node. So this
patch moves the additional MAC node into the non-DM code path:

  Handle 0x3db3fde0
    /HardwareVendor(e61d73b9-a384-4acc-aeab-82e828f3628b)[0: ]
    /USBClass(0,0,9,0,0)/USBClass(424,9514,9,0,2)/MacAddr(b8:27:eb:e1:81:47,1)
    /EndEntire

While at it, we also mark the non-DM MAC node as ethernet.

Fixes: b66c60dde9d ("efi_loader: add device-path utils")
Signed-off-by: Alexander Graf <agraf@suse.de>
lib/efi_loader/efi_device_path.c