dhcp issue when zynqmp BSP is not configured for SMP
Summary
When showing people how to configure, build, and use RTEMS, I tend to start with simple configurations. Below is the configuration I used this time
[aarch64/zynqmp_qemu]
RTEMS_POSIX_API = True
BUILD_SAMPLES = True
I used the uniprocessor configuration and build libbsd. The goal was to show telnetd01.exe working with a shell you could telnet to. The application configuration was slightly modified to turn on DHCPCD (client). The application failed to get an address. This was the same for multiple other people in the class who tried.
Today, I asked @opticron for help debugging this. We confirmed my tools, qemu, rtems, and libbsd matched his. We even tried my telnetd01.exe on his system. It behaved the same. His telnetd01.exe worked for me.
At this point, @opticron quickly deduced that SMP was the difference although we had to verify his insight. It is important to note that for the zynqmp BSP on real hardware, they will enable SMP. This was the configuration for RTEMS which resulted in a working libbsd telnetd01.exe
[aarch64/zynqmp_qemu]
RTEMS_POSIX_API = True
RTEMS_SMP = True
BUILD_SAMPLES = True
In summary, libbsd works with the zynqmp_qemu BSP in SMP mode but not in uniprocessor mode.
Feel free to put on a puzzled expression.