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>