Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1290971 > unrolled thread

Re: [PATCH] Remove EFI memmap quirk for UV2+

Started byIngo Molnar <mingo@kernel.org>
First post2015-12-14 09:50 +0100
Last post2015-12-14 19:30 +0100
Articles 3 — 3 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH] Remove EFI memmap quirk for UV2+ Ingo Molnar <mingo@kernel.org> - 2015-12-14 09:50 +0100
    Re: [PATCH] Remove EFI memmap quirk for UV2+ Matt Fleming <matt@codeblueprint.co.uk> - 2015-12-14 17:00 +0100
    Re: [PATCH] Remove EFI memmap quirk for UV2+ Alex Thorlton <athorlton@sgi.com> - 2015-12-14 19:30 +0100

#1290971 — Re: [PATCH] Remove EFI memmap quirk for UV2+

FromIngo Molnar <mingo@kernel.org>
Date2015-12-14 09:50 +0100
SubjectRe: [PATCH] Remove EFI memmap quirk for UV2+
Message-ID<qFwZr-3HK-3@gated-at.bofh.it>
* Alex Thorlton <athorlton@sgi.com> wrote:

> Commit a5d90c923bcf ("x86/efi: Quirk out SGI UV") added a quirk to
> efi_apply_memmap_quirks to force SGI UV systems to fall back to the old
> EFI memmap mechanism.  We have a BIOS fix for this issue on all systems
> except for UV1.  This commit fixes up the EFI quirk/MMR mapping code so
> that we only apply the special case to UV1 hardware.
> 
> Signed-off-by: Alex Thorlton <athorlton@sgi.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: "H. Peter Anvin" <hpa@zytor.com>
> Cc: x86@kernel.org
> Cc: Matt Fleming <matt@codeblueprint.co.uk>
> Cc: Dimitri Sivanich <sivanich@sgi.com>
> Cc: Hedi Berriche <hedi@sgi.com>
> Cc: Mike Travis <travis@sgi.com>
> Cc: Len Brown <len.brown@intel.com>
> Cc: linux-efi@vger.kernel.org
> 
> ---
>  arch/x86/kernel/apic/x2apic_uv_x.c |  5 ++++-
>  arch/x86/platform/efi/quirks.c     | 17 +++++++++++++----
>  2 files changed, 17 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
> index 4a13946..96ba195 100644
> --- a/arch/x86/kernel/apic/x2apic_uv_x.c
> +++ b/arch/x86/kernel/apic/x2apic_uv_x.c
> @@ -888,7 +888,10 @@ void __init uv_system_init(void)
>  		return;
>  	}
>  	pr_info("UV: Found %s hub\n", hub);
> -	map_low_mmrs();
> +
> +	/* We now only need to map the MMRs on UV1 */
> +	if (is_uv1_hub())
> +		map_low_mmrs();
>  
>  	m_n_config.v = uv_read_local_mmr(UVH_RH_GAM_CONFIG_MMR );
>  	m_val = m_n_config.s.m_skt;
> diff --git a/arch/x86/platform/efi/quirks.c b/arch/x86/platform/efi/quirks.c
> index 1c7380d..2d66db8 100644
> --- a/arch/x86/platform/efi/quirks.c
> +++ b/arch/x86/platform/efi/quirks.c
> @@ -8,6 +8,7 @@
>  #include <linux/memblock.h>
>  #include <linux/bootmem.h>
>  #include <linux/acpi.h>
> +#include <linux/dmi.h>
>  #include <asm/efi.h>
>  #include <asm/uv/uv.h>
>  
> @@ -248,6 +249,16 @@ out:
>  	return ret;
>  }
>  
> +static const struct dmi_system_id sgi_uv1_dmi[] = {
> +	{ NULL, "SGI UV1",
> +		{	DMI_MATCH(DMI_PRODUCT_NAME,	"Stoutland Platform"),
> +			DMI_MATCH(DMI_PRODUCT_VERSION,	"1.0"),
> +			DMI_MATCH(DMI_BIOS_VENDOR,	"SGI.COM"),
> +		}
> +	},
> +	{ } /* NULL entry stops DMI scanning */
> +};
> +
>  void __init efi_apply_memmap_quirks(void)
>  {
>  	/*
> @@ -260,10 +271,8 @@ void __init efi_apply_memmap_quirks(void)
>  		efi_unmap_memmap();
>  	}
>  
> -	/*
> -	 * UV doesn't support the new EFI pagetable mapping yet.
> -	 */
> -	if (is_uv_system())
> +	/* UV2+ BIOS has a fix for this issue.  UV1 still needs the quirk. */
> +	if (dmi_check_system(sgi_uv1_dmi))
>  		set_bit(EFI_OLD_MEMMAP, &efi.flags);
>  }

Ok, this looks good to me and I'll apply it if it looks good to Matt as well.

This also means we cannot (yet) remove the old memmap code from the EFI code, but 
that's the price of compatibility.

Btw., can UV1 users fix this via a BIOS update? In that case feel free to nudge 
your users via something like:

> +	/* UV2+ BIOS has a fix for this issue.  UV1 still needs the quirk. */
> +	if (dmi_check_system(sgi_uv1_dmi)) {
> +		pr_info("x86/uv: Activating EFI memmap workaround.\n");
> +		pr_info("x86/uv: Please upgrade your BIOS to version x.y.z+ to get rid of this message.\n");
>  		set_bit(EFI_OLD_MEMMAP, &efi.flags);

or so. (But only if it's expected of them to upgrade the BIOS to resolve other 
bugs as well - I personally only upgrade BIOSen if absolutely necessary.)

Thanks,

	Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1291308

FromMatt Fleming <matt@codeblueprint.co.uk>
Date2015-12-14 17:00 +0100
Message-ID<qFDHz-86S-7@gated-at.bofh.it>
In reply to#1290971
On Mon, 14 Dec, at 09:41:58AM, Ingo Molnar wrote:
> 
> Ok, this looks good to me and I'll apply it if it looks good to Matt as well.

Yep, looks OK to me. Feel free to pick it up directly,

Reviewed-by: Matt Fleming <matt@codeblueprint.co.uk>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1291419

FromAlex Thorlton <athorlton@sgi.com>
Date2015-12-14 19:30 +0100
Message-ID<qFG2K-1kV-13@gated-at.bofh.it>
In reply to#1290971
On Mon, Dec 14, 2015 at 09:41:58AM +0100, Ingo Molnar wrote:
> * Alex Thorlton <athorlton@sgi.com> wrote:
> Ok, this looks good to me and I'll apply it if it looks good to Matt as well.

Cool!  Thanks, Ingo.

> Btw., can UV1 users fix this via a BIOS update?

Unfortunately, no.  This fix was put into UV2+ BIOS a while back, but we
haven't spun a new UV1 BIOS for several years, and don't intend to
release another version.  This issue is likely going to follow UV1s to
their grave :(

- Alex
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web