Genode 16.08 nova.iso rebooting on real Core 2 Duo after relocating modules

Paul Dufresne dufresnep at ...9...
Fri Sep 23 15:47:49 CEST 2016


2016-09-23 4:47 GMT-04:00 Christian Helmuth <christian.helmuth at ...1...>:
> Hello Paul,
>
> I like the approach of narrowing the issue with 'while(1);' and
> suggest to go further (see below).
>
> On Thu, Sep 22, 2016 at 10:02:51PM -0400, Paul Dufresne wrote:
>> /****
>> extern "C" INIT REGPARM (1)
>> void init (mword mbi)
>> {
>>
>>     // Setup 0-page and 1-page
>>     memset (reinterpret_cast<void *>(&PAGE_0),  0,  PAGE_SIZE);
>>     memset (reinterpret_cast<void *>(&PAGE_1), ~0u, PAGE_SIZE);
>>
>> //    Console::print ("paul1");
>>     for (void (**func)() = &CTORS_G; func != &CTORS_E; (*func++)()) ;
>> while(1);
>> ****/
>
> I'd move the 'while(1);' into the for loop like follows.
>
>     enum { STOP_AT = 0U };
>     unsigned i = 0;
>     for (void (**func)() = &CTORS_C; func != &CTORS_G; ) {
>         if (i == STOP_AT) while (1) ; ;
>         (*func++)();
>         ++i;
>     }
>
> In my case the ctors table has only 2 entries.
>
> Greets

With STOP_AT == 1 it hangs,
With STOP_AT == 2 it reboots.

I think I will mail you my hypervisor file (now compiled with STOP_AT
== 1) in case you want to check it.




More information about the users mailing list