From 5f5a7c1518c2587fcfebfe8fb1d9ff844777b0c3 Mon Sep 17 00:00:00 2001 From: robertmh Date: Sat, 19 Jan 2008 11:41:00 +0000 Subject: [PATCH] 2008-01-19 Robert Millan PowerPC changes provided by Pavel Roskin. * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments. * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn, don't rely on cmain() doing it. * kern/i386/ieee1275/startup.S (_start): Store %eax in grub_ieee1275_entry_fn, don't rely on cmain() doing it. --- ChangeLog | 10 ++++++++++ kern/i386/ieee1275/startup.S | 2 +- kern/powerpc/ieee1275/cmain.c | 8 +++----- kern/powerpc/ieee1275/crt0.S | 6 +++++- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index fcd21caeb..120feca65 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2008-01-19 Robert Millan + + PowerPC changes provided by Pavel Roskin. + + * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments. + * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn, + don't rely on cmain() doing it. + * kern/i386/ieee1275/startup.S (_start): Store %eax in + grub_ieee1275_entry_fn, don't rely on cmain() doing it. + 2008-01-16 Robert Millan * include/grub/i386/linuxbios/memory.h diff --git a/kern/i386/ieee1275/startup.S b/kern/i386/ieee1275/startup.S index 517dc003a..015534eea 100644 --- a/kern/i386/ieee1275/startup.S +++ b/kern/i386/ieee1275/startup.S @@ -34,5 +34,5 @@ start: _start: - movl %eax, %ecx + movl %eax, EXT_C(grub_ieee1275_entry_fn) jmp EXT_C(cmain) diff --git a/kern/powerpc/ieee1275/cmain.c b/kern/powerpc/ieee1275/cmain.c index f560a03e6..115a16f5f 100644 --- a/kern/powerpc/ieee1275/cmain.c +++ b/kern/powerpc/ieee1275/cmain.c @@ -1,7 +1,7 @@ /* cmain.c - Startup code for the PowerPC. */ /* * GRUB -- GRand Unified Bootloader - * Copyright (C) 2003,2004,2005,2006,2007 Free Software Foundation, Inc. + * Copyright (C) 2003,2004,2005,2006,2007,2008 Free Software Foundation, Inc. * * GRUB is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -102,12 +102,10 @@ grub_ieee1275_find_options (void) } } -void cmain (uint32_t r3, uint32_t r4, uint32_t r5); +void cmain (void); void -cmain (UNUSED uint32_t r3, UNUSED uint32_t r4, uint32_t r5) +cmain (void) { - grub_ieee1275_entry_fn = (int (*)(void *)) r5; - grub_ieee1275_finddevice ("/chosen", &grub_ieee1275_chosen); grub_ieee1275_find_options (); diff --git a/kern/powerpc/ieee1275/crt0.S b/kern/powerpc/ieee1275/crt0.S index f295dea57..28130aa0c 100644 --- a/kern/powerpc/ieee1275/crt0.S +++ b/kern/powerpc/ieee1275/crt0.S @@ -1,7 +1,7 @@ /* crt0.S - Startup code for the PowerPC. */ /* * GRUB -- GRand Unified Bootloader - * Copyright (C) 2003,2004,2005,2007 Free Software Foundation, Inc. + * Copyright (C) 2003,2004,2005,2007,2008 Free Software Foundation, Inc. * * GRUB is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -38,5 +38,9 @@ _start: 2: stwu 2, 4(6) /* We know r2 is already 0 from above. */ bdnz 2b + /* Store r5 in grub_ieee1275_entry_fn. */ + lis 9, grub_ieee1275_entry_fn@ha + stw 5, grub_ieee1275_entry_fn@l(9) + bl cmain 1: b 1b