[U-Boot] [PATCH] x86: baytrail: acpi: Add full reset bit to the reset register value in FADT

Bin Meng bmeng.cn at gmail.com
Fri Sep 1 09:44:59 UTC 2017


On Tue, Aug 29, 2017 at 3:49 PM, Stefan Roese <sr at denx.de> wrote:
> On 29.08.2017 07:09, Bin Meng wrote:
>>
>> 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 at denx.de>
>> Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
>> ---
>>
>>   arch/x86/cpu/baytrail/acpi.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/x86/cpu/baytrail/acpi.c b/arch/x86/cpu/baytrail/acpi.c
>> index cbefdf8..7aac634 100644
>> --- a/arch/x86/cpu/baytrail/acpi.c
>> +++ b/arch/x86/cpu/baytrail/acpi.c
>> @@ -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;
>>
>
> Very nice Bin, this does exactly what I was missing. :)
>
> Tested-by: Stefan Roese <sr at denx.de>
>

applied to u-boot-x86, thanks!


More information about the U-Boot mailing list