I have been building my own kernel for aarch64 for a few months based on moonman's PKGBUILDs. I have booted it on Pi4, Pi3 and 3+ without issue. Well, I just did a pacman -Syu on my PRiB3+ and it appears that the linux-raspberrypi4 kernel is an official Arch Arm aarch64 package! This is good news. I still build my own kernel to build in some capability that is not in the default package, but that it is 'current' is good news IMO.
The problem, though, is that after upgrade My Pi3B+ will not boot because the upgrade puts the broadcom dtbs in /boot/broadcom and this location requires a config line calling the proper btb for the correct board. The other architecture kernels (armv6 and armv7) put them in /boot. Why is this? If they are in /boot, it appears that at boot time, if the btb for the board is present in /boot, the proper dtb is selected and the Pi boots. If not, it halts. If the call out is wrong for the board in /boot/config, it also halts. If the SD card is used in a different Pi (pi4 versus pi3 or 2v1.2) it will not boot unless the proper dtb is in the config.txt. Is there a reason they are in /boot/broadcom instead of /boot? The linux-raspberrypi4 only boots on broadcom cards, no? If they were in /boot like the other RPI kernels it would make the resulting package more 'universal, I would think.
Am I missing something?