]> git.dujemihanovic.xyz Git - u-boot.git/log
u-boot.git
2 years agoarm32: Fix relocation of env_addr if POSITION_INDEPENDENT=y
Pali Rohár [Sun, 20 Nov 2022 16:56:26 +0000 (17:56 +0100)]
arm32: Fix relocation of env_addr if POSITION_INDEPENDENT=y

Apply commit 534f0fbd6520 ("arm64: Fix relocation of env_addr if
POSITION_INDEPENDENT=y") also for 32-bit ARM.

This change fixes crashing of U-Boot on ARMv7 (Omap3 / Cortex-A8) Nokia N900
phone (real HW). Note that qemu emulator of this board with same u-boot.bin
binary has not triggered this crash.

Crash happened after U-Boot printed following debug lines to serial console:

    initcall: 0001ea8c (relocated to 8fe0aa8c)
    Loading Environment from <NULL>... Using default environment
    Destroy Hash Table: 8fe25a98 table = 00000000
    Create Hash Table: N=387

Signed-off-by: Pali Rohár <pali@kernel.org>
2 years agoFix usage of CONFIG_PREBOOT
Pali Rohár [Sun, 10 Jul 2022 11:42:55 +0000 (13:42 +0200)]
Fix usage of CONFIG_PREBOOT

Due to usage of PREBOOT in Kconfig, macro CONFIG_PREBOOT is always defined
when CONFIG_USE_PREBOOT is enabled. In case CONFIG_PREBOOT is not
explicitly enabled it is set to empty C string and therefore
'#ifdef CONFIG_PREBOOT' guard does not work. Fix this issue by introducing
a new Kconfig symbol PREBOOT_DEFINED which cause to define new C macro
CONFIG_PREBOOT_DEFINED only when CONFIG_PREBOOT is really defined.

Change usage of '#ifdef CONFIG_PREBOOT' by '#ifdef CONFIG_USE_PREBOOT' for
code which checks if preboot code would be called and by
'#ifdef CONFIG_PREBOOT_DEFINED' for defining preboot code.

Signed-off-by: Pali Rohár <pali@kernel.org>
2 years agoMerge tag 'efi-2023-01-rc2' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Wed, 16 Nov 2022 16:08:51 +0000 (11:08 -0500)]
Merge tag 'efi-2023-01-rc2' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request for efi-2023-01-rc2

Documentation:

* fix building with Sphinx 5.0+
* man-pages for cmp and bootd commands

UEFI:

* Avoid unaligned access in efi_file_from_path()
* More bug fixes

2 years agoMerge https://source.denx.de/u-boot/custodians/u-boot-riscv
Tom Rini [Wed, 16 Nov 2022 16:08:28 +0000 (11:08 -0500)]
Merge https://source.denx.de/u-boot/custodians/u-boot-riscv

- Fix and improve microchip's clock driver to allow sync'ing DTS with linux
- Improve the help message in "SBI_V02" Kconfig
- Improve DTS property "isa-string" parsing rule

2 years agoefi_loader: replace a u16_strdup with alloc + memcpy
Ilias Apalodimas [Fri, 11 Nov 2022 18:04:31 +0000 (20:04 +0200)]
efi_loader: replace a u16_strdup with alloc + memcpy

Heinrich reports that on RISC-V unaligned access is emulated by OpenSBI
which is very slow.  Performance wise it's better if we skip the calls
to u16_strdup() -- which in turn calls u16_strsize() and just allocate/copy the
memory directly.  The access to dp.length may still be unaligned, but that's
way less than what u16_strsize() would do

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Use malloc() instead of calloc().
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_loader: add missing EFI_CALL when closing a file
Ilias Apalodimas [Fri, 11 Nov 2022 16:20:37 +0000 (18:20 +0200)]
efi_loader: add missing EFI_CALL when closing a file

Closing the files uses the EFI protocol and specifically it's .close
callback.  This needs to be wrapped on an EFI_CALL()

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoefi_loader: add comments on efi_file_from_path() regarding alignment
Ilias Apalodimas [Thu, 10 Nov 2022 13:31:30 +0000 (15:31 +0200)]
efi_loader: add comments on efi_file_from_path() regarding alignment

UEFI specification requires pointers that are passed to protocol member
functions to be aligned.  There's a u16_strdup in that function which
doesn't make sense otherwise  Add a comment so no one removes it
accidentally

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoeficonfig: fix missing variable initialization
Masahisa Kojima [Mon, 14 Nov 2022 10:00:47 +0000 (19:00 +0900)]
eficonfig: fix missing variable initialization

The 'ret' variable must be initialized before use
in eficonfig_delete_invalid_boot_option().

Fixes: c416f1c0bc ("bootmenu: add removable media entries")
Addresses-Coverity: 376207 ("Uninitialized variables")
Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agoefi_loader: improve description of efi_file_from_path()
Heinrich Schuchardt [Thu, 10 Nov 2022 13:14:06 +0000 (14:14 +0100)]
efi_loader: improve description of efi_file_from_path()

Provide a description of the function's logic.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agocmd: remove superfluous if in eficonfig_edit_boot_option
Heinrich Schuchardt [Thu, 10 Nov 2022 11:19:30 +0000 (12:19 +0100)]
cmd: remove superfluous if in eficonfig_edit_boot_option

Goto for an immediately succeeding label is superfluous.

Fixes: 87d791423ac6 ("eficonfig: menu-driven addition of UEFI boot option")
Addresses-Coverity: 376202 ("Identical code for different branches")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agoMAINTAINERS: add UEFI commands to EFI PAYLOAD
Heinrich Schuchardt [Thu, 10 Nov 2022 11:23:35 +0000 (12:23 +0100)]
MAINTAINERS: add UEFI commands to EFI PAYLOAD

