the memory overlap between iguana/vtimer and oklinux

1 message Options
Embed this post
Permalink
Guanghui, Cheng

the memory overlap between iguana/vtimer and oklinux

Reply Threaded More More options
Print post
Permalink
Hello:
        I configure the 2 oklinux instance and iguana/vtimer in the OKL4 system but
when i merge these files there is an memory overlap as following:

Error: Virtual Memory: Parts of "/oklinux0/rwx" (0x801b9000-0x80200fff, size
0x48000) overlap with "/iguana_server/vtimer/rx" (0x80200000-0x80206fff, size
0x7000).
Now printing a traceback.

Traceback (most recent call last):
  File "./tools/pyelf/elfweaver.py", line 79, in <module>
    main(sys.argv)
  File "/home/cheng/pistachio/OKL4/okl4_3.0/tools/pyelf/weaver/main.py", line
108, in main
    __commands__[args[1]](args[2:])
  File "/home/cheng/pistachio/OKL4/okl4_3.0/tools/pyelf/weaver/merge.py", line
270, in merge_cmd
    merge(spec_file, options)
  File "/home/cheng/pistachio/OKL4/okl4_3.0/tools/pyelf/weaver/merge.py", line
166, in merge
    namespace, image)
  File "/home/cheng/pistachio/OKL4/okl4_3.0/tools/pyelf/weaver/merge.py", line
129, in collect_image_objects
    kernel, image)
 
File "/home/cheng/pistachio/OKL4/okl4_3.0/tools/pyelf/weaver/cells/okl4_cell.py",
line 279, in collect_xml
    machine, pools)
 
File "/home/cheng/pistachio/OKL4/okl4_3.0/tools/pyelf/weaver/segments_xml.py",
line 289, in collect_elf_segments
    pools           = pools)
  File "/home/cheng/pistachio/OKL4/okl4_3.0/tools/pyelf/weaver/image.py", line
1012, in add_segment
    attrs, pools)
  File "/home/cheng/pistachio/OKL4/okl4_3.0/tools/pyelf/weaver/image.py", line
452, in __init__
    self.attrs.cache_policy)
  File "/home/cheng/pistachio/OKL4/okl4_3.0/tools/pyelf/weaver/pools.py", line
435, in mark_virtual
    if alloc.mark(base, size, cache_policy):
  File "/home/cheng/pistachio/OKL4/okl4_3.0/tools/pyelf/weaver/allocator.py",
line 420, in mark
    self.tracker.track_mark(base, end)
  File "/home/cheng/pistachio/OKL4/okl4_3.0/tools/pyelf/weaver/pools.py", line
260, in track_mark
    self.__add(self.alloc_name, base, end, can_match_exact = True)
  File "/home/cheng/pistachio/OKL4/okl4_3.0/tools/pyelf/weaver/pools.py", line
337, in __add
    self.__check(name, base, end, can_match_exact)
  File "/home/cheng/pistachio/OKL4/okl4_3.0/tools/pyelf/weaver/pools.py", line
326, in __check
    alloc_end - alloc_base + 1)
MergeError: Virtual Memory: Parts of "/oklinux0/rwx" (0x801b9000-0x80200fff,
size 0x48000) overlap with "/iguana_server/vtimer/rx" (0x80200000-0x80206fff,
size 0x7000).

        In this system the memory calculation is like this:
name: virtual base=80000000 end=cfffffff
name: rom base=7900000 end=7ffffff
name: physical base=4100000 end=78fffff
name: /kernel/rwx base=f0000000 end=f00276cf
name: /kernel/rw base=f0028000 end=f002dfff
name: /iguana_server/rw base=80014000 end=80014fff
name: /iguana_server/event/rx base=80100000 end=80105fff
name: /iguana_server/event/rw base=8010d000 end=8010dfff
name: /iguana_server/vtimer/rx base=80200000 end=80206fff
name: /iguana_server/vtimer/rw base=8020f000 end=8020ffff
name: /iguana_server/vserial/rx base=80300000 end=80306fff
name: /iguana_server/vserial/rw base=8030f000 end=8030ffff
name: /oklinux0/rx base=80000000 end=801b8fff
name: unknown base=80000000 end=801b8fff
name: unknown base=80000000 end=801b8fff
name: unknown base=80000000 end=801b8fff
name: /oklinux0/rwx base=801b9000 end=80200fff

        In the attachment there is my weaver.xml file. I think it could be fixed by
