Hi Stefan, I am working along with Chirag to port Genode on imx6.
We inserted the existing RAM regions in Platform::_ram_regions.( We rechecked it with linux kernel source code for imx6) But still we are getting page fault on every access to new Rom_module.
I tried to track the memory allocation what I understood is, In map_local() call, when inserting into page tables in "_insert_second_level()" function in short_translation_table.h file of base-hw, slab->phys_addr() and slab->virt_addr() return 0 after kernel initialization. So it creates a new page table and inserting into it. Inserting the same values(phys:10000000, virt:1000) as arguments of map_local() function in platform.cc. When I print the address of new page table created, I found that it is in the range of Program Image.(address of pt is 10159000, and program image range is (10001000-10189fa4).
I wonder if the memory allotted is clashing with program memory. Or, Can it be the issue with MMDC controller of imx6? Because no other board in base-hw uses MMDC controller, do we need to implement the interface for MMDC in imx6?
Thanks and Regards
Praveen, IIT Madras
On Tue, Jul 29, 2014 at 6:43 PM, Stefan Kalkowski < stefan.kalkowski@...1...> wrote:
Hi,
On 07/28/2014 11:28 AM, chirag garg wrote:
Hi stefan,
Thanks a lot in Advance,
We are trying to debug the " Failed to communicate Thread Event ". And we found that Platform is not getting Initialized, we are facing Problem in the Platform constructor located in file : base-hw/src/coe/platform.cc
In the Platform () constructor
Rom_module * rom_module = new (core_mem_alloc()) Rom_module(header->base, header->size, (const char*)header->name);
is not getting executed(giving page fault) . Do you know what could be
the
problem ?
Do you've inserted the right existent RAM regions within your Platform::_ram_regions definitions? If you added incorrect RAM regions the "core_mem_alloc()" allocator of core will insert invalid page table entries in kernel/core's page table, and any access to the memory of the new Rom_module (returned by core_mem_alloc()) will fault.
But it's just guessing. Again, it is up to you to investigate what exact memory access is responsible for the fault.
Regards Stefan
Regards
Chirag Garg IIT Madras , Rise Lab
Infragistics Professional Build stunning WinForms apps today! Reboot your WinForms applications with our WinForms controls. Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.cl...
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
-- Stefan Kalkowski Genode Labs
http://www.genode-labs.com/ · http://genode.org/
Infragistics Professional Build stunning WinForms apps today! Reboot your WinForms applications with our WinForms controls. Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.cl... _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main