Currently the size of the buffer to keep UEFI variables in memory is fixed
at 16384 bytes. This size has proven to be too small for some use cases.

Make the size of the memory buffer for UEFI variables customizable.

Reported-by: Paulo Alcantara (SUSE) <p...@cjr.nz>
Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de>
---
 include/efi_variable.h | 2 +-
 lib/efi_loader/Kconfig | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/include/efi_variable.h b/include/efi_variable.h
index 4704a3c16e..bf5076233e 100644
--- a/include/efi_variable.h
+++ b/include/efi_variable.h
@@ -91,7 +91,7 @@ efi_status_t efi_query_variable_info_int(u32 attributes,

 #define EFI_VAR_FILE_NAME "ubootefi.var"

-#define EFI_VAR_BUF_SIZE 0x4000
+#define EFI_VAR_BUF_SIZE CONFIG_EFI_VAR_BUF_SIZE

 /*
  * This constant identifies the file format for storing UEFI variables in
diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig
index 7fd3a3c90c..deb86a335a 100644
--- a/lib/efi_loader/Kconfig
+++ b/lib/efi_loader/Kconfig
@@ -77,6 +77,14 @@ config EFI_VAR_SEED_FILE

 endif

+config EFI_VAR_BUF_SIZE
+       int "Memory size of the UEFI variable store"
+       default 16384
+       range 4096 2147483647
+       help
+         This defines the memory area reserved for keeping UEFI variables.
+         Minimum value 4096.
+
 config EFI_GET_TIME
        bool "GetTime() runtime service"
        depends on DM_RTC
--
2.29.2

Reply via email to