Add the following files to EFI PAYLOAD:

- cmd/bootefi.c
- cmd/efidebug.c
- cmd/eficonfig.c
- cmd/nvedit_efi.c

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 years agoefi_loader: initialize return values in efi_uninstall_multiple_protocol_interfaces_int()
Ilias Apalodimas [Thu, 10 Nov 2022 08:21:24 +0000 (10:21 +0200)]
efi_loader: initialize return values in efi_uninstall_multiple_protocol_interfaces_int()

If the va_list we got handed over contains no protocols we must return
EFI_SUCCESS.  However in that case the current code just returns
an unintialized value.
Fix that by setting the return value in the variable definition

Addresses-Coverity: CID 376195:  ("Uninitialized variables  (UNINIT)")
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agodoc: fix build with sphinx 5.0 and later.
Quentin Schulz [Mon, 7 Nov 2022 13:49:31 +0000 (14:49 +0100)]
doc: fix build with sphinx 5.0 and later.

Sphinx 5.0 and later fails to build when language is set to None:
Warning, treated as error:
Invalid configuration value found: 'language = None'. Update your configuration to a valid langauge code. Falling back to 'en' (English)

Let's set the language to English since it is the language used for the
documentation.

Cc: Quentin Schulz <foss+uboot@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agodoc: add man-page for cmp command
Heinrich Schuchardt [Sun, 13 Nov 2022 12:27:32 +0000 (13:27 +0100)]
doc: add man-page for cmp command

Provide a man-page for the cmp command.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agoDocumentation: man-page for command bootd
Heinrich Schuchardt [Mon, 14 Nov 2022 09:30:58 +0000 (10:30 +0100)]
Documentation: man-page for command bootd

Provide a man-page for the bootd command.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agosandbox: fix documentation of struct host_ops
Heinrich Schuchardt [Mon, 14 Nov 2022 09:16:02 +0000 (10:16 +0100)]
sandbox: fix documentation of struct host_ops

The documentation of struct host_ops should be Sphinx compliant.

Fixes: 9bd1aa8af2ed ("dm: sandbox: Create a new HOST uclass")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 years agodoc: fix documentation of enum gd_flags
Heinrich Schuchardt [Mon, 14 Nov 2022 09:25:04 +0000 (10:25 +0100)]
doc: fix documentation of enum gd_flags

Correct GD_FLG_CYCLIC_RUNNING documentation to match Sphinx style.

Fixes: d7de5ef62935 ("cyclic: use a flag in gd->flags for recursion protection")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 years agoriscv: enable reset via SBI on PolarFire Icicle Kit
Heinrich Schuchardt [Mon, 7 Nov 2022 09:55:46 +0000 (10:55 +0100)]
riscv: enable reset via SBI on PolarFire Icicle Kit

HSS 2022.10 provides support for resetting the board.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Padmarao Begari <padmarao.begari@microchip.com>
Tested-by: Padmarao Begari <padmarao.begari@microchip.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
2 years agoriscv: clarify meaning of CONFIG_SBI_V02
Heinrich Schuchardt [Tue, 8 Nov 2022 14:53:12 +0000 (15:53 +0100)]
riscv: clarify meaning of CONFIG_SBI_V02

Describe that CONFIG_SBI_V02=y does not mean SBI specification v0.2
but v0.2 or later.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Rick Chen <rick@andestech.com>
2 years agoriscv: Fix detecting FPU support in standard extension
Yu Chien Peter Lin [Sat, 5 Nov 2022 06:02:14 +0000 (14:02 +0800)]
riscv: Fix detecting FPU support in standard extension

We should check the string until it hits underscore, in case it
searches multi-letter extensions. For example, "rv64imac_xandes"
will be treated as D extension support since there is a "d" in
"andes", resulting illegal instruction caused by initializing FCSR.

Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
Reviewed-by: Rick Chen <rick@andestech.com>
Reviewed-by: Padmarao Begari <padmarao.begari@microchip.com>
Reviewed-by: Samuel Holland <samuel@sholland.org>
2 years agoriscv: dts: fix the mpfs's reference clock frequency
Conor Dooley [Tue, 25 Oct 2022 07:58:49 +0000 (08:58 +0100)]
riscv: dts: fix the mpfs's reference clock frequency

The initial devicetree for PolarFire SoC incorrectly created a fixed
frequency clock in the devicetree to represent the msspll, but the
msspll is not a fixed frequency clock. The actual reference clock on a
board is either 125 or 100 MHz, 125 MHz in the case of the icicle kit.
Swap the incorrect representation of the msspll out for the actual
reference clock.

Fixes: dd4ee416a6 ("riscv: dts: Add device tree for Microchip Icicle Kit")
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
Reviewed-by: Padmarao Begari <padmarao.begari@microchip.com>
2 years agoclk: microchip: mpfs: fix criticality of peripheral clocks
Conor Dooley [Tue, 25 Oct 2022 07:58:48 +0000 (08:58 +0100)]
clk: microchip: mpfs: fix criticality of peripheral clocks

Sync the critical clocks in the U-Boot driver with those marked as
critical in Linux. The Linux driver has an explanation of why each clock
is considered to be critical, so import that too.

Fixes: 2f27c9219e ("clk: Add Microchip PolarFire SoC clock driver")
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
Reviewed-by: Padmarao Begari <padmarao.begari@microchip.com>
2 years agoclk: microchip: mpfs: fix periph clk parentage
Conor Dooley [Tue, 25 Oct 2022 07:58:47 +0000 (08:58 +0100)]
clk: microchip: mpfs: fix periph clk parentage

Not all "periph" clocks are children of the AHB clock, some have the AXI
clock as their parent & the mtimer clock is derived from the external
reference clock directly. Stop assuming the AHB clock to be the parent
of all "periph" clocks and define their correct parents instead.

