As stated here , in order to use HATs, and overlays in general on
the Raspberry, you have to remove the /boot/dtb symlink.
You know, I'm not an expert. What does this mean? Why do you need to do
that? Why this symlink is here by default? And, there are some
downsides by removing such symlink?
It makes the Raspberry Pi used the firmware provided device trees
rather than the kernel provided device trees, the firmware provided
device trees smash in the overlays so the HAT HW shows up. The
downside is it may not be perfect with the upstream kernel, hence why
it's not default, and it also only works like that for aarch64 on the
raspberry pi, and it doesn't work at all for non Raspberry Pi devices.
There's actually a variable you can set so they're not created on
kernel upgrades but I've not had a chance to update that wiki page and
the person that created it may not have known about it.