increasing the linkaddress of oklinux. But it seems that i can't modify
linkaddress of vmlinux from default 0x80200000. The vtimer link addrerss is
0x80200000
        Thanks a lot.
                                                                                                        Cheng Guanghui

<?xml version="1.0" ?>
<!DOCTYPE image
  SYSTEM 'weaver-2.0.dtd'>
<image>
        <machine>
                <cpu name="arm926ejs"/>
                <word_size size="0x20"/>
                <virtual_memory name="virtual">
                        <region base="0x80000000" size="0x50000000"/>
                </virtual_memory>
                <physical_memory name="rom">
                        <region base="0x7900000" rights="all" size="0x700000"/>
                </physical_memory>
                <physical_memory name="physical">
                        <region base="0x4100000" rights="all" size="0x3800000"/>
                </physical_memory>
                <phys_device name="timer_dev">
                        <physical_memory name="timer_mem0">
                                <region base="0x101e3000" cache_policy="uncached" rights="all" size="0x1000"/>
                        </physical_memory>
                        <interrupt name="int_timer0" number="5"/>
                </phys_device>
                <phys_device name="serial_dev">
                        <physical_memory name="serial_mem0">
                                <region base="0x101f1000" cache_policy="uncached" rights="all" size="0x1000"/>
                        </physical_memory>
                        <interrupt name="int_serial0" number="12"/>
                </phys_device>
                <phys_device name="eth_dev">
                        <physical_memory name="eth_mem0">
                                <region base="0x10010000" cache_policy="uncached" rights="all" size="0x10000"/>
                        </physical_memory>
                        <interrupt name="int_eth0" number="25"/>
                </phys_device>
                <phys_device name="versatilesys_dev">
                        <physical_memory name="versatilesys_mem0">
                                <region base="0x10000000" cache_policy="uncached" rights="all" size="0x1000"/>
                        </physical_memory>
                </phys_device>
                <phys_device name="kmi0_dev">
                        <physical_memory name="kmi0_mem0">
                                <region base="0x10006000" cache_policy="uncached" rights="all" size="0x1000"/>
                        </physical_memory>
                        <interrupt name="int_kmi00" number="35"/>
                </phys_device>
                <phys_device name="kmi1_dev">
                        <physical_memory name="kmi1_mem0">
                                <region base="0x10007000" cache_policy="uncached" rights="all" size="0x1000"/>
                        </physical_memory>
                        <interrupt name="int_kmi10" number="36"/>
                </phys_device>
                <phys_device name="clcd_dev">
                        <physical_memory name="clcd_mem0">
                                <region base="0x10120000" cache_policy="uncached" rights="all" size="0x1000"/>
                        </physical_memory>
                        <interrupt name="int_clcd0" number="16"/>
                </phys_device>
                <phys_device name="test_dev">
                        <interrupt name="int_test0" number="6"/>
                        <interrupt name="int_test1" number="7"/>
                </phys_device>
                <page_size size="0x1000"/>
                <page_size size="0x10000"/>
                <page_size size="0x100000"/>
        </machine>
        <physical_pool direct="true" name="rom">
                <memory src="rom"/>
        </physical_pool>
        <virtual_pool name="virtual">
                <memory src="virtual"/>
        </virtual_pool>
        <physical_pool direct="true" name="physical">
                <memory src="physical"/>
        </physical_pool>
        <kernel file="/home/cheng/pistachio/OKL4/okl4_3.0/linux_build/pistachio/bin/l4kernel" physpool="physical" virtpool="virtual"/>
        <iguana clists="256" file="/home/cheng/pistachio/OKL4/okl4_3.0/iguana_build/iguana_server/bin/ig_server" kernel_heap=
