Most likely it's not a problem with the write function but with the
hardware implications of this specific write. This is the point where
memory-management unit and caches are switched on for the first time
implicitely moving execution from the physical to a virtual address
space. As the Kernel has no pager, this means that the page table behind
the virtual address space must already contain all stuff that is
essential to the Kernel (and the Core main/pager functionality).
I would lookup the pagefault IP denoted in the pagefault message first
using 'genode-arm-objdump -DCl <BUILD_DIR>/var/run/<RUN_NAME>.core'.
This should give you a hint what is missing in your page table. The MMIO
regions to be included in the early page table are defined in [1].
It might help if you post the whole serial output of your test.
Cheers,
Martin