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.
This commit is contained in:
parent
6b8fd1c428
commit
ac507d1ba2
4 changed files with 33 additions and 4 deletions
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
||||||
|
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>
|
2004-12-29 Marco Gerards <metgerards@student.han.nl>
|
||||||
|
|
||||||
* normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
|
* normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* cmain.c - Startup code for the PowerPC. */
|
/* cmain.c - Startup code for the PowerPC. */
|
||||||
/*
|
/*
|
||||||
* GRUB -- GRand Unified Bootloader
|
* 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
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -37,8 +37,20 @@ struct module_info
|
||||||
intptr_t (*grub_ieee1275_entry_fn) (void *);
|
intptr_t (*grub_ieee1275_entry_fn) (void *);
|
||||||
|
|
||||||
grub_uint32_t grub_ieee1275_flags;
|
grub_uint32_t grub_ieee1275_flags;
|
||||||
|
int grub_ieee1275_realmode;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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
|
/* Setup the argument vector and pass control over to the main
|
||||||
function. */
|
function. */
|
||||||
void
|
void
|
||||||
|
@ -72,6 +84,8 @@ cmain (uint32_t r3, uint32_t r4 __attribute__((unused)), uint32_t r5)
|
||||||
grub_ieee1275_entry_fn = (intptr_t (*)(void *)) r5;
|
grub_ieee1275_entry_fn = (intptr_t (*)(void *)) r5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
find_options ();
|
||||||
|
|
||||||
/* If any argument was passed to the kernel (us), they are
|
/* If any argument was passed to the kernel (us), they are
|
||||||
put in the bootargs property of /chosen. The string can
|
put in the bootargs property of /chosen. The string can
|
||||||
be null (just the nul-character), so check that the size
|
be null (just the nul-character), so check that the size
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* ieee1275.h - Access the Open Firmware client interface. */
|
/* ieee1275.h - Access the Open Firmware client interface. */
|
||||||
/*
|
/*
|
||||||
* GRUB -- GRand Unified Bootloader
|
* 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
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -66,6 +66,7 @@ typedef intptr_t grub_ieee1275_phandle_t;
|
||||||
|
|
||||||
extern intptr_t (*grub_ieee1275_entry_fn) (void *);
|
extern intptr_t (*grub_ieee1275_entry_fn) (void *);
|
||||||
extern grub_uint32_t grub_ieee1275_flags;
|
extern grub_uint32_t grub_ieee1275_flags;
|
||||||
|
extern int grub_ieee1275_realmode;
|
||||||
|
|
||||||
/* Old World firmware fails seek when "dev:0" is opened. */
|
/* Old World firmware fails seek when "dev:0" is opened. */
|
||||||
#define GRUB_IEEE1275_NO_PARTITION_0 0x1
|
#define GRUB_IEEE1275_NO_PARTITION_0 0x1
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/* openfw.c -- Open firmware support funtions. */
|
/* openfw.c -- Open firmware support funtions. */
|
||||||
/*
|
/*
|
||||||
* GRUB -- GRand Unified Bootloader
|
* 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
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -189,10 +189,13 @@ grub_claimmap (grub_addr_t addr, grub_size_t size)
|
||||||
{
|
{
|
||||||
if (grub_ieee1275_claim (addr, size, 0, 0))
|
if (grub_ieee1275_claim (addr, size, 0, 0))
|
||||||
return -1;
|
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);
|
grub_ieee1275_release (addr, size);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue