From d299bce83ce99580879387f618c0c37a678dbeb8 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Thu, 19 May 2016 14:19:19 +0100 Subject: [PATCH] Fix distro boot on clearfog, arm64 EFI boot fixes --- ...og-needs-HUSH-parser-for-distro-boot.patch | 24 +++++++++ ...loader-Clean-up-system-table-on-exit.patch | 52 +++++++++++++++++++ ...i_loader-gop-Don-t-expose-fb-address.patch | 42 +++++++++++++++ uboot-tools.spec | 10 +++- 4 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 0001-clearfog-needs-HUSH-parser-for-distro-boot.patch create mode 100644 U-Boot-efi_loader-Clean-up-system-table-on-exit.patch create mode 100644 U-Boot-efi_loader-gop-Don-t-expose-fb-address.patch diff --git a/0001-clearfog-needs-HUSH-parser-for-distro-boot.patch b/0001-clearfog-needs-HUSH-parser-for-distro-boot.patch new file mode 100644 index 0000000..2bb5620 --- /dev/null +++ b/0001-clearfog-needs-HUSH-parser-for-distro-boot.patch @@ -0,0 +1,24 @@ +From 8e1dd4390d9a9c7453b7687d1f3a1d611a978b9f Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Thu, 19 May 2016 00:28:30 +0100 +Subject: [PATCH] clearfog needs HUSH parser for distro boot + +--- + configs/clearfog_defconfig | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configs/clearfog_defconfig b/configs/clearfog_defconfig +index 0fde640..75ea200 100644 +--- a/configs/clearfog_defconfig ++++ b/configs/clearfog_defconfig +@@ -3,6 +3,7 @@ CONFIG_ARCH_MVEBU=y + CONFIG_SYS_MALLOC_F_LEN=0x2000 + CONFIG_TARGET_CLEARFOG=y + CONFIG_DEFAULT_DEVICE_TREE="armada-388-clearfog" ++CONFIG_HUSH_PARSER=y + CONFIG_SPL=y + CONFIG_CMD_BOOTZ=y + # CONFIG_CMD_IMLS is not set +-- +2.7.4 + diff --git a/U-Boot-efi_loader-Clean-up-system-table-on-exit.patch b/U-Boot-efi_loader-Clean-up-system-table-on-exit.patch new file mode 100644 index 0000000..0c05fcc --- /dev/null +++ b/U-Boot-efi_loader-Clean-up-system-table-on-exit.patch @@ -0,0 +1,52 @@ +From patchwork Tue May 17 22:54:47 2016 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [U-Boot] efi_loader: Clean up system table on exit +From: Alexander Graf +X-Patchwork-Id: 623319 +Message-Id: <1463525687-231924-1-git-send-email-agraf@suse.de> +To: u-boot@lists.denx.de +Cc: leif.lindholm@linaro.org +Date: Wed, 18 May 2016 00:54:47 +0200 + +We put the system table into our runtime services data section so that +payloads may still access it after exit_boot_services. However, most fields +in it are quite useless once we're in that state, so let's just patch them +out. + +With this patch we don't get spurious warnings when running EFI binaries +anymore. + +Signed-off-by: Alexander Graf +--- + lib/efi_loader/efi_runtime.c | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/lib/efi_loader/efi_runtime.c b/lib/efi_loader/efi_runtime.c +index 3ee27ca..11d0126 100644 +--- a/lib/efi_loader/efi_runtime.c ++++ b/lib/efi_loader/efi_runtime.c +@@ -125,6 +125,22 @@ static const struct efi_runtime_detach_list_struct efi_runtime_detach_list[] = { + /* RTC accessors are gone */ + .ptr = &efi_runtime_services.get_time, + .patchto = &efi_device_error, ++ }, { ++ /* Clean up system table */ ++ .ptr = &systab.con_in, ++ .patchto = NULL, ++ }, { ++ /* Clean up system table */ ++ .ptr = &systab.con_out, ++ .patchto = NULL, ++ }, { ++ /* Clean up system table */ ++ .ptr = &systab.std_err, ++ .patchto = NULL, ++ }, { ++ /* Clean up system table */ ++ .ptr = &systab.boottime, ++ .patchto = NULL, + }, + }; + diff --git a/U-Boot-efi_loader-gop-Don-t-expose-fb-address.patch b/U-Boot-efi_loader-gop-Don-t-expose-fb-address.patch new file mode 100644 index 0000000..9c09e8f --- /dev/null +++ b/U-Boot-efi_loader-gop-Don-t-expose-fb-address.patch @@ -0,0 +1,42 @@ +From patchwork Wed May 18 00:04:24 2016 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: [U-Boot] efi_loader: gop: Don't expose fb address +From: Alexander Graf +X-Patchwork-Id: 623328 +Message-Id: <1463529864-31027-1-git-send-email-agraf@suse.de> +To: u-boot@lists.denx.de +Cc: leif.lindholm@linaro.org, Ard Biesheuvel +Date: Wed, 18 May 2016 02:04:24 +0200 + +Recently Linux is gaining support for efifb on AArch64 and that support actually +tries to make use of the frame buffer address we expose to it via gop. + +While this wouldn't be bad in theory, in practice it means a few bad things + + 1) We expose 16bit frame buffers as 32bit today + 2) Linux can't deal with overlapping non-PCI regions between efifb and + a different frame buffer driver + +For now, let's just disable exposure of the frame buffer address. Most OSs that +get booted will have a native driver for the GPU anyway. + +Signed-off-by: Alexander Graf +--- + lib/efi_loader/efi_gop.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/lib/efi_loader/efi_gop.c b/lib/efi_loader/efi_gop.c +index bdd62bc..6c3115c 100644 +--- a/lib/efi_loader/efi_gop.c ++++ b/lib/efi_loader/efi_gop.c +@@ -136,8 +136,6 @@ int efi_gop_register(void) + gopobj->mode.max_mode = 1; + gopobj->mode.info = &gopobj->info; + gopobj->mode.info_size = sizeof(gopobj->info); +- gopobj->mode.fb_base = gd->fb_base; +- gopobj->mode.fb_size = lcd_get_size(&line_len); + + gopobj->info.version = 0; + gopobj->info.width = panel_info.vl_col; diff --git a/uboot-tools.spec b/uboot-tools.spec index cfbcf6e..7304704 100644 --- a/uboot-tools.spec +++ b/uboot-tools.spec @@ -2,7 +2,7 @@ Name: uboot-tools Version: 2016.05 -Release: 1%{?candidate:.%{candidate}}%{?dist} +Release: 2%{?candidate:.%{candidate}}%{?dist} Summary: U-Boot utilities Group: Development/Tools @@ -17,12 +17,16 @@ Patch2: 0004-Add-BOOTENV_INIT_COMMAND-for-commands-that-may-be-ne.patch Patch3: 0005-port-utilite-to-distro-generic-boot-commands.patch Patch4: mvebu-enable-generic-distro-boot-config.patch Patch5: U-Boot-video-ipu_common-fix-build-error.patch +Patch6: 0001-clearfog-needs-HUSH-parser-for-distro-boot.patch Patch11: U-Boot-2-6-Revert-sunxi-Reserve-ATF-memory-space-on-A64.patch Patch12: U-Boot-3-6-arm64-sunxi-reserve-space-for-boot0-header.patch Patch13: U-Boot-4-6-arm64-sunxi-adjust-default-load-addresses.patch Patch14: U-Boot-5-6-arm64-Pine64-update-FDT-files.patch Patch15: U-Boot-6-6-Pine64-rename-defconfig.patch +Patch16: U-Boot-efi_loader-Clean-up-system-table-on-exit.patch +Patch17: U-Boot-efi_loader-gop-Don-t-expose-fb-address.patch + BuildRequires: bc BuildRequires: dtc @@ -199,6 +203,10 @@ install -p -m 0644 tools/env/fw_env.config $RPM_BUILD_ROOT%{_sysconfdir} %endif %changelog +* Thu May 19 2016 Peter Robinson 2016.05-2 +- Fix distro boot on clearfog +- arm64 EFI boot fixes + * Mon May 16 2016 Peter Robinson 2016.05-1 - Update to 2016.05 GA