It seems there is a problem with the default bootcode on the Raspberry Pi 3 B+, specifically related to netboot.
The foundation annouced upgrades for netboot support with this model, specfically the fact that netboot is activated by default on RPI 3B+ :
A per the announcement page on https://www.raspberrypi.org/blog/raspbe ... le-now-35/
1/ "So, without further ado, Raspberry Pi 3 Model B+ is now on sale for $35 (the same price as the existing Raspberry Pi 3 Model B), featuring:
A 1.4GHz 64-bit quad-core ARM Cortex-A53 CPU
Dual-band 802.11ac wireless LAN and Bluetooth 4.2
Faster Ethernet (Gigabit Ethernet over USB 2.0)
Power-over-Ethernet support (with separate PoE HAT)
Improved PXE network and USB mass-storage booting
Improved thermal management"
2/ "Raspberry Pi 3B was our first product to support PXE Ethernet boot. Testing it in the wild shook out a number of compatibility issues with particular switches and traffic environments. Gordon has rolled up fixes for all known issues into the BCM2837B0 boot ROM, and PXE boot is now enabled by default."
With this in mind we ordered the B+ and started testing...
Indeed, on RPi3B+ the PXE boot is enabled by default but the internal bootloader doesn’t enumerate USB devices where is the ethernet and fails to boot from the network when SD card is not present or doesn’t contain OS to boot. The only way to use PXE is to prepare SD card with updated RPi bootloader so it is not possible to use the SD card to boot and fall back to network boot if the SD card is not present or damaged.
There is nothing on the serial console when no SD card is present.
There is nothing on the serial console when we put a SD card that has just UART empty file to enable.
When we put SD card with UART and relatively old bootcode.bin (probably the same as is build in the RPi 3 B+ eprom) we got this:
When we put newer bootcode.bin as is suggested in this GitHub issue by the guy who developed it (Gordon Hollingworth mentioned above in the product announcement I assume) , we got a normal PXE boot:
The conclusion is this: the bootcode in the RPi3B+ units that we have is buggy. It was fixed later as we can see on Github, but this is not the version that we have in the units that we received.
Now the big question is: is there a way to fix this? Or just consider that netboot without an SD card is permanently broken on these boards?