Fixes: 2f27c9219e ("clk: Add Microchip PolarFire SoC clock driver")
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
Reviewed-by: Padmarao Begari <padmarao.begari@microchip.com>
Tested-by: Padmarao Begari <padmarao.begari@microchip.com>
2 years agoclk: microchip: mpfs: fix reference clock handling
Conor Dooley [Tue, 25 Oct 2022 07:58:46 +0000 (08:58 +0100)]
clk: microchip: mpfs: fix reference clock handling

The original devicetrees for PolarFire SoC messed up & defined the
msspll's output as a fixed-frequency, 600 MHz clock & used that as the
input for the clock controller node. The msspll is not a fixed
frequency clock and later devicetrees handled this properly. Check the
devicetree & if it is one of the fixed ones, register the msspll.
Otherwise, skip registering it & pass the reference clock directly to
the cfg clock registration function so that existing devicetrees are
not broken by this change.

As the MSS PLL is not a "cfg" or a "periph" clock, add a new driver for
it, based on the one in Linux.

Fixes: 2f27c9219e ("clk: Add Microchip PolarFire SoC clock driver")
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
Reviewed-by: Padmarao Begari <padmarao.begari@microchip.com>
Tested-by: Padmarao Begari <padmarao.begari@microchip.com>
2 years agoclk: microchip: mpfs: convert parent rate acquistion to get_get_rate()
Conor Dooley [Tue, 25 Oct 2022 07:58:45 +0000 (08:58 +0100)]
clk: microchip: mpfs: convert parent rate acquistion to get_get_rate()

Currently the clock driver for PolarFire SoC takes a very naive approach
to the relationship between clocks. It reads the dt to get an input
clock, assumes that that is fixed frequency, reads the "clock-frequency"
property & uses that to set up both the "cfg" and "periph" clocks.

Simplifying for the sake of incremental fixes, the "correct" parentage for
the clocks currently supported in U-Boot is that the "cfg" clocks should
be children of the fixed frequency clock in the dt. The AHB clock is one
of these "cfg" clocks and is the parent of the "periph" clocks.

Instead of passing the clock rate of the fixed-frequency clock to the
"cfg" and "periph" registration functions and the name of the parents,
pass their actual parents & use clk_get_rate() to determine their parents
rates.

The "periph" clocks are purely gate clocks and should not be reading the
AHB clocks registers to determine their rates, as they can simply report
the output of clk_get_rate() on their parent.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
Reviewed-by: Padmarao Begari <padmarao.begari@microchip.com>
2 years agodt-bindings: clk: add missing clk ids for microchip mpfs
Conor Dooley [Tue, 25 Oct 2022 07:58:44 +0000 (08:58 +0100)]
dt-bindings: clk: add missing clk ids for microchip mpfs

When this binding header was initally upstreamed, the PLL clocking the
microprocessor subsystem (MSS) and the RTC reference clocks were
omitted. Add them now, matching the IDs used in Linux.

Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
Reviewed-by: Padmarao Begari <padmarao.begari@microchip.com>
2 years agoMerge tag 'u-boot-imx-20221114' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
Tom Rini [Mon, 14 Nov 2022 12:29:51 +0000 (07:29 -0500)]
Merge tag 'u-boot-imx-20221114' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx

For 2022.01
-----------

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

- Fix UART
- moved to binman (MX8 boards)
- Toradex: sync DTS with Linux
- Gateworks: fixes
- New boards : MSC SM2S iMX8MP

2 years agoMerge tag 'for-v2023.01-rc2' of https://source.denx.de/u-boot/custodians/u-boot-i2c
Tom Rini [Mon, 14 Nov 2022 12:29:30 +0000 (07:29 -0500)]
Merge tag 'for-v2023.01-rc2' of https://source.denx.de/u-boot/custodians/u-boot-i2c

i2c Fixes for v2023.01-rc2

- i2c-gpio: add a missing new line in printed string
  detected and fixed by Sergei

- microchip i2c driver fixes from Conor
  - fix erroneous late ack send
  - fix ack sending logic

2 years agoi2c: i2c-gpio: add newline
Sergei Antonov [Thu, 20 Oct 2022 14:28:14 +0000 (17:28 +0300)]
i2c: i2c-gpio: add newline

Add newline at the end of the printed string.

Signed-off-by: Sergei Antonov <saproj@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
2 years agoi2c: microchip: fix erroneous late ack send
Conor Dooley [Wed, 26 Oct 2022 07:49:19 +0000 (08:49 +0100)]
i2c: microchip: fix erroneous late ack send

A late ack is currently being sent at the end of a transfer due to
incorrect logic in mchp_corei2c_empty_rx(). Currently the Assert Ack
bit is being written to the controller's control reg after the last
byte has been received, causing it to sent another byte with the ack.
Instead, the AA flag should be written to the control register when
the penultimate byte is read so it is sent out for the last byte.

Reported-by: Andreas Buerkler <andreas.buerkler@enclustra.com>
Fixes: 0dc0d1e094 ("i2c: Add Microchip PolarFire SoC I2C driver")
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Padmarao Begari <padmarao.begari@microchip.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Removed Tag by hs: Fixes: 0190d48488 ("i2c: microchip: fix ack sending logic")

2 years agoi2c: microchip: fix ack sending logic
Conor Dooley [Wed, 26 Oct 2022 07:49:18 +0000 (08:49 +0100)]
i2c: microchip: fix ack sending logic

"Master receive mode" was not correctly sending ACKs/NACKs in the
interrupt handler. Bring the handling of M_SLAR_ACK, M_RX_DATA_ACKED &
M_RX_DATA_NACKED in line with the Linux driver.

