grub: only enable nvme if needed on a board

remove nvme support from the "default" grub tree

now there are three trees:

* default: no xhci or nvme patches
* nvme: contains nvme support
* xhci: contains xhci and nvme support

this is in case a bug like lbmk issue #216 ever occurs
again, as referenced before during lbmk audit 5

there is no indication that the nvme patch causes any
issues, but after previous experience i want to be sure

Signed-off-by: Leah Rowe <leah@libreboot.org>
This commit is contained in:
Leah Rowe
2024-06-12 00:58:22 +01:00
parent 1952db5554
commit 0b37653ab9
36 changed files with 3756 additions and 20 deletions
@@ -0,0 +1,102 @@
From 9e7a651a0f15f2e9dec65a77765c3c4fd97b4165 Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sun, 5 Nov 2023 16:14:58 +0000
Subject: [PATCH 1/1] don't print missing prefix errors on the screen
we do actually set the prefix. this patch modifies
grub to still set grub_errno and return accordingly,
so the behaviour is otherwise identical, but it will
no longer print a warning message on the screen.
Signed-off-by: Leah Rowe <leah@libreboot.org>
---
grub-core/commands/keylayouts.c | 2 +-
grub-core/commands/loadenv.c | 2 +-
grub-core/commands/nativedisk.c | 2 +-
grub-core/efiemu/main.c | 3 +--
grub-core/font/font.c | 2 +-
grub-core/kern/dl.c | 2 +-
6 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/grub-core/commands/keylayouts.c b/grub-core/commands/keylayouts.c
index 445fa0601..00bcf7025 100644
--- a/grub-core/commands/keylayouts.c
+++ b/grub-core/commands/keylayouts.c
@@ -211,7 +211,7 @@ grub_cmd_keymap (struct grub_command *cmd __attribute__ ((unused)),
{
const char *prefix = grub_env_get ("prefix");
if (!prefix)
- return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("variable `%s' isn't set"), "prefix");
+ return (grub_errno = GRUB_ERR_BAD_ARGUMENT);
filename = grub_xasprintf ("%s/layouts/%s.gkb", prefix, argv[0]);
if (!filename)
return grub_errno;
diff --git a/grub-core/commands/loadenv.c b/grub-core/commands/loadenv.c
index 166445849..699b39bfa 100644
--- a/grub-core/commands/loadenv.c
+++ b/grub-core/commands/loadenv.c
@@ -58,7 +58,7 @@ open_envblk_file (char *filename,
prefix = grub_env_get ("prefix");
if (! prefix)
{
- grub_error (GRUB_ERR_FILE_NOT_FOUND, N_("variable `%s' isn't set"), "prefix");
+ grub_errno = GRUB_ERR_FILE_NOT_FOUND;
return 0;
}
diff --git a/grub-core/commands/nativedisk.c b/grub-core/commands/nativedisk.c
index 580c8d3b0..6806bff9c 100644
--- a/grub-core/commands/nativedisk.c
+++ b/grub-core/commands/nativedisk.c
@@ -186,7 +186,7 @@ grub_cmd_nativedisk (grub_command_t cmd __attribute__ ((unused)),
prefix = grub_env_get ("prefix");
if (! prefix)
- return grub_error (GRUB_ERR_FILE_NOT_FOUND, N_("variable `%s' isn't set"), "prefix");
+ return (grub_errno = GRUB_ERR_FILE_NOT_FOUND);
if (prefix)
path_prefix = (prefix[0] == '(') ? grub_strchr (prefix, ')') : NULL;
diff --git a/grub-core/efiemu/main.c b/grub-core/efiemu/main.c
index e7037f4ed..e5d4dbff1 100644
--- a/grub-core/efiemu/main.c
+++ b/grub-core/efiemu/main.c
@@ -231,8 +231,7 @@ grub_efiemu_autocore (void)
prefix = grub_env_get ("prefix");
if (! prefix)
- return grub_error (GRUB_ERR_FILE_NOT_FOUND,
- N_("variable `%s' isn't set"), "prefix");
+ return (grub_errno = GRUB_ERR_FILE_NOT_FOUND);
suffix = grub_efiemu_get_default_core_name ();
diff --git a/grub-core/font/font.c b/grub-core/font/font.c
index 18de52562..2a0fea6c8 100644
--- a/grub-core/font/font.c
+++ b/grub-core/font/font.c
@@ -461,7 +461,7 @@ grub_font_load (const char *filename)
if (!prefix)
{
- grub_error (GRUB_ERR_FILE_NOT_FOUND, N_("variable `%s' isn't set"), "prefix");
+ grub_errno = GRUB_ERR_FILE_NOT_FOUND;
goto fail;
}
file = try_open_from_prefix (prefix, filename);
diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c
index 4011e2d15..af3bd00d0 100644
--- a/grub-core/kern/dl.c
+++ b/grub-core/kern/dl.c
@@ -758,7 +758,7 @@ grub_dl_load (const char *name)
return 0;
if (! grub_dl_dir) {
- grub_error (GRUB_ERR_FILE_NOT_FOUND, N_("variable `%s' isn't set"), "prefix");
+ grub_errno = GRUB_ERR_FILE_NOT_FOUND;
return 0;
}
--
2.39.2
@@ -0,0 +1,34 @@
From 6237c5762edccc1e1fa4746b1d4aa5e8d81e4883 Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sun, 5 Nov 2023 16:36:22 +0000
Subject: [PATCH 1/1] don't print error if module not found
still set grub_errno accordingly, and otherwise
behave the same. in libreboot, we remove a lot of
modules but then rely on loading a grub.cfg
provided by a distro; in almost all cases that works,
but also in almost all cases, that will try to load
a module we don't actually need, but then it prints
a message. this can annoy some users, so silence it.
Signed-off-by: Leah Rowe <leah@libreboot.org>
---
grub-core/kern/dl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c
index af3bd00d0..21d0cedb1 100644
--- a/grub-core/kern/dl.c
+++ b/grub-core/kern/dl.c
@@ -486,7 +486,7 @@ grub_dl_resolve_name (grub_dl_t mod, Elf_Ehdr *e)
s = grub_dl_find_section (e, ".modname");
if (!s)
- return grub_error (GRUB_ERR_BAD_MODULE, "no module name found");
+ return (grub_errno = GRUB_ERR_BAD_MODULE);
mod->name = grub_strdup ((char *) e + s->sh_offset);
if (! mod->name)
--
2.39.2
@@ -0,0 +1,31 @@
From e5b7ec81421487e71bcaf8b6b5a27f3649a62753 Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sun, 5 Nov 2023 17:25:20 +0000
Subject: [PATCH 1/1] don't print empty error messages
this is part two of the quest to kill the prefix
error message. after i disabled prefix-related
messages, it still printed "error: ." on screen.
Signed-off-by: Leah Rowe <leah@libreboot.org>
---
grub-core/kern/err.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/grub-core/kern/err.c b/grub-core/kern/err.c
index 53c734de7..7cac53983 100644
--- a/grub-core/kern/err.c
+++ b/grub-core/kern/err.c
@@ -107,7 +107,8 @@ grub_print_error (void)
{
if (grub_errno != GRUB_ERR_NONE)
{
- grub_err_printf (_("error: %s.\n"), grub_errmsg);
+ if (grub_strlen(grub_errmsg) > 0)
+ grub_err_printf (_("error: %s.\n"), grub_errmsg);
grub_err_printed_errors++;
}
}
--
2.39.2