* boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
(grub_ieee1275_chosen): New variable.
(cmain): Initialize and use `grub_ieee1275_chosen' instead of
`chosen'.
* boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
* boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
Rename first argument to `phandle' for consistency.
(grub_ieee1275_get_property_length): Likewise.
(grub_ieee1275_next_property): Likewise. Change type of first argument
to grub_ieee1275_phandle_t.
* include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
Move export next to declaration.
(grub_ieee1275_chosen): New variable.
* include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
Correct cosmetic typo.
* kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
`grub_ieee1275_chosen'.
* kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
* loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
(grub_rescue_cmd_linux): Set `initrd_addr' to 0.
* term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
`grub_ieee1275_chosen'.
+2005-05-08 Hollis Blanchard <hollis@penguinppc.org>
+
+ * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
+ (grub_ieee1275_chosen): New variable.
+ (cmain): Initialize and use `grub_ieee1275_chosen' instead of
+ `chosen'.
+ * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
+ * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
+ Rename first argument to `phandle' for consistency.
+ (grub_ieee1275_get_property_length): Likewise.
+ (grub_ieee1275_next_property): Likewise. Change type of first argument
+ to grub_ieee1275_phandle_t.
+ * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
+ Move export next to declaration.
+ (grub_ieee1275_chosen): New variable.
+ * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
+ Correct cosmetic typo.
+ * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
+ `grub_ieee1275_chosen'.
+ * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
+ * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
+ (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
+ * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
+ `grub_ieee1275_chosen'.
+
2005-05-10 Hollis Blanchard <hollis@penguinppc.org>
* boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
#include <grub/machine/ieee1275.h>
#include <grub/kernel.h>
-struct module_info
-{
- uint32_t start;
- uint32_t end;
-};
-
/* OpenFirmware entry point passed to us from the real bootloader. */
intptr_t (*grub_ieee1275_entry_fn) (void *);
+grub_ieee1275_phandle_t grub_ieee1275_chosen;
+
static grub_uint32_t grub_ieee1275_flags;
\f
bl cmain
1: b 1b
-
- .section ".bss"
- .lcomm _ppc_init_stack, 4096*2, 16
-init_stack:
-
}
int
-grub_ieee1275_get_property (grub_ieee1275_phandle_t handle,
+grub_ieee1275_get_property (grub_ieee1275_phandle_t phandle,
const char *property, void *buf,
grub_size_t size, grub_size_t *actual)
{
} args;
INIT_IEEE1275_COMMON (&args.common, "getprop", 4, 1);
- args.phandle = handle;
+ args.phandle = phandle;
args.prop = property;
args.buf = buf;
args.buflen = size;
}
int
-grub_ieee1275_next_property (int handle, char *prev_prop, char *prop,
- int *flags)
+grub_ieee1275_next_property (grub_ieee1275_phandle_t phandle, char *prev_prop,
+ char *prop, int *flags)
{
struct get_property_args {
struct grub_ieee1275_common_hdr common;
} args;
INIT_IEEE1275_COMMON (&args.common, "nextprop", 3, 1);
- args.phandle = handle;
+ args.phandle = phandle;
args.prev_prop = prev_prop;
args.next_prop = prop;
args.flags = -1;
}
int
-grub_ieee1275_get_property_length (grub_ieee1275_phandle_t handle,
+grub_ieee1275_get_property_length (grub_ieee1275_phandle_t phandle,
const char *prop, grub_size_t *length)
{
struct get_property_args {
} args;
INIT_IEEE1275_COMMON (&args.common, "getproplen", 2, 1);
- args.phandle = handle;
+ args.phandle = phandle;
args.prop = prop;
args.length = -1;
unsigned int size;
};
-extern intptr_t(* EXPORT_VAR(grub_ieee1275_entry_fn)) (void *);
-
#ifndef IEEE1275_CALL_ENTRY_FN
#define IEEE1275_CALL_ENTRY_FN(args) (*grub_ieee1275_entry_fn) (args)
#endif
typedef intptr_t grub_ieee1275_ihandle_t;
typedef intptr_t grub_ieee1275_phandle_t;
+extern grub_ieee1275_phandle_t grub_ieee1275_chosen;
+extern grub_ieee1275_phandle_t EXPORT_VAR(grub_ieee1275_chosen);
extern intptr_t (*grub_ieee1275_entry_fn) (void *);
+extern intptr_t (* EXPORT_VAR(grub_ieee1275_entry_fn)) (void *);
enum grub_ieee1275_flag
{
#define GRUB_KERNEL_MACHINE_HEADER 1
/* Where grub-mkimage places the core modules in memory. */
-#define GRUB_IEEE1275_MODULE_BASE 0x0300000
+#define GRUB_IEEE1275_MODULE_BASE 0x00300000
#endif /* ! GRUB_KERNEL_MACHINE_HEADER */
char bootpath[64]; /* XXX check length */
char *filename;
char *prefix;
- grub_ieee1275_phandle_t chosen;
- grub_ieee1275_finddevice ("/chosen", &chosen);
- if (grub_ieee1275_get_property (chosen, "bootpath", &bootpath,
+ if (grub_ieee1275_get_property (grub_ieee1275_chosen, "bootpath", &bootpath,
sizeof (bootpath), 0))
{
/* Should never happen. */
int catch_result;
} args;
grub_ieee1275_ihandle_t mmu;
- grub_ieee1275_ihandle_t chosen;
int len;
- grub_ieee1275_finddevice ("/chosen", &chosen);
- if (chosen == 0)
- return -1;
-
- grub_ieee1275_get_property (chosen, "mmu", &mmu, sizeof mmu, &len);
+ grub_ieee1275_get_property (grub_ieee1275_chosen, "mmu", &mmu, sizeof mmu,
+ &len);
if (len != sizeof mmu)
return -1;
grub_linux_boot (void)
{
kernel_entry_t linuxmain;
- grub_ieee1275_phandle_t chosen;
grub_size_t actual;
- grub_ieee1275_finddevice ("/chosen", &chosen);
-
/* Set the command line arguments. */
- grub_ieee1275_set_property (chosen, "bootargs", linux_args,
+ grub_ieee1275_set_property (grub_ieee1275_chosen, "bootargs", linux_args,
grub_strlen (linux_args) + 1, &actual);
/* Boot the kernel. */
else
{
grub_loader_set (grub_linux_boot, grub_linux_unload);
- initrd_addr = 0xc0000000;
+ initrd_addr = 0;
loaded = 1;
}
static grub_err_t
grub_ofconsole_init (void)
{
- grub_ieee1275_phandle_t chosen;
char data[4];
grub_size_t actual;
int col;
- if (grub_ieee1275_finddevice ("/chosen", &chosen))
- return grub_error (GRUB_ERR_UNKNOWN_DEVICE, "Cannot find /chosen");
-
- if (grub_ieee1275_get_property (chosen, "stdout", data, sizeof data,
- &actual)
+ if (grub_ieee1275_get_property (grub_ieee1275_chosen, "stdout", data,
+ sizeof data, &actual)
|| actual != sizeof data)
return grub_error (GRUB_ERR_UNKNOWN_DEVICE, "Cannot find stdout");
stdout_ihandle = grub_ieee1275_decode_int_4 (data);
- if (grub_ieee1275_get_property (chosen, "stdin", data, sizeof data,
- &actual)
+ if (grub_ieee1275_get_property (grub_ieee1275_chosen, "stdin", data,
+ sizeof data, &actual)
|| actual != sizeof data)
return grub_error (GRUB_ERR_UNKNOWN_DEVICE, "Cannot find stdin");