Fixes: 0dc0d1e094 ("i2c: Add Microchip PolarFire SoC I2C driver")
Reported-by: Shravan Chippa <shravan.chippa@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Padmarao Begari <padmarao.begari@microchip.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
2 years agoRevert "serial: mxc: have putc use the TXFIFO"
Fabio Estevam [Tue, 8 Nov 2022 11:39:33 +0000 (08:39 -0300)]
Revert "serial: mxc: have putc use the TXFIFO"

This reverts commit c7878a0483c59c48a730123bc0f4659fd40921bf.

Since commit c7878a0483c5 ("serial: mxc: have putc use the TXFIFO"),
serial console corruption can be seen when priting inside board_init().

Revert it to avoid the regression.

Reported-by: Tim Harvey <tharvey@gateworks.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
Acked-by: Tim Harvey <tharvey@gateworks.com>
2 years agoimx8-u-boot: Fix SPL guard option
Fabio Estevam [Fri, 11 Nov 2022 18:46:42 +0000 (15:46 -0300)]
imx8-u-boot: Fix SPL guard option

We should guard the SPL nodes against CONFIG_SPL_BUILD to fix
the following build error when the blobs are absent:

binman: Fail open first container file mx8qm-ahab-container.img

Signed-off-by: Fabio Estevam <festevam@denx.de>
2 years agoMerge branch '2022-11-10-symbol-migrations'
Tom Rini [Thu, 10 Nov 2022 15:09:02 +0000 (10:09 -0500)]
Merge branch '2022-11-10-symbol-migrations'

- Migrate a number of CONFIG symbols to Kconfig and start migrating some
  symbol families from CONFIG to the CFG namespace.

2 years agoglobal: Migrate CONFIG_HPS* symbols to the CFG namespace
Tom Rini [Sat, 29 Oct 2022 00:27:14 +0000 (20:27 -0400)]
global: Migrate CONFIG_HPS* symbols to the CFG namespace

Migrate all of CONFIG_HPS* to the CFG namespace.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoglobal: Migrate CONFIG_SYS_FSL* symbols to the CFG_SYS namespace
Tom Rini [Sat, 29 Oct 2022 00:27:13 +0000 (20:27 -0400)]
global: Migrate CONFIG_SYS_FSL* symbols to the CFG_SYS namespace

Migrate all of COFIG_SYS_FSL* to the CFG_SYS namespace.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoglobal: Migrate CONFIG_SYS_MPC8* symbols to the CFG_SYS namespace
Tom Rini [Sat, 29 Oct 2022 00:27:12 +0000 (20:27 -0400)]
global: Migrate CONFIG_SYS_MPC8* symbols to the CFG_SYS namespace

Migrate all of COFIG_SYS_MPC* to the CFG_SYS namespace.

Signed-off-by: Tom Rini <trini@konsulko.com>
2 years agoConvert CONFIG_SYS_NAND_4BIT_HW_ECC_OOBFIRST to Kconfig
Tom Rini [Sat, 29 Oct 2022 00:27:11 +0000 (20:27 -0400)]
Convert CONFIG_SYS_NAND_4BIT_HW_ECC_OOBFIRST to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_NAND_4BIT_HW_ECC_OOBFIRST

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoConvert CONFIG_SYS_NONCACHED_MEMORY to Kconfig
Tom Rini [Sat, 29 Oct 2022 00:27:10 +0000 (20:27 -0400)]
Convert CONFIG_SYS_NONCACHED_MEMORY to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_NONCACHED_MEMORY

To do this we introduce CONFIG_SYS_HAS_NONCACHED_MEMORY as a bool to
gate if we are going to have noncached_... functions available and then
continue to use CONFIG_SYS_NONCACHED_MEMORY to store the size of said
cache. We make this new option depend on both the architectures which
implement support and the drivers which make use of it.

Cc: Tom Warren <twarren@nvidia.com>
Cc: Mingming lee <mingming.lee@mediatek.com>
Cc: "Ying-Chun Liu (PaulLiu)" <paul.liu@linaro.org>
Cc: Alban Bedel <alban.bedel@avionic-design.de>
Cc: Stephen Warren <swarren@nvidia.com>
Cc: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Cc: Allen Martin <amartin@nvidia.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoSYS_NONCACHED_MEMORY: Correct comment in common/board_f.c
Tom Rini [Sat, 29 Oct 2022 00:27:09 +0000 (20:27 -0400)]
SYS_NONCACHED_MEMORY: Correct comment in common/board_f.c

The comment block in reserve_noncached has a typo in one filename and
an incorrect filename in another function reference. Correct both of
these.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agomediatek: Include <linux/sizes.h> where needed
Tom Rini [Sat, 29 Oct 2022 00:27:08 +0000 (20:27 -0400)]
mediatek: Include <linux/sizes.h> where needed

These files reference SZ_ macros without including <linux/sizes.h>,
correct this.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoConvert CONFIG_SYS_MONITOR_LEN to Kconfig
Tom Rini [Sat, 29 Oct 2022 00:27:07 +0000 (20:27 -0400)]
Convert CONFIG_SYS_MONITOR_LEN to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_MONITOR_LEN

