Introduce a new CI job in .gitlab-ci-release.yml to automate the
creation of project releases.
This single job, designed to run on a schedule, contains logic to:
- create a final release (e.g. 2025.08) on the first Monday of an
even-numbered month.
- create a release candidate (e.g. 2025.07-rc1) on all other
scheduled days.
This uses official release-cli to create both the git tag and the
corresponding GitLab Release entry automatically.
Signed-off-by: Simon Glass <sjg@chromium.org>
This board is interesting since it has two separate U-Boot builds. Add
it to the sjg lab.
Add the required support for a second build directory.
Signed-off-by: Simon Glass <sjg@chromium.org>
Now that bootm_final() does most of what we want, drop this separate
function.
Series-to: concept
Cover-letter:
bootm: Clean up arch-specific, pre-OS clean-up
Each arch does something slightly different before booting the OS. Some
archs even do different things depending on the CPU type.
EFT_LOADER has its own special code, regardless of which arch is being
booted.
It is quite hard to know what actually happens in the final milliseconds
before the OS boot.
This series attempts to clean up U-Boot in this area.
The basic approach is to create a new bootm_final() function which is
called by all archs. It provides some flags for a couple of necessary
variations but otherwise it is generic.
RISC-V, x86 and ARM are converted over to use this new function. For
consistency, EFI loader is converted as well.
A noteable change is that EFI_LOADER now does bootstage processing
before boot, if enabled, thus producing a report.
Future work could take this a little further:
- Drop board_quiesce_devices() and rely on driver model for that
- Similarly with udc_disconnect()
- cleanup_before_linux() could use more details as to what it is
supposed to do, to reduce the number of arch-specific variations
END
Signed-off-by: Simon Glass <sjg@chromium.org>
Now that ARM's announce_and_cleanup() function includes the same steps
as bootm_final(), just use the latter.
Move over part of a comment which seems useful.
Signed-off-by: Simon Glass <sjg@chromium.org>
Move disabling of interrupts to bootm_final() so it is done for bootm
and EFI boot paths. Drop the now-duplicate calls.
Signed-off-by: Simon Glass <sjg@chromium.org>
The logic in bootm to re-enable interrupts if the OS fails to boot does
not seem very useful, since the board resets immediately afterwards.
Drop it.
Signed-off-by: Simon Glass <sjg@chromium.org>
Add this call to the bootm_final() function, dropping it from RISC-V
Add a flag to ensure that cleanup_before_linux() is not called when
booting an EFI app.
Signed-off-by: Simon Glass <sjg@chromium.org>
Move the declaration of this function to a common header. Make sure it
is included by files which define it.
Fix up a few whitespace problems while here.
Signed-off-by: Simon Glass <sjg@chromium.org>
This function is not present on x86, but there is an x86-specific
version which is never called. Add the former, making it call the
latter.
Signed-off-by: Simon Glass <sjg@chromium.org>
This work-around dates from 2019 and grub 2.04 which is quite old. New
builds of grub don't have the problem and old boards presumably use an
older U-Boot, so don't need this.
Drop it.
Signed-off-by: Simon Glass <sjg@chromium.org>
Make use of this function, adding some pieces needed by RISC-V
Drop the udc_disconnect() from EFI_LOADER since it is now done in
bootm_final()
Signed-off-by: Simon Glass <sjg@chromium.org>
The x86 code in bootm_announce_and_cleanup() is very similar to the new
bootm_final() function, so just use the latter. Move over a useful
comment.
Signed-off-by: Simon Glass <sjg@chromium.org>
Neither bootstage_fdt_add_report() nor bootstage_report() has a dummy
double for when bootstate is disabled. Add them.
Signed-off-by: Simon Glass <sjg@chromium.org>
There are various functions which announce that booting is imminent and
do related preparation. Most of these are arch-specific.
In practice, most archs do the a similar thing. It would be better to
have a common function, with perhaps some events for things that are
really arch- and board-specific.
Create a new function for this. For now, nothing uses it.
Signed-off-by: Simon Glass <sjg@chromium.org>
If there is a failure before any test manages to run, the timing summary
will not be present. Handle this case to avoid a strange exception.
Signed-off-by: Simon Glass <sjg@chromium.org>
At present a new directory device is created for every access to a
directory. This means that a new device is always created when 'ls' is
used.
Where the directory being accessed matches an existing device, this is
not necessary.
Check that path against existing directories and reuse the device if
possible.
Signed-off-by: Simon Glass <sjg@chromium.org>
It is easier to use an empty string when the root directory is intended.
Adjust the code to drop use of "/" and NULL and just use and empty
string.
Signed-off-by: Simon Glass <sjg@chromium.org>
Rather than creating a new stream, which gets lost, virtio_fs_dir_open()
should use the existing one. Fix it, so that the fh member is preserved
for future use.
This fixes a problem where the fh value is not preserved, thus causing
a subsequent 'ls' on the same directory to fail.
Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: #15
Sometimes it is useful to test a commit just on the lab, or even just on
a particular board in the lab. Add support for this.
Signed-off-by: Simon Glass <sjg@chromium.org>
Expand the CI documentation to mention the concept tree. Add a reference
to the page from the build page.
Signed-off-by: Simon Glass <sjg@chromium.org>
It is useful to show a boot logo when starting up. Add the BGRT table
after the QEMU-provided tables.
Signed-off-by: Simon Glass <sjg@chromium.org>
Cover-letter:
emulation: Improve ACPI support for qemu-x86_64
When running under QEMU U-Boot obtains its ACPI tables from QEMU, since
it has the require information. This works well in most cases.
QEMU also provides SMBIOS tables, but U-Boot doesn't currently use those
on x86. This creates problems if a VM environment is expecting to see
particular values (e.g. those which it passed to QEMU!) when booting. So
this series switches QEMU on x86 to use those SMBIOS tables.
Finally, there is a facility in EFI for showing a boot logo, via a BGRT
table. QEMU does not provide this itself, so this series augments the
ACPI tables with a new BGRT table containing a suitable logo.
END
QEMU provides a table indicating the checksums to be calculated. U-Boot
already handles this, so we don't need to compute the checksums at the
end. Drop this unnecessary code.
Signed-off-by: Simon Glass <sjg@chromium.org>
EFI has a Boot Graphics Record Table which can be used to show a logo
when booting up and shutting down.
Add support for adding this to the image, using a U-Boot logo which
includes the name, since many people will be unfamiliar with the logo.
Signed-off-by: Simon Glass <sjg@chromium.org>
This rule assumes that any .bmp file relates to the logo. We want to be
able to add a second BMP in some cases, so update the rule to match
a filename ending in '_logo.bmp'
Signed-off-by: Simon Glass <sjg@chromium.org>
While U-Boot can create its own tables, the ones from QEMU should be
used when booting within QEMU. For example, LXD uses some of the fields
to decide whether to start cloud-init or not.
Signed-off-by: Simon Glass <sjg@chromium.org>
For QEMU we want to add new tables to the end of what QEMU provides. Add
a function to find the correct place for a new table.
Add a function to support this.
Signed-off-by: Simon Glass <sjg@chromium.org>
At present acpi_find_table() support locating most of the tables, but
not these two, since they are the pointers to the rest.
When adding new tables, these tables need to be located and updated, so
update acpi_find_table() to allow searching for them.
Signed-off-by: Simon Glass <sjg@chromium.org>
The acpi_table.c file includes ACPI_WRITER() declarations and is only
included in the build if CONFIG_ACPIGEN is enabled.
For QEMU we want to augment the tables provided via qfw, but
CONFIG_ACPIGEN is not enabled.
Move the core functions out to the acpi.c file which is included in all
x86 builds. This allows the QEMU build to make use of these functions.
Signed-off-by: Simon Glass <sjg@chromium.org>
The start of this function determines whether xdst or rdsp is used for
locating tables. Move it into a separate function so that we can use
this logic elsewhere.
Signed-off-by: Simon Glass <sjg@chromium.org>
Update this function to make use of the new support for reading qfw
files, this simplifying it considerably.
Fix up the header order while we are here.
Signed-off-by: Simon Glass <sjg@chromium.org>