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);



-- 
Regards
Vladimir 'φ-coder/phcoder' Serbinenko


Attachment: signature.asc
Description: OpenPGP digital signature

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

Reply via email to