"0x400000" mutexes="256" name="iguana_server" spaces="256">
                <irq value="0x0"/>
                <irq value="0x1"/>
                <irq value="0x2"/>
                <irq value="0x3"/>
                <irq value="0x4"/>
                <irq value="0x5"/>
                <irq value="0x6"/>
                <irq value="0x7"/>
                <irq value="0x8"/>
                <irq value="0x9"/>
                <irq value="0xa"/>
                <irq value="0xb"/>
                <irq value="0xc"/>
                <irq value="0xd"/>
                <irq value="0xe"/>
                <irq value="0xf"/>
                <heap size="0x100000"/>
                <program file="/home/cheng/pistachio/OKL4/okl4_3.0/iguana_build/iguana/bin/event" name="event" priority="200" server="OKL4_EVENT_SERVER"/>
                <program file="/home/cheng/pistachio/OKL4/okl4_3.0/iguana_build/iguana/bin/vtimer" name="vtimer" priority="240" server="OKL4_VTIMER_SERVER">
                        <environment>
                                <entry cap="/dev/timer_dev" key="TIMER_RESOURCE"/>
                        </environment>
                        <virt_device name="vtimer0"/>
                        <virt_device name="vtimer1"/>
                </program>
                <program file="/home/cheng/pistachio/OKL4/okl4_3.0/iguana_build/iguana/bin/vserial" name="vserial" priority="110" server="OKL4_VSERIAL_SERVER">
                        <environment>
                                <entry cap="/dev/serial_dev" key="SERIAL_RESOURCE"/>
                                <entry cap="/dev/vtimer0" key="VTIMER"/>
                        </environment>
                        <virt_device name="vserial0"/>
                        <virt_device name="vserial1"/>
                </program>
        </iguana>
        <linux clists="256" file="/home/cheng/pistachio/OKL4/okl4_3.0/linux_build/oklinux/wombat/vmlinux" kernel_heap="0x400000" mutexes="256" name="oklinux0" spaces="256">
                <use_device name="vtimer0"/>
                <use_device name="vserial0"/>
                <environment>
                        <entry cap="heap/physical" key="heap_physical"/>
                </environment>
                <memsection align="0x200000" attach="rwx" cache_policy="strong" mem_type="virtual" name="dma_heap_segment" size="0x200000"/>
                <memsection attach="rwx" mem_type="virtual" name="vmalloc" size="0x200000"/>
                <stack size="0x2000"/>
                <heap attach="rwx" size="0x1400000"/>
                <commandline>
                        <arg value="vmlinux igms_name=ramdisk root=/dev/igms0 console=ttyAMA0,115200"/>
                </commandline>
                <memsection align="0x100000" file="/home/cheng/pistachio/OKL4/okl4_3.0/linux_build/linux/ext2ramdisk" name="rootfs"/>
        </linux>
        <linux clists="256" file="/home/cheng/pistachio/OKL4/okl4_3.0/linux_build/oklinux/wombat/vmlinux" kernel_heap="0x400000" mutexes="256" name="oklinux1" spaces="256">
                <use_device name="vtimer1"/>
                <use_device name="vserial1"/>
                <environment>
                        <entry cap="heap/physical" key="heap_physical"/>
                </environment>
                <memsection align="0x200000" attach="rwx" cache_policy="strong" mem_type="virtual" name="dma_heap_segment" size="0x200000"/>
                <memsection attach="rwx" mem_type="virtual" name="vmalloc" size="0x200000"/>
                <stack size="0x2000"/>
                <heap attach="rwx" size="0x1400000"/>
                <commandline>
                        <arg value="vmlinux igms_name=ramdisk root=/dev/igms0 console=ttyAMA0,115200"/>
                </commandline>
                <memsection align="0x100000" file="/home/cheng/pistachio/OKL4/okl4_3.0/linux_build/linux/ext2ramdisk" name="rootfs"/>
        </linux>
</image>

_______________________________________________
Developer mailing list
[hidden email]
https://lists.okl4.org/mailman/listinfo/developer