Thanks for all replies. I think I have excluded [0, 0x02200000), and also have changed the parameter RAM_BASE and RAM_SIZE.
Let me list what I have done to move foc kernel address: 1) modify file base-foc/contrib/kern/arm/bsp/mem_layout_xxxx.cc , change Sdram_phy_address from 0x0 to 0x02200000. 2) modify file base-foc/contrib/l4/mk/platforms/myplatform.conf, set PLATFORM_RAM_BASE = 0x02200000 and PLATFORM_RAM_SIZE_MB = 990. 3) modify file base-foc/contrib/kern/arm/bsp/Modules, set CONFIG_KERNEL_LOAD_ADDR := 0x02200000. 4) modify file base-foc/src/core/myplatform/target.mk, change LD_TEXT_ADDR value from 0x00140000 to 0x02340000.
Am I right? What else should I do to make sure foc kernel address is moved and nothing else can use [0, 0x02200000) ?
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.
Here is part of my serial log.
Starting kernel ...
L4 Bootstrapper Build: #162 Tue Mar 11 13:53:39 CST 2014, 4.7.2 Scanning up to 990 MB RAM Memory size is 990MB (02200000 - 40000000) RAM: 0000000002200000 - 000000003fffffff: 1013760kB Total RAM: 990MB mod21: 03ad5000-03b1c000: genode/root-amt.gz mod20: 03a99000-03ad4bfc: genode/terminal_log mod19: 03a3d000-03a985c4: genode/terminal mod18: 0365c000-03a3c438: genode/l4android mod17: 0361c000-0365be1c: genode/nit_fb mod16: 035cd000-0361bc48: genode/nitpicker mod15: 0358e000-035cc004: genode/omapx_xmodem_drv mod14: 0354b000-0358dfa0: genode/part_blk mod13: 0350e000-0354ac70: genode/omapx_fb_drv mod12: 034cf000-0350dc90: genode/omapx_input_drv mod11: 0348f000-034ced18: genode/sd_card_drv mod10: 0344f000-0348e58c: genode/kdb_uart_drv mod09: 03410000-0344e4a0: genode/omapx_i2c_drv mod08: 033d9000-0340f818: genode/omapx_gpio_drv mod07: 033a6000-033d8ec4: genode/omapx_ddr_pwr_drv mod06: 03373000-033a5eac: genode/omapx_appwr_drv mod05: 03338000-03372e3c: genode/timer mod04: 032f2000-03337738: genode/init mod03: 032f0000-032f14c9: genode/config mod02: 03289000-032ef31c: genode/core mod01: 0327f000-03288374: sigma0 mod00: 03216000-0327e330: /home/android/genode-master-hello/build_foc_pandax/kernel/fiasco.oc/fiasco Moving up to 22 modules behind 3300000 moving module 00 { 3216000-327e32f } -> { 3c06000-3c6e32f } [426800] moving module 01 { 327f000-3288373 } -> { 3c6f000-3c78373 } [37748] moving module 02 { 3289000-32ef31b } -> { 3c79000-3cdf31b } [418588] moving module 03 { 32f0000-32f14c8 } -> { 3b1c000-3b1d4c8 } [5321] moving module 04 { 32f2000-3337737 } -> { 3b1e000-3b63737 } [284472] moving module 05 { 3338000-3372e3b } -> { 3300000-333ae3b } [241212] moving module 06 { 3373000-33a5eab } -> { 333b000-336deab } [208556] moving module 07 { 33a6000-33d8ec3 } -> { 336e000-33a0ec3 } [208580] moving module 08 { 33d9000-340f817 } -> { 33a1000-33d7817 } [223256] moving module 09 { 3410000-344e49f } -> { 33d8000-341649f } [255136] moving module 10 { 344f000-348e58b } -> { 3417000-345658b } [259468] moving module 11 { 348f000-34ced17 } -> { 3457000-3496d17 } [261400] moving module 12 { 34cf000-350dc8f } -> { 3497000-34d5c8f } [257168] moving module 13 { 350e000-354ac6f } -> { 34d6000-3512c6f } [248944] moving module 14 { 354b000-358df9f } -> { 3513000-3555f9f } [274336] moving module 15 { 358e000-35cc003 } -> { 3556000-3594003 } [253956] moving module 16 { 35cd000-361bc47 } -> { 3595000-35e3c47 } [322632] moving module 17 { 361c000-365be1b } -> { 35e4000-3623e1b } [261660] moving module 18 { 365c000-3a3c437 } -> { 3624000-3a04437 } [4064312] moving module 19 { 3a3d000-3a985c3 } -> { 3a05000-3a605c3 } [374212] moving module 20 { 3a99000-3ad4bfb } -> { 3a61000-3a9cbfb } [244732] moving module 21 { 3ad5000-3b1bfff } -> { 3a9d000-3ae3fff } [290816] moving module 03 { 3b1c000-3b1d4c8 } -> { 3ae4000-3ae54c8 } [5321] moving module 04 { 3b1e000-3b63737 } -> { 3ae6000-3b2b737 } [284472] Scanning /home/android/genode-master-hello/build_foc_pandax/kernel/fiasco.oc/fiasco -serial_esc Scanning sigma0 Scanning genode/core Relocated mbi to [0x320f000-0x320f387] Loading e-master-hello/build_foc_pandax/kernel/fiasco.oc/fiasco Loading sigma0 Loading genode/core find kernel info page... found kernel info page at 0x2202000 Regions of list 'regions' [ 2201000, 2201a7f] { a80} Kern e-master-hello/build_foc_pandax/kernel/fiasco.oc/fiasco [ 2202000, 2278fff] { 77000} Kern e-master-hello/build_foc_pandax/kernel/fiasco.oc/fiasco [ 2290000, 229673b] { 673c} Sigma0 sigma0 [ 2298000, 229e17b] { 617c} Sigma0 sigma0 [ 2340000, 248743f] { 147440} Root genode/core [ 3200000, 32153f3] { 153f4} Boot bootstrap [ 320f000, 320f484] { 485} Root Multiboot info [ 3300000, 3b2b737] { 82b738} Root Module API Version: (87) experimental Sigma0 config ip:02290100 sp:03214d24 Roottask config ip:0238af84 sp:00000000 Starting kernel e-master-hello/build_foc_pandax/kernel/fiasco.oc/fiasco at 022011c4 L2: ID=410004c8 Type=9e300300 Aux=7e460001 WMask=ff S=0 L2: Type L2C-310 Size = 512kB Hello from Startup::stage2 Per_cpu_data_alloc: (orig: 0xf00651b8-0xf0065b28) Boot_alloc: size=0xc Boot_alloc: allocated extra memory block @0xf13e1000 (size=400) Boot_alloc: @ 0xf13e1000 Boot_alloc: remaining free block @ 0xf13e1010 (size=3f0) Boot_alloc: size=0x80 Boot_alloc: @ 0xf13e1010 Boot_alloc: remaining free block @ 0xf13e1090 (size=370) Number of IRQs available at this GIC: 96 Boot_alloc: size=0x180 Boot_alloc: @ 0xf13e1090 Boot_alloc: remaining free block @ 0xf13e1210 (size=1f0) Cache config: ON ID_PFR[01]: 00001231 00000011 ID_[DA]FR0: 00010444 00000000 ID_MMFR[04]: 00100103 20000000 01230000 00102111 FPU0: Arch: VFPv3(3), Part: VFPv3(30), r: 4, v: 9, i: 41, t: hard, p: dbl/sngl Startup::stage2 finished SERIAL ESC: allocated IRQ 71 for serial uart Not using serial hack in slow timer handler. Welcome to Fiasco.OC (arm)! L4/Fiasco.OC arm microkernel (C) 1998-2013 TU Dresden Rev: rexporte compiled with gcc 4.7.2 for pandax_evb [] Build: #128 Tue Mar 11 13:53:25 CST 2014 Per_cpu_data_alloc: (orig: 0xf00651b8-0xf0065b28) Allocate 2416 bytes (2KB) for CPU[4] local storage (offset=1180e48, 0xf11e6000-0xf11e6970) Number of CPUs: 2 Calibrating timer loop... Per_cpu_data_alloc: (orig: 0xf00651b8-0xf0065b28) done. Allocate 2416 bytes (2KB) for CPU[1] local storage (offset=1181e48, 0xf11e7000-0xf11e7970) SCache config: ON IID_PFR[01]: 00001231 00000011G ID_[DA]FR0: 00010444 00000000 MID_MMFR[04]: 00100103 20000000 01230000 00102111 AFPU1: Arch: VFPv3(3), Part: VFPv3(30), r: 4, v: 9, i: 41, t: hard, p: dbl/sngl 0: CPU[1]: goes to idle loop Hello! KIP @ 2202000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [0:2200000;2200fff] [0:2279000;228ffff] [0:2297000;2297fff] [0:229f000;233ffff] [4:2340000;2487fff] [0:2488000;320efff] [4:320f000;320ffff] [0:3210000;32fffff] [4:3300000;3b2bfff] [0:3b2c000;3effffff] IOMEM:---------------------- [0:0;21fffff] [0:40000000;ffffffff] KIP @ 2202000 magic: 4be6344c version: 87014444 sigma0 esp: 03214d24 eip: 02290100 sigma1 esp: 00000000 eip: 00000000 root esp: 00000000 eip: 0238af84 MBI @ 320f000 mod[3] [3ae4000,3ae54c9) config mod[4] [3ae6000,3b2b738) init mod[5] [3300000,333ae3c) timer mod[6] [333b000,336deac) omapx_appwr_drv mod[7] [336e000,33a0ec4) omapx_ddr_pwr_drv mod[8] [33a1000,33d7818) omapx_gpio_drv mod[9] [33d8000,34164a0) omapx_i2c_drv mod[10] [3417000,345658c) kdb_uart_drv mod[11] [3457000,3496d18) sd_card_drv mod[12] [3497000,34d5c90) omapx_input_drv mod[13] [34d6000,3512c70) omapx_fb_drv mod[14] [3513000,3555fa0) part_blk mod[15] [3556000,3594004) omapx_xmodem_drv mod[16] [3595000,35e3c48) nitpicker mod[17] [35e4000,3623e1c) nit_fb mod[18] [3624000,3a04438) l4android mod[19] [3a05000,3a605c4) terminal mod[20] [3a61000,3a9cbfc) terminal_log mod[21] [3a9d000,3ae4000) root-amt.gz :ram_alloc: Allocator 2470784 dump: Block: [02200000,0220001c) size=0000001c avail=00000000 max_avail=00000000 Block: [0220001c,02200038) size=0000001c avail=00000000 max_avail=00000000 Block: [02200038,02200438) size=00000400 avail=00000000 max_avail=00000000 Block: [02200438,02200454) size=0000001c avail=00000000 max_avail=00000000 Block: [02200454,02200470) size=0000001c avail=00000000 max_avail=00000000 Block: [02200470,0220048c) size=0000001c avail=00000000 max_avail=00016fe4 Block: [0220048c,022004a8) size=0000001c avail=00000000 max_avail=00000000 Block: [022004a8,02201000) size=00000b58 avail=00000b58 max_avail=00000b58 Block: [02279000,0227901c) size=0000001c avail=00000000 max_avail=00016fe4 Block: [0227901c,02290000) size=00016fe4 avail=00016fe4 max_avail=00016fe4 Block: [02297000,0229701c) size=0000001c avail=00000000 max_avail=00016fe4 Block: [0229701c,02297038) size=0000001c avail=00000000 max_avail=00000000 Block: [02297038,02297054) size=0000001c avail=00000000 max_avail=00000000 Block: [02297054,02297070) size=0000001c avail=00000000 max_avail=00000000 Block: [02297070,0229708c) size=0000001c avail=00000000 max_avail=00000000 Block: [0229708c,022970a8) size=0000001c avail=00000000 max_avail=00000000 Block: [022970a8,022970c4) size=0000001c avail=00000000 max_avail=00000000 Block: [022970c4,022970e0) size=0000001c avail=00000000 max_avail=00000000 Block: [022970e0,022970fc) size=0000001c avail=00000000 max_avail=3b4d4000 Block: [022970fc,02297118) size=0000001c avail=00000000 max_avail=00000000 Block: [02297118,02297134) size=0000001c avail=00000000 max_avail=00000eb0 Block: [02297134,02297150) size=0000001c avail=00000000 max_avail=00000000 Block: [02297150,02298000) size=00000eb0 avail=00000eb0 max_avail=00000eb0 Block: [0229f000,0229f01c) size=0000001c avail=00000000 max_avail=3b4d4000 Block: [0229f01c,02340000) size=000a0fe4 avail=000a0fe4 max_avail=000a0fe4 Block: [02488000,0320f000) size=00d87000 avail=00d87000 max_avail=3b4d4000 Block: [03210000,03300000) size=000f0000 avail=000f0000 max_avail=3b4d4000 Block: [03b2c000,3f000000) size=3b4d4000 avail=3b4d4000 max_avail=3b4d4000 => mem_size=1010847744 (964 MB) / mem_avail=1010846160 (964 MB) :region_alloc: Allocator 24718f4 dump: Block: [00001000,02200000) size=021ff000 avail=021ff000 max_avail=021ff000 Block: [02201000,02202000) size=00001000 avail=00001000 max_avail=021ff000 Block: [02203000,02279000) size=00076000 avail=00076000 max_avail=00076000 Block: [02290000,02297000) size=00007000 avail=00007000 max_avail=00076000 Block: [02298000,0229f000) size=00007000 avail=00007000 max_avail=6fff0000 Block: [3f000000,40000000) size=01000000 avail=01000000 max_avail=01000000 Block: [50000000,bfff0000) size=6fff0000 avail=6fff0000 max_avail=6fff0000 Block: [bfff1000,c0000000) size=0000f000 avail=0000f000 max_avail=0000f000 => mem_size=1932013568 (1842 MB) / mem_avail=1932013568 (1842 MB) :io_mem: Allocator 2470be0 dump: Block: [00000000,02200000) size=02200000 avail=02200000 max_avail=02200000 Block: [02201000,02202000) size=00001000 avail=00001000 max_avail=02200000 Block: [02203000,02279000) size=00076000 avail=00076000 max_avail=00076000 Block: [02290000,02297000) size=00007000 avail=00007000 max_avail=00076000 Block: [02298000,0229f000) size=00007000 avail=00007000 max_avail=c0ffffff Block: [3f000000,ffffffff) size=c0ffffff avail=c0ffffff max_avail=c0ffffff => mem_size=3274199039 (3122 MB) / mem_avail=3274199039 (3122 MB) :io_port: Allocator 247103c dump: :irq: Allocator 2471498 dump: Block: [00000000,00000100) size=00000100 avail=00000100 max_avail=00000100 => mem_size=256 (0 MB) / mem_avail=256 (0 MB) :rom_fs: Rom_fs 24721a8 dump: Rom: [03ae6000,03b2b738) init Rom: [033d8000,034164a0) omapx_i2c_drv Rom: [0336e000,033a0ec4) omapx_ddr_pwr_drv Rom: [0333b000,0336deac) omapx_appwr_drv Rom: [033a1000,033d7818) omapx_gpio_drv Rom: [034d6000,03512c70) omapx_fb_drv Rom: [03556000,03594004) omapx_xmodem_drv Rom: [03497000,034d5c90) omapx_input_drv Rom: [03ae4000,03ae54c9) config Rom: [03513000,03555fa0) part_blk Rom: [02202000,02203000) l4v2_kip Rom: [02202000,02203000) kip Rom: [03417000,0345658c) kdb_uart_drv Rom: [03624000,03a04438) l4android Rom: [03595000,035e3c48) nitpicker Rom: [035e4000,03623e1c) nit_fb Rom: [03a05000,03a605c4) terminal Rom: [03457000,03496d18) sd_card_drv Rom: [03a9d000,03ae4000) root-amt.gz Rom: [03300000,0333ae3c) timer Rom: [03a61000,03a9cbfc) terminal_log :core ranges: Allocator 2473f08 dump: Block: [02200000,02201000) size=00001000 avail=00001000 max_avail=00001000 Block: [02279000,02290000) size=00017000 avail=00017000 max_avail=00017000 Block: [02297000,02298000) size=00001000 avail=00001000 max_avail=3bdf0000 Block: [0229f000,0320f000) size=00f70000 avail=00f70000 max_avail=3bdf0000 Block: [03210000,3f000000) size=3bdf0000 avail=3bdf0000 max_avail=3bdf0000 => mem_size=1020760064 (973 MB) / mem_avail=1020760064 (973 MB) int main(): --- create local services --- int main(): --- start init --- int main(): transferred 963 MB to init int main(): --- init created, waiting for exit condition ---
Thanks.
On Wed, Mar 19, 2014 at 4:29 PM, Matthias Lange <mlange@...235...>wrote:
On Tue, Mar 18, 2014 at 03:54:59PM +0100, Christian Helmuth wrote:
Hello,
On Tue, Mar 18, 2014 at 09:22:20PM +0800, 吴若凡 wrote:
I am now facing a problem that I want to use a specific ram address
[0x0,
0x2000000), because there is a hareware on board using it, I have to
write
data to this specific ram region and my hareware will read this region
to
work.
I have moved foc kernel address to 0x2000000, and also used Attach_io_mem_dataspace to reflect physical address [0x0, 0x2000000)
in my
driver, but I failed to drive my hareware. I guess maybe the data haven't been written to this ram region
correctly.
Is Attach_io_mem_dataspace suitable for this case? If NOT, how can I
do ?
Genode depends on sigma0 to detect RAM regions. Sigma0 itself depends on bootstrap's information. So, I think you have to figure out how to configure bootstrap to exclude (or better to _not_ include) [0x0, 0x2000000) from RAM. Afterwards, Attached_io_mem_dataspace should work as expected. Do you have a serial log of bootstrap's boot messages?
When you build bootstrap you can specify the RAM_BASE either by providing it on the cmdline or through menuconfig (choose 'Custom Platform'). Another important parameter is RAM_SIZE_MB.
Matthias.
Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/13534_NeoTech _______________________________________________ Genode-main mailing list Genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main