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
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel