On 11 May 2016 at 08:45, Bin Meng <[email protected]> wrote: > Per ACPI spec, during ACPI OS initialization, OSPM can determine > that the ACPI hardware registers are owned by SMI (by way of the > SCI_EN bit in the PM1_CNT register), in which case the ACPI OS > issues the ACPI_ENABLE command to the SMI_CMD port. The SCI_EN bit > effectively tracks the ownership of the ACPI hardware registers. > > However since U-Boot does not support SMI, we report all 3 fields > in FADT (SMI_CMD, ACPI_ENABLE, ACPI_DISABLE) as zero, by following > the spec who says: these fields are reserved and must be zero on > system that does not support System Management mode. > > U-Boot seems to behave in a correct way that the ACPI spec allows, > at least Linux does not complain, but apparently Windows does not > think so. During Windows bring up debugging, it is observed that > even these 3 fields are zero, Windows are still trying to issue SMI > with hardcoded SMI port address and commands, and expecting SCI_EN > to be changed by the firmware. Eventually Windows gives us a BSOD > (Blue Screen of Death) saying ACPI_BIOS_ERROR and refuses to start. > > To fix this, turn on the SCI_EN bit by ourselves. With this patch, > now U-Boot can install and boot Windows 8.1/10 successfully with > the help of SeaBIOS using legacy interface (non-UEFI mode). > > Signed-off-by: Bin Meng <[email protected]> > --- > > Changes in v2: None > > arch/x86/include/asm/acpi_table.h | 3 +++ > arch/x86/lib/acpi_table.c | 26 ++++++++++++++++++++++++++ > 2 files changed, 29 insertions(+)
Reviewed-by: Simon Glass <[email protected]> _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

