Index: trunk/i386/libsaio/acpi_patcher.c =================================================================== --- trunk/i386/libsaio/acpi_patcher.c (revision 2638) +++ trunk/i386/libsaio/acpi_patcher.c (revision 2639) @@ -330,6 +330,18 @@ } + // Bungo: Save Hardware Signature (machine-signature) + if ((fadt_mod->FIRMWARE_CTRL > 0) && (fadt_mod->FIRMWARE_CTRL < 0xFFFFFFFF) && (((struct acpi_2_facs *)fadt_mod->FIRMWARE_CTRL)->Length >= 64)) + { + Platform.HWSignature = ((struct acpi_2_facs *)fadt_mod->FIRMWARE_CTRL)->HWSignature; + DBG("\tHardware Signature=0x%08X: using.\n", Platform.HWSignature); + } + else + { + Platform.HWSignature = 0; + DBG("\tFixing Hardware Signature=0x%08X.\n", Platform.HWSignature); + } + // Patch DSDT address if we have loaded DSDT.aml if (new_dsdt) { Index: trunk/i386/libsaio/acpi.h =================================================================== --- trunk/i386/libsaio/acpi.h (revision 2638) +++ trunk/i386/libsaio/acpi.h (revision 2639) @@ -159,4 +159,17 @@ uint8_t notimp2[96]; } __attribute__((packed)); +struct acpi_2_facs +{ + char Signature[4]; + uint32_t Length; + uint32_t HWSignature; + uint32_t FWWakingVector32; + uint32_t GlobalLock; + uint32_t Flags; + uint64_t FWWakingVector64; + uint8_t Version; + uint8_t Reserved[31]; +} __attribute__((packed)); + #endif /* !__LIBSAIO_ACPI_H */ Index: trunk/i386/libsaio/platform.h =================================================================== --- trunk/i386/libsaio/platform.h (revision 2638) +++ trunk/i386/libsaio/platform.h (revision 2639) @@ -414,7 +414,7 @@ uint8_t Type; // system-type: 1=Desktop, 2=Portable, 3=Workstation... according ACPI2.0 (FACP: PM_Profile) uint8_t *UUID; // system-id (SMBIOS Table 1: system uuid) -// uint32_t HWSignature; // machine-signature (FACS: Hardware Signature) + uint32_t HWSignature; // machine-signature (FACS: Hardware Signature) } PlatformInfo_t; extern PlatformInfo_t Platform; Index: trunk/i386/libsaio/fake_efi.c =================================================================== --- trunk/i386/libsaio/fake_efi.c (revision 2638) +++ trunk/i386/libsaio/fake_efi.c (revision 2639) @@ -450,8 +450,9 @@ static const char MODEL_PROP[] = "Model"; static const char BOARDID_PROP[] = "board-id"; static const char DEV_PATH_SUP[] = "DevicePathsSupported"; +static const char MACHINE_SIG_PROP[] = "machine-signature"; static EFI_UINT32 DevPathSup = 1; -static EFI_UINT32 MachineSig = 0; //Bungo + /* * Get an smbios option string option to convert to EFI_CHAR16 string */ @@ -720,7 +721,7 @@ // DT__AddProperty(chosenNode, "boot-kernelcache-adler32", sizeof(adler32), adler32); - DT__AddProperty(chosenNode, "machine-signature", sizeof(EFI_UINT32), (EFI_UINT32 *)&MachineSig); + DT__AddProperty(chosenNode, MACHINE_SIG_PROP, sizeof(Platform.HWSignature), (EFI_UINT32 *)&Platform.HWSignature); if (MacOSVerCurrent >= MacOSVer2Int("10.10")) { Index: trunk/CHANGES =================================================================== --- trunk/CHANGES (revision 2638) +++ trunk/CHANGES (revision 2639) @@ -1,3 +1,4 @@ +- Bungo : Added "machine-signature" - Zenith432 : Protect timing code in scan_cpu() from interrupts, use bios for sleep() - Zenith432 : Fix setupChosenNode, Tweak asm.s - Zenith432 : Change identity snprintf to strncpy + misc printf issues