[help] Link (kernel) elf with MMU "offset"

Hi, I’ve poured round about 20 hours into this issue and am now slowly but surely capitulating on trying to solve that myself.
I’m currently working on a project for which I have to enable the aarch64 A53 MMU. For the enabling procedure I need the elf EntryPointAdress as well as the boot section (which lastly enables the mmu) to not have the vma “offset”(0xffff000000000000) (idk why it’s called that, it’s really more the 16 bits that have to be 1 to indicate that I’m addressing the kernel space and 0 to indicate user space) in their linked symbol addresses. The rest of the actual kernel code must be linked with the offset.
Most other project just put a . = 0xffff000000000000 right at the beginning of the linker script. That also sets the VMA to that value.
The projects I’ve seen don’t use llvm for linking though but gnu, so maybe there is some difference. because if I flollow that, apparently common practice, my entry point address is also at that offset. If I now try to set the VMA of the boot section to the (“physical”) vma 0x800:

. = 0xffff000000000000;
.boot 0x800 : {
*(.text.boot)
_boot_sizeof = SIZEOF(.boot);
}

the rest of the following sections also has 0x800 as their vma (but I need them to have a vma with the kernel space offset).
That’s not too big of a deal I thought, let’s just use MEMORY regions and assign every section one.

I’ve tried that in all thinkable configurations, but always end up with the same error (for all linker script defined symbols):

(.text.boot+0x14): relocation R_AARCH64_ADR_PREL_PG_HI21 out of range: -281474976694272 is not in [-4294967296, 4294967295]; references _pg_dir

(enabling pic does not help, also disabling relocations(not that that would be a proper solution) does not seem to make a difference)
I hope that was understandable, I really only need to have the boot section a VMA of (0x800) and the rest of (0xffff000000000000) with a entry point address pointing to boot section with 0x800 VMA.
(also maybe it is ok that all sections have a vma starting at 0xffff000000000000 and I only need to change the entry point address to vma with offset 0x800)
This is my first time having to deal with a linker script and my understanding is still kind of superficial so if much if something in my understanding is wrong I would be thankful for an explanation.