[OpenBIOS] [commit] r1085 - trunk/openbios-devel/arch/ppc/qemu

repository service svn at openbios.org
Fri Jan 11 12:10:08 CET 2013


Author: mcayland
Date: Fri Jan 11 12:10:07 2013
New Revision: 1085
URL: http://tracker.coreboot.org/trac/openbios/changeset/1085

Log:
PPC: Fix filll word used by BootX

As pointed out by Segher, the length parameter is specified in bytes rather
than cells. The behaviour when the number of bytes is not an exact multiple
of a long word is to round up to the next long word, as verified on real Mac
hardware.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>
Tested-by: Olivier DANET <odanet at caramail.com>
Tested-by: John Arbuckle <programmingkidx at gmail.com>

Modified:
   trunk/openbios-devel/arch/ppc/qemu/init.c

Modified: trunk/openbios-devel/arch/ppc/qemu/init.c
==============================================================================
--- trunk/openbios-devel/arch/ppc/qemu/init.c	Mon Jan  7 13:57:56 2013	(r1084)
+++ trunk/openbios-devel/arch/ppc/qemu/init.c	Fri Jan 11 12:10:07 2013	(r1085)
@@ -614,18 +614,19 @@
 }
 
 /*
- *  filll        ( addr len quad -- )
+ *  filll        ( addr bytes quad -- )
  */
 
 static void ffilll(void)
 {
     const u32 longval = POP();
-    u32 len = POP();
-    u32 *aaddr = (u32 *)cell2pointer(POP());
-
-    while (len--) {
-        *aaddr++ = longval;
-    }
+    u32 bytes = POP();
+    u32 *laddr = (u32 *)cell2pointer(POP());
+    u32 len;
+    
+    for (len = 0; len < bytes / sizeof(u32); len++) {
+        *laddr++ = longval;
+    }   
 }
 
 void



More information about the OpenBIOS mailing list