Hello,
What else should I do to make sure foc kernel address is moved and nothing else can use [0, 0x02200000) ?
in the log you can see that Genode's core has indeed registered the address range as MMIO region:
:io_mem: Allocator 2470be0 dump: Block: [00000000,02200000) size=02200000 avail=02200000 max_avail=02200000
Note that 'avail' matches the 'size'. So the range is known as a MMIO resource and thereby will remain unused until a "device driver" explicitly asks for the specific MMIO resource (i.e., when creating an 'Attached_mmio_dataspace').
In the allocator for physical memory, the corresponding range is not known. The first known range starts at 0x2200000:
:ram_alloc: Allocator 2470784 dump: Block: [02200000,0220001c) size=0000001c avail=00000000 max_avail=00000000
In other words, everything looks fine. :-)
Also, I have confirmed that Attached_io_mem_dataspace can work in this case, because what I write in uboot can be read correctly in genode.
Great! Thank you for the feedback and for having taken the time to post a summary of your findings.
Cheers Norman