diff options
| author | Leah Rowe <leah@libreboot.org> | 2026-09-18 21:04:00 +0100 |
|---|---|---|
| committer | Leah Rowe <leah@libreboot.org> | 2026-09-20 13:53:33 +0100 |
| commit | 076c87ccf68f7fe5a3998e8cd8edd2033a2f2ef0 (patch) | |
| tree | 9aaf04cfa16565227f733b917af3e3c485505544 /config/u-boot/x86_64 | |
| parent | 387e6dd771588b7f8426c8d0934e610626730d51 (diff) | |
xbmk: make all projects multi-tree
we currently distinguish, by virtue of logic, multi-
and single-tree projects. this introduces a lot of
complexity, so the following patch has removed this
distinction. all single-tree projects are now multi
tree, but with only one tree.
other design changes:
config/git removed. rev/tree now handled with mkhelper
and target configs. this allows per-tree remote handling,
so we could (for example) add the mrchromebox coreboot
fork easily, for specific chromebook models.
config/project is now config/module/project. this
cleans up the main config/ directory.
cfgname variable: .config no longer hardcoded when
doing configs in projects. it is configurable with
this variable. if unset, the previous .cfg is used
noconfig variable: set this in target/mkhelper
configs, and config/module/project/tree/config/ is
unused; instead, make is called without config copying.
a "noconfig" placeholder is used. this enables cleaner
usage of previously single-tree projects in the new
multi-tree-only structure.
cfgvars: variables reinitialised in project config are
cleaned more reliably. in particular, several variables
e.g. autogenargs were not being reset between projects,
although the autogenargs variable is currently unused.
general cleanup has been conducted across the build
system, as part of this redesign. several parts of the
build system more over-engineered as a result of the
previous design, and the new design enabled a severe
reduction in sloccount (75 lines reduced in lbmk).
yes, this change *adds features* but there are fewer
lines of code than before. this is the best kind of
change. way better than the 3-line-diff. yes.
rev= and tree= are set more centrally in configs. the
mkhelper config can be used to set url/url_bkup, but
individual trees can override them.
configs have been cleaned up, with several variables
now much more heavily centralised. config/git/ was
used before to first download the bare repository, and
then the real clone was made with patches. this allows
git repositories to be cached for future re-builds.
with config/git/ gone, the download logic for projects
is more centrally implemented. a separate call to ./mk -f
is no longer performed, and in fact ./mk -f never needs
to be used anymore as a result. ./mk -f now is basically
the same thing as -b, just without any action performed.
this change will allow rapid expansion of the libreboot
project. i want to add hundreds of chromebooks to the
project, using mrchromebox, but the previous design did
not permit this. this change means that i can easily have
unlimited upstreams per project. coreboot will, in some
follow-up changes, have the following upstreams:
coreboot/default: coreboot.org
coreboot/fam15h: 15h.org fork
coreboot/chromebook: mrchromebox fork
this can now be done freely without massive changes to
the build system. under the previous design, i worked on
a now-abandoned patch to do N remotes per project, reading
repo links from a file. this meant that i'd have coreboot.org
first (main and backup), then mrchromebox. this meant that
lbmk would failover through to mrchromebox, wasting time
for the user.
this new design is much cleaner, and will enable the
project to be maintained much more easily.
Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'config/u-boot/x86_64')
10 files changed, 0 insertions, 843 deletions
diff --git a/config/u-boot/x86_64/nuke.list b/config/u-boot/x86_64/nuke.list deleted file mode 100644 index f3a3fcc3..00000000 --- a/config/u-boot/x86_64/nuke.list +++ /dev/null @@ -1 +0,0 @@ -test/lib/strlcat.c diff --git a/config/u-boot/x86_64/patches/0001-x86-serial-ns16550-Allow-the-UART-to-be-silently-dis.patch b/config/u-boot/x86_64/patches/0001-x86-serial-ns16550-Allow-the-UART-to-be-silently-dis.patch deleted file mode 100644 index e3969d03..00000000 --- a/config/u-boot/x86_64/patches/0001-x86-serial-ns16550-Allow-the-UART-to-be-silently-dis.patch +++ /dev/null @@ -1,116 +0,0 @@ -From 13263cb35e8fc82f15aad2c1091f2b05342fbe0f Mon Sep 17 00:00:00 2001 -From: Simon Glass <sjg@chromium.org> -Date: Wed, 1 Nov 2023 12:04:42 -0600 -Subject: [PATCH 1/1] x86: serial: ns16550: Allow the UART to be silently - disabled - -U-Boot normally requires a UART. When booting from coreboot it is -sometimes just not available, e.g. when no sysinfo or DBG2 information -is provided. - -In this case we need to continue running, since the display can be used. -Add a flag to disable serial for this case. - -This allows U-Boot to start up and operation from the display, instead -of hanging on start-up. - -This could perhaps be hidden behind a Kconfig option to reduce code -size. - -Signed-off-by: Simon Glass <sjg@chromium.org> ---- - drivers/serial/ns16550.c | 17 +++++++++++++++-- - drivers/serial/serial_coreboot.c | 1 + - include/ns16550.h | 1 + - 3 files changed, 17 insertions(+), 2 deletions(-) - -diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c -index 6fcb5b523a..891124fc62 100644 ---- a/drivers/serial/ns16550.c -+++ b/drivers/serial/ns16550.c -@@ -384,6 +384,8 @@ static int ns16550_serial_putc(struct udevice *dev, const char ch) - { - struct ns16550 *const com_port = dev_get_priv(dev); - -+ if (com_port->plat->flags & NS16550_FLAG_DISABLE) -+ return 0; - if (!(serial_in(&com_port->lsr) & UART_LSR_THRE)) - return -EAGAIN; - serial_out(ch, &com_port->thr); -@@ -404,6 +406,9 @@ static int ns16550_serial_pending(struct udevice *dev, bool input) - { - struct ns16550 *const com_port = dev_get_priv(dev); - -+ if (com_port->plat->flags & NS16550_FLAG_DISABLE) -+ return 0; -+ - if (input) - return (serial_in(&com_port->lsr) & UART_LSR_DR) ? 1 : 0; - else -@@ -414,6 +419,9 @@ static int ns16550_serial_getc(struct udevice *dev) - { - struct ns16550 *const com_port = dev_get_priv(dev); - -+ if (com_port->plat->flags & NS16550_FLAG_DISABLE) -+ return 0; -+ - if (!(serial_in(&com_port->lsr) & UART_LSR_DR)) - return -EAGAIN; - -@@ -428,7 +436,8 @@ static int ns16550_serial_setbrg(struct udevice *dev, int baudrate) - - clock_divisor = ns16550_calc_divisor(com_port, plat->clock, baudrate); - -- ns16550_setbrg(com_port, clock_divisor); -+ if (!(plat->flags & NS16550_FLAG_DISABLE)) -+ ns16550_setbrg(com_port, clock_divisor); - - return 0; - } -@@ -441,6 +450,9 @@ static int ns16550_serial_setconfig(struct udevice *dev, uint serial_config) - uint bits = SERIAL_GET_BITS(serial_config); - uint stop = SERIAL_GET_STOP(serial_config); - -+ if (com_port->plat->flags & NS16550_FLAG_DISABLE) -+ return 0; -+ - /* - * only parity config is implemented, check if other serial settings - * are the default one. -@@ -533,7 +545,8 @@ int ns16550_serial_probe(struct udevice *dev) - reset_deassert_bulk(&reset_bulk); - - com_port->plat = dev_get_plat(dev); -- ns16550_init(com_port, -1); -+ if (!(plat->flags & NS16550_FLAG_DISABLE)) -+ ns16550_init(com_port, -1); - - return 0; - } -diff --git a/drivers/serial/serial_coreboot.c b/drivers/serial/serial_coreboot.c -index b1f69f6998..a885809abd 100644 ---- a/drivers/serial/serial_coreboot.c -+++ b/drivers/serial/serial_coreboot.c -@@ -119,6 +119,7 @@ static int coreboot_of_to_plat(struct udevice *dev) - * there is no UART, which may panic. So stay silent and - * pray that the video console will work. - */ -+ plat->flags |= NS16550_FLAG_DISABLE; - log_debug("Cannot detect UART\n"); - } - -diff --git a/include/ns16550.h b/include/ns16550.h -index 7f48130008..3c4f3e7539 100644 ---- a/include/ns16550.h -+++ b/include/ns16550.h -@@ -52,6 +52,7 @@ enum ns16550_flags { - NS16550_FLAG_IO = 1 << 0, /* Use I/O access (else mem-mapped) */ - NS16550_FLAG_ENDIAN = 1 << 1, /* Use out_le/be_32() */ - NS16550_FLAG_BE = 1 << 2, /* Big-endian access (else little) */ -+ NS16550_FLAG_DISABLE = BIT(3), /* No output or input */ - }; - - /** --- -2.39.5 - diff --git a/config/u-boot/x86_64/patches/0002-x86-Avoid-clearing-the-VESA-display.patch b/config/u-boot/x86_64/patches/0002-x86-Avoid-clearing-the-VESA-display.patch deleted file mode 100644 index 7fb75772..00000000 --- a/config/u-boot/x86_64/patches/0002-x86-Avoid-clearing-the-VESA-display.patch +++ /dev/null @@ -1,34 +0,0 @@ -From a6b9e69a21970951252419b5b5fa9c04fabbf1a4 Mon Sep 17 00:00:00 2001 -From: Simon Glass <sjg@chromium.org> -Date: Tue, 12 Nov 2024 06:59:02 -0700 -Subject: [PATCH 1/2] x86: Avoid clearing the VESA display - -U-Boot clears the display when it starts up, so there is no need to ask -the VESA driver to do this. Fix this and add a comment explaining the -flags. - -Signed-off-by: Simon Glass <sjg@chromium.org> ---- - arch/x86/lib/bios.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/arch/x86/lib/bios.c b/arch/x86/lib/bios.c -index 03f7360032..374f4f20b8 100644 ---- a/arch/x86/lib/bios.c -+++ b/arch/x86/lib/bios.c -@@ -228,7 +228,11 @@ static void vbe_set_graphics(int vesa_mode, struct vesa_state *mode_info) - { - unsigned char *framebuffer; - -- mode_info->video_mode = (1 << 14) | vesa_mode; -+ /* -+ * bit 14 is linear-framebuffer mode -+ * bit 15 means don't clear the display -+ */ -+ mode_info->video_mode = (1 << 14) | (1 << 15) | vesa_mode; - vbe_get_mode_info(mode_info); - - framebuffer = (unsigned char *)(ulong)mode_info->vesa.phys_base_ptr; --- -2.39.5 - diff --git a/config/u-boot/x86_64/patches/0003-x86-Avoid-clearing-the-VESA-display.patch b/config/u-boot/x86_64/patches/0003-x86-Avoid-clearing-the-VESA-display.patch deleted file mode 100644 index bb33d6fd..00000000 --- a/config/u-boot/x86_64/patches/0003-x86-Avoid-clearing-the-VESA-display.patch +++ /dev/null @@ -1,29 +0,0 @@ -From d098961a91c8f410f50ae31e60300c0ef1f67075 Mon Sep 17 00:00:00 2001 -From: Simon Glass <sjg@chromium.org> -Date: Tue, 12 Nov 2024 06:59:06 -0700 -Subject: [PATCH 2/2] x86: Drop the message about features missing in 64-bit - -This functions normally and has done for a while, so drop this scary -message. - -Signed-off-by: Simon Glass <sjg@chromium.org> ---- - arch/x86/lib/spl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/x86/lib/spl.c b/arch/x86/lib/spl.c -index f761fbc8bc..656f59ede0 100644 ---- a/arch/x86/lib/spl.c -+++ b/arch/x86/lib/spl.c -@@ -283,7 +283,7 @@ void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image) - { - int ret; - -- printf("Jumping to 64-bit U-Boot: Note many features are missing\n"); -+ log_debug("Jumping to 64-bit U-Boot\n"); - ret = cpu_jump_to_64bit_uboot(spl_image->entry_point); - debug("ret=%d\n", ret); - hang(); --- -2.39.5 - diff --git a/config/u-boot/x86_64/patches/0004-Support-auto-boot-timeout-delay-bootflow-menu.patch b/config/u-boot/x86_64/patches/0004-Support-auto-boot-timeout-delay-bootflow-menu.patch deleted file mode 100644 index ffc7b581..00000000 --- a/config/u-boot/x86_64/patches/0004-Support-auto-boot-timeout-delay-bootflow-menu.patch +++ /dev/null @@ -1,302 +0,0 @@ -From d9371422ac74ea73d1620f01300a7136a7649754 Mon Sep 17 00:00:00 2001 -From: Leah Rowe <info@minifree.org> -Date: Wed, 4 Dec 2024 06:52:39 +0000 -Subject: [PATCH 1/1] Support auto-boot timeout delay bootflow menu - -The bootflow menu cannot currently auto-boot a selected entry, -which means that the user must press enter to boot their system. -This can be a problem on headless setups; for example, it is not -currently feasible to set up a headless server with U-Boot, when -using it to boot via UEFI on a coreboot setup. - -This patch adds the following build-time configuration option: - -CONFIG_CMD_BOOTFLOW_BOOTDELAY - -This creates a timeout delay in the given number of seconds. -If an arrow key is press to navigate the menu, the timer is -disabled and the user must then press enter to boot the selected -option. When this happens, the timeout display is replaced by -the old message indicating that the user should press enter. - -The default boot delay is 30 seconds, and the timeout is enabled -by default. Setting it to zero will restore the old behaviour, -whereby no timeout is provided and the user must press enter. - -If a negative integer is provided, the timer will default to -zero. The timer value is further filtered by modulus of 100, -so that the maximum number of seconds allowed is 99 seconds. - -Signed-off-by: Leah Rowe <info@minifree.org> ---- - boot/bootflow_menu.c | 117 +++++++++++++++++++++++++++++++++++-- - cmd/Kconfig | 12 ++++ - doc/usage/cmd/bootflow.rst | 11 ++++ - include/bootflow.h | 10 +++- - 4 files changed, 143 insertions(+), 7 deletions(-) - -diff --git a/boot/bootflow_menu.c b/boot/bootflow_menu.c -index 9d0dc352f9..172139b187 100644 ---- a/boot/bootflow_menu.c -+++ b/boot/bootflow_menu.c -@@ -30,7 +30,7 @@ struct menu_priv { - int num_bootflows; - }; - --int bootflow_menu_new(struct expo **expp) -+int bootflow_menu_new(struct expo **expp, const char *prompt) - { - struct udevice *last_bootdev; - struct scene_obj_menu *menu; -@@ -54,7 +54,7 @@ int bootflow_menu_new(struct expo **expp) - return log_msg_ret("scn", ret); - - ret |= scene_txt_str(scn, "prompt", OBJ_PROMPT, STR_PROMPT, -- "UP and DOWN to choose, ENTER to select", NULL); -+ prompt, NULL); - - ret = scene_menu(scn, "main", OBJ_MENU, &menu); - ret |= scene_obj_set_pos(scn, OBJ_MENU, MARGIN_LEFT, 100); -@@ -138,6 +138,29 @@ int bootflow_menu_new(struct expo **expp) - return 0; - } - -+int bootflow_menu_show_countdown(struct expo *exp, char *prompt, -+ char bootflow_delay) -+{ -+ char *i; -+ -+ if (prompt == NULL) -+ return 0; -+ if (strlen(prompt) < 2) -+ return 0; -+ -+ i = prompt + strlen(prompt) - 2; -+ -+ if (bootflow_delay >= 10) { -+ *(i) = 48 + (bootflow_delay / 10); -+ *(i + 1) = 48 + (bootflow_delay % 10); -+ } else { -+ *(i) = 48 + bootflow_delay; -+ *(i + 1) = ' '; -+ } -+ -+ return expo_render(exp); -+} -+ - int bootflow_menu_apply_theme(struct expo *exp, ofnode node) - { - struct menu_priv *priv = exp->priv; -@@ -184,14 +207,62 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode, - struct expo *exp; - uint sel_id; - bool done; -- int ret; -+ int i, ret; -+ -+ /* Auto-boot countdown */ -+ char bootflow_delay_secs, *prompt; -+ int bootflow_time, bootflow_delay; -+ bool skip_render_once = false; -+ bool bootflow_countdown = false; -+ -+ /* TODO: perhaps set based on defconfig? */ -+ /* WARNING: These two strings must be of the same length. */ -+ char promptChoice[] = "UP and DOWN to choose, ENTER to select"; -+ char promptTimeout[] = "UP and DOWN to choose. Auto-boot in "; -+/* -+ // Uncomment if the strings become configurable (defconfig): -+ // (to prevent buffer overflows) -+ char promptDefault[] = "UP and DOWN to choose, ENTER to select"; -+ if (promptTimeout = NULL) -+ promptTimeout = promptDefault; -+ if (promptChoice = NULL) -+ promptChoice = promptDefault; -+ if (strlen(promptChoice) < 2) -+ promptChoice = promptDefault; -+ if (strlen(promptTimeout) < 2) -+ promptTimeout = promptDefault; -+ if (strlen(promptChoice) != strlen(promptTimeout)) -+ promptChoice = promptTimeout; -+*/ -+ prompt = promptChoice; -+ -+ bootflow_delay_secs = 15; /* TODO: set based on defconfig. */ -+ -+#if defined(CONFIG_CMD_BOOTFLOW_BOOTDELAY) -+ /* If set to zero, the auto-boot timeout is disabled. */ -+ bootflow_delay_secs = CONFIG_CMD_BOOTFLOW_BOOTDELAY; -+#else -+ bootflow_delay_secs = 30; -+#endif -+ -+ if (bootflow_delay_secs < 0) -+ bootflow_delay_secs = 0; /* disable countdown if negative */ -+ bootflow_delay_secs %= 100; /* No higher than 99 seconds */ -+ -+ if (bootflow_delay_secs > 0) { -+ bootflow_countdown = true; /* enable auto-boot countdown */ -+ prompt = promptTimeout; -+ bootflow_time = 0; /* Time elapsed in milliseconds */ -+ bootflow_delay = -+ (int)bootflow_delay_secs * 1000; /* milliseconds */ -+ } - - cli_ch_init(cch); - - sel_bflow = NULL; - *bflowp = NULL; - -- ret = bootflow_menu_new(&exp); -+ ret = bootflow_menu_new(&exp, prompt); - if (ret) - return log_msg_ret("exp", ret); - -@@ -216,12 +287,20 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode, - if (text_mode) - expo_set_text_mode(exp, text_mode); - -+ if (bootflow_countdown) { -+ ret = bootflow_menu_show_countdown(exp, prompt, -+ bootflow_delay_secs); -+ skip_render_once = true; /* Don't print menu twice on start */ -+ } - done = false; - do { - struct expo_action act; - int ichar, key; - -- ret = expo_render(exp); -+ if (skip_render_once) -+ skip_render_once = false; -+ else -+ ret = expo_render(exp); - if (ret) - break; - -@@ -231,7 +310,23 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode, - schedule(); - mdelay(2); - ichar = cli_ch_process(cch, -ETIMEDOUT); -+ if (bootflow_countdown) { -+ bootflow_delay -= 2; -+ bootflow_time += 2; -+ if (bootflow_delay <= 0) -+ ichar='\n'; -+ if (bootflow_time < 1000) -+ continue; -+ bootflow_time = 0; -+ --bootflow_delay_secs; -+ ret = bootflow_menu_show_countdown(exp, -+ prompt, bootflow_delay_secs); -+ if (ret) -+ break; -+ } - } -+ if (ret) -+ break; - if (!ichar) { - ichar = getchar(); - ichar = cli_ch_process(cch, ichar); -@@ -265,6 +360,17 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode, - break; - } - } -+ if (bootflow_countdown) { -+ /* A key press interrupted the auto-boot timeout */ -+ bootflow_countdown = false; -+ if (strlen(prompt) == strlen(promptChoice)) { -+ /* "Auto-boot in" becomes "Press ENTER" */ -+ (void) memcpy(prompt, promptChoice, -+ strlen(promptChoice)); -+ ret = expo_render(exp); -+ skip_render_once = true; -+ } -+ } - } while (!done); - - if (ret) -@@ -272,7 +378,6 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode, - - if (sel_id) { - struct bootflow *bflow; -- int i; - - for (ret = bootflow_first_glob(&bflow), i = 0; !ret && i < 36; - ret = bootflow_next_glob(&bflow), i++) { -diff --git a/cmd/Kconfig b/cmd/Kconfig -index 978f44eda4..0303869625 100644 ---- a/cmd/Kconfig -+++ b/cmd/Kconfig -@@ -288,6 +288,7 @@ config CMD_BOOTDEV - config CMD_BOOTFLOW - bool "bootflow" - depends on BOOTSTD -+ select CMD_BOOTFLOW_BOOTDELAY - default y - help - Support scanning for bootflows available with the bootdevs. The -@@ -303,6 +304,17 @@ config CMD_BOOTFLOW_FULL - - This command is not necessary for bootstd to work. - -+config CMD_BOOTFLOW_BOOTDELAY -+ int "bootflow - delay in seconds before booting the first menu option" -+ depends on CMD_BOOTFLOW -+ default 30 -+ help -+ On the bootflow menu, wait for the defined number of seconds before -+ automatically booting. Unless interrupted, this will auto-boot the -+ first option in the generated list of boot options. -+ -+ Set this to zero if you wish to disable the auto-boot timeout. -+ - config CMD_BOOTMETH - bool "bootmeth" - depends on BOOTSTD -diff --git a/doc/usage/cmd/bootflow.rst b/doc/usage/cmd/bootflow.rst -index 5d41fe37a7..728f294274 100644 ---- a/doc/usage/cmd/bootflow.rst -+++ b/doc/usage/cmd/bootflow.rst -@@ -32,6 +32,17 @@ Note that `CONFIG_BOOTSTD_FULL` (which enables `CONFIG_CMD_BOOTFLOW_FULL) must - be enabled to obtain full functionality with this command. Otherwise, it only - supports `bootflow scan` which scans and boots the first available bootflow. - -+The `CONFIG_CMD_BOOTFLOW_BOOTDELAY` option can be set, defining (in seconds) the -+amount of time that U-Boot will wait; after this time passes, it will -+automatically boot the first item when generating a bootflow menu. If the value -+is set to zero, the timeout is disabled and the user must press enter; if it's -+negative, the timeout is disabled, and the maximum number of seconds is 99 -+seconds. If a value higher than 100 is provided, the value is changed to a -+modulus of 100 (remainder of the value divided by 100). -+ -+If the `CONFIG_BOOTFLOW_BOOTFLOW` option is undefined, the timeout will default -+to 30 seconds. -+ - bootflow scan - ~~~~~~~~~~~~~ - -diff --git a/include/bootflow.h b/include/bootflow.h -index 4d2fc7b69b..9f4245caa7 100644 ---- a/include/bootflow.h -+++ b/include/bootflow.h -@@ -452,7 +452,15 @@ int bootflow_iter_check_system(const struct bootflow_iter *iter); - * @expp: Returns the expo created - * Returns 0 on success, -ve on error - */ --int bootflow_menu_new(struct expo **expp); -+int bootflow_menu_new(struct expo **expp, const char *prompt); -+ -+/** -+ * bootflow_menu_show_countdown() - Show countdown timer for auto-boot -+ * -+ * Returns the value of expo_render() -+ */ -+int bootflow_menu_show_countdown(struct expo *exp, char *prompt, -+ char bootflow_delay); - - /** - * bootflow_menu_apply_theme() - Apply a theme to a bootmenu --- -2.39.5 - diff --git a/config/u-boot/x86_64/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch b/config/u-boot/x86_64/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch deleted file mode 100644 index ec033187..00000000 --- a/config/u-boot/x86_64/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch +++ /dev/null @@ -1,213 +0,0 @@ -From 4ff0f509aa28eb8e85f1c0c9929c63996c646bb8 Mon Sep 17 00:00:00 2001 -From: Leah Rowe <info@minifree.org> -Date: Wed, 4 Dec 2024 18:20:19 +0000 -Subject: [PATCH 1/1] Libreboot branding/version on the bootflow menu - -Signed-off-by: Leah Rowe <info@minifree.org> ---- - boot/bootflow_menu.c | 2 +- - drivers/video/u_boot_logo.bmp | Bin 6932 -> 27350 bytes - 2 files changed, 1 insertion(+), 1 deletion(-) - -diff --git a/boot/bootflow_menu.c b/boot/bootflow_menu.c -index 84831915a2..8e26ec2aef 100644 ---- a/boot/bootflow_menu.c -+++ b/boot/bootflow_menu.c -@@ -59,7 +59,7 @@ int bootflow_menu_new(struct expo **expp, const char *prompt) - ret = scene_menu(scn, "main", OBJ_MENU, &menu); - ret |= scene_obj_set_pos(scn, OBJ_MENU, MARGIN_LEFT, 100); - ret |= scene_txt_str(scn, "title", OBJ_MENU_TITLE, STR_MENU_TITLE, -- "U-Boot - Boot Menu", NULL); -+ "Libreboot 26.01 Magnanimous Max (U-Boot menu): https://libreboot.org/", NULL); - ret |= scene_menu_set_title(scn, OBJ_MENU, OBJ_PROMPT); - - logo = video_get_u_boot_logo(); -diff --git a/drivers/video/u_boot_logo.bmp b/drivers/video/u_boot_logo.bmp -index 47f1e9b99789584d2f6dd71e954b51927b35d783..bc9ae001badb25bc900058c167a47247ef91dc7c 100644 -GIT binary patch -literal 27350 -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 - -literal 6932 -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 - --- -2.39.5 - diff --git a/config/u-boot/x86_64/patches/0006-i-made-it-purple.patch b/config/u-boot/x86_64/patches/0006-i-made-it-purple.patch deleted file mode 100644 index 594a1b35..00000000 --- a/config/u-boot/x86_64/patches/0006-i-made-it-purple.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 9c1ceb5a5b302275da146149001f4210a1d7fc86 Mon Sep 17 00:00:00 2001 -From: Leah Rowe <info@minifree.org> -Date: Wed, 4 Dec 2024 20:13:42 +0000 -Subject: [PATCH 1/1] i made it purple - -Signed-off-by: Leah Rowe <info@minifree.org> ---- - boot/expo.c | 7 ++----- - 1 file changed, 2 insertions(+), 5 deletions(-) - -diff --git a/boot/expo.c b/boot/expo.c -index ed01483f1d..04726d1c9a 100644 ---- a/boot/expo.c -+++ b/boot/expo.c -@@ -189,13 +189,10 @@ int expo_render(struct expo *exp) - struct udevice *dev = exp->display; - struct video_priv *vid_priv = dev_get_uclass_priv(dev); - struct scene *scn = NULL; -- enum colour_idx back; -- u32 colour; - int ret; - -- back = CONFIG_IS_ENABLED(SYS_WHITE_ON_BLACK) ? VID_BLACK : VID_WHITE; -- colour = video_index_to_colour(vid_priv, back); -- ret = video_fill(dev, colour); -+ /* sexy libreboot purple background */ -+ ret = video_fill(dev, 0x280b22); /* #280b22 in HTML RGB notation */ - if (ret) - return log_msg_ret("fill", ret); - --- -2.39.5 - diff --git a/config/u-boot/x86_64/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch b/config/u-boot/x86_64/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch deleted file mode 100644 index 905b311c..00000000 --- a/config/u-boot/x86_64/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 3c61a3257ad5799202cac64020d3b4af21b72de3 Mon Sep 17 00:00:00 2001 -From: Markus Volk <f_l_k@t-online.de> -Date: Wed, 30 Oct 2024 06:07:16 +0100 -Subject: [PATCH 1/1] scripts/dtc/pylibfdt/libfdt.i_shipped: Use - SWIG_AppendOutput -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Swig has changed language specific AppendOutput functions. The helper -macro SWIG_AppendOutput remains unchanged. Use that instead -of SWIG_Python_AppendOutput, which would require an extra parameter -since swig 4.3.0. - -/home/flk/poky/build-test/tmp/work/qemux86_64-poky-linux/u-boot/2024.10/git/arch/x86/cpu/u-boot-64.lds -| scripts/dtc/pylibfdt/libfdt_wrap.c: In function ‘_wrap_fdt_next_node’: -| scripts/dtc/pylibfdt/libfdt_wrap.c:5581:17: error: too few arguments to function ‘SWIG_Python_AppendOutput’ -| 5581 | resultobj = SWIG_Python_AppendOutput(resultobj, val); -| | ^~~~~~~~~~~~~~~~~~~~~~~~ - -Signed-off-by: Markus Volk <f_l_k@t-online.de> -Reported-by: Rudi Heitbaum <rudi@heitbaum.com> -Link: https://github.com/dgibson/dtc/pull/154 ---- - scripts/dtc/pylibfdt/libfdt.i_shipped | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/scripts/dtc/pylibfdt/libfdt.i_shipped b/scripts/dtc/pylibfdt/libfdt.i_shipped -index 56cc5d48f4..e4659489a9 100644 ---- a/scripts/dtc/pylibfdt/libfdt.i_shipped -+++ b/scripts/dtc/pylibfdt/libfdt.i_shipped -@@ -1037,7 +1037,7 @@ typedef uint32_t fdt32_t; - fdt_string(fdt1, fdt32_to_cpu($1->nameoff))); - buff = PyByteArray_FromStringAndSize( - (const char *)($1 + 1), fdt32_to_cpu($1->len)); -- resultobj = SWIG_Python_AppendOutput(resultobj, buff); -+ resultobj = SWIG_AppendOutput(resultobj, buff); - } - } - -@@ -1076,7 +1076,7 @@ typedef uint32_t fdt32_t; - - %typemap(argout) int *depth { - PyObject *val = Py_BuildValue("i", *arg$argnum); -- resultobj = SWIG_Python_AppendOutput(resultobj, val); -+ resultobj = SWIG_AppendOutput(resultobj, val); - } - - %apply int *depth { int *depth }; -@@ -1092,7 +1092,7 @@ typedef uint32_t fdt32_t; - if (PyTuple_GET_SIZE(resultobj) == 0) - resultobj = val; - else -- resultobj = SWIG_Python_AppendOutput(resultobj, val); -+ resultobj = SWIG_AppendOutput(resultobj, val); - } - } - --- -2.39.5 - diff --git a/config/u-boot/x86_64/patches/0009-u-boot-fix-build-error-on-newer-hostcc.patch b/config/u-boot/x86_64/patches/0009-u-boot-fix-build-error-on-newer-hostcc.patch deleted file mode 100644 index 50b9ca0b..00000000 --- a/config/u-boot/x86_64/patches/0009-u-boot-fix-build-error-on-newer-hostcc.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 9408a39adcc458b6af7e11f9a4780296e2aa480a Mon Sep 17 00:00:00 2001 -From: Leah Rowe <leah@libreboot.org> -Date: Wed, 1 Apr 2026 07:39:07 +0100 -Subject: [PATCH 1/1] u-boot: fix build error on newer hostcc - -because... they changed a flag. - -because they're gnu. this fixes building -u-boot x86 on arch linux. - -Signed-off-by: Leah Rowe <leah@libreboot.org> ---- - arch/sandbox/config.mk | 4 ++-- - arch/x86/config.mk | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/arch/sandbox/config.mk b/arch/sandbox/config.mk -index 405843800e9..2ee59817252 100644 ---- a/arch/sandbox/config.mk -+++ b/arch/sandbox/config.mk -@@ -46,10 +46,10 @@ cmd_u-boot-spl = (cd $(obj) && $(CC) -o $(SPL_BIN) -Wl,-T u-boot-spl.lds \ - - ifeq ($(HOST_ARCH),$(HOST_ARCH_X86_64)) - EFI_LDS := ${SRCDIR}/../../../arch/x86/lib/elf_x86_64_efi.lds --EFI_TARGET := --target=efi-app-x86_64 -+EFI_TARGET := --output-target=efi-app-x86_64 - else ifeq ($(HOST_ARCH),$(HOST_ARCH_X86)) - EFI_LDS := ${SRCDIR}/../../../arch/x86/lib/elf_ia32_efi.lds --EFI_TARGET := --target=efi-app-ia32 -+EFI_TARGET := --output-target=efi-app-ia32 - else ifeq ($(HOST_ARCH),$(HOST_ARCH_AARCH64)) - EFI_LDS := ${SRCDIR}/../../../arch/arm/lib/elf_aarch64_efi.lds - OBJCOPYFLAGS += -j .text -j .secure_text -j .secure_data -j .rodata -j .data \ -diff --git a/arch/x86/config.mk b/arch/x86/config.mk -index 2e3a7119e79..329632164f7 100644 ---- a/arch/x86/config.mk -+++ b/arch/x86/config.mk -@@ -127,7 +127,7 @@ endif - endif - - ifdef CONFIG_X86_64 --EFI_TARGET := --target=efi-app-x86_64 -+EFI_TARGET := --output-target=efi-app-x86_64 - else --EFI_TARGET := --target=efi-app-ia32 -+EFI_TARGET := --output-target=efi-app-ia32 - endif --- -2.47.3 - diff --git a/config/u-boot/x86_64/target.cfg b/config/u-boot/x86_64/target.cfg deleted file mode 100644 index a1e15d12..00000000 --- a/config/u-boot/x86_64/target.cfg +++ /dev/null @@ -1,4 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-or-later - -tree="x86_64" -rev="f919c3a889f0ec7d63a48b5d0ed064386b0980bd" # v2024.10 |
