
On Tue, May 28, 2024 at 02:33:17PM +0530, Love Kumar wrote:
Add tests for booting image using tftpboot/pxe boot commands, tftpboot boot case loads the FIT image into DDR and boots using bootm command whereas pxe boot cases downloads the pxe configuration file from the TFTP server and interprets it to boot the images mentioned in the pxe configurations file. This test relies on boardenv_* containing configuration values including the parameter 'pattern'. tftpboot/pxe boot cases boots the Linux till the boot log pattern value is matched. For example, if the parameter 'pattern' is defined as 'login:', it will boot till login prompt.
Good news is that the kernel test is working for me now. Bad news is the PXE test fails, but good news is I figure out the problem.
[snip]
+def setup_tftpboot_boot(u_boot_console):
- f = u_boot_console.config.env.get('env__net_tftp_bootable_file', None)
- if not f:
pytest.skip('No TFTP bootable file to read')
- test_net.test_net_dhcp(u_boot_console)
- if not test_net.net_set_up:
test_net.test_net_setup_static(u_boot_console)
This works for me, and matches how other tests are written. However:
[snip]
+def setup_pxe_boot(u_boot_console):
- f = u_boot_console.config.env.get('env__net_pxe_bootable_file', None)
- if not f:
pytest.skip('No PXE bootable file to read')
- test_net.test_net_dhcp(u_boot_console)
- test_net.test_net_setup_static(u_boot_console)
- return f
This doesn't check for if dhcp worked and skips the test when DHCP works but there's no static config, which is how my lab is. For v6 we should have a setup_networking function that both the TFTP and PXE tests call in to that does what I suggested above. And what I suggested above would be a good clean-up to the xilinx-specific tests.
That said, with a local fixup so that my network is configured, and having pxelinux.cfg/01-b8-27-eb-fc-64-a6 (the first file pxe boot looks for on my test Pi), pxeboot.cfg/default and pxeboot.cfg/default-arm all configured from the examples given in the test itself, I get: ------------------------------------ Captured stdout call ------------------------------------- U-Boot> setenv autoload no U-Boot> U-Boot> dhcp Waiting for Ethernet connection... done. BOOTP broadcast 1 BOOTP broadcast 2 DHCP client bound to address 192.168.1.100 (255 ms) U-Boot> U-Boot> pxe get missing environment variable: pxeuuid Retrieving file: pxelinux.cfg/01-b8-27-eb-fc-64-a6 Waiting for Ethernet connection... done. Using smsc95xx_eth device TFTP from server 192.168.1.10; our IP address is 192.168.1.100 Filename 'pxelinux.cfg/01-b8-27-eb-fc-64-a6'. Load address: 0x2500000 Loading: ################################################## 64 Bytes 0 Bytes/s done Bytes transferred = 64 (40 hex) Config file '<NULL>' found U-Boot> =================================== short test summary info ===================================