<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Hi Bob,<br>
      For a first idea of mine, could you please execute the following
      command on your Genode branch:<br>
      <br>
      git log | grep "get a thread cap in Thread_base constructor"<br>
      <br>
      Recently, there was a bug in the thread back-end of base-hw that
      triggered errors like yours. The above command should print the
      headline of two corresponding commits (we had to fix it twice
      because of conversation problems).<br>
      <br>
      Furthermore, the method 'Kernel::Thread::_print_activity_table()'
      in 'base-hw/src/core/kernel/thread.cc' may help you. It prints all
      threads that are registered at the kernel. However, you should
      call it when you're inside the kernel. I suggest to call it at the
      beginning or the end (not in between as this might corrupt thread
      states) of an appropriate syscall back end
      ('Kernel::Thread::_call_*' in
      'base-hw/src/core/kernel/thread.cc'). By instrumenting the syscall
      back ends you can also easily trace when which thread gets
      created.<br>
      <br>
      Cheers,<br>
      Martin<br>
      <br>
      On 18.08.2014 22:33, Bob Stewart wrote:<br>
    </div>
    <blockquote cite="mid:53F262FF.70802@...196..." type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      <div class="moz-cite-prefix">Martin,<br>
        It appears that an Rpc entrypoint thread is successfully created
        (with id 0x0f) in the Platform_thread constructor, but when the
        thread is started a call to acess thread registers fails because
        an object with that id cannot be found in the thread object
        pool.<br>
        <br>
        Bob<br>
        <br>
        On 08/18/2014 11:33 AM, Bob Stewart wrote:<br>
      </div>
      <blockquote cite="mid:53F21CB0.80606@...196..." type="cite">
        <meta content="text/html; charset=ISO-8859-1"
          http-equiv="Content-Type">
        <div class="moz-cite-prefix">Martin,<br>
              With the pull from early last week (before Norman's
          announcement of some of the commits for 14.08), the issue with
          the ROM fs initialization has gone. The memory allocation
          looks correct, as far as I can tell:<br>
          <br>
          Core virtual memory allocator<br>
          ---------------------<br>
          Allocator 810d1850 dump:<br>
           Block: [00001000,00002000) size=00001000 avail=00000000
          max_avail=00000000<br>
           Block: [00002000,00003000) size=00001000 avail=00000000
          max_avail=00000000<br>
           Block: [00003000,00004000) size=00001000 avail=00000000
          max_avail=00000000<br>
           Block: [00004000,00005000) size=00001000 avail=00000000
          max_avail=00000000<br>
           Block: [00005000,00006000) size=00001000 avail=00000000
          max_avail=00000000<br>
           Block: [00006000,00007000) size=00001000 avail=00000000
          max_avail=80ff3000<br>
           Block: [00007000,00008000) size=00001000 avail=00000000
          max_avail=00000000<br>
           Block: [00008000,00009000) size=00001000 avail=00000000
          max_avail=00000000<br>
           Block: [00009000,0000a000) size=00001000 avail=00000000
          max_avail=80ff3000<br>
           Block: [0000a000,0000b000) size=00001000 avail=00000000
          max_avail=00000000<br>
           Block: [0000b000,0000c000) size=00001000 avail=00000000
          max_avail=80ff3000<br>
           Block: [0000c000,0000d000) size=00001000 avail=00000000
          max_avail=00000000<br>
           Block: [0000d000,81000000) size=80ff3000 avail=80ff3000
          max_avail=80ff3000<br>
           Block: [8139d000,ffff0000) size=7ec53000 avail=7ec53000
          max_avail=7ec53000<br>
           => mem_size=4291108864 (4092 MB) / mem_avail=4291059712
          (4092 MB)<br>
          <br>
          RAM memory allocator<br>
          ---------------------<br>
          Allocator 810d07f4 dump:<br>
           Block: [80000000,80001000) size=00001000 avail=00000000
          max_avail=00000000<br>
           Block: [80001000,80002000) size=00001000 avail=00000000
          max_avail=00000000<br>
           Block: [80002000,80003000) size=00001000 avail=00000000
          max_avail=00000000<br>
           Block: [80003000,80004000) size=00001000 avail=00000000
          max_avail=00000000<br>
           Block: [80004000,80005000) size=00001000 avail=00000000
          max_avail=00000000<br>
           Block: [80005000,80006000) size=00001000 avail=00000000
          max_avail=1ec63000<br>
           Block: [80006000,80007000) size=00001000 avail=00000000
          max_avail=00000000<br>
           Block: [80007000,80008000) size=00001000 avail=00000000
          max_avail=00000000<br>
           Block: [80008000,80009000) size=00001000 avail=00000000
          max_avail=1ec63000<br>
           Block: [80009000,8000a000) size=00001000 avail=00000000
          max_avail=00000000<br>
           Block: [8000a000,8000b000) size=00001000 avail=00000000
          max_avail=1ec63000<br>
           Block: [8000b000,8000c000) size=00001000 avail=00000000
          max_avail=00000000<br>
           Block: [8000c000,81000000) size=00ff4000 avail=00ff4000
          max_avail=1ec63000<br>
           Block: [8139d000,a0000000) size=1ec63000 avail=1ec63000
          max_avail=1ec63000<br>
           => mem_size=533082112 (508 MB) / mem_avail=533032960 (508
          MB)<br>
          <br>
          IO memory allocator<br>
          -------------------<br>
          Allocator 810d28b8 dump:<br>
           Block: [44c00000,44e05000) size=00205000 avail=00205000
          max_avail=00205000<br>
           Block: [44e06000,44e09000) size=00003000 avail=00003000
          max_avail=00205000<br>
           Block: [44e0a000,45000000) size=001f6000 avail=001f6000
          max_avail=001f6000<br>
           Block: [47400000,47820000) size=00420000 avail=00420000
          max_avail=00dff000<br>
           Block: [48000000,48200000) size=00200000 avail=00200000
          max_avail=00dff000<br>
           Block: [48201000,49000000) size=00dff000 avail=00dff000
          max_avail=00dff000<br>
           => mem_size=25284608 (24 MB) / mem_avail=25284608 (24 MB)<br>
          <br>
          IRQ allocator<br>
          -------------------<br>
          Allocator 810d3914 dump:<br>
           Block: [00000000,0000007f) size=0000007f avail=0000007f
          max_avail=0000007f<br>
           => mem_size=127 (0 MB) / mem_avail=127 (0 MB)<br>
          <br>
          ROM filesystem<br>
          --------------<br>
          Rom_fs 810d4954 dump:<br>
           Rom: [810fb000,8113a9e8) init<br>
           Rom: [81175000,811b1ad0) bbb_platform_client<br>
           Rom: [81275000,812a9980) bbb_heart_beat_led<br>
           Rom: [81361000,8139bb30) Autopilot<br>
           Rom: [81233000,812740c8) ctl_module_drv<br>
           Rom: [8139c000,8139ca80) config<br>
           Rom: [811b2000,811f445c) gpio_drv<br>
           Rom: [812aa000,812e8174) pwm_drv<br>
           Rom: [8113b000,81174b6c) platform_drv<br>
           Rom: [811f5000,81232720) timer<br>
           Rom: [8132a000,81360944) sd_card_bench<br>
           Rom: [812e9000,81329164) uart_drv<br>
          <br>
          I'm now into some threading issues which I'll pursue today (I
          get the messages unknown thread, failed to initialize thread
          registers, and failed to start thread after the ROM
          initialization).<br>
          <br>
          Looking at all of the changes in the current master git
          repository, in the area of code I've just gone through, I
          think I should just do another pull from master, unless the
          there are more commits coming in this area before the official
          release of 14.08. I'll find out what's going with this thread
          issue anyway.<br>
          <br>
          Bob<br>
          <br>
          <br>
          On 08/17/2014 06:56 PM, Bob Stewart wrote:<br>
        </div>
        <blockquote cite="mid:53F1333A.6050101@...196..." type="cite">
          <meta content="text/html; charset=ISO-8859-1"
            http-equiv="Content-Type">
          <div class="moz-cite-prefix">Oops, looked like I stomped on
            the closing brace in the Namespace Arm declaration in
            .../core/processor_driver/arm.h during a merge. Not sure why
            the compiler didn't catch that, but the core library now
            builds. I've one issue with an application module which I'll
            fix tomorrow then get to test the kernel start up again.<br>
            <br>
            Thanks,<br>
                    Bob<br>
            <br>
            <br>
            On 08/17/2014 04:51 PM, Bob Stewart wrote:<br>
          </div>
          <blockquote cite="mid:53F115DF.6000804@...196..."
            type="cite">
            <meta content="text/html; charset=ISO-8859-1"
              http-equiv="Content-Type">
            <div class="moz-cite-prefix">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.<br>
              <br>
              Bob<br>
              <br>
              On 08/17/2014 03:27 PM, Martin Stein wrote:<br>
            </div>
            <blockquote cite="mid:53F1021F.5020805@...1..."
              type="cite">
              <meta content="text/html; charset=ISO-8859-1"
                http-equiv="Content-Type">
              <div class="moz-cite-prefix">Btw. hope you have done 'make
                clean' after your Makefile changes. Otherwise this could
                cause the build system to act strange.<br>
                <br>
                On 17.08.2014 21:16, Martin Stein wrote:<br>
              </div>
              <blockquote cite="mid:53F0FFA3.9070102@...1..."
                type="cite">
                <meta content="text/html; charset=ISO-8859-1"
                  http-equiv="Content-Type">
                <div class="moz-cite-prefix">Hi Bob,<br>
                  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'.<br>
                  <br>
                  Martin<br>
                  <br>
                  On 17.08.2014 18:57, Bob Stewart wrote:<br>
                </div>
                <blockquote cite="mid:53F0DF12.3040105@...196..."
                  type="cite">
                  <meta content="text/html; charset=ISO-8859-1"
                    http-equiv="Content-Type">
                  <div class="moz-cite-prefix">Hi Martin,<br>
                        Been out-of-town for the past few days.<br>
                    <br>
                    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 <i>cpu_session_component.c</i> in
                    the core library build section where multiple errors
                    occurred. The following error would indicate I'm
                    missing something fundamental:<br>
                    <br>
                    In file included from
