diff --git a/SOURCES/0323-util-Enable-default-kernel-for-updates.patch b/SOURCES/0323-util-Enable-default-kernel-for-updates.patch new file mode 100644 index 0000000..bdfa65a --- /dev/null +++ b/SOURCES/0323-util-Enable-default-kernel-for-updates.patch @@ -0,0 +1,34 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Nicolas Frayer +Date: Wed, 24 May 2023 11:22:47 +0200 +Subject: [PATCH] util: Enable default kernel for updates + +Several kernel variants can be installed on a system in parallel. +In order to allow the user to choose which kernel will be set to +default after an update, re-enable grub's usage of DEFAULTKERNEL as +set in /etc/sysconfig/kernel + +Signed-off-by: Nicolas Frayer +--- + util/grub-get-kernel-settings.in | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/util/grub-get-kernel-settings.in b/util/grub-get-kernel-settings.in +index 7e87dfccc0..f71bc64360 100644 +--- a/util/grub-get-kernel-settings.in ++++ b/util/grub-get-kernel-settings.in +@@ -68,6 +68,14 @@ if test -f /etc/sysconfig/kernel ; then + . /etc/sysconfig/kernel + fi + ++GRUB_DEFAULT_KERNEL_TYPE=${DEFAULTKERNEL/-core/} ++if [ "$GRUB_DEFAULT_KERNEL_TYPE" != "kernel" ]; then ++ echo GRUB_NON_STANDARD_KERNEL=true ++ echo export GRUB_NON_STANDARD_KERNEL ++ GRUB_DEFAULT_KERNEL_TYPE=${GRUB_DEFAULT_KERNEL_TYPE/kernel-/} ++fi ++echo GRUB_DEFAULT_KERNEL_TYPE=$GRUB_DEFAULT_KERNEL_TYPE ++echo export GRUB_DEFAULT_KERNEL_TYPE + if [ "$MAKEDEBUG" = "yes" ]; then + echo GRUB_LINUX_MAKE_DEBUG=true + echo export GRUB_LINUX_MAKE_DEBUG diff --git a/SOURCES/0324-kern-ieee1275-init-Convert-plain-numbers-to-constant.patch b/SOURCES/0324-kern-ieee1275-init-Convert-plain-numbers-to-constant.patch new file mode 100644 index 0000000..ca82e33 --- /dev/null +++ b/SOURCES/0324-kern-ieee1275-init-Convert-plain-numbers-to-constant.patch @@ -0,0 +1,48 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Avnish Chouhan +Date: Mon, 27 Mar 2023 12:25:39 +0530 +Subject: [PATCH] kern/ieee1275/init: Convert plain numbers to constants in + Vec5 + +This patch converts the plain numbers used in Vec5 properties to constants. + +1. LPAR: Client program supports logical partitioning and + associated hcall()s. +2. SPLPAR: Client program supports the Shared + Processor LPAR Option. +3. CMO: Enables the Cooperative Memory Over-commitment Option. +4. MAX_CPU: Defines maximum number of CPUs supported. + +Signed-off-by: Avnish Chouhan +Reviewed-by: Daniel Kiper +(cherry picked from commit 8406cfe4774eb2da3db4bf0bc2b2ff6592ecbdaf) +--- + grub-core/kern/ieee1275/init.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c +index 72d4fed312..5d79580341 100644 +--- a/grub-core/kern/ieee1275/init.c ++++ b/grub-core/kern/ieee1275/init.c +@@ -72,6 +72,12 @@ extern char _end[]; + grub_addr_t grub_ieee1275_original_stack; + #endif + ++#define LPAR 0x80 ++#define SPLPAR 0x40 ++#define BYTE2 (LPAR | SPLPAR) ++#define CMO 0x80 ++#define MAX_CPU 256 ++ + void + grub_exit (int rc __attribute__((unused))) + { +@@ -575,7 +581,7 @@ grub_ieee1275_ibm_cas (void) + .vec4 = 0x0001, /* set required minimum capacity % to the lowest value */ + .vec5_size = 1 + sizeof (struct option_vector5) - 2, + .vec5 = { +- 0, 192, 0, 128, 0, 0, 0, 0, 256 ++ 0, BYTE2, 0, CMO, 0, 0, 0, 0, MAX_CPU + } + }; + diff --git a/SOURCES/0325-kern-ieee1275-init-Extended-support-in-Vec5.patch b/SOURCES/0325-kern-ieee1275-init-Extended-support-in-Vec5.patch new file mode 100644 index 0000000..b8b481f --- /dev/null +++ b/SOURCES/0325-kern-ieee1275-init-Extended-support-in-Vec5.patch @@ -0,0 +1,127 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Avnish Chouhan +Date: Mon, 27 Mar 2023 12:25:40 +0530 +Subject: [PATCH] kern/ieee1275/init: Extended support in Vec5 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This patch enables multiple options in Vec5 which are required and +solves the boot issues seen on some machines which are looking for +these specific options. + +1. LPAR: Client program supports logical partitioning and + associated hcall()s. +2. SPLPAR: Client program supports the Shared + Processor LPAR Option. +3. DYN_RCON_MEM: Client program supports the + “ibm,dynamic-reconfiguration-memory” property and it may be + presented in the device tree. +4. LARGE_PAGES: Client supports pages larger than 4 KB. +5. DONATE_DCPU_CLS: Client supports donating dedicated processor cycles. +6. PCI_EXP: Client supports PCI Express implementations + utilizing Message Signaled Interrupts (MSIs). + +7. CMOC: Enables the Cooperative Memory Over-commitment Option. +8. EXT_CMO: Enables the Extended Cooperative Memory Over-commit Option. + +9. ASSOC_REF: Enables “ibm,associativity” and + “ibm,associativity-reference-points” properties. +10. AFFINITY: Enables Platform Resource Reassignment Notification. +11. NUMA: Supports NUMA Distance Lookup Table Option. + +12. HOTPLUG_INTRPT: Supports Hotplug Interrupts. +13. HPT_RESIZE: Enable Hash Page Table Resize Option. + +14. MAX_CPU: Defines maximum number of CPUs supported. + +15. PFO_HWRNG: Supports Random Number Generator. +16. PFO_HW_COMP: Supports Compression Engine. +17. PFO_ENCRYPT: Supports Encryption Engine. + +18. SUB_PROCESSORS: Supports Sub-Processors. + +19. DY_MEM_V2: Client program supports the “ibm,dynamic-memory-v2” property in the + “ibm,dynamic-reconfiguration-memory” node and it may be presented in the device tree. +20. DRC_INFO: Client program supports the “ibm,drc-info” property definition and it may be + presented in the device tree. + +Signed-off-by: Avnish Chouhan +Reviewed-by: Daniel Kiper +(cherry picked from commit 98d0df0351fbff7a4acc64c7594d538889a43e2d) +--- + grub-core/kern/ieee1275/init.c | 47 ++++++++++++++++++++++++++++++++++++------ + 1 file changed, 41 insertions(+), 6 deletions(-) + +diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c +index 5d79580341..3d4ad9d1f1 100644 +--- a/grub-core/kern/ieee1275/init.c ++++ b/grub-core/kern/ieee1275/init.c +@@ -72,11 +72,41 @@ extern char _end[]; + grub_addr_t grub_ieee1275_original_stack; + #endif + +-#define LPAR 0x80 +-#define SPLPAR 0x40 +-#define BYTE2 (LPAR | SPLPAR) +-#define CMO 0x80 +-#define MAX_CPU 256 ++/* Options vector5 properties. */ ++ ++#define LPAR 0x80 ++#define SPLPAR 0x40 ++#define DYN_RCON_MEM 0x20 ++#define LARGE_PAGES 0x10 ++#define DONATE_DCPU_CLS 0x02 ++#define PCI_EXP 0x01 ++#define BYTE2 (LPAR | SPLPAR | DYN_RCON_MEM | LARGE_PAGES | DONATE_DCPU_CLS | PCI_EXP) ++ ++#define CMOC 0x80 ++#define EXT_CMO 0x40 ++#define CMO (CMOC | EXT_CMO) ++ ++#define ASSOC_REF 0x80 ++#define AFFINITY 0x40 ++#define NUMA 0x20 ++#define ASSOCIATIVITY (ASSOC_REF | AFFINITY | NUMA) ++ ++#define HOTPLUG_INTRPT 0x04 ++#define HPT_RESIZE 0x01 ++#define BIN_OPTS (HOTPLUG_INTRPT | HPT_RESIZE) ++ ++#define MAX_CPU 256 ++ ++#define PFO_HWRNG 0x80000000 ++#define PFO_HW_COMP 0x40000000 ++#define PFO_ENCRYPT 0x20000000 ++#define PLATFORM_FACILITIES (PFO_HWRNG | PFO_HW_COMP | PFO_ENCRYPT) ++ ++#define SUB_PROCESSORS 1 ++ ++#define DY_MEM_V2 0x80 ++#define DRC_INFO 0x40 ++#define BYTE22 (DY_MEM_V2 | DRC_INFO) + + void + grub_exit (int rc __attribute__((unused))) +@@ -519,6 +549,11 @@ struct option_vector5 + grub_uint8_t micro_checkpoint; + grub_uint8_t reserved0; + grub_uint32_t max_cpus; ++ grub_uint16_t base_papr; ++ grub_uint16_t mem_reference; ++ grub_uint32_t platform_facilities; ++ grub_uint8_t sub_processors; ++ grub_uint8_t byte22; + } GRUB_PACKED; + + struct pvr_entry +@@ -581,7 +616,7 @@ grub_ieee1275_ibm_cas (void) + .vec4 = 0x0001, /* set required minimum capacity % to the lowest value */ + .vec5_size = 1 + sizeof (struct option_vector5) - 2, + .vec5 = { +- 0, BYTE2, 0, CMO, 0, 0, 0, 0, MAX_CPU ++ 0, BYTE2, 0, CMO, ASSOCIATIVITY, BIN_OPTS, 0, 0, MAX_CPU, 0, 0, PLATFORM_FACILITIES, SUB_PROCESSORS, BYTE22 + } + }; + diff --git a/SOURCES/0326-efi-http-change-uint32_t-to-uintn_t.patch b/SOURCES/0326-efi-http-change-uint32_t-to-uintn_t.patch new file mode 100644 index 0000000..d5f6eaa --- /dev/null +++ b/SOURCES/0326-efi-http-change-uint32_t-to-uintn_t.patch @@ -0,0 +1,30 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Keng-Yu Lin +Date: Wed, 26 Apr 2023 01:43:16 -0400 +Subject: [PATCH] efi/http: change uint32_t to uintn_t + +Modify UINT32 to UINTN in EFI_HTTP_MESSAGE to +be UEFI 2.9 compliant. + +Signed-off-by: Keng-Yu Lin +Signed-off-by: Nicolas Frayer +--- + include/grub/efi/http.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/include/grub/efi/http.h b/include/grub/efi/http.h +index c5e9a89f50..ad164ba191 100644 +--- a/include/grub/efi/http.h ++++ b/include/grub/efi/http.h +@@ -171,9 +171,9 @@ typedef struct { + grub_efi_http_request_data_t *request; + grub_efi_http_response_data_t *response; + } data; +- grub_efi_uint32_t header_count; ++ grub_efi_uintn_t header_count; + grub_efi_http_header_t *headers; +- grub_efi_uint32_t body_length; ++ grub_efi_uintn_t body_length; + void *body; + } grub_efi_http_message_t; + diff --git a/SOURCES/20-grub.install b/SOURCES/20-grub.install index 2a0ac32..fe7ad8a 100755 --- a/SOURCES/20-grub.install +++ b/SOURCES/20-grub.install @@ -126,7 +126,11 @@ case "$COMMAND" in sed -i -e "s,^initrd.*,initrd ${BOOTPREFIX}${INITRD},g" "${BLS_TARGET}" fi - if [[ "$KERNEL_VERSION" == *\+* ]] && [ "x$GRUB_DEFAULT_TO_DEBUG" != "xtrue" ]; then + if ( [[ "$KERNEL_VERSION" != *${GRUB_DEFAULT_KERNEL_TYPE}* ]] && \ + [ "x$GRUB_NON_STANDARD_KERNEL" == "xtrue" ] ) || \ + ( echo "$KERNEL_VERSION" | grep -E -q "64k|auto|rt|uki" && \ + [ "x$GRUB_NON_STANDARD_KERNEL" != "xtrue" ] ) || \ + ( [[ "$KERNEL_VERSION" == *debug* ]] && [ "x$GRUB_DEFAULT_TO_DEBUG" != "xtrue" ] ); then GRUB_UPDATE_DEFAULT_KERNEL=false fi diff --git a/SOURCES/grub.patches b/SOURCES/grub.patches index 510ab16..0074325 100644 --- a/SOURCES/grub.patches +++ b/SOURCES/grub.patches @@ -320,3 +320,7 @@ Patch0319: 0319-osdep-linux-hostdisk-Modify-sector-by-sysfs-as-disk-.patch Patch0320: 0320-mm-Adjust-new-region-size-to-take-management-overhea.patch Patch0321: 0321-mm-Preallocate-some-space-when-adding-new-regions.patch Patch0322: 0322-mm-Avoid-complex-heap-growth-math-in-hot-path.patch +Patch0323: 0323-util-Enable-default-kernel-for-updates.patch +Patch0324: 0324-kern-ieee1275-init-Convert-plain-numbers-to-constant.patch +Patch0325: 0325-kern-ieee1275-init-Extended-support-in-Vec5.patch +Patch0326: 0326-efi-http-change-uint32_t-to-uintn_t.patch diff --git a/SPECS/grub2.spec b/SPECS/grub2.spec index 461a225..49e944d 100644 --- a/SPECS/grub2.spec +++ b/SPECS/grub2.spec @@ -16,7 +16,7 @@ Name: grub2 Epoch: 1 Version: 2.06 -Release: 61%{?dist} +Release: 65%{?dist} Summary: Bootloader with support for Linux, Multiboot and more License: GPLv3+ URL: http://www.gnu.org/software/grub/ @@ -533,6 +533,22 @@ mv ${EFI_HOME}/grub.cfg.stb ${EFI_HOME}/grub.cfg %endif %changelog +* Wed Jun 07 2023 Nicolas Frayer - 2.06-65 +- efi/http: change uint32_t to uintn_t +- Resolves: #2207851 + +* Fri May 26 2023 Nicolas Frayer - 2.06-64 +- kern/ieee1275/init: sync vec5 patchset with upstream +- Resolves: #2183939 + +* Wed May 24 2023 Nicolas Frayer - 2.06-63 +- util: Enable default kernel for updates +- Resolves: #2184069 + +* Tue May 23 2023 Javier Martinez Canillas - 2.06-62 +- 20-grub-install: Explicitly check '+debug' suffix for debug kernels +- Resolves: #2148351 + * Mon Feb 20 2023 Robbie Harwood - 2.06-61 - ppc64le sysfs and mm update - Resolves: #2026579