This is because bootloaders elf loader needs the kernel to have both data and text sections mapped to their own segments (See elf.cpp « loader « boot « system « src - haiku - Haiku's main repository). On x86(_64) and arm64 it seems that the compiler/linker does it by default, on sparc this is done in linker script. @Yn0ga has a linker script with this added on his ppc-work branch on github.
@Yn0ga and me have played a bit with the PPC last week and gotten it a bit further, I think yn0ga got into the kernel _start already.