To do this, we set a default of 0 for everyone because there are a
number of cases where we define CONFIG_SYS_MONITOR_LEN but the only
impact is that we set TOTAL_MALLOC_LEN to be CONFIG_SYS_MALLOC_LEN +
CONFIG_ENV_SIZE, so we must continue to allow all boards to set this
value. Update the SPL code to use 200 KB as the default raw U-Boot size
directly, if we don't have a real CONFIG_SYS_MONITOR_LEN value.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoConvert CONFIG_SYS_MMC_MAX_DEVICE to Kconfig
Tom Rini [Sat, 29 Oct 2022 00:27:06 +0000 (20:27 -0400)]
Convert CONFIG_SYS_MMC_MAX_DEVICE to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_MMC_MAX_DEVICE

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2 years agoConvert CONFIG_SYS_MMC_MAX_BLK_COUNT to Kconfig
Tom Rini [Sat, 29 Oct 2022 00:27:05 +0000 (20:27 -0400)]
Convert CONFIG_SYS_MMC_MAX_BLK_COUNT to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_MMC_MAX_BLK_COUNT

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
2 years agoConvert CONFIG_SYS_MAX_NAND_DEVICE to Kconfig
Tom Rini [Sat, 29 Oct 2022 00:27:04 +0000 (20:27 -0400)]
Convert CONFIG_SYS_MAX_NAND_DEVICE to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_MAX_NAND_DEVICE

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agortc: Remove unused drivers
Tom Rini [Sat, 29 Oct 2022 00:27:03 +0000 (20:27 -0400)]
rtc: Remove unused drivers

These drivers are not enabled anywhere, remove them.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoConvert CONFIG_SYS_LOADS_BAUD_CHANGE et al to Kconfig
Tom Rini [Sat, 29 Oct 2022 00:27:02 +0000 (20:27 -0400)]
Convert CONFIG_SYS_LOADS_BAUD_CHANGE et al to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_LOADS_BAUD_CHANGE
   CONFIG_LOADS_ECHO

As part of this, we move CMD_SAVES to be after CMD_LOADS as they are
logically related (load or save an s-record format file) and this makes
grouping of CONFIG_SYS_LOADS_BAUD_CHANGE easier.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agopowerpc: Migrate SYS_L3_SIZE to Kconfig
Tom Rini [Sat, 29 Oct 2022 00:27:01 +0000 (20:27 -0400)]
powerpc: Migrate SYS_L3_SIZE to Kconfig

Introduce three options, one for each observed L3 cache size, and have
the size select'd as needed.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agopowerpc: Migrate SYS_L2_SIZE to Kconfig
Tom Rini [Sat, 29 Oct 2022 00:27:00 +0000 (20:27 -0400)]
powerpc: Migrate SYS_L2_SIZE to Kconfig

Introduce two options, one for each observed L2 cache size, and have the
size select'd as needed.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agofs: jffs2: Move SYS_JFFS2_SORT_FRAGMENTS to Kconfig
Tom Rini [Sat, 29 Oct 2022 00:26:59 +0000 (20:26 -0400)]
fs: jffs2: Move SYS_JFFS2_SORT_FRAGMENTS to Kconfig

Move the symbol SYS_JFFS2_SORT_FRAGMENTS to Kconfig and use the only
remaining part of doc/README.JFFS2 that is still relevant and useful to
the help for this option.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoRemove unused symbols CONFIG_SYS_JFFS2_FIRST_BANK et al
Tom Rini [Sat, 29 Oct 2022 00:26:58 +0000 (20:26 -0400)]
Remove unused symbols CONFIG_SYS_JFFS2_FIRST_BANK et al

This removes the following symbols:
   CONFIG_RTC_MCFRRTC
   CONFIG_SYS_JFFS2_FIRST_BANK
   CONFIG_SYS_JFFS2_FIRST_SECTOR
   CONFIG_SYS_JFFS2_NUM_BANKS
   CONFIG_SYS_LBC_CACHE_BASE
   CONFIG_SYS_LIME_SIZE
   CONFIG_SYS_MAMR
   CONFIG_SYS_MCFRRTC_BASE
   CONFIG_SYS_MONITOR_SEC

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoConvert CONFIG_SYS_INTERLAKEN et al to Kconfig
Tom Rini [Sat, 29 Oct 2022 00:26:57 +0000 (20:26 -0400)]
Convert CONFIG_SYS_INTERLAKEN et al to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_INTERLAKEN
   CONFIG_SYS_ISA_IO
   CONFIG_SYS_ISA_IO_BASE_ADDRESS

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoRemove dead code
Tom Rini [Sat, 29 Oct 2022 00:26:56 +0000 (20:26 -0400)]
Remove dead code

This header is unreferenced, remove.

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoConvert CONFIG_SYS_INIT_RAM_LOCK to Kconfig
Tom Rini [Sat, 29 Oct 2022 00:26:55 +0000 (20:26 -0400)]
Convert CONFIG_SYS_INIT_RAM_LOCK to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_INIT_RAM_LOCK

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoConvert CONFIG_SYS_I2C_INIT_BOARD to Kconfig
Tom Rini [Sat, 29 Oct 2022 00:26:54 +0000 (20:26 -0400)]
Convert CONFIG_SYS_I2C_INIT_BOARD to Kconfig

This converts the following to Kconfig:
   CONFIG_SYS_I2C_INIT_BOARD

Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 years agoConvert mx8 u-boot.dtsi to CONFIG_TEXT_BASE
Stefano Babic [Wed, 9 Nov 2022 15:50:49 +0000 (16:50 +0100)]
Convert mx8 u-boot.dtsi to CONFIG_TEXT_BASE

Signed-off-by: Stefano Babic <sbabic@denx.de>
Signed-off-by: Fabio Estevam <festevam@denx.de>
2 years agoimx: imx8: apalis: switch to binman
Oliver Graute [Fri, 4 Nov 2022 15:03:44 +0000 (16:03 +0100)]
imx: imx8: apalis: switch to binman

Switch to use binman to pack images

Signed-off-by: Oliver Graute <oliver.graute@kococonnector.com>
2 years agoimx: imx8x: colibri: switch to binman
Oliver Graute [Fri, 4 Nov 2022 15:03:43 +0000 (16:03 +0100)]
imx: imx8x: colibri: switch to binman

Switch to use binman to pack images

Signed-off-by: Oliver Graute <oliver.graute@kococonnector.com>
2 years agoimx: imx8qxp: deneb switch to binman
Oliver Graute [Fri, 4 Nov 2022 15:03:42 +0000 (16:03 +0100)]
imx: imx8qxp: deneb switch to binman

