Hi, The Multiboot spec is a bit too permissive about this, as it doesn't specify the state of direction flag when payload is called. Some payloads (we found this in ReactOS FreeLDR) assume it is cleared, and fail otherwise.
We adjusted GRUB to be sure it's always cleared. I think coreboot should do the same. Here's a patch for v3. -- Robert Millan The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and how) you may access your data; but nobody's threatening your freedom: we still allow you to remove your data and not access it at all."
Signed-off-by: Robert Millan <[email protected]> Index: arch/x86/stage1.c =================================================================== --- arch/x86/stage1.c (revision 1174) +++ arch/x86/stage1.c (working copy) @@ -172,7 +172,7 @@ static int run_address_multiboot(void *f, struct multiboot_info *mbi) { int ret, dummy; - __asm__ __volatile__ ("call *%4" : "=a" (ret), "=c" (dummy) : "a" (MB_MAGIC2), "b" (mbi), "c" (f) : "edx", "memory"); + __asm__ __volatile__ ("cld; call *%4" : "=a" (ret), "=c" (dummy) : "a" (MB_MAGIC2), "b" (mbi), "c" (f) : "edx", "memory"); return ret; }
-- coreboot mailing list: [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

