SHA256
1
0
forked from pool/qemu

- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.3

- Fix -kernel boot for AArch64
* Patches added:
  0044-hw-arm-boot-Increase-fdt-alignment.patch

- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.3
- Fix -kernel boot for AArch64
* Patches added:
  0044-hw-arm-boot-Increase-fdt-alignment.patch

OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=266
This commit is contained in:
Alexander Graf 2015-07-13 16:11:31 +00:00 committed by Git OBS Bridge
parent 72c2d8c84e
commit bb210b59a2
7 changed files with 67 additions and 0 deletions

View File

@ -0,0 +1,43 @@
From 90808c2a055b1e6332db307ca34ab682be60cfbf Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Mon, 13 Jul 2015 17:46:04 +0200
Subject: [PATCH] hw/arm/boot: Increase fdt alignment
The Linux kernel on aarch64 creates a page table entry at early bootup
that spans the 2MB range on memory spanning the fdt start address:
[ ALIGN_DOWN(fdt, 2MB) ... ALIGN_DOWN(fdt, 2MB) + 2MB ]
This means that when our current 4k alignment happens to fall at the end
of the aligned region, Linux tries to access memory that is not mapped.
The easy fix is to instead increase the alignment to 2MB, making Linux's
logic always succeed.
Reported-by: Andreas Schwab <schwab@suse.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
---
hw/arm/boot.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/arm/boot.c b/hw/arm/boot.c
index a48d1b2..52cbd33 100644
--- a/hw/arm/boot.c
+++ b/hw/arm/boot.c
@@ -739,12 +739,12 @@ void arm_load_kernel(ARMCPU *cpu, struct arm_boot_info *info)
* we point to the kernel args.
*/
if (have_dtb(info)) {
- /* Place the DTB after the initrd in memory. Note that some
- * kernels will trash anything in the 4K page the initrd
- * ends in, so make sure the DTB isn't caught up in that.
+ /* Place the DTB after the initrd in memory. Note that the kernel
+ * maps [ ALIGN_DOWN(fdt, 2MB) ... ALGIN_DOWN(fdt, 2MB) + 2MB ]
+ * and thus needs the fdt be preferably in its own 2MB window.
*/
hwaddr dtb_start = QEMU_ALIGN_UP(info->initrd_start + initrd_size,
- 4096);
+ 2 * 1024 * 1024);
if (load_dtb(dtb_start, info, 0) < 0) {
exit(1);
}

View File

@ -68,6 +68,7 @@ Patch0040: 0040-s390x-Add-interlocked-access-facili.patch
Patch0041: 0041-fdc-force-the-fifo-access-to-be-in-.patch
Patch0042: 0042-rules.mak-Force-CFLAGS-for-all-obje.patch
Patch0043: 0043-qcow2-Set-MIN_L2_CACHE_SIZE-to-2.patch
Patch0044: 0044-hw-arm-boot-Increase-fdt-alignment.patch
# Please do not add patches manually here, run update_git.sh.
# this is to make lint happy
Source300: qemu-rpmlintrc
@ -170,6 +171,7 @@ This sub-package contains development files for the Smartcard library.
%patch0041 -p1
%patch0042 -p1
%patch0043 -p1
%patch0044 -p1
%build
./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \

View File

@ -68,6 +68,7 @@ Patch0040: 0040-s390x-Add-interlocked-access-facili.patch
Patch0041: 0041-fdc-force-the-fifo-access-to-be-in-.patch
Patch0042: 0042-rules.mak-Force-CFLAGS-for-all-obje.patch
Patch0043: 0043-qcow2-Set-MIN_L2_CACHE_SIZE-to-2.patch
Patch0044: 0044-hw-arm-boot-Increase-fdt-alignment.patch
# Please do not add patches manually here, run update_git.sh.
# this is to make lint happy
Source300: qemu-rpmlintrc
@ -164,6 +165,7 @@ run cross-architecture builds.
%patch0041 -p1
%patch0042 -p1
%patch0043 -p1
%patch0044 -p1
%build
./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Mon Jul 13 16:10:13 UTC 2015 - agraf@suse.com
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.3
- Fix -kernel boot for AArch64
* Patches added:
0044-hw-arm-boot-Increase-fdt-alignment.patch
-------------------------------------------------------------------
Sat Jul 4 18:14:27 UTC 2015 - crrodriguez@opensuse.org

View File

@ -99,6 +99,7 @@ Patch0040: 0040-s390x-Add-interlocked-access-facili.patch
Patch0041: 0041-fdc-force-the-fifo-access-to-be-in-.patch
Patch0042: 0042-rules.mak-Force-CFLAGS-for-all-obje.patch
Patch0043: 0043-qcow2-Set-MIN_L2_CACHE_SIZE-to-2.patch
Patch0044: 0044-hw-arm-boot-Increase-fdt-alignment.patch
# Please do not add QEMU patches manually here.
# Run update_git.sh to regenerate this queue.
@ -604,6 +605,7 @@ This package provides a service file for starting and stopping KSM.
%patch0041 -p1
%patch0042 -p1
%patch0043 -p1
%patch0044 -p1
%if %{build_x86_fw_from_source}
pushd roms/seabios

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Mon Jul 13 16:10:13 UTC 2015 - agraf@suse.com
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.3
- Fix -kernel boot for AArch64
* Patches added:
0044-hw-arm-boot-Increase-fdt-alignment.patch
-------------------------------------------------------------------
Sat Jul 4 18:14:27 UTC 2015 - crrodriguez@opensuse.org

View File

@ -99,6 +99,7 @@ Patch0040: 0040-s390x-Add-interlocked-access-facili.patch
Patch0041: 0041-fdc-force-the-fifo-access-to-be-in-.patch
Patch0042: 0042-rules.mak-Force-CFLAGS-for-all-obje.patch
Patch0043: 0043-qcow2-Set-MIN_L2_CACHE_SIZE-to-2.patch
Patch0044: 0044-hw-arm-boot-Increase-fdt-alignment.patch
# Please do not add QEMU patches manually here.
# Run update_git.sh to regenerate this queue.
@ -604,6 +605,7 @@ This package provides a service file for starting and stopping KSM.
%patch0041 -p1
%patch0042 -p1
%patch0043 -p1
%patch0044 -p1
%if %{build_x86_fw_from_source}
pushd roms/seabios