Signed-off-by: Oliver Graute <oliver.graute@kococonnector.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: imx8qxp: giedi switch to binman
Oliver Graute [Fri, 4 Nov 2022 15:03:41 +0000 (16:03 +0100)]
imx: imx8qxp: giedi switch to binman

Switch to use binman to pack images

Signed-off-by: Oliver Graute <oliver.graute@kococonnector.com>
2 years agoimx: imx8qm: imx8qm_mek switch to binman
Oliver Graute [Fri, 4 Nov 2022 15:03:40 +0000 (16:03 +0100)]
imx: imx8qm: imx8qm_mek switch to binman

Switch to use binman to pack images

Signed-off-by: Oliver Graute <oliver.graute@kococonnector.com>
2 years agoimx: imx8qxp: imx8qxp_mek switch to binman
Oliver Graute [Fri, 4 Nov 2022 15:03:39 +0000 (16:03 +0100)]
imx: imx8qxp: imx8qxp_mek switch to binman

Switch to use binman pack images

Signed-off-by: Oliver Graute <oliver.graute@kococonnector.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: imx8qm: cgtqmx8: switch to binman
Oliver Graute [Fri, 4 Nov 2022 15:03:38 +0000 (16:03 +0100)]
imx: imx8qm: cgtqmx8: switch to binman

Switch to use binman to pack images

Signed-off-by: Oliver Graute <oliver.graute@kococonnector.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx: imx8qm-rom7720: switch to binman
Oliver Graute [Fri, 4 Nov 2022 15:03:37 +0000 (16:03 +0100)]
imx: imx8qm-rom7720: switch to binman

Switch to use binman to pack images

Signed-off-by: Oliver Graute <oliver.graute@kococonnector.com>
2 years agowandboard: Select DM_SERIAL
Fabio Estevam [Fri, 4 Nov 2022 11:12:55 +0000 (08:12 -0300)]
wandboard: Select DM_SERIAL

The conversion to DM_SERIAL is mandatory, so select this
option.

Signed-off-by: Fabio Estevam <festevam@denx.de>
2 years agowandboard: Pass mmc aliases
Fabio Estevam [Fri, 4 Nov 2022 11:12:54 +0000 (08:12 -0300)]
wandboard: Pass mmc aliases

Originally, the mmc aliases node was present in imx6qdl-wandboard.dtsi.

