x86: baytrail: acpi: Add full reset bit to the reset register value in FADT
authorBin Meng <bmeng.cn@gmail.com>
Tue, 29 Aug 2017 05:09:11 +0000 (22:09 -0700)
committerBin Meng <bmeng.cn@gmail.com>
Sat, 2 Sep 2017 15:35:55 +0000 (23:35 +0800)
It was noticed a few times, that the reboot from Linux (reboot command)
is different from the reboot (reset command) under U-Boot. The U-Boot
version does seem to reset the board more deeply (PCI cards etc) than
the Linux reboot.

This is actually caused by missing full reset bit in the reset register
value in the ACPI FADT table.

Reported-by: Stefan Roese <sr@denx.de>
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Stefan Roese <sr@denx.de>
arch/x86/cpu/baytrail/acpi.c

index cbefdf871dcbfb1b9842a1bc63f0c412818b2c67..7aac634d6619ac27774f5c9f9d2e60c5b07287a6 100644 (file)
@@ -73,7 +73,7 @@ void acpi_create_fadt(struct acpi_fadt *fadt, struct acpi_facs *facs,
        fadt->reset_reg.access_size = ACPI_ACCESS_SIZE_BYTE_ACCESS;
        fadt->reset_reg.addrl = IO_PORT_RESET;
        fadt->reset_reg.addrh = 0;
-       fadt->reset_value = SYS_RST | RST_CPU;
+       fadt->reset_value = SYS_RST | RST_CPU | FULL_RST;
 
        fadt->x_firmware_ctl_l = (u32)facs;
        fadt->x_firmware_ctl_h = 0;