/Work/Genode/genode-14.05/repos/base-hw/src/core/kernel/scheduler.h:19:0,<br>
                                     from
                    /Work/Genode/genode-14.05/repos/base-hw/src/core/kernel/processor.h:21,<br>
                                     from
                    /Work/Genode/genode-14.05/repos/base-hw/src/core/kernel/thread.h:21,<br>
                                     from
/Work/Genode/genode-14.05/repos/base-hw/src/core/include/platform_thread.h:29,<br>
                                     from
/Work/Genode/genode-14.05/repos/base/src/core/include/cpu_session_component.h:27,<br>
                                     from
/Work/Genode/genode-14.05/repos/base/src/core/cpu_session_component.cc:21:<br>
                    /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*)���:<br>
                    /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���<br>
                    <br>
                    <br>
                    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.<br>
                    <br>
                        Bob<br>
                    <br>
                    <br>
                    On 08/13/2014 05:12 AM, Martin Stein wrote:<br>
                  </div>
                  <blockquote
                    cite="mid:53EB2C18.7090008@...1..."
                    type="cite">
                    <meta content="text/html; charset=ISO-8859-1"
                      http-equiv="Content-Type">
                    <div class="moz-cite-prefix">Hey Bob,<br>
                      <br>
                      The changes you're talking about originate from
                      this issue: <a moz-do-not-send="true"
                        class="moz-txt-link-freetext"
                        href="https://github.com/genodelabs/genode/issues/1199">https://github.com/genodelabs/genode/issues/1199</a>.
                      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).<br>
                      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.<br>
                      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.<br>
                      <br>
                      Regarding the page fault: Does that mean that you
                      were able to fix the fault?<br>
                      <br>
                      Cheers<br>
                      Martin<br>
                      <br>
                      On 12.08.2014 23:41, Bob Stewart wrote:<br>
                    </div>
                    <blockquote cite="mid:53EA8A21.1040809@...196..."
                      type="cite">
                      <meta content="text/html; charset=ISO-8859-1"
                        http-equiv="Content-Type">
                      <div class="moz-cite-prefix">Martin,<br>
                            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.<br>
                        <br>
                        <br>
                        The mmu faulting address was coming from the
                        creation of Rom_modules in the ROM fs.<br>
                        <br>
                        Thanks,<br>
                                Bob<br>
                        <br>
                        On 08/11/2014 09:03 AM, Bob Stewart wrote:<br>
                      </div>
                      <blockquote
                        cite="mid:53E8BF22.5070805@...196..."
                        type="cite">
                        <meta content="text/html; charset=ISO-8859-1"
                          http-equiv="Content-Type">
                        <div class="moz-cite-prefix"><br>
                          Thanks for the quick reply, Martin.<br>
                          <br>
                          I'll pull the current master branch tomorrow
                          and let you know if it fixes my issue.<br>
                          <br>
                          Thanks for the debugging tip on core faults. <br>
                          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:<br>
                          <br>
                          <i>void Kernel::Thread::_mmu_exception():
                            f_addr 0x1008 f_writes 0x1 f_pd 0x813d6004
                            f_signal 0x0 label core</i><i><br>
                          </i><br>
                          Looks like I've a problem with the fault
                          address, so I'll keep digging to see where
                          that is coming from.<br>
                          <br>
                          Thanks,<br>
                                  Bob<br>
                          On 08/11/2014 07:54 AM, Martin Stein wrote:<br>
                        </div>
                        <blockquote
                          cite="mid:53E8AEDC.5080800@...1..."
                          type="cite">
                          <pre wrap="">Hi Bob,

