m8xx_gorom - where are the arguments?

Pavel Roskin pavel_roskin at geocities.com
Wed May 17 07:02:28 EST 2000


Hello!

The kernel that we used to use before switching to the official Montavista
kernel declared (in arch/ppc/kernel/mbx_setup.c) m8xx_gorom() as a
function with two arguments:

void
m8xx_restart(char *cmd)
{
        extern void m8xx_gorom(bd_t *bd, uint addr);

        m8xx_gorom((bd_t *)res, 0xfff00100);
}

The MontaVista kernel hhl-kernel-2.2.13-7.src.rpm declares m8xx_gorom() as
a function that takes no arguments.

The kernel hhl-kernel-2.2.14-3.src.rpm renames m8xx_gorom() to
MBX_gorom() but it still takes no arguments.

The implementation of m8xx_gorom() is the same. From what I can see, r4
(second argument, right?) is really used as a jump address.

This means that the MontaVista kernel jumps to a random place. The patch
below fixes "reboot" both for RPX/Lite and LICCE boards.

Regards,
Pavel Roskin

==== cut here ====
Index: m8xx_setup.c
===================================================================
RCS file: /home/6cmr/kernel/arch/ppc/kernel/m8xx_setup.c,v
retrieving revision 1.6
diff -u -r1.6 m8xx_setup.c
--- m8xx_setup.c	2000/04/24 23:38:12	1.6
+++ m8xx_setup.c	2000/05/16 20:27:17
@@ -278,9 +278,9 @@
 void
 m8xx_restart(char *cmd)
 {
-	extern void m8xx_gorom(void);
+	extern void m8xx_gorom(bd_t *bd, uint addr);

-	m8xx_gorom();
+	m8xx_gorom((bd_t *)res, 0xfff00100);
 }

 void
==== cut here ====


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list