2021.04 RC4, upstream rpi3 smp fix
This commit is contained in:
parent
2abadc5169
commit
610279571c
@ -1,82 +0,0 @@
|
|||||||
From 62f3f85e50692b2685d1056a041d1dbb9e16f2a4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Peter Robinson <pbrobinson@gmail.com>
|
|
||||||
Date: Sat, 13 Mar 2021 14:42:29 +0000
|
|
||||||
Subject: [PATCH] Revert: efi_loader: consider no-map property of reserved
|
|
||||||
memory
|
|
||||||
|
|
||||||
This basically reverts 4cbb2930bd8c, but not directly as it's moved
|
|
||||||
about since. The patch breaks SMP on the Raspberry Pi 3 (original 3B
|
|
||||||
and 3B+) so on Linux only one CPU core comes online. I'm not exactly
|
|
||||||
sure why but a bisect idendified the patch and sure enough a revert
|
|
||||||
fixes the issue.
|
|
||||||
|
|
||||||
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
|
|
||||||
---
|
|
||||||
lib/efi_loader/efi_dt_fixup.c | 33 ++++++---------------------------
|
|
||||||
1 file changed, 6 insertions(+), 27 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/efi_loader/efi_dt_fixup.c b/lib/efi_loader/efi_dt_fixup.c
|
|
||||||
index a4529ee3ef..87630f7857 100644
|
|
||||||
--- a/lib/efi_loader/efi_dt_fixup.c
|
|
||||||
+++ b/lib/efi_loader/efi_dt_fixup.c
|
|
||||||
@@ -13,29 +13,13 @@
|
|
||||||
|
|
||||||
const efi_guid_t efi_guid_dt_fixup_protocol = EFI_DT_FIXUP_PROTOCOL_GUID;
|
|
||||||
|
|
||||||
-/**
|
|
||||||
- * efi_reserve_memory() - add reserved memory to memory map
|
|
||||||
- *
|
|
||||||
- * @addr: start address of the reserved memory range
|
|
||||||
- * @size: size of the reserved memory range
|
|
||||||
- * @nomap: indicates that the memory range shall not be accessed by the
|
|
||||||
- * UEFI payload
|
|
||||||
- */
|
|
||||||
-static void efi_reserve_memory(u64 addr, u64 size, bool nomap)
|
|
||||||
+static void efi_reserve_memory(u64 addr, u64 size)
|
|
||||||
{
|
|
||||||
- int type;
|
|
||||||
- efi_uintn_t ret;
|
|
||||||
-
|
|
||||||
/* Convert from sandbox address space. */
|
|
||||||
addr = (uintptr_t)map_sysmem(addr, 0);
|
|
||||||
+ if (efi_add_memory_map(addr, size,
|
|
||||||
+ EFI_RESERVED_MEMORY_TYPE) != EFI_SUCCESS)
|
|
||||||
|
|
||||||
- if (nomap)
|
|
||||||
- type = EFI_RESERVED_MEMORY_TYPE;
|
|
||||||
- else
|
|
||||||
- type = EFI_BOOT_SERVICES_DATA;
|
|
||||||
-
|
|
||||||
- ret = efi_add_memory_map(addr, size, type);
|
|
||||||
- if (ret != EFI_SUCCESS)
|
|
||||||
log_err("Reserved memory mapping failed addr %llx size %llx\n",
|
|
||||||
addr, size);
|
|
||||||
}
|
|
||||||
@@ -61,7 +45,7 @@ void efi_carve_out_dt_rsv(void *fdt)
|
|
||||||
for (i = 0; i < nr_rsv; i++) {
|
|
||||||
if (fdt_get_mem_rsv(fdt, i, &addr, &size) != 0)
|
|
||||||
continue;
|
|
||||||
- efi_reserve_memory(addr, size, false);
|
|
||||||
+ efi_reserve_memory(addr, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* process reserved-memory */
|
|
||||||
@@ -81,13 +65,8 @@ void efi_carve_out_dt_rsv(void *fdt)
|
|
||||||
* a size instead of a reg property.
|
|
||||||
*/
|
|
||||||
if (fdt_addr != FDT_ADDR_T_NONE &&
|
|
||||||
- fdtdec_get_is_enabled(fdt, subnode)) {
|
|
||||||
- bool nomap;
|
|
||||||
-
|
|
||||||
- nomap = !!fdt_getprop(fdt, subnode, "no-map",
|
|
||||||
- NULL);
|
|
||||||
- efi_reserve_memory(fdt_addr, fdt_size, nomap);
|
|
||||||
- }
|
|
||||||
+ fdtdec_get_is_enabled(fdt, subnode))
|
|
||||||
+ efi_reserve_memory(fdt_addr, fdt_size);
|
|
||||||
subnode = fdt_next_subnode(fdt, subnode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.30.2
|
|
||||||
|
|
@ -0,0 +1,38 @@
|
|||||||
|
From ca1e8231dcf89b78c6860239281bbe36e7a63341 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mark Kettenis <kettenis@openbsd.org>
|
||||||
|
Date: Sun, 14 Mar 2021 20:04:24 +0100
|
||||||
|
Subject: [PATCH] efi_loader: fix memory type for memory reservation block
|
||||||
|
|
||||||
|
The devicetree specification clearly states that:
|
||||||
|
|
||||||
|
As with the /reserved-memory node, when booting via UEFI
|
||||||
|
entries in the Memory Reservation Block must also be listed
|
||||||
|
in the system memory map obtained via the GetMemoryMap() toi
|
||||||
|
protect against allocations by UEFI applications. The memory
|
||||||
|
reservation block entries should be listed with type
|
||||||
|
EfiReservedMemoryType.
|
||||||
|
|
||||||
|
This restores the behaviour that was changed by commit 4cbb2930bd8c
|
||||||
|
("efi_loader: consider no-map property of reserved memory").
|
||||||
|
|
||||||
|
Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
|
||||||
|
---
|
||||||
|
lib/efi_loader/efi_dt_fixup.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/lib/efi_loader/efi_dt_fixup.c b/lib/efi_loader/efi_dt_fixup.c
|
||||||
|
index a4529ee3ef..b6fe5d2e5a 100644
|
||||||
|
--- a/lib/efi_loader/efi_dt_fixup.c
|
||||||
|
+++ b/lib/efi_loader/efi_dt_fixup.c
|
||||||
|
@@ -61,7 +61,7 @@ void efi_carve_out_dt_rsv(void *fdt)
|
||||||
|
for (i = 0; i < nr_rsv; i++) {
|
||||||
|
if (fdt_get_mem_rsv(fdt, i, &addr, &size) != 0)
|
||||||
|
continue;
|
||||||
|
- efi_reserve_memory(addr, size, false);
|
||||||
|
+ efi_reserve_memory(addr, size, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* process reserved-memory */
|
||||||
|
--
|
||||||
|
2.30.2
|
||||||
|
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (u-boot-2021.04-rc3.tar.bz2) = 0d6b46b791475ce21320fbc2b361235d09588a5b912d40b32a11d937adc7c0e7b75b893ba4e8dc55156cfd99f684fc56839c17d0b9c021f5cfaaf5e5997f93ba
|
SHA512 (u-boot-2021.04-rc4.tar.bz2) = 522f9e7886a357ad573088fbbb4be17b91efedf5651808d7cbe53f4b3c4da236a96d5e781b8464d17bc6f961bd65cf3fb58d707bc7f10ce1df002800045cfd23
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
%global candidate rc3
|
%global candidate rc4
|
||||||
|
|
||||||
Name: uboot-tools
|
Name: uboot-tools
|
||||||
Version: 2021.04
|
Version: 2021.04
|
||||||
Release: 0.5%{?candidate:.%{candidate}}%{?dist}
|
Release: 0.6%{?candidate:.%{candidate}}%{?dist}
|
||||||
Summary: U-Boot utilities
|
Summary: U-Boot utilities
|
||||||
License: GPLv2+ BSD LGPL-2.1+ LGPL-2.0+
|
License: GPLv2+ BSD LGPL-2.1+ LGPL-2.0+
|
||||||
URL: http://www.denx.de/wiki/U-Boot
|
URL: http://www.denx.de/wiki/U-Boot
|
||||||
@ -22,7 +22,7 @@ Patch2: uefi-use-Fedora-specific-path-name.patch
|
|||||||
Patch3: rpi-Enable-using-the-DT-provided-by-the-Raspberry-Pi.patch
|
Patch3: rpi-Enable-using-the-DT-provided-by-the-Raspberry-Pi.patch
|
||||||
|
|
||||||
# Board fixes and enablement
|
# Board fixes and enablement
|
||||||
Patch9: 0001-Revert-efi_loader-consider-no-map-property-of-reserv.patch
|
Patch9: 0001-efi_loader-fix-memory-type-for-memory-reservation-bl.patch
|
||||||
# AllWinner improvements
|
# AllWinner improvements
|
||||||
Patch10: AllWinner-PineTab.patch
|
Patch10: AllWinner-PineTab.patch
|
||||||
# TI fixes
|
# TI fixes
|
||||||
@ -243,6 +243,10 @@ cp -p board/warp7/README builds/docs/README.warp7
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Mar 17 2021 Peter Robinson <pbrobinson@fedoraproject.org> - 2021.04-0.6.rc4
|
||||||
|
- Update to 2021.04 RC4
|
||||||
|
- Move to upstream fix for SMP on RPi3B and RPi3B+
|
||||||
|
|
||||||
* Sat Mar 13 2021 Peter Robinson <pbrobinson@fedoraproject.org> - 2021.04-0.5.rc3
|
* Sat Mar 13 2021 Peter Robinson <pbrobinson@fedoraproject.org> - 2021.04-0.5.rc3
|
||||||
- Fix for SMP on RPi3B and RPi3B+
|
- Fix for SMP on RPi3B and RPi3B+
|
||||||
- Initial support for Pinephone 3Gb edition
|
- Initial support for Pinephone 3Gb edition
|
||||||
|
Loading…
Reference in New Issue
Block a user