mirror of
https://src.fedoraproject.org/rpms/grub2.git
synced 2024-11-28 07:44:52 +00:00
ppc64le: more cas vec5 shenanigans
Signed-off-by: Robbie Harwood <rharwood@redhat.com>
This commit is contained in:
parent
6a9365c88d
commit
ecd22580ae
4 changed files with 181 additions and 1 deletions
|
@ -0,0 +1,48 @@
|
||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Avnish Chouhan <avnish@linux.vnet.ibm.com>
|
||||||
|
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 <avnish@linux.vnet.ibm.com>
|
||||||
|
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||||
|
(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
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
127
0327-kern-ieee1275-init-Extended-support-in-Vec5.patch
Normal file
127
0327-kern-ieee1275-init-Extended-support-in-Vec5.patch
Normal file
|
@ -0,0 +1,127 @@
|
||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Avnish Chouhan <avnish@linux.vnet.ibm.com>
|
||||||
|
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 <avnish@linux.vnet.ibm.com>
|
||||||
|
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||||
|
(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
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
|
@ -323,3 +323,5 @@ Patch0322: 0322-mm-Avoid-complex-heap-growth-math-in-hot-path.patch
|
||||||
Patch0323: 0323-hostdisk-work-around-proc-not-reporting-size.patch
|
Patch0323: 0323-hostdisk-work-around-proc-not-reporting-size.patch
|
||||||
Patch0324: 0324-blscfg-check-for-mounted-boot-in-emu.patch
|
Patch0324: 0324-blscfg-check-for-mounted-boot-in-emu.patch
|
||||||
Patch0325: 0325-emu-linux-work-around-systemctl-kexec-returning.patch
|
Patch0325: 0325-emu-linux-work-around-systemctl-kexec-returning.patch
|
||||||
|
Patch0326: 0326-kern-ieee1275-init-Convert-plain-numbers-to-constant.patch
|
||||||
|
Patch0327: 0327-kern-ieee1275-init-Extended-support-in-Vec5.patch
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
Name: grub2
|
Name: grub2
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 2.06
|
Version: 2.06
|
||||||
Release: 90%{?dist}
|
Release: 91%{?dist}
|
||||||
Summary: Bootloader with support for Linux, Multiboot and more
|
Summary: Bootloader with support for Linux, Multiboot and more
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
URL: http://www.gnu.org/software/grub/
|
URL: http://www.gnu.org/software/grub/
|
||||||
|
@ -544,6 +544,9 @@ mv ${EFI_HOME}/grub.cfg.stb ${EFI_HOME}/grub.cfg
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Mar 30 2023 Robbie Harwood <rharwood@redhat.com> - 2.06-91
|
||||||
|
- ppc64le: more cas vec5 shenanigans
|
||||||
|
|
||||||
* Wed Mar 22 2023 Robbie Harwood <rharwood@redhat.com> - 2.06-90
|
* Wed Mar 22 2023 Robbie Harwood <rharwood@redhat.com> - 2.06-90
|
||||||
- emu: work around systemctl bad behavior
|
- emu: work around systemctl bad behavior
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue