grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ppc] [patch] more cleanups


From: Hollis Blanchard
Subject: [ppc] [patch] more cleanups
Date: Mon, 9 May 2005 20:39:36 -0500
User-agent: Mutt/1.5.6+20040907i

I've found a few more things that needed cleaning, so here is the
updated patch. I have tested it.

- instead of needing to find "/chosen" in a variety of places, we find
  it once and save it in a global.
- some of the functions in boot/powerpc/ieee1275/ieee1275.c had slightly
  inconsistent prototypes.
- we were initializing initrd_addr to 0xc0000000 even when we didn't
  have one loaded.

I will resist the urge to keep growing this patch. ;)

-Hollis

2005-05-08  Hollis Blanchard  <address@hidden>

        * 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'.

Index: boot/powerpc/ieee1275/cmain.c
===================================================================
RCS file: /cvsroot/grub/grub2/boot/powerpc/ieee1275/cmain.c,v
retrieving revision 1.7
diff -u -p -r1.7 cmain.c
--- boot/powerpc/ieee1275/cmain.c       1 May 2005 03:45:35 -0000       1.7
+++ boot/powerpc/ieee1275/cmain.c       10 May 2005 01:27:33 -0000
@@ -24,15 +24,11 @@
 #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;
 
 
@@ -77,7 +73,6 @@ void
 cmain (uint32_t r3, uint32_t r4 __attribute__((unused)), uint32_t r5)
 {
   char **argv, args[256];
-  grub_ieee1275_phandle_t chosen;
   int argc = 0, actual;
 
   if (r5 == 0xdeadbeef)
@@ -111,8 +106,8 @@ cmain (uint32_t r3, uint32_t r4 __attrib
      be null (just the nul-character), so check that the size
      is actually greater than one.  */
 
-  grub_ieee1275_finddevice ("/chosen", &chosen);
-  if (grub_ieee1275_get_property (chosen, "bootargs", args,
+  grub_ieee1275_finddevice ("/chosen", &grub_ieee1275_chosen);
+  if (grub_ieee1275_get_property (grub_ieee1275_chosen, "bootargs", args,
                                  sizeof args, &actual) == 0
       && actual > 1)
     {
Index: boot/powerpc/ieee1275/crt0.S
===================================================================
RCS file: /cvsroot/grub/grub2/boot/powerpc/ieee1275/crt0.S,v
retrieving revision 1.5
diff -u -p -r1.5 crt0.S
--- boot/powerpc/ieee1275/crt0.S        4 Jan 2005 14:01:45 -0000       1.5
+++ boot/powerpc/ieee1275/crt0.S        10 May 2005 01:27:33 -0000
@@ -41,8 +41,3 @@ _start:       
 
        bl      cmain
 1:     b       1b
-
-       .section ".bss"
-       .lcomm  _ppc_init_stack, 4096*2, 16
-init_stack:
-
Index: boot/powerpc/ieee1275/ieee1275.c
===================================================================
RCS file: /cvsroot/grub/grub2/boot/powerpc/ieee1275/ieee1275.c,v
retrieving revision 1.11
diff -u -p -r1.11 ieee1275.c
--- boot/powerpc/ieee1275/ieee1275.c    31 Jan 2005 21:28:34 -0000      1.11
+++ boot/powerpc/ieee1275/ieee1275.c    10 May 2005 01:27:33 -0000
@@ -56,7 +56,7 @@ grub_ieee1275_finddevice (char *name, gr
 }
 
 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)
 {
@@ -70,7 +70,7 @@ grub_ieee1275_get_property (grub_ieee127
   } args;
 
   INIT_IEEE1275_COMMON (&args.common, "getprop", 4, 1);
-  args.phandle = handle;
+  args.phandle = phandle;
   args.prop = property;
   args.buf = buf;
   args.buflen = size;
@@ -85,8 +85,8 @@ grub_ieee1275_get_property (grub_ieee127
 }
 
 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;
@@ -97,7 +97,7 @@ grub_ieee1275_next_property (int handle,
   } 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;
@@ -110,7 +110,7 @@ grub_ieee1275_next_property (int handle,
 }
 
 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 {
@@ -121,7 +121,7 @@ grub_ieee1275_get_property_length (grub_
   } args;
 
   INIT_IEEE1275_COMMON (&args.common, "getproplen", 2, 1);
-  args.phandle = handle;
+  args.phandle = phandle;
   args.prop = prop;
   args.length = -1;
 
Index: include/grub/powerpc/ieee1275/ieee1275.h
===================================================================
RCS file: /cvsroot/grub/grub2/include/grub/powerpc/ieee1275/ieee1275.h,v
retrieving revision 1.17
diff -u -p -r1.17 ieee1275.h
--- include/grub/powerpc/ieee1275/ieee1275.h    1 May 2005 03:45:35 -0000       
1.17
+++ include/grub/powerpc/ieee1275/ieee1275.h    10 May 2005 01:27:36 -0000
@@ -39,8 +39,6 @@ struct grub_ieee1275_mem_region 
   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
@@ -64,7 +62,10 @@ struct grub_ieee1275_common_hdr
 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
 {
Index: include/grub/powerpc/ieee1275/kernel.h
===================================================================
RCS file: /cvsroot/grub/grub2/include/grub/powerpc/ieee1275/kernel.h,v
retrieving revision 1.1
diff -u -p -r1.1 kernel.h
--- include/grub/powerpc/ieee1275/kernel.h      4 Jan 2005 14:01:45 -0000       
1.1
+++ include/grub/powerpc/ieee1275/kernel.h      10 May 2005 01:27:36 -0000
@@ -21,6 +21,6 @@
 #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 */
Index: kern/powerpc/ieee1275/init.c
===================================================================
RCS file: /cvsroot/grub/grub2/kern/powerpc/ieee1275/init.c,v
retrieving revision 1.17
diff -u -p -r1.17 init.c
--- kern/powerpc/ieee1275/init.c        1 May 2005 03:45:36 -0000       1.17
+++ kern/powerpc/ieee1275/init.c        10 May 2005 01:27:36 -0000
@@ -68,10 +68,8 @@ grub_set_prefix (void)
   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.  */
Index: kern/powerpc/ieee1275/openfw.c
===================================================================
RCS file: /cvsroot/grub/grub2/kern/powerpc/ieee1275/openfw.c,v
retrieving revision 1.10
diff -u -p -r1.10 openfw.c
--- kern/powerpc/ieee1275/openfw.c      1 May 2005 03:45:36 -0000       1.10
+++ kern/powerpc/ieee1275/openfw.c      10 May 2005 01:27:36 -0000
@@ -165,14 +165,10 @@ grub_map (grub_addr_t phys, grub_addr_t 
     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;
 
Index: loader/powerpc/ieee1275/linux.c
===================================================================
RCS file: /cvsroot/grub/grub2/loader/powerpc/ieee1275/linux.c,v
retrieving revision 1.6
diff -u -p -r1.6 linux.c
--- loader/powerpc/ieee1275/linux.c     14 Feb 2005 18:41:33 -0000      1.6
+++ loader/powerpc/ieee1275/linux.c     10 May 2005 01:27:36 -0000
@@ -47,13 +47,10 @@ static grub_err_t
 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.  */
@@ -236,7 +233,7 @@ grub_rescue_cmd_linux (int argc, char *a
   else
     {
       grub_loader_set (grub_linux_boot, grub_linux_unload);
-      initrd_addr = 0xc0000000;
+      initrd_addr = 0;
       loaded = 1;
     }
   
Index: term/powerpc/ieee1275/ofconsole.c
===================================================================
RCS file: /cvsroot/grub/grub2/term/powerpc/ieee1275/ofconsole.c,v
retrieving revision 1.6
diff -u -p -r1.6 ofconsole.c
--- term/powerpc/ieee1275/ofconsole.c   26 Mar 2005 17:34:50 -0000      1.6
+++ term/powerpc/ieee1275/ofconsole.c   10 May 2005 01:27:36 -0000
@@ -241,23 +241,19 @@ grub_ofconsole_refresh (void)
 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");
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]