* Vladimir 'φ-coder/phcoder' Serbinenko (phco...@gmail.com) [110812 15:15]:
> On 03.08.2011 13:21, Robert Millan wrote:
> > 2011/7/26 Colin Watson <cjwat...@ubuntu.com>:
> >>> Looks like memory allocations are wrong. Try hardcoding heap at e.g.
> >>> 81000000-82000000
> >> Sorry, I've not had to mess with this before.  Can you point me to what
> >> I'd need to change to hardcode a specific heap region?
> > Try replacing grub_machine_mmap_iterate() with something like:
> >
> > grub_err_t
> > grub_machine_mmap_iterate (grub_memory_hook_t hook)
> > {
> >   hook (0x81000000, 82000000, GRUB_MEMORY_AVAILABLE);
> >   return GRUB_ERR_NONE;
> > }
> >
> This code is wrong for at least 4 reasons:
> 1) 0x8.... is just to access kseg0, it's not part of physical address
> 2) second argument is a size, not end
> 3) and it's lacking 0x
> 4) on yeeloong memory init doesn't use mmap.
> Correct way is to replace:
>   grub_mm_init_region ((void *) modend, (grub_arch_memsize << 20)
>                - (modend - GRUB_ARCH_LOWMEMVSTART));
> with:
>   grub_mm_init_region (0x81000000, 16 << 20);

No real behaviour change - still fails within grub_font_init (using
the for(;;);-method).

Only change compared with
http://lists.gnu.org/archive/html/grub-devel/2011-07/msg00085.html is
that the last line on the vga console is now
80211ebc 7091181e .word   7091181e     # ...p



Andi

_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to