diff options
author | H. Peter Anvin <hpa@zytor.com> | 2010-04-01 11:14:56 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2010-04-01 11:14:56 -0700 |
commit | 4f7bd0d7a7b885e5bb6e964151ce663446715044 (patch) | |
tree | 8a091726938eca607e66ab81539b50fd60ae155e | |
parent | 234f4a30ac426b535946325fa4125425e152e473 (diff) | |
parent | 01fc061d9851463296347d3834185ea5c5618a68 (diff) | |
download | syslinux-4f7bd0d7a7b885e5bb6e964151ce663446715044.tar.gz |
Merge commit 'syslinux-3.86' into pathbasedsyslinux-4.00-pre38
Resolved Conflicts:
core/cpuinit.inc
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | com32/modules/cpuid.c | 6 | ||||
-rw-r--r-- | memdisk/setup.c | 29 |
3 files changed, 19 insertions, 17 deletions
@@ -14,6 +14,7 @@ Changes in 3.86: cause the core to believe the system was idle. * MEMDISK: fix MBR detection when used with a DOSEMU header or an offset. + * MEMDISK: generate the mBFT checksum correctly. Changes in 3.85: * gPXELINUX: updated to gPXE 1.0.0. gPXELINUX can now do NBP diff --git a/com32/modules/cpuid.c b/com32/modules/cpuid.c index 4758fbad..62a756e5 100644 --- a/com32/modules/cpuid.c +++ b/com32/modules/cpuid.c @@ -52,9 +52,9 @@ int main(int argc, char *argv[]) cpuid_count(leaf, counter, &eax, &ebx, &ecx, &edx); dump_reg("eax", eax); - dump_reg("eax", ebx); - dump_reg("eax", ecx); - dump_reg("eax", edx); + dump_reg("ebx", ebx); + dump_reg("ecx", ecx); + dump_reg("edx", edx); return 0; } diff --git a/memdisk/setup.c b/memdisk/setup.c index cec25ad3..db1c4bcf 100644 --- a/memdisk/setup.c +++ b/memdisk/setup.c @@ -1,8 +1,9 @@ /* ----------------------------------------------------------------------- * * * Copyright 2001-2009 H. Peter Anvin - All Rights Reserved - * Copyright 2009 Intel Corporation; author: H. Peter Anvin - * Portions copyright 2009 Shao Miller [El Torito code, mBFT, safe hook] + * Copyright 2009-2010 Intel Corporation; author: H. Peter Anvin + * Portions copyright 2009-2010 Shao Miller + * [El Torito code, mBFT, "safe hook"] * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -1212,18 +1213,6 @@ void setup(const struct real_mode_args *rm_args_ptr) /* Re-fill the "safe hook" mBFT field with the physical address */ safe_hook->mBFT += (uint32_t)hptr; - /* Complete the mBFT */ - { - struct mBFT *mBFT = (struct mBFT *)safe_hook->mBFT; - - mBFT->acpi.signature[0] = 'm'; /* "mBFT" */ - mBFT->acpi.signature[1] = 'B'; - mBFT->acpi.signature[2] = 'F'; - mBFT->acpi.signature[3] = 'T'; - mBFT->safe_hook = (uint32_t)safe_hook; - mBFT->acpi.checksum = -checksum_buf(mBFT, mBFT->acpi.length); - } - /* Update various BIOS magic data areas (gotta love this shit) */ if (geometry->driveno & 0x80) { @@ -1257,6 +1246,18 @@ void setup(const struct real_mode_args *rm_args_ptr) } } + /* Complete the mBFT */ + { + struct mBFT *mBFT = (struct mBFT *)safe_hook->mBFT; + + mBFT->acpi.signature[0] = 'm'; /* "mBFT" */ + mBFT->acpi.signature[1] = 'B'; + mBFT->acpi.signature[2] = 'F'; + mBFT->acpi.signature[3] = 'T'; + mBFT->safe_hook = (uint32_t)safe_hook; + mBFT->acpi.checksum = -checksum_buf(mBFT, mBFT->acpi.length); + } + /* Install the interrupt handlers */ printf("old: int13 = %08x int15 = %08x int1e = %08x\n", rdz_32(BIOS_INT13), rdz_32(BIOS_INT15), rdz_32(BIOS_INT1E)); |