> And no "at the end of kernel image" is not a memory location
Like @201984 said, u-boot can load the devicetree separately and this is the more common way to boot. But even if it didn't, "the end of the kernel image" actually is a memory location. Kernel knows where it's executing from (all CPUs, not just ARM, have the Program Counter register) and it's own size (kernel decompressor knows the end of the compressed data).
> Any ARM SoC does not have defined where RAM must be.
That's known from the devicetree.
> All the Linux distros are not working, BSD is not working, Windows is not working.
False. You can take Ubuntu as example. There's only one bootable image for all ARM64. I have no experience with BSD and who tf. cares about Windows?