Fix distro boot on clearfog, arm64 EFI boot fixes

This commit is contained in:
Peter Robinson 2016-05-19 14:19:19 +01:00
parent 8b3a2c7342
commit d299bce83c
4 changed files with 127 additions and 1 deletions

View File

@ -0,0 +1,24 @@
From 8e1dd4390d9a9c7453b7687d1f3a1d611a978b9f Mon Sep 17 00:00:00 2001
From: Peter Robinson <pbrobinson@gmail.com>
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

View File

@ -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 <agraf@suse.de>
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 <agraf@suse.de>
---
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,
},
};

View File

@ -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 <agraf@suse.de>
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 <ard.biesheuvel@linaro.org>
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 <agraf@suse.de>
---
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;

View File

@ -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 <pbrobinson@fedoraproject.org> 2016.05-2
- Fix distro boot on clearfog
- arm64 EFI boot fixes
* Mon May 16 2016 Peter Robinson <pbrobinson@fedoraproject.org> 2016.05-1
- Update to 2016.05 GA