After the sync with Linux in commit d0399a46e7cd ("imx6dl/imx6qdl:
synchronise device trees with linux"), the aliases node is gone as
the upstream version does not have it.

This causes a regression in which the SD card cannot be found anymore:

Since commit  the aliases node has been removed
U-Boot 2022.10-00999-gcca41ed3d63f-dirty (Nov 03 2022 - 22:07:38 -0300)

CPU:   Freescale i.MX6QP rev1.0 at 792 MHz
Reset cause: POR
DRAM:  2 GiB
Core:  62 devices, 17 uclasses, devicetree: separate
PMIC:  PFUZE100 ID=0x10
MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... MMC: no card present
*** Warning - No block device, using default environment

Fix it by passing the alias node in the u-boot.dtsi file to
restore the original behaviour where the SD card (esdhc3) was
mapped to mmc0.

Fixes: d0399a46e7cd ("imx6dl/imx6qdl: synchronise device trees with linux")
Signed-off-by: Fabio Estevam <festevam@denx.de>
2 years agoconfigs: imx8mn_beacon: Enable SPL_DM_PMIC_BD71837
Adam Ford [Sat, 22 Oct 2022 13:43:43 +0000 (08:43 -0500)]
configs: imx8mn_beacon: Enable SPL_DM_PMIC_BD71837

To properly operate the Nano with LPDDR4 at 1.6GHz, the
voltage needs to be adjusted before DDR is initialized.
Enable the PMIC in SPL to do this.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2 years agoconfigs: imx8mn_beacon: Re-align memory to standard imx8mn settings
Adam Ford [Sat, 22 Oct 2022 13:43:41 +0000 (08:43 -0500)]
configs: imx8mn_beacon: Re-align memory to standard imx8mn settings

The imx8mn_beacon board does not use the same memory map as the reference
design from NXP or other imx8mn boards.  As such, memory is more limited
in SPL.

Moving SPL_BSS_START_ADDR and SPL_STACK to default locations increases
the amount of available meory for the SPL stack.  Doing this allows
the board to no longer define CONFIG_MALLOC_F_ADDR.

Since SYS_LOAD_ADDR also does not align with other boards, move it too.

Signed-off-by: Adam Ford <aford173@gmail.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
2 years agoimx8mm: synchronise device tree with linux
Marcel Ziswiler [Mon, 7 Nov 2022 21:22:41 +0000 (22:22 +0100)]
imx8mm: synchronise device tree with linux

Synchronise device tree with linux v6.1-rc3.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Tested-By: Tim Harvey <tharvey@gateworks.com> #imx8m{m,n,p}-venice-*
2 years agoimx8mn: synchronise device tree with linux
Marcel Ziswiler [Mon, 7 Nov 2022 21:22:40 +0000 (22:22 +0100)]
imx8mn: synchronise device tree with linux

Synchronise device tree with linux v6.1-rc3.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Tested-By: Tim Harvey <tharvey@gateworks.com> #imx8m{m,n,p}-venice-*
2 years agoimx8mp: synchronise device tree with linux
Marcel Ziswiler [Mon, 7 Nov 2022 21:22:39 +0000 (22:22 +0100)]
imx8mp: synchronise device tree with linux

Synchronise device tree with linux v6.1-rc3.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Tested-By: Tim Harvey <tharvey@gateworks.com> #imx8m{m,n,p}-venice-*
2 years agoimx8mq: synchronise device tree with linux
Marcel Ziswiler [Mon, 7 Nov 2022 21:22:38 +0000 (22:22 +0100)]
imx8mq: synchronise device tree with linux

Synchronise device tree with linux v6.1-rc3.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2 years agoimx8ulp: synchronise device tree with linux
Marcel Ziswiler [Mon, 7 Nov 2022 21:22:37 +0000 (22:22 +0100)]
imx8ulp: synchronise device tree with linux

Synchronise device tree with linux v6.1-rc3.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2 years agoimxrt1050: synchronise device tree with linux
Marcel Ziswiler [Mon, 7 Nov 2022 21:22:36 +0000 (22:22 +0100)]
imxrt1050: synchronise device tree with linux

Synchronise device tree with linux v6.1-rc3.

Note: Nowadays, the intent is for them regular device trees to just be
synchronised from them Linux kernel device trees and any and all U-Boot
specific changes need to go into the -u-boot.dtsi device tree include
files which BTW get included automatically by the U-Boot build system.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2 years agoimxrt1020: migrate to build system included -u-boot.dtsi
Marcel Ziswiler [Mon, 7 Nov 2022 21:22:35 +0000 (22:22 +0100)]
imxrt1020: migrate to build system included -u-boot.dtsi

Migrate to using automatic build system included -u-boot.dtsi device
tree include files.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Reviewed-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Tested-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
2 years agovf610: synchronise device tree with linux
Marcel Ziswiler [Mon, 7 Nov 2022 21:22:34 +0000 (22:22 +0100)]
vf610: synchronise device tree with linux

Synchronise device tree with linux v6.1-rc3.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2 years agoconfigs: imx8m{m,n,p}_venice: disable autoload
Tim Harvey [Fri, 4 Nov 2022 15:52:19 +0000 (08:52 -0700)]
configs: imx8m{m,n,p}_venice: disable autoload

disable network autoload

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2 years agoimx: imx8m{m,n,p}_venice: migrate to CONFIG_EXTRA_ENV_TEXT
Tim Harvey [Fri, 4 Nov 2022 15:51:45 +0000 (08:51 -0700)]
imx: imx8m{m,n,p}_venice: migrate to CONFIG_EXTRA_ENV_TEXT

Move the majority of the environment from the board headers to
a separate text file.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2 years agoconfigs: imx8m{m, n}_venice: remove unneeded CONFIG_FEC_MXC_PHYADDR
Tim Harvey [Fri, 4 Nov 2022 15:50:23 +0000 (08:50 -0700)]
configs: imx8m{m, n}_venice: remove unneeded CONFIG_FEC_MXC_PHYADDR

The IMX8M based Venice boards all have device-tree fec nodes that
use proper dt with a phy-handle pointing to a phy with reg assigned
to the proper phy address.

There is no need to keep using the CONFIG_FEC_MXC_PHYADDR hack when
a proper dt is used - remove it.

This was previously done in commit 400eebf10d9b
("configs: imx8m{m, n}_venice: remove unneeded CONFIG_FEC_MXC_PHYADDR")
but got clobbered by commit 6889412ad5e7
("Convert CONFIG_SYS_BARGSIZE to Kconfig")

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2 years agoconfigs: imx8mn_venice.h: remove unused ifdef
Tim Harvey [Fri, 4 Nov 2022 15:46:17 +0000 (08:46 -0700)]
configs: imx8mn_venice.h: remove unused ifdef

remove unused ifdef left behind after commit ca3369df71d8
("configs: drop CONFIG_SPL_ABORT_ON_RAW_IMAGE")

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2 years agoconfigs: imx8mn_venice: fix include header protection
Tim Harvey [Fri, 4 Nov 2022 15:45:20 +0000 (08:45 -0700)]
configs: imx8mn_venice: fix include header protection

Fix typo in the include header protection.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2 years agoboard: gateworks: venice: remove redundance adjustment of thermal trip points
Tim Harvey [Fri, 4 Nov 2022 15:43:06 +0000 (08:43 -0700)]
board: gateworks: venice: remove redundance adjustment of thermal trip points

commit 0543a1ed2787 ("imx8m: fixup thermal trips") moved updating the
thermal trip points to all IMX8M so we can remove it from our board
specific dt config.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
2 years agomx6cuboxi: migrate to DM_SERIAL
Baruch Siach [Thu, 3 Nov 2022 16:03:38 +0000 (18:03 +0200)]
mx6cuboxi: migrate to DM_SERIAL

Add the needed DT overrides to enable UART in SPL.

Cc: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Tested-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Fabio Estevam <festevam@denx.de>
2 years agoARM: imx: Add version variable to DHSOM
Marek Vasut [Tue, 1 Nov 2022 22:44:01 +0000 (23:44 +0100)]
ARM: imx: Add version variable to DHSOM

Enable insertion of version variable into U-Boot environment on DHSOM,
to make it possible to check U-Boot version e.g. in U-Boot scripts.

Signed-off-by: Marek Vasut <marex@denx.de>
2 years agoarm: imx8mp: Initial MSC SM2S iMX8MP support
Martyn Welch [Tue, 25 Oct 2022 09:55:02 +0000 (10:55 +0100)]
arm: imx8mp: Initial MSC SM2S iMX8MP support

Add support for the MSC SM2S-IMX8PLUS SMARC Module. Tested in conjunction
with the MSC SM2-MB-EP1 Mini-ITX Carrier Board.

Signed-off-by: Martyn Welch <martyn.welch@collabora.com>
Signed-off-by: Fabio Estevam <festevam@denx.de>
2 years agoMerge tag 'dm-pull-7nov22' of https://source.denx.de/u-boot/custodians/u-boot-dm
Tom Rini [Tue, 8 Nov 2022 14:45:10 +0000 (09:45 -0500)]
Merge tag 'dm-pull-7nov22' of https://source.denx.de/u-boot/custodians/u-boot-dm

sandbox UCLASS_HOST

2 years agodm: blk: Add probe in blk_first_device/blk_next_device
Michal Suchanek [Tue, 27 Sep 2022 21:23:53 +0000 (23:23 +0200)]
dm: blk: Add probe in blk_first_device/blk_next_device

The description claims that the device is probed but it isn't.

Add the device_probe() call.

Also consolidate the iteration into one function.

Fixes: 8a5cbc065d ("dm: blk: Use uclass_find_first/next_device() in blk_first/next_device()")
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
2 years agodm: Add tests for the sandbox host driver
Simon Glass [Sun, 30 Oct 2022 01:47:19 +0000 (19:47 -0600)]
dm: Add tests for the sandbox host driver

Add some unit tests for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agodm: Add documentation for host command and implementation
Simon Glass [Sun, 30 Oct 2022 01:47:18 +0000 (19:47 -0600)]
dm: Add documentation for host command and implementation

Document the 'host' command and also the internals of how it is
implemented.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agodm: sandbox: Switch over to using the new host uclass
Simon Glass [Sun, 30 Oct 2022 01:47:17 +0000 (19:47 -0600)]
dm: sandbox: Switch over to using the new host uclass

Update the sandbox implementation to use UCLASS_HOST and adjust all
the pieces to continue to work:

- Update the 'host' command to use the new API
- Replace various uses of UCLASS_ROOT with UCLASS_HOST
- Disable test_eficonfig since it doesn't work (this should have a unit
  test to allow this to be debugged)
