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