On 09.08.2014 22:21, Bob Stewart wrote:
</pre>
                          <blockquote type="cite">
                            <pre wrap="">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.
</pre>
                          </blockquote>
                          <pre wrap="">We had an issue (<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://github.com/genodelabs/genode/issues/1181">https://github.com/genodelabs/genode/issues/1181</a>)
recently that the shared-bit should be set only when using SMP. The
related changes are in the current state of our master branch
(<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://github.com/genodelabs/genode/tree/master">https://github.com/genodelabs/genode/tree/master</a>) but not in version
14.05. Could you please give it a try?

</pre>
                          <blockquote type="cite">
                            <pre wrap="">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.
</pre>
                          </blockquote>
                          <pre wrap="">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
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:genode-main@lists.sourceforge.net">genode-main@lists.sourceforge.net</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/genode-main">https://lists.sourceforge.net/lists/listinfo/genode-main</a>

</pre>
                        </blockquote>
                        <br>
                      </blockquote>
                    </blockquote>
                  </blockquote>
                  <blockquote
                    cite="mid:53EB2C18.7090008@...1..."
                    type="cite">
                    <blockquote cite="mid:53EA8A21.1040809@...196..."
                      type="cite">
                      <blockquote
                        cite="mid:53E8BF22.5070805@...196..."
                        type="cite"> </blockquote>
                      <br>
                      <br>
                      <fieldset class="mimeAttachmentHeader"></fieldset>
                      <br>
                      <pre wrap="">------------------------------------------------------------------------------
</pre>
                      <br>
                      <fieldset class="mimeAttachmentHeader"></fieldset>
                      <br>
                      <pre wrap="">_______________________________________________
genode-main mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:genode-main@lists.sourceforge.net">genode-main@lists.sourceforge.net</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/genode-main">https://lists.sourceforge.net/lists/listinfo/genode-main</a>
</pre>
                    </blockquote>
                    <br>
                    <br>
                    <fieldset class="mimeAttachmentHeader"></fieldset>
                    <br>
                    <pre wrap="">------------------------------------------------------------------------------
</pre>
                    <br>
                    <fieldset class="mimeAttachmentHeader"></fieldset>
                    <br>
                    <pre wrap="">_______________________________________________
genode-main mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:genode-main@lists.sourceforge.net">genode-main@lists.sourceforge.net</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/genode-main">https://lists.sourceforge.net/lists/listinfo/genode-main</a>
</pre>
                  </blockquote>
                  <br>
                  <br>
                  <fieldset class="mimeAttachmentHeader"></fieldset>
                  <br>
                  <pre wrap="">------------------------------------------------------------------------------
</pre>
                  <br>
                  <fieldset class="mimeAttachmentHeader"></fieldset>
                  <br>
                  <pre wrap="">_______________________________________________
genode-main mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:genode-main@lists.sourceforge.net">genode-main@lists.sourceforge.net</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/genode-main">https://lists.sourceforge.net/lists/listinfo/genode-main</a>
</pre>
                </blockquote>
                <br>
                <br>
                <fieldset class="mimeAttachmentHeader"></fieldset>
                <br>
                <pre wrap="">------------------------------------------------------------------------------
</pre>
                <br>
                <fieldset class="mimeAttachmentHeader"></fieldset>
                <br>
                <pre wrap="">_______________________________________________
genode-main mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:genode-main@lists.sourceforge.net">genode-main@lists.sourceforge.net</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/genode-main">https://lists.sourceforge.net/lists/listinfo/genode-main</a>
</pre>
              </blockquote>
              <br>
              <br>
              <fieldset class="mimeAttachmentHeader"></fieldset>
              <br>
              <pre wrap="">------------------------------------------------------------------------------
</pre>
              <br>
              <fieldset class="mimeAttachmentHeader"></fieldset>
              <br>
              <pre wrap="">_______________________________________________
genode-main mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:genode-main@lists.sourceforge.net">genode-main@lists.sourceforge.net</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/genode-main">https://lists.sourceforge.net/lists/listinfo/genode-main</a>
</pre>
            </blockquote>
            <br>
          </blockquote>
          <br>
        </blockquote>
        <br>
      </blockquote>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">------------------------------------------------------------------------------
</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
genode-main mailing list
<a class="moz-txt-link-abbreviated" href="mailto:genode-main@lists.sourceforge.net">genode-main@lists.sourceforge.net</a>
<a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/genode-main">https://lists.sourceforge.net/lists/listinfo/genode-main</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>