Bob Stewart
2017-03-13 21:23:22 UTC
Hi,
I'm in the process of moving my TI AM437x (Cortex A9) Genode
implementation to 17.02 and trying to get familiar with the lower level
structural changes (of which there are many) in base-hw as I progress.
After cleaning up some of my deprecated usages, correctly wrapping my
components that used libc, and ignoring for now the new unified sd_card
driver implementation, I got a successful build which unsurprisingly
wanders off into oblivion after completing "kernel initialization".
The first question I have is from the build output which includes the
line "core link address is 0x91000000" Where is that address generated
and what is its purpose? It looks like my load address plus half the
available ram.
The console log from the boot process (attached) shows some strange
memory allocations for IO memory :
:io_mem_alloc: Allocator 0x910d012c
dump:
Block: [0x0,0x80449000] size=0x80449000 avail=0x80449000
max_avail=0x80449000
Block: [0x81000000,0x8145d000] size=0x45d000 avail=0x45d000
max_avail=0x8044900
Block: [0xa0000000,0xffffffff] size=0x5fffffff avail=0x5fffffff
max_avail=0x5ff
=> mem_size=3767164927 (3592 MB) / mem_avail=3767164927 (3592
MB)
How are the above blocks being allocated as io memory?
In prior releases (the "good-old-days"), a Native_region was declared to
exactly define the regions of physical memory that were to be tagged as
io memory. There appears to be no equivalent in 17.02. What am I
missing?
Bob
I'm in the process of moving my TI AM437x (Cortex A9) Genode
implementation to 17.02 and trying to get familiar with the lower level
structural changes (of which there are many) in base-hw as I progress.
After cleaning up some of my deprecated usages, correctly wrapping my
components that used libc, and ignoring for now the new unified sd_card
driver implementation, I got a successful build which unsurprisingly
wanders off into oblivion after completing "kernel initialization".
The first question I have is from the build output which includes the
line "core link address is 0x91000000" Where is that address generated
and what is its purpose? It looks like my load address plus half the
available ram.
The console log from the boot process (attached) shows some strange
memory allocations for IO memory :
:io_mem_alloc: Allocator 0x910d012c
dump:
Block: [0x0,0x80449000] size=0x80449000 avail=0x80449000
max_avail=0x80449000
Block: [0x81000000,0x8145d000] size=0x45d000 avail=0x45d000
max_avail=0x8044900
Block: [0xa0000000,0xffffffff] size=0x5fffffff avail=0x5fffffff
max_avail=0x5ff
=> mem_size=3767164927 (3592 MB) / mem_avail=3767164927 (3592
MB)
How are the above blocks being allocated as io memory?
In prior releases (the "good-old-days"), a Native_region was declared to
exactly define the regions of physical memory that were to be tagged as
io memory. There appears to be no equivalent in 17.02. What am I
missing?
Bob