Updated fix for FDT load

This commit is contained in:
Peter Robinson 2024-03-15 16:43:39 +00:00
parent 59b16b4988
commit bda7eb94be
2 changed files with 12 additions and 9 deletions

View File

@ -7,7 +7,7 @@
Name: uboot-tools
Version: 2024.04
Release: 0.5%{?candidate:.%{candidate}}%{?dist}
Release: 0.6%{?candidate:.%{candidate}}%{?dist}
Epoch: 1
Summary: U-Boot utilities
License: GPLv2+ BSD LGPL-2.1+ LGPL-2.0+
@ -190,6 +190,9 @@ install -p -m 0755 builds/tools/env/fw_printenv %{buildroot}%{_bindir}
%endif
%changelog
* Fri Mar 15 2024 Peter Robinson <pbrobinson@fedoraproject.org> - 1:2024.04-0.6.rc4
- Updated fix for FDT load
* Wed Mar 13 2024 Peter Robinson <pbrobinson@fedoraproject.org> - 1:2024.04-0.5.rc4
- Fixes for Rockchip rk3399 autoboot

View File

@ -1,6 +1,6 @@
From 47bf70fe95dd3883c08af3478f29564476f0950e Mon Sep 17 00:00:00 2001
From 751b1c4ec581f3546c49e4d59485306601fe6e2d Mon Sep 17 00:00:00 2001
From: Peter Robinson <pbrobinson@gmail.com>
Date: Tue, 12 Mar 2024 00:05:23 +0000
Date: Fri, 15 Mar 2024 16:42:23 +0000
Subject: [PATCH] initial find_fdt_location for finding the DT on disk
The old distro boot looked for a DT on the first boot partition
@ -16,12 +16,11 @@ so that devices will continue to work as they did previously.
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
---
cmd/bootefi.c | 1 +
cmd/bootmenu.c | 5 +++
include/efi_loader.h | 2 +
lib/efi_loader/efi_helper.c | 82 ++++++++++++++++++++++++++++++++++++-
4 files changed, 89 insertions(+), 1 deletion(-)
lib/efi_loader/efi_helper.c | 83 ++++++++++++++++++++++++++++++++++++-
4 files changed, 90 insertions(+), 1 deletion(-)
diff --git a/cmd/bootefi.c b/cmd/bootefi.c
index 9cf9027bf40..8b6194a8702 100644
@ -65,7 +64,7 @@ index 7daca0afba2..a969378ff2f 100644
int efi_init_early(void);
/* Initialize efi execution environment */
diff --git a/lib/efi_loader/efi_helper.c b/lib/efi_loader/efi_helper.c
index 5dd9cc876e4..59bdb2d030c 100644
index 5dd9cc876e4..8d51c9570b7 100644
--- a/lib/efi_loader/efi_helper.c
+++ b/lib/efi_loader/efi_helper.c
@@ -12,6 +12,7 @@
@ -76,7 +75,7 @@ index 5dd9cc876e4..59bdb2d030c 100644
#include <efi_api.h>
#include <efi_load_initrd.h>
#include <efi_loader.h>
@@ -24,6 +25,76 @@
@@ -24,6 +25,77 @@
const efi_guid_t efi_lf2_initrd_guid = EFI_INITRD_MEDIA_GUID;
#endif
@ -128,6 +127,7 @@ index 5dd9cc876e4..59bdb2d030c 100644
+ if (retfdt) {
+ /* we have a fdt!*/
+ log_debug("FFL: we have found a DT on disk\n");
+ pbraddr = (ulong)(env_get("fdt_addr"));
+ retload = fs_read(fdt_fullpath, pbraddr, 0, 0, &len_read);
+ if (retload) {
+ log_debug("FFL: we have a loaded DT, size %ld we can return\n", sizeof(len_read));
@ -153,7 +153,7 @@ index 5dd9cc876e4..59bdb2d030c 100644
/**
* efi_create_current_boot_var() - Return Boot#### name were #### is replaced by
* the value of BootCurrent
@@ -432,11 +503,20 @@ efi_status_t efi_install_fdt(void *fdt)
@@ -432,11 +504,20 @@ efi_status_t efi_install_fdt(void *fdt)
/* Look for device tree that is already installed */
if (efi_get_configuration_table(&efi_guid_fdt))
return EFI_SUCCESS;