MMU issues with AM335X and 14.05

Bob Stewart robjsstewart at ...196...
Sun Aug 17 22:51:43 CEST 2014


Yes, Martin, I did a make clean after the pull. Still looking as to why 
the Arm namespace shows up above Genode. Let you when I find it.

Bob

On 08/17/2014 03:27 PM, Martin Stein wrote:
> Btw. hope you have done 'make clean' after your Makefile changes. 
> Otherwise this could cause the build system to act strange.
>
> On 17.08.2014 21:16, Martin Stein wrote:
>> Hi Bob,
>> Looks like there's a problem with the name spaces. Instead of being 
>> comprised by 'Arm', 'Genode' should be a top-level name space as well 
>> as 'Kernel'. I think it would be a good idea to investigate why the 
>> 'Arm' prefix is active at all at 'double_list.h:95'.
>>
>> Martin
>>
>> On 17.08.2014 18:57, Bob Stewart wrote:
>>> Hi Martin,
>>>     Been out-of-town for the past few days.
>>>
>>> I understand the changes due to issue 1199 and I did create the core 
>>> library make file (in base-hw/lib/mk/platform_bbb) for the platform 
>>> I'm working with before I left. Everything built ok until it got to 
>>> /cpu_session_component.c/ in the core library build section where 
>>> multiple errors occurred. The following error would indicate I'm 
>>> missing something fundamental:
>>>
>>> In file included from 
>>> /Work/Genode/genode-14.05/repos/base-hw/src/core/kernel/scheduler.h:19:0,
>>>                  from 
>>> /Work/Genode/genode-14.05/repos/base-hw/src/core/kernel/processor.h:21,
>>>                  from 
>>> /Work/Genode/genode-14.05/repos/base-hw/src/core/kernel/thread.h:21,
>>>                  from 
>>> /Work/Genode/genode-14.05/repos/base-hw/src/core/include/platform_thread.h:29,
>>>                  from 
>>> /Work/Genode/genode-14.05/repos/base/src/core/include/cpu_session_component.h:27,
>>>                  from 
>>> /Work/Genode/genode-14.05/repos/base/src/core/cpu_session_component.cc:21:
>>> /Work/Genode/genode-14.05/repos/base-hw/src/core/kernel/double_list.h: 
>>> In member function ???void 
>>> Arm::Kernel::Double_list<T>::insert_tail(Arm::Kernel::Double_list<T>::Item*)???:
>>> /Work/Genode/genode-14.05/repos/base-hw/src/core/kernel/double_list.h:95:4: 
>>> error: ???printf??? is not a member of ???Arm::Genode???
>>>
>>>
>>> Regarding the page fault in the ROM fs  initialization, I did not 
>>> isolate the route cause -- it appeared to be getting a low address 
>>> of 0x1000 and try to create a translation table entry with that. I 
>>> thought I saw some changes in the ROM area in the pull, so I was 
>>> going to get a clean build and then try again.
>>>
>>>     Bob
>>>
>>>
>>> On 08/13/2014 05:12 AM, Martin Stein wrote:
>>>> Hey Bob,
>>>>
>>>> The changes you're talking about originate from this issue: 
>>>> https://github.com/genodelabs/genode/issues/1199. Core now consists 
>>>> of a generic 'base-hw/src/core/target.mk' that solely defines the 
>>>> target name and a dependency to the library 'core'. All the other 
>>>> content that core is composed of resides in the variant 'core.mk' 
>>>> and 'core.inc' library-description files within 'base-hw/lib/mk' 
>>>> and its sub-directories (respectively 'core-*.mk' and 'core-*.inc' 
>>>> for libraries that are additions to the core library).
>>>> At the one hand these changes reduce redundancy and LOC count as 
>>>> hardware-specifics were split up more fine-grained when transfered 
>>>> into libraries, at the other hand we unified the scheme of handling 
>>>> orthogonal specifiers (see for example the core-trustzone* files 
>>>> that provide optional trustzone support for different platform 
>>>> specifiers). Apart from that, the commits didn't change that much 
>>>> regarding the substance of core.
>>>> I hope this short insight helps you applying your changes to the 
>>>> current state. If you have further questions on this don't hesitate 
>>>> to ask.
>>>>
>>>> Regarding the page fault: Does that mean that you were able to fix 
>>>> the fault?
>>>>
>>>> Cheers
>>>> Martin
>>>>
>>>> On 12.08.2014 23:41, Bob Stewart wrote:
>>>>> Martin,
>>>>>     Have not been able to build with the pull from the master 
>>>>> branch. Looks like there are changes to base-hw build that I've 
>>>>> not seen before.   The platform target.mk file now appear in a 
>>>>> repos//base-hw/lib/mk/ directory as core.mk. Is there 
>>>>> documentation on the changes? I searched the git repository but 
>>>>> couldn't find any.
>>>>>
>>>>>
>>>>> The mmu faulting address was coming from the creation of 
>>>>> Rom_modules in the ROM fs.
>>>>>
>>>>> Thanks,
>>>>>         Bob
>>>>>
>>>>> On 08/11/2014 09:03 AM, Bob Stewart wrote:
>>>>>>
>>>>>> Thanks for the quick reply, Martin.
>>>>>>
>>>>>> I'll pull the current master branch tomorrow and let you know if 
>>>>>> it fixes my issue.
>>>>>>
>>>>>> Thanks for the debugging tip on core faults.
>>>>>> My core-only mmio regions are the same as they were in 14.02 and 
>>>>>> unless the handling of the region has changed I should have the 
>>>>>> correct translation table entries. My PDBG output from the 
>>>>>> _mmu_exception method was:
>>>>>>
>>>>>> /void Kernel::Thread::_mmu_exception(): f_addr 0x1008 f_writes 
>>>>>> 0x1 f_pd 0x813d6004 f_signal 0x0 label core//
>>>>>> /
>>>>>> Looks like I've a problem with the fault address, so I'll keep 
>>>>>> digging to see where that is coming from.
>>>>>>
>>>>>> Thanks,
>>>>>>         Bob
>>>>>> On 08/11/2014 07:54 AM, Martin Stein wrote:
>>>>>>> Hi Bob,
>>>>>>>
>>>>>>> On 09.08.2014 22:21, Bob Stewart wrote:
>>>>>>>> I went back to the 14.05 issues today and found I could get the kernel
>>>>>>>> initialization to complete successfully if I reverted the S bit to
>>>>>>>> "unshared" in the memory attributes in a Section entry create. Prior to
>>>>>>>> 14.05 this bit was set to "unshared" and was presumably changed in 14.05
>>>>>>>> to allow for multiple processors accessing the same memory regions.
>>>>>>> We had an issue (https://github.com/genodelabs/genode/issues/1181)
>>>>>>> recently that the shared-bit should be set only when using SMP. The
>>>>>>> related changes are in the current state of our master branch
>>>>>>> (https://github.com/genodelabs/genode/tree/master) but not in version
>>>>>>> 14.05. Could you please give it a try?
>>>>>>>
>>>>>>>> In addition, after completing kernel initialization, core's "main"
>>>>>>>> function is entered, the info message for creating local services shows
>>>>>>>> up, a translation for the top of RAM (0x80000000) is created, then the
>>>>>>>> message "failed to communicate thread event" occurs and init is never
>>>>>>>> called. Any thoughts on why that message is appearing would be
>>>>>>>> appreciated. It appears to be coming from initialization of the root
>>>>>>>> interfaces.
>>>>>>> This seems to be a page fault in core. Normally core should never
>>>>>>> trigger a page fault because there's no one to handle it. So the kernel
>>>>>>> doesn't know who to inform about it and thus prints this message. To
>>>>>>> prevent this situation, memory regions statically needed by core
>>>>>>> (program image, MMIO regions) get mapped 1:1 in the 'Core_pd'
>>>>>>> constructor in 'base-hw/src/core/kernel/kernel.cc' using, among others,
>>>>>>> the platform specific method 'Platform::_core_only_mmio_regions'. I
>>>>>>> assume that your port misses a region in this function. You can get
>>>>>>> further information about the page fault by printing things like
>>>>>>> '_fault_addr', '_fault_writes', 'char const * Thread::label()', and
>>>>>>> 'unsigned long Thread::ip' in the method 'Thread::_mmu_exception()' in
>>>>>>> 'base-hw/src/core/arm/cpu_support.cc' right before '_fault.submit()'.
>>>>>>>
>>>>>>> Cheers
>>>>>>> Martin
>>>>>>>
>>>>>>> ------------------------------------------------------------------------------
>>>>>>> _______________________________________________
>>>>>>> genode-main mailing list
>>>>>>> genode-main at lists.sourceforge.net
>>>>>>> https://lists.sourceforge.net/lists/listinfo/genode-main
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> genode-main mailing list
>>>>> genode-main at lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/genode-main
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>>
>>>>
>>>> _______________________________________________
>>>> genode-main mailing list
>>>> genode-main at lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/genode-main
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>>
>>>
>>> _______________________________________________
>>> genode-main mailing list
>>> genode-main at lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/genode-main
>>
>>
>>
>> ------------------------------------------------------------------------------
>>
>>
>> _______________________________________________
>> genode-main mailing list
>> genode-main at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/genode-main
>
>
>
> ------------------------------------------------------------------------------
>
>
> _______________________________________________
> genode-main mailing list
> genode-main at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genode.org/pipermail/users/attachments/20140817/6f3afa41/attachment.html>


More information about the users mailing list