+2005-01-03 Hollis Blanchard <hollis@penguinppc.org>
+
+ * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
+ variable.
+ (find_options): New function.
+ (cmain): Call find_options.
+ * include/grub/powerpc/ieee1275/ieee1275.h
+ (grub_ieee1275_realmode): New extern variable.
+ * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
+ grub_map if grub_ieee1275_realmode is false.
+
2004-12-29 Marco Gerards <metgerards@student.han.nl>
* normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
/* cmain.c - Startup code for the PowerPC. */
/*
* GRUB -- GRand Unified Bootloader
- * Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ * Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
intptr_t (*grub_ieee1275_entry_fn) (void *);
grub_uint32_t grub_ieee1275_flags;
+int grub_ieee1275_realmode;
\f
+
+static void
+find_options (void)
+{
+ grub_ieee1275_phandle_t options;
+
+ grub_ieee1275_finddevice ("/options", &options);
+ grub_ieee1275_get_property (options, "real-mode?", &grub_ieee1275_realmode,
+ sizeof (grub_ieee1275_realmode), 0);
+}
+
/* Setup the argument vector and pass control over to the main
function. */
void
grub_ieee1275_entry_fn = (intptr_t (*)(void *)) r5;
}
+ find_options ();
+
/* If any argument was passed to the kernel (us), they are
put in the bootargs property of /chosen. The string can
be null (just the nul-character), so check that the size
/* ieee1275.h - Access the Open Firmware client interface. */
/*
* GRUB -- GRand Unified Bootloader
- * Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ * Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
extern intptr_t (*grub_ieee1275_entry_fn) (void *);
extern grub_uint32_t grub_ieee1275_flags;
+extern int grub_ieee1275_realmode;
/* Old World firmware fails seek when "dev:0" is opened. */
#define GRUB_IEEE1275_NO_PARTITION_0 0x1
/* openfw.c -- Open firmware support funtions. */
/*
* GRUB -- GRand Unified Bootloader
- * Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+ * Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
{
if (grub_ieee1275_claim (addr, size, 0, 0))
return -1;
- if (grub_map (addr, addr, size, 0x00))
+
+ if ((! grub_ieee1275_realmode) && grub_map (addr, addr, size, 0x00))
{
+ grub_printf ("map failed: address 0x%x, size 0x%x\n", addr, size);
grub_ieee1275_release (addr, size);
return -1;
}
+
return 0;
}