diff mbox series

x86: Ensure the e820 map is installed in all cases

Message ID 20210710211515.1.I245c034f736e5cb88039244d13f8e81ee9f26373@changeid
State Accepted
Commit 2f91fc40039d2ef6f433d5c56c4f4701975f510f
Delegated to: Bin Meng
Headers show
Series x86: Ensure the e820 map is installed in all cases | expand

Commit Message

Simon Glass July 11, 2021, 3:15 a.m. UTC
This is a revert of a recent logic change in setup_zimage(). We do
actually need to install this information always. Change it to install
from the Coreboot tables if available, else the normal source.

Fixes: e7bae8283fe ("x86: Allow installing an e820 when booting from coreboot")
Signed-off-by: Simon Glass <sjg@chromium.org>
---

 arch/x86/lib/zimage.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Bin Meng July 15, 2021, 11:54 a.m. UTC | #1
On Sun, Jul 11, 2021 at 11:15 AM Simon Glass <sjg@chromium.org> wrote:
>
> This is a revert of a recent logic change in setup_zimage(). We do
> actually need to install this information always. Change it to install
> from the Coreboot tables if available, else the normal source.
>
> Fixes: e7bae8283fe ("x86: Allow installing an e820 when booting from coreboot")
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
>
>  arch/x86/lib/zimage.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>

Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Bin Meng July 15, 2021, 11:56 a.m. UTC | #2
On Thu, Jul 15, 2021 at 7:54 PM Bin Meng <bmeng.cn@gmail.com> wrote:
>
> On Sun, Jul 11, 2021 at 11:15 AM Simon Glass <sjg@chromium.org> wrote:
> >
> > This is a revert of a recent logic change in setup_zimage(). We do
> > actually need to install this information always. Change it to install
> > from the Coreboot tables if available, else the normal source.
> >
> > Fixes: e7bae8283fe ("x86: Allow installing an e820 when booting from coreboot")
> > Signed-off-by: Simon Glass <sjg@chromium.org>
> > ---
> >
> >  arch/x86/lib/zimage.c | 8 ++++----
> >  1 file changed, 4 insertions(+), 4 deletions(-)
> >
>
> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>

applied to u-boot-x86, thanks!
Christian Melki Aug. 10, 2021, 4:11 p.m. UTC | #3
Simon. Sorry for the late reply.
Tested on Virtualbox and on real hardware (DFI GHF51).
Works for me.

On 7/11/21 5:15 AM, Simon Glass wrote:
> This is a revert of a recent logic change in setup_zimage(). We do
> actually need to install this information always. Change it to install
> from the Coreboot tables if available, else the normal source.
> 
> Fixes: e7bae8283fe ("x86: Allow installing an e820 when booting from coreboot")
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
> 
>  arch/x86/lib/zimage.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/x86/lib/zimage.c b/arch/x86/lib/zimage.c
> index 90fc8a466d7..cf4210cd4ba 100644
> --- a/arch/x86/lib/zimage.c
> +++ b/arch/x86/lib/zimage.c
> @@ -313,12 +313,12 @@ int setup_zimage(struct boot_params *setup_base, char *cmd_line, int auto_boot,
>  	int bootproto = get_boot_protocol(hdr, false);
>  
>  	log_debug("Setup E820 entries\n");
> -	if (ll_boot_init()) {
> -		setup_base->e820_entries = install_e820_map(
> -			ARRAY_SIZE(setup_base->e820_map), setup_base->e820_map);
> -	} else if (IS_ENABLED(CONFIG_COREBOOT_SYSINFO)) {
> +	if (IS_ENABLED(CONFIG_COREBOOT_SYSINFO)) {
>  		setup_base->e820_entries = cb_install_e820_map(
>  			ARRAY_SIZE(setup_base->e820_map), setup_base->e820_map);
> +	} else {
> +		setup_base->e820_entries = install_e820_map(
> +			ARRAY_SIZE(setup_base->e820_map), setup_base->e820_map);
>  	}
>  
>  	if (bootproto == 0x0100) {
>
diff mbox series

Patch

diff --git a/arch/x86/lib/zimage.c b/arch/x86/lib/zimage.c
index 90fc8a466d7..cf4210cd4ba 100644
--- a/arch/x86/lib/zimage.c
+++ b/arch/x86/lib/zimage.c
@@ -313,12 +313,12 @@  int setup_zimage(struct boot_params *setup_base, char *cmd_line, int auto_boot,
 	int bootproto = get_boot_protocol(hdr, false);
 
 	log_debug("Setup E820 entries\n");
-	if (ll_boot_init()) {
-		setup_base->e820_entries = install_e820_map(
-			ARRAY_SIZE(setup_base->e820_map), setup_base->e820_map);
-	} else if (IS_ENABLED(CONFIG_COREBOOT_SYSINFO)) {
+	if (IS_ENABLED(CONFIG_COREBOOT_SYSINFO)) {
 		setup_base->e820_entries = cb_install_e820_map(
 			ARRAY_SIZE(setup_base->e820_map), setup_base->e820_map);
+	} else {
+		setup_base->e820_entries = install_e820_map(
+			ARRAY_SIZE(setup_base->e820_map), setup_base->e820_map);
 	}
 
 	if (bootproto == 0x0100) {