]> git.dujemihanovic.xyz Git - u-boot.git/log
u-boot.git
6 weeks agoiommu: apple: Manage IOVA separately from global LMB mem map
Janne Grunau [Mon, 11 Nov 2024 06:56:34 +0000 (07:56 +0100)]
iommu: apple: Manage IOVA separately from global LMB mem map

There is no overlap between the IOVA space managed by the iommu (here
the 32-bit address space) and physical RAM on Apple silicon systems. The
RAM starts at 0x10_0000_0000 or 0x100_0000_0000 so it's not possible to
manage the IOVA with the global memory LMB and use 1:1 translation.
In addition each device has its own iommu and does not need to share the
address space with all other devices. This should not be problem for
u-boot's limited use and hardware support.
Restore the private per instance LMB IOVA map.

Fixes: ed17a33fed2 ("lmb: make LMB memory map persistent and global")
Signed-off-by: Janne Grunau <j@jannau.net>
6 weeks agolmb: Add basic io_lmb functionality
Janne Grunau [Mon, 11 Nov 2024 06:56:33 +0000 (07:56 +0100)]
lmb: Add basic io_lmb functionality

These functions can be used with struct lmb pointers and will be used to
manage IOVA space in the apple_dart iommu driver. This restores part of
the pointer base struct lmb API from before commit ed17a33fed29 ("lmb:
make LMB memory map persistent and global").
io_lmb_add() and io_lmb_free() can trivially reuse exisiting lmb
functions. io_lmb_setup() is separate for unique error log messages.
io_lmb_alloc() is a simplified copy of _lmb_alloc_base() since the
later has unused features and internal use of the global LMB memory map.

Signed-off-by: Janne Grunau <j@jannau.net>
6 weeks agolmb: cosmetic: reorder functions and global LMB variable
Janne Grunau [Mon, 11 Nov 2024 06:56:32 +0000 (07:56 +0100)]
lmb: cosmetic: reorder functions and global LMB variable

Low lovel LMB functionality will be used to manage IOVA space in the
Apple dart iommu driver. This reordering ensures that those function
can not access the global LMB memory map variable.

Signed-off-by: Janne Grunau <j@jannau.net>
6 weeks agolmb: Do not use global LMB variable in _lmb_free()
Janne Grunau [Mon, 11 Nov 2024 06:56:31 +0000 (07:56 +0100)]
lmb: Do not use global LMB variable in _lmb_free()

It will be re-used with a lmb list pointer as argument for IOVA
allocations in the apple_dart iommu driver.

Reviewed-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Janne Grunau <j@jannau.net>
6 weeks agoMerge tag 'u-boot-imx-master-20241105' of https://gitlab.denx.de/u-boot/custodians...
Tom Rini [Sat, 9 Nov 2024 17:26:14 +0000 (11:26 -0600)]
Merge tag 'u-boot-imx-master-20241105' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx

CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/23262

- Improve imx9 boot medium autodection.
- Add possibility to skip DCD on i.MX8.
- Switch to using upstream DT on DH i.MX6 DHCOM.
- Add support for i.MX6DL DHCOM SoM on PDK2 carrier board.
- Handle FIELD_RETURN on i.MX HAB.

6 weeks agoMerge tag 'efi-2025-01-rc2-2' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Sat, 9 Nov 2024 14:05:41 +0000 (08:05 -0600)]
Merge tag 'efi-2025-01-rc2-2' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request efi-2025-01-rc2-2

Documentation:

* correct title and author of rst2pdf generated pdf
* describe CONFIG_DEBUG_SBI_CONSOLE
* remove vile language

UEFI

* correct printf codes in mkeficapsule
* add an EFI test app
* move default filename to a function
* move get_efi_pxe_arch() to efi_helper
* allow reporting the host defaults in efidebug
* drop sandbox PXE architecture

Other:

* do not reserve extra 16 KiB of stack in lmb
* disable the sandbox virtio blk device
* provide -N command line flag to control EFI default boot file name
  on the sandbox
* provide a unit test for the efi bootmeth

6 weeks agoarm: mach-imx: imx8m: re-use SNVS init routine
Ian Ray [Fri, 8 Nov 2024 14:03:55 +0000 (16:03 +0200)]
arm: mach-imx: imx8m: re-use SNVS init routine

Working with HAB on the i.MX8MP we've encountered a case where a board
that successfully authenticates u-boot when booting Linux subsequently
fails to properly bring up the RTC.

The RTC registers live in the low-power block of the Secure Non-Volatile
Storage (SNVS) block.

The root cause of the error has been traced to the HAB handing off the
SNVS-RTC in a state where HPCOMR::NPSWA_EN = 0 in other words where the
Non-Privileged Software Access Enable bit is zero.

Configure SNVS to allow unpriv access to SNVS LP for imx8m and imx8mp.

