[PATCH v1] Revert "x86: use invd instead of wbinvd in real mode start code"

Masahiro Yamada masahiroy at kernel.org
Tue Feb 18 01:45:34 CET 2020


Hi Andy,

On Tue, Feb 18, 2020 at 12:30 AM Andy Shevchenko
<andriy.shevchenko at linux.intel.com> wrote:
>
> This reverts commit 0d67fac29f3187e67f4fd3ef15f73e91be2fad12.
>
> As real hardware testing (*) shows the above mentioned commit
> breaks U-Boot on it. Revert for the upcoming release. We may get
> more information in the future and optimize the code accordingly.
>
> (*) om Intel Edison board.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
> ---
>  arch/x86/cpu/start.S   | 2 +-
>  arch/x86/cpu/start16.S | 2 +-


Reverting arch/x86/cpu/start.S is enough, isn't it?


arch/x86/cpu/start16.S is not compiled for the
Edison board.

start16.S is the start of the Real Mode,
and we are sure no program was running before
U-Boot.




>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/cpu/start.S b/arch/x86/cpu/start.S
> index 26cf995db2..01524635e9 100644
> --- a/arch/x86/cpu/start.S
> +++ b/arch/x86/cpu/start.S
> @@ -50,7 +50,7 @@ _x86boot_start:
>         movl    %cr0, %eax
>         orl     $(X86_CR0_NW | X86_CR0_CD), %eax
>         movl    %eax, %cr0
> -       invd
> +       wbinvd
>
>         /*
>          * Zero the BIST (Built-In Self Test) value since we don't have it.
> diff --git a/arch/x86/cpu/start16.S b/arch/x86/cpu/start16.S
> index 292e750508..54f4ff6662 100644
> --- a/arch/x86/cpu/start16.S
> +++ b/arch/x86/cpu/start16.S
> @@ -28,7 +28,7 @@ start16:
>         movl    %cr0, %eax
>         orl     $(X86_CR0_NW | X86_CR0_CD), %eax
>         movl    %eax, %cr0
> -       invd
> +       wbinvd
>
>         /* load the temporary Global Descriptor Table */
>  data32 cs      lidt    idt_ptr
> --
> 2.25.0
>


-- 
Best Regards
Masahiro Yamada


More information about the U-Boot mailing list