- Update the blk test to use the new API
- Drop the old header file

Unfortunately it does not seem to be possible to split this change up
further.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agodm: sandbox: Create a block driver
Simon Glass [Sun, 30 Oct 2022 01:47:16 +0000 (19:47 -0600)]
dm: sandbox: Create a block driver

Create a block driver for the new HOST uclass. This handles attaching and
detaching host files.

For now the uclass is not used but this will be plumbed in with future
patches.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agodm: sandbox: Create a new HOST uclass
Simon Glass [Sun, 30 Oct 2022 01:47:15 +0000 (19:47 -0600)]
dm: sandbox: Create a new HOST uclass

Sandbox supports block devices which can access files on the host machine.
At present there is no uclass for this. The devices are attached to the
root devic. The block-device type is therefore set to UCLASS_ROOT which
is confusing.

Block devices should be attached to a 'media' device instead, something
which handles access to the actual media and provides the block driver
for the block device.

Create a new uclass to handle this. It supports two operations, to attach
and detach a file on the host machine.

For now this is not fully plumbed in.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agodm: blk: Tidy up obtaining a block device from its parent
Simon Glass [Sun, 30 Oct 2022 01:47:14 +0000 (19:47 -0600)]
dm: blk: Tidy up obtaining a block device from its parent

This function now finds its block-device child by looking for a child
device of the correct uclass (UCLASS_BLK). It cannot produce a device of
any other type, so drop the superfluous check.

Provide a version which does not probe the device, since that is often
needed when setting up the device's platdata.

Also fix up the function's comment.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agotest: Add a way to detect a test that breaks another
Simon Glass [Sun, 30 Oct 2022 01:47:13 +0000 (19:47 -0600)]
test: Add a way to detect a test that breaks another

When running unit tests, some may have side effects which cause a
subsequent test to break. This can sometimes be seen when using 'ut dm'
or similar.

Add a new argument which allows a particular (failing) test to be run
immediately after a certain number of tests have run. This allows the
test causing the failure to be determined.

Update the documentation also.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agotest: Allow showing basic information about tests
Simon Glass [Sun, 30 Oct 2022 01:47:12 +0000 (19:47 -0600)]
test: Allow showing basic information about tests

Add a 'ut info' command to show the number of suites and tests. This is
useful to get a feel for the scale of the tests.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agotest: doc: Add documentation for ut command
Simon Glass [Sun, 30 Oct 2022 01:47:11 +0000 (19:47 -0600)]
test: doc: Add documentation for ut command

Before adding more options, document this command.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agotest: Tidy up help for ut command
Simon Glass [Sun, 30 Oct 2022 01:47:10 +0000 (19:47 -0600)]
test: Tidy up help for ut command

Sort this and put the command summary at the top instead of the bottom.

Adjust it so that the newlines are at the start of the strings, so that
there is not a blank line at the end.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agotest: Drop an unused parameter to ut_run_test_live_flat()
Simon Glass [Sun, 30 Oct 2022 01:47:09 +0000 (19:47 -0600)]
test: Drop an unused parameter to ut_run_test_live_flat()

The select_name parameter is not used anymore. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agodm: test: Clear the block cache after running a test
Simon Glass [Sun, 30 Oct 2022 01:47:08 +0000 (19:47 -0600)]
dm: test: Clear the block cache after running a test

Some tests access data in block devices and so cause the cache to fill
up. This results in memory being allocated.

Some tests check the malloc usage at the beginning and then again at the
end, to ensure there is no memory leak caused by the test. The block cache
makes this difficult, since the any test may cause entries to be allocated
or even freed, if the cache becomes full.

It is simpler to clear the block cache after each test. This ensures that
it will not introduce noise in tests which check malloc usage.

Add the logic to clear the cache, using the existing blkcache_invalidate()
function. Drop the duplicate code at the same time.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 years agodm: test: Drop the special function for running DM tests
Simon Glass [Sun, 30 Oct 2022 01:47:07 +0000 (19:47 -0600)]
dm: test: Drop the special function for running DM tests

This is not needed since the flag takes care of all differences. Make use
of the common function.

Signed-off-by: Simon Glass <sjg@chromium.org>