There are quite a few warnings which makes it confusing when editing
this file. Resolve the easy ones, with these remaining:
55:0: R0913: Too many arguments (7/5) (too-many-arguments)
91:0: R0902: Too many instance attributes (14/7) (too-many-instance-attributes)
136:12: W0702: No exception type(s) specified (bare-except)
246:4: R0912: Too many branches (14/12) (too-many-branches)
Signed-off-by: Simon Glass <sjg@chromium.org>
There are quite a few warnings which makes it confusing when editing
this file. Resolve the easy ones, leaving:
125:0: R0902: Too many instance attributes (14/7) (too-many-instance-attributes)
212:4: R0912: Too many branches (14/12) (too-many-branches)
271:4: R0913: Too many arguments (6/5) (too-many-arguments)
271:4: R0912: Too many branches (13/12) (too-many-branches)
454:8: W0702: No exception type(s) specified (bare-except)
531:8: W0702: No exception type(s) specified (bare-except)
Rename wait_for_boot_prompt() so it is clear that it is an internal
function.
Signed-off-by: Simon Glass <sjg@chromium.org>
There are quite a few warnings which makes it confusing when editing
this file. Resolve the easy ones, leaving:
125:0: R0902: Too many instance attributes (14/7) (too-many-instance-attributes)
212:4: R0912: Too many branches (14/12) (too-many-branches)
271:4: R0913: Too many arguments (6/5) (too-many-arguments)
271:4: R0912: Too many branches (13/12) (too-many-branches)
454:8: W0702: No exception type(s) specified (bare-except)
531:8: W0702: No exception type(s) specified (bare-except)
Rename wait_for_boot_prompt() so it is clear that it is an internal
function.
Signed-off-by: Simon Glass <sjg@chromium.org>
When no hook scripts are found, log the PYTHONPATH to aid debugging. Use
a separate variable to avoid an error on Python 3.10 and a pylint 3.3.4
warning:
E0001: Parsing failed: 'f-string expression part cannot include a
backslash (conftest, line 311)' (syntax-error)
Signed-off-by: Simon Glass <sjg@chromium.org>
Use the normal bootflow command to boot an OS.
Series-to: u-boot
Cover-letter:
x86: emulation: Tweaks to fit better with lxd
This series includes some changes so that the 64-bit x86 QEMU build can
be used with LXD.
This includes moving to Q35 and setting up a bootstd command.
END
Signed-off-by: Simon Glass <sjg@chromium.org>
Q35 is newer and has a native PCI Express bus. Move to using this by
default.
Update the QEMU script to select the correct machine.
Signed-off-by: Simon Glass <sjg@chromium.org>
Labgrid has a --log-output option to allow writing its log output to a
file. Add a way to control this from Labgrid's U-Boot scripts.
Signed-off-by: Simon Glass <sjg@chromium.org>
The V variable includes the -v flag if verbose operation is requested
in Labgrid. Add it to the console cmdline.
Signed-off-by: Simon Glass <sjg@chromium.org>
It is quite tricky to debug problems in the test.py code itself, as when
something goes wrong the exception failure is caught and reported as a
test failure.
Add a -E option to simplify debugging.
Signed-off-by: Simon Glass <sjg@chromium.org>
These don't actually seem to work, since the rest cannot be handled by
the lab. Disable them.
Preparing for reset. Press any key...
FAILED:
test/py/tests/test_efi_selftest.py:20: in test_efi_selftest_base
raise Exception('Failures occurred during the EFI selftest')
E Exception: Failures occurred during the EFI selftest 48053.8 ms
Signed-off-by: Simon Glass <sjg@chromium.org>
Introduce a new CI job in .gitlab-ci-release.yml to automate the
creation of project releases.
This change implements two new jobs in .gitlab-ci-release.yml:
1. A version:bump job that runs on a schedule. On the first Monday of an
even-numbered month, it automatically updates the VERSION and PATCHLEVEL
in the Makefile and pushes the change to the master branch.
2. A release:create job that is triggered by the version bump commit. It
creates the final GitLab Release and corresponding Git tag on the commit
containing the updated Makefile.
This ensures that the repository's version is correctly updated and
committed just before the official release tag is applied, creating a
clean and reliable release history.
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>
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>