[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Loongson 2E boot failure
From: |
Vladimir 'φ-coder/phcoder' Serbinenko |
Subject: |
Re: Loongson 2E boot failure |
Date: |
Fri, 12 Aug 2011 14:55:29 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110626 Iceowl/1.0b2 Icedove/3.1.11 |
On 03.08.2011 13:21, Robert Millan wrote:
> 2011/7/26 Colin Watson <address@hidden>:
>>> 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