[RFC PATCH] efi_loader: disable GRUB workaround by default

Heinrich Schuchardt xypron.glpk at gmx.de
Tue Feb 9 13:22:08 CET 2021


On 09.02.21 12:38, matthias.bgg at kernel.org wrote:
> From: Matthias Brugger <mbrugger at suse.com>
>
> GRUB version 2.04 was published over a year ago. We should expect that
> distros use this version now. So disable the workaround by default.
> As we know that i.MX6 CPUs lack proper handling of caches, enable the
> workaround on these only.

Hello Matthias,

Where did the current setting hurt?

Did you really check all 32bit ARM defconfig?
Which other devices have caches that are not controlled by CP15?
How about all non-i.mx6 devices using CONFIG_SYS_L2_PL310?

Best regards

Heinrich

>
> Signed-off-by: Matthias Brugger <mbrugger at suse.com>
>
> ---
>
>  configs/imx6dl_icore_nand_defconfig  | 1 +
>  configs/imx6dl_mamoj_defconfig       | 1 +
>  configs/imx6q_icore_nand_defconfig   | 1 +
>  configs/imx6q_logic_defconfig        | 1 +
>  configs/imx6qdl_icore_mipi_defconfig | 1 +
>  configs/imx6qdl_icore_mmc_defconfig  | 1 +
>  configs/imx6qdl_icore_nand_defconfig | 1 +
>  configs/imx6qdl_icore_rqs_defconfig  | 1 +
>  configs/imx6ul_geam_mmc_defconfig    | 1 +
>  configs/imx6ul_geam_nand_defconfig   | 1 +
>  configs/imx6ul_isiot_emmc_defconfig  | 1 +
>  configs/imx6ul_isiot_nand_defconfig  | 1 +
>  lib/efi_loader/Kconfig               | 2 +-
>  13 files changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/configs/imx6dl_icore_nand_defconfig b/configs/imx6dl_icore_nand_defconfig
> index 06005c4288..44fbbe6bd1 100644
> --- a/configs/imx6dl_icore_nand_defconfig
> +++ b/configs/imx6dl_icore_nand_defconfig
> @@ -68,3 +68,4 @@ CONFIG_SPLASH_SCREEN=y
>  CONFIG_SPLASH_SCREEN_ALIGN=y
>  CONFIG_VIDEO_BMP_RLE8=y
>  CONFIG_BMP_16BPP=y
> +CONFIG_EFI_GRUB_ARM32_WORKAROUND=y
> diff --git a/configs/imx6dl_mamoj_defconfig b/configs/imx6dl_mamoj_defconfig
> index fa2adaf47d..7ebbb5830b 100644
> --- a/configs/imx6dl_mamoj_defconfig
> +++ b/configs/imx6dl_mamoj_defconfig
> @@ -57,3 +57,4 @@ CONFIG_USB_GADGET_MANUFACTURER="FSL"
>  CONFIG_USB_GADGET_VENDOR_NUM=0x0525
>  CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
>  CONFIG_CI_UDC=y
> +CONFIG_EFI_GRUB_ARM32_WORKAROUND=y
> diff --git a/configs/imx6q_icore_nand_defconfig b/configs/imx6q_icore_nand_defconfig
> index f38b06dab9..cef5f3448d 100644
> --- a/configs/imx6q_icore_nand_defconfig
> +++ b/configs/imx6q_icore_nand_defconfig
> @@ -69,3 +69,4 @@ CONFIG_SPLASH_SCREEN=y
>  CONFIG_SPLASH_SCREEN_ALIGN=y
>  CONFIG_VIDEO_BMP_RLE8=y
>  CONFIG_BMP_16BPP=y
> +CONFIG_EFI_GRUB_ARM32_WORKAROUND=y
> diff --git a/configs/imx6q_logic_defconfig b/configs/imx6q_logic_defconfig
> index 36dc24d080..b5a4d3d24d 100644
> --- a/configs/imx6q_logic_defconfig
> +++ b/configs/imx6q_logic_defconfig
> @@ -103,3 +103,4 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x0525
>  CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
>  CONFIG_CI_UDC=y
>  CONFIG_USB_GADGET_DOWNLOAD=y
> +CONFIG_EFI_GRUB_ARM32_WORKAROUND=y
> diff --git a/configs/imx6qdl_icore_mipi_defconfig b/configs/imx6qdl_icore_mipi_defconfig
> index f1b5389470..1d9e021844 100644
> --- a/configs/imx6qdl_icore_mipi_defconfig
> +++ b/configs/imx6qdl_icore_mipi_defconfig
> @@ -63,3 +63,4 @@ CONFIG_PINCTRL=y
>  CONFIG_PINCTRL_IMX6=y
>  CONFIG_MXC_UART=y
>  CONFIG_IMX_THERMAL=y
> +CONFIG_EFI_GRUB_ARM32_WORKAROUND=y
> diff --git a/configs/imx6qdl_icore_mmc_defconfig b/configs/imx6qdl_icore_mmc_defconfig
> index a32ae6a75d..b46d19ad88 100644
> --- a/configs/imx6qdl_icore_mmc_defconfig
> +++ b/configs/imx6qdl_icore_mmc_defconfig
> @@ -86,3 +86,4 @@ CONFIG_SPLASH_SCREEN_ALIGN=y
>  CONFIG_VIDEO_BMP_RLE8=y
>  CONFIG_BMP_16BPP=y
>  CONFIG_IMX_WATCHDOG=y
> +CONFIG_EFI_GRUB_ARM32_WORKAROUND=y
> diff --git a/configs/imx6qdl_icore_nand_defconfig b/configs/imx6qdl_icore_nand_defconfig
> index f38b06dab9..cef5f3448d 100644
> --- a/configs/imx6qdl_icore_nand_defconfig
> +++ b/configs/imx6qdl_icore_nand_defconfig
> @@ -69,3 +69,4 @@ CONFIG_SPLASH_SCREEN=y
>  CONFIG_SPLASH_SCREEN_ALIGN=y
>  CONFIG_VIDEO_BMP_RLE8=y
>  CONFIG_BMP_16BPP=y
> +CONFIG_EFI_GRUB_ARM32_WORKAROUND=y
> diff --git a/configs/imx6qdl_icore_rqs_defconfig b/configs/imx6qdl_icore_rqs_defconfig
> index 34e3250f95..db439255a5 100644
> --- a/configs/imx6qdl_icore_rqs_defconfig
> +++ b/configs/imx6qdl_icore_rqs_defconfig
> @@ -60,3 +60,4 @@ CONFIG_MII=y
>  CONFIG_PINCTRL=y
>  CONFIG_PINCTRL_IMX6=y
>  CONFIG_MXC_UART=y
> +CONFIG_EFI_GRUB_ARM32_WORKAROUND=y
> diff --git a/configs/imx6ul_geam_mmc_defconfig b/configs/imx6ul_geam_mmc_defconfig
> index 4b47e196f3..ae83d35a53 100644
> --- a/configs/imx6ul_geam_mmc_defconfig
> +++ b/configs/imx6ul_geam_mmc_defconfig
> @@ -55,3 +55,4 @@ CONFIG_PINCTRL=y
>  CONFIG_PINCTRL_IMX6=y
>  CONFIG_MXC_UART=y
>  CONFIG_IMX_THERMAL=y
> +CONFIG_EFI_GRUB_ARM32_WORKAROUND=y
> diff --git a/configs/imx6ul_geam_nand_defconfig b/configs/imx6ul_geam_nand_defconfig
> index 9870612edf..8bffdab9c8 100644
> --- a/configs/imx6ul_geam_nand_defconfig
> +++ b/configs/imx6ul_geam_nand_defconfig
> @@ -60,3 +60,4 @@ CONFIG_PINCTRL=y
>  CONFIG_PINCTRL_IMX6=y
>  CONFIG_MXC_UART=y
>  CONFIG_IMX_THERMAL=y
> +CONFIG_EFI_GRUB_ARM32_WORKAROUND=y
> diff --git a/configs/imx6ul_isiot_emmc_defconfig b/configs/imx6ul_isiot_emmc_defconfig
> index 2e33db21d8..f8614b23c9 100644
> --- a/configs/imx6ul_isiot_emmc_defconfig
> +++ b/configs/imx6ul_isiot_emmc_defconfig
> @@ -55,3 +55,4 @@ CONFIG_PINCTRL=y
>  CONFIG_PINCTRL_IMX6=y
>  CONFIG_MXC_UART=y
>  CONFIG_IMX_THERMAL=y
> +CONFIG_EFI_GRUB_ARM32_WORKAROUND=y
> diff --git a/configs/imx6ul_isiot_nand_defconfig b/configs/imx6ul_isiot_nand_defconfig
> index 9c4f742135..aec4563837 100644
> --- a/configs/imx6ul_isiot_nand_defconfig
> +++ b/configs/imx6ul_isiot_nand_defconfig
> @@ -60,3 +60,4 @@ CONFIG_PINCTRL=y
>  CONFIG_PINCTRL_IMX6=y
>  CONFIG_MXC_UART=y
>  CONFIG_IMX_THERMAL=y
> +CONFIG_EFI_GRUB_ARM32_WORKAROUND=y
> diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig
> index e729f727df..68ca183c68 100644
> --- a/lib/efi_loader/Kconfig
> +++ b/lib/efi_loader/Kconfig
> @@ -282,7 +282,7 @@ config EFI_HAVE_RUNTIME_RESET
>  config EFI_GRUB_ARM32_WORKAROUND
>  	bool "Workaround for GRUB on 32bit ARM"
>  	default n if ARCH_QEMU
> -	default y
> +	default n
>  	depends on ARM && !ARM64
>  	help
>  	  GRUB prior to version 2.04 requires U-Boot to disable caches. This
>



More information about the U-Boot mailing list