Moving from 16.11 to 17.02 with base-hw kernel
Bob Stewart
robjsstewart at ...196...
Mon Mar 13 22:23:22 CET 2017
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
-------------- next part --------------
TFTP from server 192.168.0.102; our IP address is 192.168.0.109
Filename 'uImageN'.
Load address: 0x82000000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
####################################
191.4 KiB/s
done
Bytes transferred = 1845555 (1c2933 hex)
## Booting kernel from Legacy Image at 82000000 ...
Image Name:
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 1845491 Bytes = 1.8 MiB
Load Address: 81000000
Entry Point: 81000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
Starting kernel ...
:virt_alloc: Allocator 0x910cf0b4 dump:
Block: [0x1000,0x80000000] size=0x7ffff000 avail=0x7ffff000 max_avail=0x7ffff00
Block: [0x80405000,0x81000000] size=0xbfb000 avail=0xbfb000 max_avail=0x7ffff00
Block: [0x8145d000,0x91000000] size=0xfba3000 avail=0xfba3000 max_avail=0x7fff0
Block: [0x91459000,0x9145a000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x9145a000,0xe0000000] size=0x4eba6000 avail=0x4eba6000 max_avail=0x4e0
Block: [0xf0002000,0xf0003000] size=0x1000 avail=0x0 max_avail=0x7ffff000
Block: [0xf0004000,0xf0005000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0xf0006000,0xf0007000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0xf0017000,0xf0018000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0xf0019000,0xf001a000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0xf001a000,0xf001b000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0xf001b000,0xf001c000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0xf001c000,0xf001d000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0xf001d000,0xf001e000] size=0x1000 avail=0x0 max_avail=0x7ffff000
Block: [0xf001e000,0xf001f000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0xf001f000,0xf0020000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0xf0020000,0xf0021000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0xf0021000,0xf0022000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0xf0022000,0xf0023000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0xf0023000,0xf0024000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0xf0024000,0xf0025000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0xf0025000,0xf0026000] size=0x1000 avail=0x0 max_avail=0xffc3000
Block: [0xf0026000,0xf0027000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0xf0027000,0xf0028000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0xf0028000,0xf0029000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0xf0029000,0xf002a000] size=0x1000 avail=0x0 max_avail=0xffc3000
Block: [0xf002a000,0xf002b000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0xf002b000,0xf002c000] size=0x1000 avail=0x0 max_avail=0xffc3000
Block: [0xf002c000,0xfffef000] size=0xffc3000 avail=0xffc3000 max_avail=0xffc30
=> mem_size=4013023232 (3827 MB) / mem_avail=4012924928 (3827 MB)
:phys_alloc: Allocator 0x910ce048 dump:
Block: [0x80449000,0x8044a000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x8044a000,0x8044b000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x8044b000,0x8044c000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x8044c000,0x8044d000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x8044d000,0x8044e000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x8044e000,0x8044f000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x8044f000,0x80450000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x80450000,0x80451000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x80451000,0x80452000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x80452000,0x80453000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x80453000,0x80454000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x80454000,0x80455000] size=0x1000 avail=0x0 max_avail=0x1eba3000
Block: [0x80455000,0x80456000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x80456000,0x80457000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x80457000,0x80458000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x80458000,0x80459000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x80459000,0x8045a000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x8045a000,0x8045b000] size=0x1000 avail=0x0 max_avail=0x1eba3000
Block: [0x8045b000,0x8045c000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x8045c000,0x8045d000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x8045d000,0x8045e000] size=0x1000 avail=0x0 max_avail=0x1eba3000
Block: [0x8045e000,0x8045f000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x8045f000,0x80460000] size=0x1000 avail=0x0 max_avail=0x1eba3000
Block: [0x80460000,0x80461000] size=0x1000 avail=0x0 max_avail=0x0
Block: [0x80461000,0x81000000] size=0xb9f000 avail=0xb9f000 max_avail=0x1eba300
Block: [0x8145d000,0xa0000000] size=0x1eba3000 avail=0x1eba3000 max_avail=0x1e0
=> mem_size=527802368 (503 MB) / mem_avail=527704064 (503 MB)
: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)
:io_port_alloc: Allocator 0x910d1198 dump:
=> mem_size=0 (0 MB) / mem_avail=0 (0 MB)
:irq_alloc: Allocator 0x910d2204 dump:
Block: [0x0,0x1] size=0x1 avail=0x1 max_avail=0x1
Block: [0x2,0x1d] size=0x1b avail=0x1b max_avail=0x3e2
Block: [0x1e,0x400] size=0x3e2 avail=0x3e2 max_avail=0x3e2
=> mem_size=1022 (0 MB) / mem_avail=1022 (0 MB)
:rom_fs: ROM modules:
ROM: [8110c000,8111b63c) 437x_platform_client
ROM: [81446000,81459a00) Autopilot
ROM: [8140a000,81421400) ap_cli
ROM: [81422000,81434c20) ap_sensors
ROM: [8145a000,8145b86c) config
ROM: [8112f000,8113d39c) ctrl_module
ROM: [81407000,81409518) data_store.lib.so
ROM: [8125a000,8127c3dc) ffat_fs
ROM: [8114b000,8115eecc) gpio_drv
ROM: [81186000,81195028) i2c_drv
ROM: [810e0000,81100180) init
ROM: [8127d000,812f89c4) ld.lib.so
ROM: [812f9000,813e9678) libc.lib.so
ROM: [813ea000,8140679c) libm.lib.so
ROM: [81435000,81445a58) motor_ctl
ROM: [81101000,8110b290) platform_drv
ROM: [81196000,811a9374) pruss_drv
ROM: [81171000,81185670) pwm_drv
ROM: [8111c000,8112e228) report_rom
ROM: [81240000,8124c304) shared_memory
ROM: [8124d000,812596a4) soc_leds
ROM: [8113e000,8114a5b0) timer
ROM: [8115f000,811700b4) uart_drv
ROM: [811aa000,8123f6fc) usb_drv
kernel initialized
Genode 17.02 <local changes>
More information about the users
mailing list