This commit generalizes 723f8359c1 ("imx: mx7: snvs: Add an SNVS init
routine") to also be used on i.MX8M SoCs, and was testeed on i.MX8MP.

Signed-off-by: Ian Ray <ian.ray@gehealthcare.com>
6 weeks agoarm: mach-imx: move snvs module
Ian Ray [Fri, 8 Nov 2024 14:03:54 +0000 (16:03 +0200)]
arm: mach-imx: move snvs module

Commit 723f8359c1 ("imx: mx7: snvs: Add an SNVS init routine") noted
that the init_snvs() call likely applies to other i.MX processors, and
this has been found to be true for i.MX8MP.

Move snvs module for future re-use.

Signed-off-by: Ian Ray <ian.ray@gehealthcare.com>
6 weeks agoARM: dts: imx: Switch to using upstream DT on DH i.MX6 DHCOM
Marek Vasut [Tue, 5 Nov 2024 23:06:53 +0000 (00:06 +0100)]
ARM: dts: imx: Switch to using upstream DT on DH i.MX6 DHCOM

Enable OF_UPSTREAM to use upstream DT and add nxp/imx/ prefix to the
DEFAULT_DEVICE_TREE. And thereby directly build DTB from dts/upstream/src/
including *-u-boot.dtsi files from arch/$(ARCH)/dts/ directory.

Signed-off-by: Marek Vasut <marex@denx.de>
6 weeks agoARM: dts: imx6dl: Add support for i.MX6DL DHCOM SoM on PDK2 carrier board
Marek Vasut [Tue, 5 Nov 2024 23:06:52 +0000 (00:06 +0100)]
ARM: dts: imx6dl: Add support for i.MX6DL DHCOM SoM on PDK2 carrier board

Add support for the DH electronics i.MX6DL DHCOM SoM and a PDK2 evaluation
board. The evaluation board features three serial ports, USB OTG, USB host
with an USB hub, Fast or Gigabit ethernet, eMMC, uSD, SD, analog audio,
PCIe and HDMI video output.

All of the aforementioned features except for mSATA are supported, mSATA
is not available on i.MX6DL and is only available on DHCOM populated with
i.MX6Q SoC which is already supported upstream.

Backport from linux-next commit
c3f5d76a6e03 ("ARM: dts: imx6dl: Add support for i.MX6DL DHCOM SoM on PDK2 carrier board")

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Christoph Niedermaier <cniedermaier@dh-electronics.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
6 weeks agotools: imx8image: add possibility to skip dcd
Heiko Schocher [Mon, 4 Nov 2024 18:02:03 +0000 (19:02 +0100)]
tools: imx8image: add possibility to skip dcd

Currently U-Boot always adds DCD Image to boot container.
On imx8qxp SoC it is possible to init RAM from within SCFW,
and adding a DCD image type to the boot container in this case
breaks booting (No debug output anymore from SCFW! Nor any
output from SPL), so we need to configure a dcd skip somehow.

This patch adds a new imx8image_cmd entry CMD_DCD_SKIP and a
new entry in imximage.cfg "DCD_SKIP". If set to "true"
no DCD image type will be added to the container.

Signed-off-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
6 weeks agoimx9: Improve boot mode autodetection
Benjamin Szőke [Fri, 1 Nov 2024 15:26:18 +0000 (16:26 +0100)]
imx9: Improve boot mode autodetection

Improve "mmcautodetect=yes" boot mode autodetection to able to use it
if CONFIG_ENV_IS_NOWHERE=y is used for i.MX9 SoCs and i.MX93 EVK board.

If both CONFIG_ENV_IS_IN_MMC=y and CONFIG_ENV_IS_NOWHERE=y are in the
defconfig, CONFIG_ENV_IS_IN_MMC=y will be overiden default
CONFIG_ENV_IS_NOWHERE settings.

Goal is in this patch to able to use the boot mode autodetection
if defconfig use only CONFIG_ENV_IS_NOWHERE=y option
(without CONFIG_ENV_IS_IN_MMC) for any i.MX9 SoC.

Signed-off-by: Benjamin Szőke <egyszeregy@freemail.hu>
6 weeks agoimx: hab: Make imx_hab_is_enabled dependent on FIELD_RETURN
Paul Geurts [Fri, 1 Nov 2024 08:49:21 +0000 (09:49 +0100)]
imx: hab: Make imx_hab_is_enabled dependent on FIELD_RETURN

The decision on whether HAB is enabled is solely based on the SEC_CONFIG
fuse. The HAB FIELD_RETURN feature is able to permanently disable HAB on
a CPU, after which it is able to boot unsigned firmware. U-Boot however
does not take into account the FIELD_RETURN mode, and refuses to boot
unsigned software when the feature is enabled.

Also take the FIELD_RETURN fuse into account when deciding whether HAB
is enabled. When The FIELD_RETURN fuse is blown, HAB is not enabled.

Tested on i.MX8M Mini, i.MX8M Plus, i.MX8M Nano and i.MX6ULL

Signed-off-by: Paul Geurts <paul.geurts@prodrive-technologies.com>
6 weeks agoimx: hab: rename imx_sec_config_fuse_t to imx_fuse
Paul Geurts [Fri, 1 Nov 2024 08:49:20 +0000 (09:49 +0100)]
imx: hab: rename imx_sec_config_fuse_t to imx_fuse

The imx_sec_config_fuse_t structure is not specific to the sec_config
fuse, but can be used for all fuse words.

Rename the structure to a more generic name to be reused for other
fuses.

Signed-off-by: Paul Geurts <paul.geurts@prodrive-technologies.com>
6 weeks agotest: efi: boot: Add a test for the efi bootmeth
Simon Glass [Thu, 7 Nov 2024 21:31:50 +0000 (14:31 -0700)]
test: efi: boot: Add a test for the efi bootmeth

Add a simple test of booting with the EFI bootmeth, which runs the app
and checks that it can call 'exit boot-services' (to check that all the
device-removal code doesn't break anything) and then exit back to
U-Boot.

This uses a disk image containing the testapp, ready for execution by
sandbox when needed.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 weeks agotest: efi: boot: Set up an image suitable for EFI testing
Simon Glass [Thu, 7 Nov 2024 21:31:49 +0000 (14:31 -0700)]
test: efi: boot: Set up an image suitable for EFI testing

Create a new disk for use with tests, which contains the new 'testapp'
EFI app specifically intended for testing the EFI loader.

Attach it to the USB device, since most testing is currently done with
mmc.

Initially this image will be used to test the EFI bootmeth.

Fix a stale comment in prep_mmc_bootdev() while we are here.

For now this uses sudo and a compressed fallback file, like all the
other bootstd tests. Once this series is in, the patch which moves
this to use user-space tools will be cleaned up and re-submitted.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 weeks agosandbox: virtio: Disable the sandbox virtio blk device
Simon Glass [Thu, 7 Nov 2024 21:31:48 +0000 (14:31 -0700)]
sandbox: virtio: Disable the sandbox virtio blk device

This is not implemented so cannot actually be used to read blocks.
Disable it until it is implemented, to avoid causing a hang with EFI,
which probes every available BLK device.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Issue: https://source.denx.de/u-boot/u-boot/-/issues/37

6 weeks agoefi_loader: Drop sandbox PXE architecture
Simon Glass [Thu, 7 Nov 2024 21:31:47 +0000 (14:31 -0700)]
efi_loader: Drop sandbox PXE architecture

Rather than returning 0, just return an error, since sandbox is not used
with PXE at present.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 weeks agosandbox: Report host default-filename in native mode
Simon Glass [Thu, 7 Nov 2024 21:31:46 +0000 (14:31 -0700)]
sandbox: Report host default-filename in native mode

When the --native flag is given, pretend to be running the host
architecture rather than sandbox.

Allow the same control for PXE too.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 weeks agoefi_loader: Allow reporting the host defaults
Simon Glass [Thu, 7 Nov 2024 21:31:45 +0000 (14:31 -0700)]
efi_loader: Allow reporting the host defaults

Add an 'efidebug filename' command to report the default filename and
PXE architecture.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 weeks agoefi_loader: Move get_efi_pxe_arch() to efi_helper
Simon Glass [Thu, 7 Nov 2024 21:31:44 +0000 (14:31 -0700)]
efi_loader: Move get_efi_pxe_arch() to efi_helper

Move this function from the EFI bootmeth to the common efi_helper file.
No functional change is intended.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 weeks agoefi: Move default filename to a function
Simon Glass [Thu, 7 Nov 2024 21:31:43 +0000 (14:31 -0700)]
efi: Move default filename to a function

Use a function to obtain the device EFI filename, so that we can control
how sandbox behaves.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 weeks agosandbox: Add a -N flag to control on-host behaviour
Simon Glass [Thu, 7 Nov 2024 21:31:42 +0000 (14:31 -0700)]
sandbox: Add a -N flag to control on-host behaviour

Sandbox is its own architecture, but sometimes we want to mimic the host
architecture, e.g. when running an EFI app not built by U-Boot.

Add a -N/--native flag which tells sandbox to reflect the architecture
of the host.

Signed-off-by: Simon Glass <sjg@chromium.org>
6 weeks agoefi_loader: Add a test app
Simon Glass [Thu, 7 Nov 2024 21:31:41 +0000 (14:31 -0700)]
efi_loader: Add a test app

Add a simple app to use for testing. This is intended to do whatever it
needs to for testing purposes. For now it just prints a message and
exits boot services.

There was a considerable amount of discussion about whether it is OK to
call exit-boot-services and then return to U-Boot. This is not normally
done in a real application, since exit-boot-services is used to
completely disconnect from U-Boot. For now, this part is skipped.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
6 weeks agodoc: qemu-riscv: describe CONFIG_DEBUG_SBI_CONSOLE
Heinrich Schuchardt [Tue, 5 Nov 2024 03:16:31 +0000 (04:16 +0100)]
doc: qemu-riscv: describe CONFIG_DEBUG_SBI_CONSOLE

In main U-Boot the SBI DBCN extension can be used to supply a debug
console.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
6 weeks agodoc: conf.py: correct title and author of generated pdf
Heinrich Schuchardt [Tue, 5 Nov 2024 02:17:41 +0000 (03:17 +0100)]
doc: conf.py: correct title and author of generated pdf

Adjust the PDF output options for rst2pdf:

* Set start document to 'index'.
* Set title to 'Das U-Boot'.
* Set author to 'The U-Boot development community'.

Correct documentation link.

Remove obsolete FIXME.

Link: https://rst2pdf.org/static/manual.html
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
6 weeks agoefi_loader: Change efi_dp_from_mem() to use size
Moritz Fischer [Mon, 4 Nov 2024 01:49:34 +0000 (01:49 +0000)]
efi_loader: Change efi_dp_from_mem() to use size

All call sites are using size rather than end addresses,
so instead - as previously done - calculating an end address
everywhere, just modify the function to use size and internally
calculate the end address

Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Cc: Patrick Wildt <pwildt@google.com>
Signed-off-by: Moritz Fischer <moritzf@google.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
6 weeks agotools: mkeficapsule: use %zd to print ssize_t.
Heinrich Schuchardt [Sun, 3 Nov 2024 22:45:05 +0000 (23:45 +0100)]
tools: mkeficapsule: use %zd to print ssize_t.

For printing a ssize_t variable we must use %zd and not %ld to avoid
a -Wformat error on 32-bit systems.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
6 weeks agodoc: remove vile language
mason1920 [Fri, 1 Nov 2024 20:27:25 +0000 (16:27 -0400)]
doc: remove vile language

6 weeks agolmb: Drop extra 16KB of stack space
Simon Glass [Mon, 28 Oct 2024 12:47:59 +0000 (13:47 +0100)]
lmb: Drop extra 16KB of stack space

There is already a defined stack-size which is used to reserve space for
the stack. It is confusing to add more in the lmb module, since then the
memory map (with meminfo command) seems to have a hole in it.

Drop this unnecessary feature.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agoMerge https://source.denx.de/u-boot/custodians/u-boot-riscv
Tom Rini [Wed, 6 Nov 2024 16:44:33 +0000 (10:44 -0600)]
Merge https://source.denx.de/u-boot/custodians/u-boot-riscv

CI: https://source.denx.de/u-boot/custodians/u-boot-riscv/-/pipelines/23239

- configs: visionfive2 defconfig: re-enable SPL_SYS_MMCSD_RAW_MODE
- driver: sifive ccache: enable TRUNKCLOCKGATE & REGIONCLOCKGATE
- board: support 64bit Microblaze V

7 weeks agoriscv: Introduce configuration for 64bit version Microblaze V
Michal Simek [Fri, 1 Nov 2024 09:50:45 +0000 (10:50 +0100)]
riscv: Introduce configuration for 64bit version Microblaze V

The commit 7576ab2facae ("riscv: Add support for AMD/Xilinx MicroBlaze V")
added support for 32bit version. 64bit version is also available that's why
wire it up too.
DT is providing description for generic QEMU target.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
7 weeks agoxilinx: mbv: Align smode_defconfig with upstream QEMU
Michal Simek [Fri, 1 Nov 2024 09:49:54 +0000 (10:49 +0100)]
xilinx: mbv: Align smode_defconfig with upstream QEMU

Align smode defconfig with upstream QEMU. It could be the part of commit
9d688e6da5c9 ("riscv: mbv: Align DT with QEMU").

Signed-off-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
7 weeks agoxilinx: mbv: Place DTB by default to DDR location
Michal Simek [Fri, 1 Nov 2024 09:49:53 +0000 (10:49 +0100)]
xilinx: mbv: Place DTB by default to DDR location

DTB should be also placed to DDR. It should be the part of commit
9d688e6da5c9 ("riscv: mbv: Align DT with QEMU").

Signed-off-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
7 weeks agoconfigs: visionfive2: re-enable SPL_SYS_MMCSD_RAW_MODE
Andreas Schwab [Wed, 30 Oct 2024 13:46:39 +0000 (14:46 +0100)]
configs: visionfive2: re-enable SPL_SYS_MMCSD_RAW_MODE

To restore MMC boot, enable SPL_SYS_MMCSD_RAW_MODE and recover
SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION and
SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION.

Fixes: 2a00d73d081 ("spl: mmc: Try to clean up raw-mode options")
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
7 weeks agodriver: sifive ccache: enable TRUNKCLOCKGATE and REGIONCLOCKGATE
Nick Hu [Wed, 30 Oct 2024 07:58:36 +0000 (15:58 +0800)]
driver: sifive ccache: enable TRUNKCLOCKGATE and REGIONCLOCKGATE

Enable the clock gating bit of ccache when the platform has the ccache0.

Signed-off-by: Nick Hu <nick.hu@sifive.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
7 weeks agobios_emulator: fix first argument of pci_{read,write}_config_* function calls
Yuri Zaporozhets [Wed, 30 Oct 2024 19:38:20 +0000 (20:38 +0100)]
bios_emulator: fix first argument of pci_{read,write}_config_* function calls

When compiling for riscv64, a bunch of warning is produced for the file
drivers/bios_emulator/besys.c. This patch fixes a portion of those warnings,
caused by incorrect first argument to pci_{read,write}_config_* functions.

Signed-off-by: Yuri Zaporozhets <yuriz@qrv-systems.net>
7 weeks agodrivers/video/vesa: use MTRRs only on x86
Yuri Zaporozhets [Wed, 30 Oct 2024 13:17:33 +0000 (14:17 +0100)]
drivers/video/vesa: use MTRRs only on x86

MTRR functionality is available only on x86, so this driver cannot be compiled
on other architectures. Fix this with preprocessor directives.

Signed-off-by: Yuri Zaporozhets <yuriz@qrv-systems.net>
7 weeks agobios_emulator: define the comment symbol for RISC-V assembler too
Yuri Zaporozhets [Wed, 30 Oct 2024 13:00:51 +0000 (14:00 +0100)]
bios_emulator: define the comment symbol for RISC-V assembler too

The bios_emulator driver cannot be compiled for RISC-V because the x86emu.h
header file doesn't define the comment symbol ("#") for the assembler.
With this patch, use the same symbol as for e.g. x86.

Signed-off-by: Yuri Zaporozhets <yuriz@qrv-systems.net>
7 weeks agobootmenu: add reprint check
Weijie Gao [Tue, 29 Oct 2024 09:47:22 +0000 (17:47 +0800)]
bootmenu: add reprint check

Record the last active menu item and check if it equals to the
current selected item before reprint.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
Reviewed-by: Daniel Golle <daniel@makrotopia.org>
Tested-by: Daniel Golle <daniel@makrotopia.org>
7 weeks agomenu: add support to check if menu needs to be reprinted
Weijie Gao [Tue, 29 Oct 2024 09:47:16 +0000 (17:47 +0800)]
menu: add support to check if menu needs to be reprinted

This patch adds a new callback named need_reprint for menu.
The need_reprint will be called before printing the menu. If the
callback exists and returns FALSE, menu printing will be canceled.

This is very useful if the menu was not changed. It can save time
for serial-based menu to handle more input data.

Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
Reviewed-by: Daniel Golle <daniel@makrotopia.org>
Tested-by: Daniel Golle <daniel@makrotopia.org>
7 weeks agomenu: fix the logic checking whether ESC key is pressed
Weijie Gao [Tue, 29 Oct 2024 09:47:10 +0000 (17:47 +0800)]
menu: fix the logic checking whether ESC key is pressed

It's observed that the bootmenu on a serial console sometimes
incorrectly quitted with superfluous characters filled to command
line input:

>  *** U-Boot Boot Menu ***
>
>      1. Startup system (Default)
>      2. Upgrade firmware
>      3. Upgrade ATF BL2
>      4. Upgrade ATF FIP
>      5. Load image
>      0. U-Boot console
>
>
>  Press UP/DOWN to move, ENTER to select, ESC to quit
>MT7988> [B

Analysis shows it was caused by the wrong logic of bootmenu_loop:

At first the bootmenu_loop received the first ESC char correctly.

However, during the second call to bootmenu_loop, there's no data
in the UART Rx FIFO. Due to the low baudrate, the second char of
the down array key sequence hasn't be fully received.

But bootmenu_loop just did a mdelay(10), and then treated it as a
single ESC key press event. It didn't even try tstc() again after
the 10ms timeout.

This patch fixes this issue by letting bootmenu_loop check tstc()
twice.

Tested-By: E Shattow <lucent@gmail.com>
Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
Reviewed-by: Daniel Golle <daniel@makrotopia.org>
Tested-by: Daniel Golle <daniel@makrotopia.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
7 weeks agoMerge patch series "U-boot: arm: Refine the booting on Total Compute"
Tom Rini [Mon, 4 Nov 2024 21:40:54 +0000 (15:40 -0600)]
Merge patch series "U-boot: arm: Refine the booting on Total Compute"

Leo Yan <leo.yan@arm.com> says:

This patch series is to refine the booting on Arm Total Compuate
platform.

It changes to use the info passed in DTB for initialization DRAM info,
and dynamically initializes the booting envoironment variables.

Another big change is to use an envoironment file for boot commands,
based on it, the series extends to support multiple block devices
(MMC and virtio). And the env file is extended for booting Debian.

The last commit is to update memory mapping info based on the DRAM info
passed via DT binding.

Link: https://lore.kernel.org/r/20241025171821.624702-1-leo.yan@arm.com
7 weeks agoarm: total_compute: Update memory mapping info
Leo Yan [Fri, 25 Oct 2024 17:18:21 +0000 (18:18 +0100)]
arm: total_compute: Update memory mapping info

This commit introduces build_mem_map() function for updating the mem_map
structure with copying info from gd->bd->bi_dram, so that it can keep
the consistence for DRAM info passed via DT.

The page table size is calculated prior to mem_map is ready, introduce
the get_page_table_size() function for a predefined table size.

Signed-off-by: Leo Yan <leo.yan@arm.com>
7 weeks agoarm: total_compute: Support Debian boot
Leo Yan [Fri, 25 Oct 2024 17:18:20 +0000 (18:18 +0100)]
arm: total_compute: Support Debian boot

Add booting option for Debian system.

Signed-off-by: Leo Yan <leo.yan@arm.com>
7 weeks agoarm: total_compute: Dynamically detect block device
Leo Yan [Fri, 25 Oct 2024 17:18:19 +0000 (18:18 +0100)]
arm: total_compute: Dynamically detect block device

Dynamically detect block device in the boot command, this allows to
support both MMC and virtio block devices.

Signed-off-by: Leo Yan <leo.yan@arm.com>
7 weeks agoarm: total_compute: Minor improvement for boot arguments
Boyan Karatotev [Fri, 25 Oct 2024 17:18:18 +0000 (18:18 +0100)]
arm: total_compute: Minor improvement for boot arguments

Tell the AVB command that is loading from MMC.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Signed-off-by: Leo Yan <leo.yan@arm.com>
7 weeks agoarm: total_compute: move the boot command to an env file
Boyan Karatotev [Fri, 25 Oct 2024 17:18:17 +0000 (18:18 +0100)]
arm: total_compute: move the boot command to an env file

The boot command for Total Compute has many aspects and changes from time
to time. So move it to an .env file where it can be a proper script.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Signed-off-by: Leo Yan <leo.yan@arm.com>
7 weeks agoarm: total_compute: Remove unused bootm_size
Boyan Karatotev [Fri, 25 Oct 2024 17:18:16 +0000 (18:18 +0100)]
arm: total_compute: Remove unused bootm_size

The whole DRAM bank is used for loading and U-boot can detect the
overlap between the kernel and initramfs. So it is safe to drop
bootm_size.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Signed-off-by: Leo Yan <leo.yan@arm.com>
7 weeks agoarm: total_compute: Initialize environment variables
Boyan Karatotev [Fri, 25 Oct 2024 17:18:15 +0000 (18:18 +0100)]
arm: total_compute: Initialize environment variables

Initialize the environment variables 'fdt_addr_r' and 'kernel_addr_r'
during the misc init phase. The static configurations are not needed,
remove them.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Signed-off-by: Leo Yan <leo.yan@arm.com>
7 weeks agoarm: total_compute: depend on TF-A for hardware description
Boyan Karatotev [Fri, 25 Oct 2024 17:18:14 +0000 (18:18 +0100)]
arm: total_compute: depend on TF-A for hardware description

On Total Compute, TF-A passes the info via DT binding for the hardware
description - includes the serial, memory, and arm_ffa nodes.

This commit initializes the fdt base address based on the passed the
register x1.

The similar implementation has already been done for the raspberry pi,
so borrow a lot of it.

Co-developed-by: Jackson Cooper-Driver <jackson.cooper-driver@arm.com>
Signed-off-by: Jackson Cooper-Driver <jackson.cooper-driver@arm.com>
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Signed-off-by: Leo Yan <leo.yan@arm.com>
7 weeks agoMerge patch series "Fixes to allow 'ut bootm' to pass when run interactively"
Tom Rini [Mon, 4 Nov 2024 20:49:10 +0000 (14:49 -0600)]
Merge patch series "Fixes to allow 'ut bootm' to pass when run interactively"

Andrew Goodbody <andrew.goodbody@linaro.org> says:

Starting a sandbox session and running 'ut bootm' on the command
line instead of using pytest with --verbose will result in some
test failures. This series makes the tests more deterministic so
that they will better control their environment and hence will
work as expected whether or not they are invoked with '--verbose'.
The series starts with a small fix to the parameters of
bootm_process_cmdline that one commit incorrectly added using a bool
when it had been updated to take flags by the preceeding commit.

Link: https://lore.kernel.org/r/20241101130254.473017-1-andrew.goodbody@linaro.org
7 weeks agotest: bootm: Ensure GD_FLG_SILENT is reset
Andrew Goodbody [Fri, 1 Nov 2024 13:02:54 +0000 (13:02 +0000)]
test: bootm: Ensure GD_FLG_SILENT is reset

Some bootm tests expect that GD_FLG_SILENT is reset in order
to work as expected. This is the state if the test is run with
'pytest --verbose' but not if run from, say, the sandbox command
line.
So reset the flag for those tests that rely on it being reset. This
has to be done in each test as the test infrastructure will set it
again before every test when not invoked with 'pytest --verbose'.

Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
7 weeks agotest: bootm: bootm_process_cmdline_env takes flags
Andrew Goodbody [Fri, 1 Nov 2024 13:02:53 +0000 (13:02 +0000)]
test: bootm: bootm_process_cmdline_env takes flags

The function bootm_process_cmdline_env takes flags as its third
parameter, not a bool. Correct the usage by replacing 'true'
with BOOTM_CL_ALL so that the intent is clear.
A similar change was made throughtout this file in the previous
commit to the one mentioned below as being fixed.

Fixes: 4448fe8e4e7c ("bootm: Allow updating the bootargs in a buffer")
Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
7 weeks agousb: Fix test dependency on ext4write command
Andrew Goodbody [Tue, 15 Oct 2024 14:17:37 +0000 (15:17 +0100)]
usb: Fix test dependency on ext4write command

The tests test_usb_ext4load_ext4write, test_usb_ext2load and
test_usb_load depend on the command ext4write being present not just
the feature of being able to write to an ext4 file system. So update
their dependencies to include the ext4write command itself. This will
prevent spurious test failures when running the USB tests against USB
storage with an ext2/ext4 partition but no ext4write command available.

Fixes: 1c5b6edad381 ("test/py: usb: Add tests for USB device")
Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Reviewed-by: Love Kumar <love.kumar@amd.com>
7 weeks agousb: Fix test failure with multiple partitions
Andrew Goodbody [Tue, 15 Oct 2024 12:19:16 +0000 (13:19 +0100)]
usb: Fix test failure with multiple partitions

When test_usb_load finds multiple partitions of the same type then
it will cause a test failure. The call to write the test file will
write a different test file to each partition but only return the
name and size of the last one written. So the test then fails to
load the test file from the first partition as it uses the name of
a file on a different partition.

Refactor the code so that only one test file is written at a time
and is written to only the partition being tested at that time. This
allows the correct file name to always be available to the code that
runs the load command. This reduces the number of files written and
also the number of calls to crc32 needed.

Fixes: 1c5b6edad381 ("test/py: usb: Add tests for USB device")
Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
Reviewed-by: Love Kumar <love.kumar@amd.com>
7 weeks agoMerge tag 'dm-pull-2nov24' of https://source.denx.de/u-boot/custodians/u-boot-dm
Tom Rini [Sun, 3 Nov 2024 23:23:29 +0000 (17:23 -0600)]
Merge tag 'dm-pull-2nov24' of https://source.denx.de/u-boot/custodians/u-boot-dm

CI: https://source.denx.de/u-boot/custodians/u-boot-dm/-/pipelines/23152
CI: https://dev.azure.com/simon0972/u-boot/_build/results?buildId=71&view=results

- alist enhancements and fixes
- minor test and sandbox fixes
- some more x86/coreboot patches

7 weeks agosandbox: Fix comment for nomap_sysmem() function
Simon Glass [Mon, 28 Oct 2024 12:47:58 +0000 (13:47 +0100)]
sandbox: Fix comment for nomap_sysmem() function

This should say 'cast' rather than 'case', so fix it.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agosandbox: Add a way to show the sandbox memory-mapping
Simon Glass [Mon, 28 Oct 2024 12:47:57 +0000 (13:47 +0100)]
sandbox: Add a way to show the sandbox memory-mapping

This is mostly hidden in the background, but it is sometimes useful to
look at it. Add a function to allow this.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agodoc: sandbox: Add docs for the sb command
Simon Glass [Mon, 28 Oct 2024 12:47:56 +0000 (13:47 +0100)]
doc: sandbox: Add docs for the sb command

This command has a few small features, so document it.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agosandbox: Convert sb command to use new macro
Simon Glass [Mon, 28 Oct 2024 12:47:55 +0000 (13:47 +0100)]
sandbox: Convert sb command to use new macro

Ise the new U_BOOT_CMD_WITH_SUBCMDS() macro instead of writing the code
out manually.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agobloblist: test: Mark tests with UTF_BLOBLIST
Simon Glass [Mon, 28 Oct 2024 12:47:54 +0000 (13:47 +0100)]
bloblist: test: Mark tests with UTF_BLOBLIST

Mark bloblist tests with this flag so that other tests which use
bloblist remain unaffected.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agotest: Allow saving and restoring the bloblist
Simon Glass [Mon, 28 Oct 2024 12:47:53 +0000 (13:47 +0100)]
test: Allow saving and restoring the bloblist

Tests which create a new bloblist overwrite the existing one in sandbox.
Provide a flag for tests to declare this behaviour. Save and restore the
bloblist pointer so that other tests remain unaffected.

Note that when sandbox is running normally, the bloblist has been
relocated to high in memory. The existing bloblist tests create a new
bloblist low in memory, so they do not conflict.

Correct a build error on coreboot by using accessors for gd->bloblist:
Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agolog: Add a new category for tests
Simon Glass [Mon, 28 Oct 2024 12:47:52 +0000 (13:47 +0100)]
log: Add a new category for tests

In some core test code, no existing categories make sense. Add a new one
for testing.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agox86: coreboot: Allow building an expo for editing CMOS config
Simon Glass [Mon, 14 Oct 2024 22:32:11 +0000 (16:32 -0600)]
x86: coreboot: Allow building an expo for editing CMOS config

Coreboot provides the CMOS layout in the tables it passes to U-Boot.
Use that to build an editor for the CMOS settings.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agox86: coreboot: Add a command to check and update CMOS RAM
Simon Glass [Mon, 14 Oct 2024 22:32:10 +0000 (16:32 -0600)]
x86: coreboot: Add a command to check and update CMOS RAM

Coreboot tables provide information about the CMOS-RAM checksum. Add a
command which can check and update this.

With this it is possible to adjust CMOS-RAM settings and tidy up the
checksum afterwards.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agox86: coreboot: Enable support for the configuration editor
Simon Glass [Mon, 14 Oct 2024 22:32:09 +0000 (16:32 -0600)]
x86: coreboot: Enable support for the configuration editor

Enable cedit support along with required options and a simple style.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agox86: coreboot: Show the option table
Simon Glass [Mon, 14 Oct 2024 22:32:08 +0000 (16:32 -0600)]
x86: coreboot: Show the option table

Update the cbsysinfo command to show the contents of the CMOS option
table.

While we are here, add some example output for this command, along with
mention of what the unimplemented tags are.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agox86: coreboot: Add a test for cbsysinfo command
Simon Glass [Mon, 14 Oct 2024 22:32:07 +0000 (16:32 -0600)]
x86: coreboot: Add a test for cbsysinfo command

Add a simple test for this command, checking that coreboot has the
required features.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agobootstage: Do not sort records
Jonas Karlman [Sat, 3 Aug 2024 12:41:45 +0000 (12:41 +0000)]
bootstage: Do not sort records

The timer counter on Rockchip SoCs may be reset in TF-A, this may cause
the bootstage records to be printed out of order and with an incorrect
elapsed time.

Fix this by not sorting the bootstage records.

Before on a Radxa ZERO 3W (RK3566) board:

  => bootstage report
  Timer summary in microseconds (12 records):
         Mark    Elapsed  Stage
            0          0  reset
        7,436      7,436  board_init_f
      164,826    157,390  SPL
      375,392    210,566  end phase
      423,909     48,517  board_init_r
      472,973     49,064  eth_common_init
      476,848      3,875  main_loop
      477,003        155  cli_loop

  Accumulated time:
                   7,181  of_live
                  14,739  dm_spl
                  15,029  dm_r
                 315,150  dm_f

With this the records can be printed in chronological order when the
counter is reset and SPL and board_init_r records show correct elapsed
time.

  => bootstage report
  Timer summary in microseconds (12 records):
         Mark    Elapsed  Stage
            0          0  reset
      164,437    164,437  SPL
      375,023    210,586  end phase
        7,437      7,437  board_init_f
      424,390    416,953  board_init_r
      473,515     49,125  eth_common_init
      477,402      3,887  main_loop
      477,571        169  cli_loop

  Accumulated time:
                  14,734  dm_spl
                 315,646  dm_f
                   7,339  of_live
                  14,977  dm_r

For the tested board external TPL and BROM take ~164 ms to initialize
DRAM and load SPL, SPL take ~210ms to load images from FIT and U-Boot
proper take ~477ms to reach cli prompt.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
7 weeks agobootstd: Avoid showing an invalid buffer address
Simon Glass [Sat, 19 Oct 2024 15:22:09 +0000 (09:22 -0600)]
bootstd: Avoid showing an invalid buffer address

When the buffer address is not set, say so, rather than showing an
address which looks very strange, on sandbox.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agobootstd: cros: Correct the x86-setup address
Simon Glass [Sat, 19 Oct 2024 15:21:59 +0000 (09:21 -0600)]
bootstd: cros: Correct the x86-setup address

This should really use an address rather than the buffer. Update it in
the command.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agotest: boot: Update bootflow_iter() for console checking
Simon Glass [Sat, 19 Oct 2024 15:21:58 +0000 (09:21 -0600)]
test: boot: Update bootflow_iter() for console checking

This test checks console output so should have the UTF_CONSOLE flag. Add
it.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agotest: Drop the duplicate line in setup_bootmenu_image()
Simon Glass [Sat, 19 Oct 2024 15:21:57 +0000 (09:21 -0600)]
test: Drop the duplicate line in setup_bootmenu_image()

The mkimage call is done twice. Remove the duplicate.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agotest: Expand implementation of ut_list_has_dm_tests()
Simon Glass [Sat, 19 Oct 2024 15:21:56 +0000 (09:21 -0600)]
test: Expand implementation of ut_list_has_dm_tests()

This function assumes that all tests in a suite are being run. This
means that it can sometimes call dm_test_restore() when it should not.

The impact of this is that it is not possible, for example, to run
'ut bootstd bootflow_cros' and then check the state of bootstd
afterwards, since all devices are removed and recreated.

Update the function to take account of any selected test, to avoid this
problem.

Add a comment for test_insert while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agotest: boot: Use a consistent name for the script bootmeth
Simon Glass [Sat, 19 Oct 2024 15:21:50 +0000 (09:21 -0600)]
test: boot: Use a consistent name for the script bootmeth

In the bootflow tests the script bootmeth is bound with the name
bootmeth_script whereas the others have a name without the bootmeth_
prefix. Adjust it to be the same.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
7 weeks agodm: core: Add a function to see if a device exists
Simon Glass [Sat, 19 Oct 2024 15:21:49 +0000 (09:21 -0600)]
dm: core: Add a function to see if a device exists

All the uclass functions for finding a device end up creating a uclass
if it doesn't exist. Add a function which instead returns NULL in this
case.

This is useful when in the 'unbind' path, since we don't want to undo
any unbinding which has already happened.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agoalist: Add maintainer
Simon Glass [Sat, 19 Oct 2024 15:21:48 +0000 (09:21 -0600)]
alist: Add maintainer

Add myself as maintainer of alist

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agoalist: Add a way to efficiently filter an alist
Simon Glass [Sat, 19 Oct 2024 15:21:47 +0000 (09:21 -0600)]
alist: Add a way to efficiently filter an alist

Unlike linked lists, it is inefficient to remove items from an alist,
particularly if it is large. If most items need to be removed, then the
time-complexity approaches O(n2).

Provide a way to do this efficiently, by working through the alist once
and copying elements down.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agoalist: Add a function to empty the list
Simon Glass [Sat, 19 Oct 2024 15:21:46 +0000 (09:21 -0600)]
alist: Add a function to empty the list

Sometimes it is useful to empty the list without de-allocating any of
the memory used, e.g. when the list will be re-populated immediately
afterwards.

Add a new function for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agoalist: Add for-loop helpers
Simon Glass [Sat, 19 Oct 2024 15:21:45 +0000 (09:21 -0600)]
alist: Add for-loop helpers

Add some macros which permit easy iteration through an alist, similar to
those provided by the 'list' implementation.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agoalist: Add a way to get the next element
Simon Glass [Sat, 19 Oct 2024 15:21:44 +0000 (09:21 -0600)]
alist: Add a way to get the next element

Add a new function which returns the next element after the one
provided, if it exists in the list.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agoalist: Expand the comment for alist_get()
Simon Glass [Sat, 19 Oct 2024 15:21:43 +0000 (09:21 -0600)]
alist: Expand the comment for alist_get()

Add a better description for this macro.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agoalist: Add a comment for alist_init_struct()
Simon Glass [Sat, 19 Oct 2024 15:21:42 +0000 (09:21 -0600)]
alist: Add a comment for alist_init_struct()

Comment this macro so that it is clear how to use it.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks agoalist: Mention the error condition in alist_add_placeholder()
Simon Glass [Sat, 19 Oct 2024 15:21:41 +0000 (09:21 -0600)]
alist: Mention the error condition in alist_add_placeholder()

Update the function comment to note that this function can return NULL
if it runs out of memory.

Signed-off-by: Simon Glass <sjg@chromium.org>
7 weeks ago.readthedocs.yml: update Python version and Ubuntu release
Heinrich Schuchardt [Sun, 3 Nov 2024 10:56:35 +0000 (11:56 +0100)]
.readthedocs.yml: update Python version and Ubuntu release

The current documentation build dependencies are not compatible with
Python 3.9. Update to Python 3.12.

Use the current Ubuntu LTS release, i.e. 24.04 Noble Numbat.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
7 weeks agoMerge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh
Tom Rini [Sun, 3 Nov 2024 17:05:20 +0000 (11:05 -0600)]
Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sh

7 weeks agoARM: renesas: Deduplicate common Renesas defconfig
Marek Vasut [Sun, 27 Oct 2024 02:20:07 +0000 (03:20 +0100)]
ARM: renesas: Deduplicate common Renesas defconfig

Deduplicate common Renesas defconfig by factoring out the common
parts into generic renesas_rcar_defconfig and including those using
the #include <configs/...> preprocessor macro in the current set of
board specific defconfigs. The preprocessor macro is applicable
to defconfigs as well.

This introduces no functional change, the resulting .config are
identical for all Renesas systems.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
7 weeks agoARM: renesas: Deduplicate Renesas R-Car 64bit defconfigs
Marek Vasut [Sun, 27 Oct 2024 02:20:06 +0000 (03:20 +0100)]
ARM: renesas: Deduplicate Renesas R-Car 64bit defconfigs

Deduplicate defconfigs for all Renesas R-Car 64bit systems by factoring
out the common parts into generic renesas_rcar64.config and including
those using the #include <configs/...> preprocessor macro in the current
set of board specific defconfigs. The preprocessor macro is applicable
to defconfigs as well.

This introduces no functional change, the resulting .config is identical
for all Renesas R-Car 64bit systems.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
7 weeks agoARM: renesas: Deduplicate Renesas R-Car Gen4 defconfigs
Marek Vasut [Sun, 27 Oct 2024 02:20:05 +0000 (03:20 +0100)]
ARM: renesas: Deduplicate Renesas R-Car Gen4 defconfigs

Deduplicate defconfigs for all Renesas R-Car Gen4 systems by factoring
out the common parts into generic renesas_rcar4.config and including
those using the #include <configs/...> preprocessor macro in the current
set of board specific defconfigs. The preprocessor macro is applicable
to defconfigs as well.

This introduces no functional change, the resulting .config is identical
for all Renesas R-Car Gen4 systems.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
7 weeks agoARM: renesas: Deduplicate Renesas R-Car Gen3 defconfigs
Marek Vasut [Sun, 27 Oct 2024 02:20:04 +0000 (03:20 +0100)]
ARM: renesas: Deduplicate Renesas R-Car Gen3 defconfigs

Deduplicate defconfigs for all Renesas R-Car Gen3 systems by factoring
out the common parts into generic renesas_rcar3.config and including
those using the #include <configs/...> preprocessor macro in the current
set of board specific defconfigs. The preprocessor macro is applicable
to defconfigs as well.

This introduces no functional change, the resulting .config is identical
for all Renesas R-Car Gen3 systems.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
7 weeks agoARM: renesas: Deduplicate Renesas R-Car Gen2 defconfigs
Marek Vasut [Sun, 27 Oct 2024 02:20:03 +0000 (03:20 +0100)]
ARM: renesas: Deduplicate Renesas R-Car Gen2 defconfigs

Deduplicate defconfigs for all Renesas R-Car Gen2 systems by factoring
out the common parts into generic renesas_rcar2.config and including
those using the #include <configs/...> preprocessor macro in the current
set of board specific defconfigs. The preprocessor macro is applicable
to defconfigs as well.

This introduces no functional change, the resulting .config is identical
for all Renesas R-Car Gen2 systems.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
7 weeks agoclk: renesas: Fix missing unbind on driver look up failure
Marek Vasut [Wed, 4 Sep 2024 22:34:20 +0000 (00:34 +0200)]
clk: renesas: Fix missing unbind on driver look up failure

In case lists_driver_lookup_name("rst_gen3") fails, the clk_gen3 driver
has to be unbound before erroring out. Reorder the function such that
both clk_gen3 and rst_gen3 drivers are looked up first, if either look
up fails then the function errors out right away. Second, the clk_gen3
is bound, if binding fails, the function still errors out right away
because there is nothing to undo after either lists_driver_lookup_name()
call. Finally, rst_gen3 is bound and if this binding fails, then that
is the only place where clk_gen3 has to be unbound before erroring out.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
8 weeks agoMerge patch series "fs: ext4: implement opendir, readdir, closedir"
Tom Rini [Fri, 1 Nov 2024 19:38:05 +0000 (13:38 -0600)]
Merge patch series "fs: ext4: implement opendir, readdir, closedir"

Heinrich Schuchardt <heinrich.schuchardt@canonical.com> says:

With this series opendir, readdir, closedir are implemented for ext4.
These functions are needed for the UEFI sub-system to interact with
the ext4 file system.

To reduce code growth the functions are reused to implement the ls
command for ext4.

A memory leak in ext4fs_exists is resolved.

ext4fs_iterate_dir is simplified by removing a redundant pointer copy.

Link: https://lore.kernel.org/r/20241026064048.370062-1-heinrich.schuchardt@canonical.com
8 weeks agofs: ext4: use fs_ls_generic
Heinrich Schuchardt [Sat, 26 Oct 2024 06:40:48 +0000 (08:40 +0200)]
fs: ext4: use fs_ls_generic

Now that opendir, readir, closedir are implemented for ext4 we can use
fs_ls_generic() for implementing the ls command.

Adjust the unit tests:

* fs_ls_generic() produces more spaces between file size and name.
* The ext4 specific message "** Can not find directory. **\n" is not
  written anymore.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 weeks agoefi_loader: fix GetInfo and SetInfo
Heinrich Schuchardt [Sat, 26 Oct 2024 06:40:47 +0000 (08:40 +0200)]
efi_loader: fix GetInfo and SetInfo

* Some of our file system drivers cannot report a file size for
  directories. Use a dummy value in this case.
* For SetInfo the UEFI spec requires to ignore the file size field.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 weeks agofs: ext4: implement opendir, readdir, closedir
Heinrich Schuchardt [Sat, 26 Oct 2024 06:40:46 +0000 (08:40 +0200)]
fs: ext4: implement opendir, readdir, closedir

For accessing directories from the EFI sub-system a file system must
implement opendir, readdir, closedir. Provide the missing implementation.

With this patch the eficonfig command can be used to define load options
for the ext4 file system.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 weeks agofs: ext4: free directory node in ext4fs_exists()
Heinrich Schuchardt [Sat, 26 Oct 2024 06:40:45 +0000 (08:40 +0200)]
fs: ext4: free directory node in ext4fs_exists()

The directory retrieved in ext4fs_exists() should be freed to avoid a
memory leak.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
8 weeks agofs: ext4: simplify ext4fs_iterate_dir()
Heinrich Schuchardt [Sat, 26 Oct 2024 06:40:44 +0000 (08:40 +0200)]
fs: ext4: simplify ext4fs_iterate_dir()

Remove copying a pointer with a cast to the very same type.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
8 weeks agotest/cmd/mem_copy.c: Use CONFIG_SYS_LOAD_ADDR for base
Tom Rini [Wed, 30 Oct 2024 00:36:49 +0000 (18:36 -0600)]
test/cmd/mem_copy.c: Use CONFIG_SYS_LOAD_ADDR for base

When reading/writing to memory we cannot assume that a base address of
0x0 is correct and functional. So use CONFIG_SYS_LOAD_ADDR as the base
from which we add a bit more padding and being our tests.

Signed-off-by: Tom Rini <trini@konsulko.com>