This function uses #ifdefs and ends up with a very large indent, Split
it into two separate functions, one for the EFI app and one for other
builds.
Drop the use of config.h while we are here.
Signed-off-by: Simon Glass <sjg@chromium.org>
Recent work removed the if_type member. Update the code to use the new
method for obtaining the interface type.
Use hex so that large partition numbers (>=10) work correctly.
Signed-off-by: Simon Glass <sjg@chromium.org>
Add a way to specify the (fake) Ubuntu release being used, so that we
can (later) add more tests for this case.
Signed-off-by: Simon Glass <sjg@chromium.org>
The command has been updated but the docs was left behind. Fix it.
Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 7f9e630a9e ("boot: Drop hex prefix from the booti image-mov..")
Since the U-Boot app now requests 512MB (to fit the ramdisk, etc.) and
Tianocore uses some as well, the current 512MB is not enough. Double it.
Signed-off-by: Simon Glass <sjg@chromium.org>
The flags contain lots of little pieces of information. Print them out
with the bdinfo command, so the user can look them up if needed.
Signed-off-by: Simon Glass <sjg@chromium.org>
The distro test for EFI in the EFI ARM app is currently flaky.
If the test does not send an 'escape' character, then the board may boot
straight into Ubuntu. If it does, but didn't need to, then grub sits at
the command prompt.
Handle this by pressing escape twice (which should always go to the grub
command line), then using the 'normal' command to start the menu.
Series-to: concept
Series-cc: heinrich
Signed-off-by: Simon Glass <sjg@chromium.org>
The EFI-media devices names were recently changed to make it easier to
tell them apart. Update the tests as well, since this change caused them
to fail.
Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: dea4ea00a7 ("efi: Set the efi_media device name when binding")
The pager can interfere with tests and there is a lab test which uses
the build-efi script. Add an option to disable the pager so that the
labgrid test can request that.
Signed-off-by: Simon Glass <sjg@chromium.org>
A delay of one second makes it hard for the lab to interrupt boot, thus
causing test failures. Increase it to 5s
Signed-off-by: Simon Glass <sjg@chromium.org>
Enable some options which are useful for development:
- Show function names when logging
- Enable SMBIOS so we can view these tables
- Include kaslrseed support
- Enable commands for hashing images
- Support write on FAT filesystems
Series-to: concept
Series-cc: heinrich
Cover-letter:
boot: efi: Various improvements to booting with the EFI app
This series provides a number of tweaks which make it easier to test
booting with the EFI app, particularly on ARM:
- 'fake go' in bootstd
- more debugging in various places
- tidy up the generally incorrect ATAGs error
- drop a panic() in the bowels of boot
- ensure booti does not overwrite memory when relocating
It also includes a way to quit or disable the pager, which is very
helpful when running the app on a machine with no serial console.
Finally, a bug in the release script is causing CI to fail, so a few
patches deal with that.
END
Signed-off-by: Simon Glass <sjg@chromium.org>
It is common for the main program to be at the bottom, but with recent
changes it has crept up a bit. Move it back to the bottom.
Signed-off-by: Simon Glass <sjg@chromium.org>
It isn't necessarily safe to move the kernel (up to) 2MB higher in
memory. If the kernel is in a FIT, this may overwrite other data such as
the devicetree.
Use lmb (where available) as is done with other image relocations. Update
the return value to provide more specific information on failure.
Signed-off-by: Simon Glass <sjg@chromium.org>
When building xilinx_zynqmp_kria we cannot access lmb_alloc() since it
it is not present in the image. The linker garbage-collection does not
seem to handle this either.
Follow the normal procedure in this case and declare a static inline.
Signed-off-by: Simon Glass <sjg@chromium.org>
When an FDT is not provided, U-Boot currently says:
FDT and ATAGS support not compiled in
even if CONFIG_OF_LIBFDT and CONFIG_LMB are enabled. This can send
people on a wild goose chase. Add a separate message for a devicetree
not being present.
Signed-off-by: Simon Glass <sjg@chromium.org>
Provide return values from a few functions to make it easier to track
the flow of execution in a few places.
Signed-off-by: Simon Glass <sjg@chromium.org>
Provide a way to pass the 'fake go' flag from the bootflow flag through
to the PXE implementation, so that a request for a fake go
(via 'bootflow boot -f') is handled correctly in the bootmeth and when
booting.
Add a little more debugging of this in PXE.
Signed-off-by: Simon Glass <sjg@chromium.org>
Add a new debug line for the offset of the ramdisk node. Fix up some
missing newlines on other log messages in this file, while we are here.
Signed-off-by: Simon Glass <sjg@chromium.org>
Rather than always going through this state, require callers to
explicitly request it. This will allow the option to be enabled without
affecting the boot, unless the user expressly requests it.
Signed-off-by: Simon Glass <sjg@chromium.org>
This feature was designed for tracing but can be useful for debugging
too, since it is possible to examine the state of the system just before
handing off to the OS.
Provide a separate CONFIG_BOOTM_FAKE_GO option to allow this feature to
be used separate from tracing. Enable it for the EFI app.
Signed-off-by: Simon Glass <sjg@chromium.org>
Add support for pressing 'Q' to put the pager into bypass mode,disabling
further paging for the current session.
Co-developed-by: Claude <noreply@anthropic.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
The pager should be bypassed if the terminal was not detected. Fix the
condition which actually says the opposite.
Also fix a long line in pager_post()
Signed-off-by: Simon Glass <sjg@chromium.org>
The test.py tests pass -P to sandbox to tell it to bypass the pager.
Tests which change this value must restore it to the old value.
Fix this, so that the -P setting remains in place across test runs.
Signed-off-by: Simon Glass <sjg@chromium.org>
Fix line continuation in generate_schedule() that caused Sphinx to fail
with "Bullet list ends without a blank line; unexpected unindent" error.
Add tests to validate RST formatting of generated documentation.
Co-developed-by: Claude <noreply@anthropic.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
Add a few tests of cursor operation.
Co-developed-by: Claude <noreply@anthropic.com>
Signed-off-by: Simon Glass <sjg@chromium.org>
Series-to: concept
Series-cc: heinrich
Cover-letter:
video: Support a cursor more generally
At present U-Boot does not support displaying a cursor on the console,
except with expo.
It is quite useful to have a cursor, particularly when using the
command-line editor.
This series adds tracking of the cursor position for both truetype and
normal consoles. The cursor is shown when U-Boot is idle and is removed
before writing characters to the display. A save-buffer ensures that the
old display contents are provided.
Some related improvements in this series include:
- expo lineedit support with normal console
- arrow keys now render correctly when editing commands with truetype
- truetype console now also supports bitmap fonts
The cursor is not currently supported for rotated consoles.
A README for claude is provided, although so far I have not had too much
success with it.
A fix for an intermittent build is added as well, along with silencing
some build messages noticed from Rust ulib.
END
Now that the truetype console properly handles clearing text from the
display during editing, we don't need to clear the character when
processing a backspace.
This allows arrow keys to work as expected on the truetype console.
Signed-off-by: Simon Glass <sjg@chromium.org>
Within the CLI, inserting a character works by writing out the new char
and then all the ones after it.
With the truetype console this results in gibberish since the new
chars are written on top of the old. To resolve this, clear the rest of
the input when a character is inserted. Consider that the end of the
input, at least until furture characters are written.
As an optimisation, don't clear if the new character is the same as the
old.
This cleans up a dot above the 'g' of greatness which should not be
there, so update the dm_test_video_truetype() test.
It also clean up the part of the 't' of 'not be' which should not be
there, so update dm_test_video_truetype_bs() too.
Signed-off-by: Simon Glass <sjg@chromium.org>