2008-01-20 Robert Millan <rmh@aybabtu.com>

Fix detection of "real mode" when /options/real-mode? doesn't exist.

        * include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable
        declaration.
        * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable.
        (grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set
        `GRUB_IEEE1275_FLAG_REAL_MODE'.
        (cmain): Intialize `grub_ieee1275_mmu' (using /chosen/mmu integer
        property).
        * kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized
        `grub_ieee1275_mmu' rather than obtaining a handler on every call.
This commit is contained in:
robertmh 2008-01-20 14:08:54 +00:00
parent 33bf70a759
commit 0bf74728de
4 changed files with 22 additions and 9 deletions

View file

@ -200,17 +200,10 @@ grub_map (grub_addr_t phys, grub_addr_t virt, grub_uint32_t size,
grub_uint32_t phys;
int catch_result;
} args;
grub_ieee1275_ihandle_t mmu;
int len;
grub_ieee1275_get_integer_property (grub_ieee1275_chosen, "mmu", &mmu, sizeof mmu,
&len);
if (len != sizeof mmu)
return -1;
INIT_IEEE1275_COMMON (&args.common, "call-method", 6, 1);
args.method = "map";
args.ihandle = mmu;
args.ihandle = grub_ieee1275_mmu;
args.phys = phys;
args.virt = virt;
args.size = size;