2016-09-23 14:20 GMT-04:00 Christian Helmuth <christian.helm...@genode-labs.com>: ... > So your reboot is induced by Console_vga::Console_vga() in > src/console_vga.cpp. You may now proceed with moving 'while(1);' into > the constructor function. ... Good! So it seems to be that line in console_vga.cpp: Pd::kern.Space_mem::insert (Pd::kern.quota, HV_GLOBAL_FBUF, 0, Hpt::HPT_NX | Hpt::HPT_G | Hpt::HPT_UC | Hpt::HPT_W | Hpt::HPT_P, 0xb9000);
I believe 0xb9000 is supposed to be text mode EGA/VGA page 2. Anyway.... in include/space_mem.hpp: the insert become: ALWAYS_INLINE inline void insert (Quota "a, mword virt, unsigned o, mword attr, Paddr phys) { hpt.update (quota, virt, o, phys, attr); } I am beginning to ask myself if I was not expecting the size of a color text video page of 0x80x0x25 for quota... Hpt constructor seems to inherit from pte pte.cpp have an update template: template <typename P, typename E, unsigned L, unsigned B, bool F> bool Pte<P,E,L,B,F>::update (Quota "a, E v, mword o, E p, mword a, Type t) { unsigned long l = o / B, n = 1UL << o % B, s; P *e = walk (quota, v, l, t == TYPE_UP); if (!e) return false; if (a) { p |= P::order (o % B) | (l ? P::PTE_S : 0) | a; s = 1UL << (l * B + PAGE_BITS); } else p = s = 0; bool flush_tlb = false; for (unsigned long i = 0; i < n; e[i].val = p, i++, p += s) { *********************** I begin to feel lost... might try to put my while(1) in that but I really not sure I am on the right trail. ------------------------------------------------------------------------------ _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main