On 9/16/21 10:53 AM, Masami Hiramatsu wrote:
Hello Heinrich,

Here is a series of patches to update the SIMPLE_NETWORK_PROTOCOL
according to the explanation in the previous thread [1].

[1] https://lists.denx.de/pipermail/u-boot/2021-September/460711.html

So basically this seires modifies the SNP testcase as I said
in the previous mail [1].

----
net->get_status();
if (!net->mode.MediaPresent) {
    error(no link up!)
    return;
}

submit_dhcp_discover()
for (;;) {
    wait_for_event(net)
    while (net->receive() != EFI_NOT_READY) {
       // check dhcp reply
    }
}
----

I removed EFI_SIMPLE_NETWORK_RECEIVE_INTERRUPT check because
that is just expectation what the received packet avaiability
is meaning that the EFI_SIMPLE_NETWORK_RECEIVE_INTERRUPT flag
bit is set. Of course U-Boot EFI SNP implementation does it,
but that is not ensured in the UEFI spec. The spec said that

SN_GetStatus() in edk2-platforms
Drivers/ASIX/Bus/Usb/UsbNetworking/Ax88179/SimpleNetwork.c always
returns *InterruptStatus = 0.

the get_status() should update the MediaPresent flag (which
means the network link up or down). So I added the get_status()
test case before starting the network test so that it can
test the link status.

BTW, actually the mode->media_present is not supported yet.
Is there any way to get the network link status?

The driver interface struct eth_ops has no method for determining media
presence. We have to assume that it is always present.

Best regards

Heinrich


Thank you,

---

Masami Hiramatsu (3):
       efi_selftest: Use EFI_SIMPLE_NETWORK_PROTOCOL::GetStatus() for media 
check
       efi_selftest: Do not check EFI_SIMPLE_NETWORK_RECEIVE_INTERRUPT
       efi_selftest: Recieve the packets until the receive buffer is empty


  lib/efi_selftest/efi_selftest_snp.c |   90 +++++++++++++++++++----------------
  1 file changed, 49 insertions(+), 41 deletions(-)

--
Masami Hiramatsu <masami.hirama...@linaro.org>


Reply via email to