]> git.dujemihanovic.xyz Git - u-boot.git/log
u-boot.git
2 months agoglobal_data.h: remove unnecesary include of cyclic.h
Rasmus Villemoes [Thu, 3 Oct 2024 21:28:02 +0000 (23:28 +0200)]
global_data.h: remove unnecesary include of cyclic.h

Nothing in cyclic.h is needed to define struct global_data, so do not
include that header.

If any .c file relies on getting cyclic.h through asm/global_data.h,
it needs to include it itself.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2 months agoboot: cedit: include u-boot/schedule.h
Rasmus Villemoes [Thu, 3 Oct 2024 21:28:01 +0000 (23:28 +0200)]
boot: cedit: include u-boot/schedule.h

This TU currently relies on getting a declaration of schedule()
through some nested include. Include the proper header directly.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 months agoddr: altera: include u-boot/schedule.h
Rasmus Villemoes [Thu, 3 Oct 2024 21:28:00 +0000 (23:28 +0200)]
ddr: altera: include u-boot/schedule.h

These TUs currently rely on getting a declaration of schedule()
through some nested include. Include the proper header directly.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 months agoi2c: rzg2l: include u-boot/schedule.h
Rasmus Villemoes [Thu, 3 Oct 2024 21:27:59 +0000 (23:27 +0200)]
i2c: rzg2l: include u-boot/schedule.h

This TU currently relies on getting a declaration of schedule()
through some nested include. Include the proper header directly.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 months agolib/sha*: include u-boot/schedule.h instead of cyclic.h
Rasmus Villemoes [Thu, 3 Oct 2024 21:27:58 +0000 (23:27 +0200)]
lib/sha*: include u-boot/schedule.h instead of cyclic.h

These library routines obviously do not make use of the
cyclic_register() etc. API, but do need to call schedule(). Include
the proper header.

Eventually, their ifdef logic should be updated to avoid talking about
CONFIG_WATCHDOG.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 months agowatchdog.h: change include of cyclic.h to u-boot/schedule.h
Rasmus Villemoes [Thu, 3 Oct 2024 21:27:57 +0000 (23:27 +0200)]
watchdog.h: change include of cyclic.h to u-boot/schedule.h

Nobody relies on getting the cyclic API declared by including the
watchdog.h header, but for historical reasons, many TUs include
watchdog.h to get a declaration of schedule(). Now that we have a
dedicated header for just that, include that header instead of
cyclic.h.

Eventually, all TUs that call schedule() should themselves include
u-boot/schedule.h, but this is a step towards getting rid of
unnecessary include statements in cyclic.h and global_data.h.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 months agocyclic: make cyclic_run static
Rasmus Villemoes [Thu, 3 Oct 2024 21:27:56 +0000 (23:27 +0200)]
cyclic: make cyclic_run static

The only caller left is schedule(); everybody outside cyclic.c now
calls or references schedule().

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 months agotest: dm: wdt: replace cyclic_run() by schedule()
Rasmus Villemoes [Thu, 3 Oct 2024 21:27:55 +0000 (23:27 +0200)]
test: dm: wdt: replace cyclic_run() by schedule()

This is the last place outside of cyclic.c that references
cyclic_run() directly. Replace by schedule(), so that cyclic_run() can
be made private. This also better matches what I believe commit
29caf9305b6f ("cyclic: Use schedule() instead of WATCHDOG_RESET()")
intended to do.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 months agofs/cramfs: use schedule instead of cyclic_run as callback
Rasmus Villemoes [Thu, 3 Oct 2024 21:27:54 +0000 (23:27 +0200)]
fs/cramfs: use schedule instead of cyclic_run as callback

Prior to commit 29caf9305b6f ("cyclic: Use schedule() instead of
WATCHDOG_RESET()") we had

/* Currently only needed for fs/cramfs/uncompress.c */
static inline void watchdog_reset_func(void)
{
       WATCHDOG_RESET();
}

and .outcb was set to that watchdog_reset_func().  Said commit changed
that .outcb to cyclic_run instead of schedule, which would otherwise
match all the other WATCHDOG_RESET replacements done. As the
HW_WATCHDOG case is not handled by cyclic_run, this seems to be an
oversight.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 months agom68k: asm/ptrace.h: include linux/types.h
Rasmus Villemoes [Thu, 3 Oct 2024 21:27:53 +0000 (23:27 +0200)]
m68k: asm/ptrace.h: include linux/types.h

Modifying a generic header like watchdog.h, removing not directly used
asm/ptrace.h header relies on whoever includes it to already have
included something that defines the type ulong.

Make the asm/ptrace.h header self-contained by including the proper
header.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2 months agoled: include cyclic.h in led_sw_blink.c
Rasmus Villemoes [Thu, 3 Oct 2024 21:27:52 +0000 (23:27 +0200)]
led: include cyclic.h in led_sw_blink.c

This makes use of the cyclic API but relies on implicitly getting the
appropriate declarations through some nested include. Include the
cyclic.h header directly.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 months agocyclic: introduce u-boot/schedule.h
Rasmus Villemoes [Thu, 3 Oct 2024 21:27:51 +0000 (23:27 +0200)]
cyclic: introduce u-boot/schedule.h

I noticed an "unnecessary" include of <cyclic.h> in
global_data.h, in the sense that nothing in cyclic.h is needed in
order to define 'struct global_data'.

Well, it's not unnecessary, as it implicitly ensures that everybody
gets a declaration of schedule(), and schedule() is (obviously) called
all over the tree. Almost none of those places directly include
<cyclic.h>, but for historical reasons, many do include
<watchdog.h> (most schedule() instances are replacements of
WATCHDOG_RESET()).

However, very few TUs actually need the declarations of the
cyclic_register() and struct cyclic_info, and they also don't really
need anything from the watchdog.h header.

So introduce a new header which just contains a declaration of
schedule(), which can then be included from all the places that do
call schedule(). I removed the direct reference to cyclic_run(),
because we shouldn't have two public functions for doing roughly the
same without being very explicit about when one should call one or the
other.

Testing of later patches that explicitly include <schedule.h> when
schedule() is used revealed a problem with host tool build on win32,
which apparently picked up a host <schedule.h>. To avoid that problem,
put the new header in include/u-boot/ and hence make the include
statements say <u-boot/schedule.h>.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 months agodoc: cyclic: remove reference to WATCHDOG_RESET
Rasmus Villemoes [Thu, 3 Oct 2024 21:27:50 +0000 (23:27 +0200)]
doc: cyclic: remove reference to WATCHDOG_RESET

WATCHDOG_RESET is no more. Replace the reference by schedule().

While here, rearrange the sentence a bit so that "cyclic_run()"
becomes the object and "the main function responsible for calling all
registered cyclic functions" a parenthetical rather than the other way
around, which at least to me makes it more readable.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
2 months agodrivers: watchdog: Add DaVinci's watchdog support
Bastien Curutchet [Thu, 3 Oct 2024 08:42:55 +0000 (10:42 +0200)]
drivers: watchdog: Add DaVinci's watchdog support

Add support for the DaVinci's watchdog timer

Signed-off-by: Bastien Curutchet <bastien.curutchet@bootlin.com>
Reviewed-by: Stefan Roese <sr@denx.de>
2 months agowatchdog: gpio_wdt: add support for stoppable devices
Rasmus Villemoes [Wed, 2 Oct 2024 19:23:23 +0000 (21:23 +0200)]
watchdog: gpio_wdt: add support for stoppable devices

Back when I added this driver in commit 2ac8490412c9, I wrote

    The corresponding linux driver apparently has support for some
    watchdog circuits which can be disabled by tri-stating the gpio, but I
    have never actually encountered such a chip in the wild;

That has changed now; I have a board with just such a watchdog on my
desk currently. Add support for that.

- For a hw_algo="toggle" device, the gpio is requested as output if the
  always-running flag is set, otherwise as input.

- The ->start() method is updated to change the direction to output when
  required (i.e. it is not always-running).

- The ->stop() method is implemented, but of course reports failure if
  always-running.

As I still haven't met any hw_algo="level" devices, I'm not entirely
sure how they fit in, but I'm borrowing logic from the corresponding
linux driver:

- In ->probe(), such devices always request the gpio as GPIOD_IS_OUT.

- In ->stop(), the linux driver has an "eternal ping" comment and sets
  the gpio to (logic) high.

Stefan:
Added necessary changes in test/dm/wdt.c to fix CI build breakage, as
suggested by Rasmus.

Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Stefan Roese <sr@denx.de>
2 months agoMerge tag 'video-20241022' of https://source.denx.de/u-boot/custodians/u-boot-video
Tom Rini [Tue, 22 Oct 2024 20:11:20 +0000 (14:11 -0600)]
Merge tag 'video-20241022' of https://source.denx.de/u-boot/custodians/u-boot-video

CI: https://source.denx.de/u-boot/custodians/u-boot-video/-/pipelines/22907

* VNBYTES() comment fix
* add VIDEO dependency for FDT_SIMPLEFB
* fdt_simplefb: drop not needed CONFIG_VIDEO check
* am62x,evm: preserve splash screen while OS is booting
* simplefb: warning fix for CONFIG_FDT_64BIT=n

2 months agovideo: simplefb: Fix build warn with CONFIG_FDT_64BIT=n
Eva Kurchatova [Wed, 9 Oct 2024 08:48:28 +0000 (16:48 +0800)]
video: simplefb: Fix build warn with CONFIG_FDT_64BIT=n

Fix compile warning with !CONFIG_FDT_64BIT by
casting the variable in the debug print.

Signed-off-by: Eva Kurchatova <lekkit@at.encryp.ch>
Reported-by: Leo Yu-Chi Liang <ycliang@andestech.com>
2 months agoboard: ti: am62x: evm: Update simple-framebuffer node in device-tree
Devarsh Thakkar [Wed, 25 Sep 2024 15:13:54 +0000 (20:43 +0530)]
board: ti: am62x: evm: Update simple-framebuffer node in device-tree

Update simple-framebuffer device-tree node by enumerating framebuffer
related information in existing simple-framebuffer node in Linux
device-tree file and enabling it.

In case there is no simple-framebuffer stub detected in Linux kernel
device-tree and video is still active, then update the device-tree to
reserve the framebuffer region for the active splash screen.

This helps preserve the splash screen till the display server takes over
after OS is booted.

Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
2 months agoboot: fdt_simplefb: Remove conditional compilation checks for VIDEO Kconfig
Devarsh Thakkar [Wed, 25 Sep 2024 15:13:53 +0000 (20:43 +0530)]
boot: fdt_simplefb: Remove conditional compilation checks for VIDEO Kconfig

CONFIG_VIDEO conditional compilation checks are no longer needed since
FDT_SIMPLEFB Kconfig now depends on VIDEO Kconfig.

Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2 months agoboot/Kconfig: Add Video Kconfig as dependency for FDT_SIMPLEFB
Devarsh Thakkar [Wed, 25 Sep 2024 15:13:52 +0000 (20:43 +0530)]
boot/Kconfig: Add Video Kconfig as dependency for FDT_SIMPLEFB

The fdt_simplefb.c APIs rely on video-uclass APIs and structures to
fill/update framebuffer information, so compile it only when VIDEO
Kconfig is enabled, as otherwise below warning can be seen if VIDEO
Kconfig is disabled:

"boot/fdt_simplefb.c:96:12: warning: fdt_simplefb_enable_existing_node
defined but not used [-Wunused-function]
96 | static int fdt_simplefb_enable_existing_node(void *blob)"

Reported-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Devarsh Thakkar <devarsht@ti.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2 months agovideo: Fix VNBYTES() macro comment
Miquel Raynal [Tue, 10 Sep 2024 09:11:59 +0000 (11:11 +0200)]
video: Fix VNBYTES() macro comment

The VNBYTES() macro has been updated to silence possible warnings
regarding authorized (but unusual) uses of this macro, but the comment
was kept unchanged. A year has passed so let's fix the comment now to
avoid confusions.

Fixes: cc05d352fbc ("video: Add parentheses around VNBYTES() macro")
Suggested-by: Tom Rini <trini@konsulko.com>
Link: https://lore.kernel.org/u-boot/20240906183432.GG3879073@bill-the-cat/
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 months agoenvtools: make them build again
Rasmus Villemoes [Wed, 16 Oct 2024 15:10:35 +0000 (17:10 +0200)]
envtools: make them build again

In v2024.10, "make envtools" is broken for at least these defconfigs:

   am335x_evm_defconfig
   rpi_3_defconfig
   rpi_4_defconfig
   mx7dsabresd_defconfig
   wandboard_defconfig
   imx8mp_evk_defconfig

The only defconfig we use for which it is not broken is
stm32mp13_defconfig. They all work just fine in v2024.07.

The symptoms are slightly different, but all related to the fact that
some transitively included header uses IS_ENABLED or CONFIG_IS_ENABLED
without linux/kconfig.h having already been included.

A simple git bisect doesn't produce anything sensible, it ends up at
3a9f642ca94 (crypto: nuvoton: npcm_sha: Support SHA 384/512) which
clearly has nothing to do with this. But digging deeper, one
eventually finds 0f92fa45603 ("env: Remove <common.h> and add needed
includes").

So at first I tried adding "#include <linux/kconfig.h>" in
include/env_default.h and include/env_flags.h. That fixes it for some,
but not all, of the above. For example rpi_3_defconfig still fails,
then in log.h complaining about BIT() and u8 not being defined. At
least BIT() is should have gotten from bitops.h, except that that's
behind ifdef __KERNEL__, so not set for the envtools build.

It turns out that the envtools source code in fw_env_private.h already
has some hackery to deal with all this, in the form of the __ASSEMBLY__
games it plays before including config.h. It seems that if we just
make sure to do that include early enough, so that config.h is indeed
parsed with that __ASSEMBLY__ hackery in place, everything builds
fine.

Fixes: 0f92fa45603 ("env: Remove <common.h> and add needed includes")
Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
2 months agoMerge patch series "aspeed: ast2700: Add Caliptra ECDSA driver"
Tom Rini [Mon, 21 Oct 2024 23:53:11 +0000 (17:53 -0600)]
Merge patch series "aspeed: ast2700: Add Caliptra ECDSA driver"

Chia-Wei Wang <chiawei_wang@aspeedtech.com> says:

Aspeed AST2700 SoCs integrates the Caliptra secure IP, where an ECDSA384
signature verification HW interface is exported for SoC crypto needs.

This patch series firstly extends the FIT image signing/verify common
code to support the ECDSA384 algorithm. For better convenience, the
device tree for ECDSA public key storage is also revised by referring
to RSA implementations.

After the FIT common code revision, the driver is implemented for
AST2700 to leverage the Caliptra ECDSA384 signature verification.

These are verified by signed FIT images with the algorithm "sha384,ecdsa384".

Link: https://lore.kernel.org/r/20241014095620.216936-1-chiawei_wang@aspeedtech.com
2 months agodrivers/crypto: aspeed: Add Caliptra ECDSA384 support
Chia-Wei Wang [Mon, 14 Oct 2024 09:56:20 +0000 (17:56 +0800)]
drivers/crypto: aspeed: Add Caliptra ECDSA384 support

Aspeed AST27xx SoCs integrate the CPTRA 1.0 secure IP, which export
an ECDSA384_SIGNATURE_VERIFY mailbox command service for SoC to use.

This patch is verified by the FIT signature verification using the
"sha384,ecdsa384" algorithm.

Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 months agoimage-fit-sig: Remove padding check
Chia-Wei Wang [Mon, 14 Oct 2024 09:56:19 +0000 (17:56 +0800)]
image-fit-sig: Remove padding check

The padding algorithm is not mandatory for all signing algorithm.
For example, ECDSA does not require a padding method.

For RSA requiring PKCS padding, the belonging info->crypto(), assigned
with rsa_verify_key(), also has the check on the validity of info->padding().

Thus, remove the info->padding check from the upper, general layer.

Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 months agolib: ecdsa: Add ECDSA384 support
Chia-Wei Wang [Mon, 14 Oct 2024 09:56:18 +0000 (17:56 +0800)]
lib: ecdsa: Add ECDSA384 support

Add ECDSA384 algorithm support for image signing and verification.

Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 months agoMerge patch series "Add AVS support for J721S2"
Tom Rini [Mon, 21 Oct 2024 23:52:40 +0000 (17:52 -0600)]
Merge patch series "Add AVS support for J721S2"

Manorit Chawdhry <m-chawdhry@ti.com> says:

This series adds support for Adaptive voltage scaling on J721S2 device [0].

[0]: https://www.ti.com/lit/pdf/spruj28 (Section 5.2.4.1 AVS Support)

AVS Test for J721S2: https://gist.github.com/manorit2001/b2fd9f6764a863294d4aa0755c83c84f
Boot Test results: https://gist.github.com/manorit2001/d44e035552cb19aadeb0d928d5cb5f26

Link: https://lore.kernel.org/r/20241015-b4-upstream-j721s2-avs-v5-0-5c8087387dc5@ti.com
2 months agoconfigs: j721s2_evm_r5_defconfig: Add AVS Configs
Manorit Chawdhry [Tue, 15 Oct 2024 10:52:23 +0000 (16:22 +0530)]
configs: j721s2_evm_r5_defconfig: Add AVS Configs

Add AVS and PMIC regulator configs

Also, disable it explicitly in am68_sk_r5_defconfig as it includes
j721s2_evm_r5_defconfig for re-usability.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Aniket Limaye <a-limaye@ti.com>
2 months agoarm: dts: j721s2: Add VTM node in R5
Manorit Chawdhry [Tue, 15 Oct 2024 10:52:22 +0000 (16:22 +0530)]
arm: dts: j721s2: Add VTM node in R5

Also adds bootph-pre-ram property to VTM node and the pmic node.

vdd-supply is used to assign the buck regulator that the AVS driver can
use to program the proper voltage which it picked up from e-fuse.

Reviewed-by: Udit Kumar <u-kumar1@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Aniket Limaye <a-limaye@ti.com>
2 months agoarm: mach-k3: j721s2_init: Initialize AVS Class 0
Manorit Chawdhry [Tue, 15 Oct 2024 10:52:21 +0000 (16:22 +0530)]
arm: mach-k3: j721s2_init: Initialize AVS Class 0

Adaptive Voltage Scaling (AVS) Class 0 is a procedure for lowering the
voltage on certain device power rails. Initialize AVS Class 0.

Link: https://www.ti.com/lit/pdf/spruj28
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Aniket Limaye <a-limaye@ti.com>
2 months agodrivers: misc: k3_avs: Extract MPU clk and dev ID from DT
Manorit Chawdhry [Tue, 15 Oct 2024 10:52:20 +0000 (16:22 +0530)]
drivers: misc: k3_avs: Extract MPU clk and dev ID from DT

Different devices have different MPU clk and dev ID. Currently it had
been hardcoded. Move it to DT based extraction.

Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Aniket Limaye <a-limaye@ti.com>
2 months agoarm: dts: k3-*-r5: Add MPU clock in clocks property
Manorit Chawdhry [Tue, 15 Oct 2024 10:52:19 +0000 (16:22 +0530)]
arm: dts: k3-*-r5: Add MPU clock in clocks property

MPU clock had been missing. Distinguish multiple clocks with clock-names
and add MPU clock as well.

Link: https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j721s2/clocks.html#clocks-for-a72ss0-core0-device
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Aniket Limaye <a-limaye@ti.com>
2 months agodrivers: misc: k3_avs: Check return code while programming AVS
Manorit Chawdhry [Tue, 15 Oct 2024 10:52:18 +0000 (16:22 +0530)]
drivers: misc: k3_avs: Check return code while programming AVS

Check if AVS could not be programmed and print a warning.

Fixes: 9d233b4e3ed6 ("misc: k3_avs: add driver for K3 Adaptive Voltage Scaling Class 0")
Reviewed-by: Udit Kumar <u-kumar1@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Aniket Limaye <a-limaye@ti.com>
2 months agopower: pmic: tps65941: Add DM_PMIC dependency
Manorit Chawdhry [Tue, 15 Oct 2024 10:52:17 +0000 (16:22 +0530)]
power: pmic: tps65941: Add DM_PMIC dependency

This Kconfig depends on DM_PMIC but hadn't be explicitly stated which
could cause config related issues.

Adds the dependency in Kconfig for tps65941.

Fixes: 6b86dd0c1ead ("power: pmic: tps65941: Add support for tps65941 family of PMICs")
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Reviewed-by: Aniket Limaye <a-limaye@ti.com>
2 months agoMerge patch series "Add TI K3 PCIe Controller support for J7200"
Tom Rini [Mon, 21 Oct 2024 23:51:55 +0000 (17:51 -0600)]
Merge patch series "Add TI K3 PCIe Controller support for J7200"

Siddharth Vadapalli <s-vadapalli@ti.com> says:

Hello,

This series adds support for the Cadence PCIe controller on TI's K3
family of SoCs to which the J7200 SoC belongs. The driver is an adaptation
of the Linux driver (drivers/pci/controller/cadence/pci-j721e.c) and has
been implemented specifically for Root-Complex mode of operation on the
J7200 SoC. A minor set of changes will be sufficient to support other K3
SoCs as well with plans to implement it in the near future.

Link: https://lore.kernel.org/r/20241014053924.4027491-1-s-vadapalli@ti.com
2 months agoconfigs: j7200_evm_a72_defconfig: Enable configs for PCI support
Siddharth Vadapalli [Mon, 14 Oct 2024 05:39:24 +0000 (11:09 +0530)]
configs: j7200_evm_a72_defconfig: Enable configs for PCI support

TI's J7200 SoC has a single instance of PCIe Controller namely PCIe1 which
is a Cadence PCIe Controller. To support PCIe functionality with the PCIe1
instance of PCIe, enable the corresponding configs.

Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
2 months agopci: Add TI K3 Cadence PCIe Controller
Siddharth Vadapalli [Mon, 14 Oct 2024 05:39:23 +0000 (11:09 +0530)]
pci: Add TI K3 Cadence PCIe Controller

Add support for the Cadence PCIe Controller present on TI's K3 SoCs.
This driver is an adaptation of the Linux driver.

Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
2 months agoMerge patch series "dwc3: gadget: properly fix cache operations"
Tom Rini [Mon, 21 Oct 2024 21:27:38 +0000 (15:27 -0600)]
Merge patch series "dwc3: gadget: properly fix cache operations"

Neil Armstrong <neil.armstrong@linaro.org> says:

We experience huge problems with cache handling on Qualcomm
systems, and it appears the dcache handling in the DWC3 gadget
code is quite wrong and causes operational issues.

This serie fixes the dcache operations on unaligned data,
and properly invalidate buffers when reading back data from
hardware.

Link: https://lore.kernel.org/r/20241011-u-boot-dwc3-gadget-dcache-fixup-v4-0-5f3498d8035b@linaro.org
2 months agousb: dwc3: invalidate dcache on buffer used in interrupt handling
Neil Armstrong [Fri, 11 Oct 2024 14:38:26 +0000 (16:38 +0200)]
usb: dwc3: invalidate dcache on buffer used in interrupt handling

On Qualcomm systems, the setup buffer and even buffers are in
a bad state at interrupt handling, so invalidate the dcache lines
for the setup_buf and event buffer to make sure we read correct
data written by the hardware.

This fixes the following error:
dwc3-generic-peripheral usb@a600000: UNKNOWN IRQ type -1
dwc3-generic-peripheral usb@a600000: UNKNOWN IRQ type 4673109

and invalid situation in dwc3_gadget_giveback() because setup_buf content
is read at 0s and leads to fatal crash fixed by [1].

[1] https://lore.kernel.org/all/20240528-topic-sm8x50-dwc3-gadget-crash-fix-v1-1-58434ab4b3d3@linaro.org/

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Marek Vasut <marex@denx.de>
2 months agousb: dwc3: fix dcache flush range calculation
Neil Armstrong [Fri, 11 Oct 2024 14:38:25 +0000 (16:38 +0200)]
usb: dwc3: fix dcache flush range calculation

The current flush operation will omit doing a flush/invalidate on
the first and last bytes if the base address and size are not aligned
with CACHELINE_SIZE.

This causes operation failures Qualcomm platforms.

Take in account the alignment and size of the buffer and also
flush the previous and last cacheline.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Marek Vasut <marex@denx.de>
2 months agousb: dwc3: allocate setup_buf with dma_alloc_coherent()
Neil Armstrong [Fri, 11 Oct 2024 14:38:24 +0000 (16:38 +0200)]
usb: dwc3: allocate setup_buf with dma_alloc_coherent()

Since setup_buf is also consumed by hardware DMA, aligns it's
allocation like other hardware buffers by introduce setup_buf_addr
populated by dma_alloc_coherent(), and use it to pass the physical
address of the buffer to the hardware.

Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2 months agoMerge tag 'i2c-tag-v2025.01-rc1' of https://source.denx.de/u-boot/custodians/u-boot-i2c
Tom Rini [Mon, 21 Oct 2024 14:30:12 +0000 (08:30 -0600)]
Merge tag 'i2c-tag-v2025.01-rc1' of https://source.denx.de/u-boot/custodians/u-boot-i2c

i2c updates for v2025.01-rc1

- Add support for the following Maxim chips using the existing PCA954x
  driver from Maxim:
  - MAX7356
  - MAX7357
  - MAX7358
  - MAX7367
  - MAX7368
  - MAX7369

- introduce "i2c-gpio,sda-output-only" functionality
  from Alex

2 months agoi2c: i2c-gpio: add support for i2c-gpio,sda-output-only
Alex Shumsky [Tue, 15 Oct 2024 20:29:31 +0000 (23:29 +0300)]
i2c: i2c-gpio: add support for i2c-gpio,sda-output-only

Some I2C slave devices are read-only and don't even answer with NACK.
For example FD65x segment LED controllers.
Make them usable with i2c-gpio,sda-output-only that are already supported
by Linux 6.3+.

Signed-off-by: Alex Shumsky <alexthreed@gmail.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
2 months agoi2c: muxes: pca954x: Add MAX735x/MAX736x support
Maksim Kiselev [Thu, 19 Sep 2024 16:06:56 +0000 (19:06 +0300)]
i2c: muxes: pca954x: Add MAX735x/MAX736x support

Add support for the following Maxim chips using the existing PCA954x
driver:
- MAX7356
- MAX7357
- MAX7358
- MAX7367
- MAX7368
- MAX7369

All added Maxim chips behave like the PCA954x, where a single SMBUS byte
write selects up to 8 channels to be bridged to the primary bus.

Tested using the MAX7358.

Signed-off-by: Maksim Kiselev <bigunclemax@gmail.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
2 months agoMerge tag 'efi-2025-01-rc1-2' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Sun, 20 Oct 2024 14:27:15 +0000 (08:27 -0600)]
Merge tag 'efi-2025-01-rc1-2' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request efi-2025-01-rc1-2

CI: https://source.denx.de/u-boot/custodians/u-boot-efi/-/pipelines/22810

Documentation:

* Add document describing Ethernet boot on AM62x SoC
* Fix typo in blkmap command example

UEFI:

* Avoid #ifdef in efi_setup.c
* Reduce message noisiness if ESP is missing
* Remove ERROR:, WARNING: prefixes in messages
* Use blk_create_devicef() in block device driver

Others:

* Let CONFIG_CMD_WGET depend on CONFIG_CMD_NET

2 months agoMerge tag 'dm-pull-17oct24-take2' of https://gitlab.denx.de/u-boot/custodians/u-boot-dm
Tom Rini [Sat, 19 Oct 2024 04:32:45 +0000 (22:32 -0600)]
Merge tag 'dm-pull-17oct24-take2' of https://gitlab.denx.de/u-boot/custodians/u-boot-dm

A few new x86 commands and minor improvements
expo improvements
binman support for signing FIT images

2 months agomtd: spi-nor: Move SR3 WPS bit definition in the correct location
Marek Vasut [Tue, 15 Oct 2024 20:14:53 +0000 (22:14 +0200)]
mtd: spi-nor: Move SR3 WPS bit definition in the correct location

Move the SR3 bit definition in the right place. Fix
what is likely a rebase artifact. No functional change.

Fixes: 215f1d5794c6 ("mtd: spi-nor: Clear Winbond SR3 WPS bit on boot")
Signed-off-by: Marek Vasut <marex@denx.de>
2 months agombedtls: fix defects in coverity scan
Raymond Mao [Wed, 16 Oct 2024 23:48:26 +0000 (16:48 -0700)]
mbedtls: fix defects in coverity scan

Fixes of unreleased buffer, deadcode and wrong variable type detected
by coverity scan.

Addresses-Coverity-ID: 510809:  Resource leaks  (RESOURCE_LEAK)
Addresses-Coverity-ID: 510806:  Control flow issues  (DEADCODE)
Addresses-Coverity-ID: 510794 Control flow issues  (NO_EFFECT)

Signed-off-by: Raymond Mao <raymond.mao@linaro.org>
2 months agocmd: upl: correct printf code
Heinrich Schuchardt [Fri, 18 Oct 2024 02:46:57 +0000 (04:46 +0200)]
cmd: upl: correct printf code

Building on 32-bit results in a build failure:

    cmd/upl.c:75:51: warning: format â€˜%lx’ expects argument of type
    â€˜long unsigned int’, but argument 3 has type â€˜size_t’
    {aka â€˜unsigned int’} [-Wformat=]
    75 | printf("UPL handoff written to %lx size %lx\n", addr, abuf_size(&buf));
       |                                         ~~^           ~~~~~~~~~~~~~~~
       |                                           |           |
       |                                           |           size_t {aka unsigned int}
       |                                           long unsigned int
       |                                         %x

Fixes: 264f4b0b34c0 ("upl: Add a command")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Neha Malcom Francis <n-francis@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 months agolmb: notify when adjacent regions are added
Caleb Connolly [Fri, 18 Oct 2024 13:51:07 +0000 (15:51 +0200)]
lmb: notify when adjacent regions are added

lmb_add_region() returns a positive integer if the added regions causes
existing regions to be coalesced. We still want to notify the EFI
subsystem about these added regions though, so adjust lmb_add() to only
bail on errors.

This fixes EFI memory allocation on boards with adjacent memory banks as is the
case on several Qualcomm boards like the RB3 Gen 2.

Fixes: 2f6191526a13 (lmb: notify of any changes to the LMB memory map)
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
Reviewed-by: Sughosh Ganu <sughosh.ganu@linaro.org>
Tested-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 months agox86: cpu: Add missing header inclusion
Andy Shevchenko [Sat, 5 Oct 2024 19:12:00 +0000 (22:12 +0300)]
x86: cpu: Add missing header inclusion

Without asm/cpu_x86.h inclusion a compiler is not happy:

  arch/x86/cpu/cpu_x86.c:14:5: warning: no previous prototype for â€˜cpu_x86_bind’ [-Wmissing-prototypes]
  arch/x86/cpu/cpu_x86.c:29:5: warning: no previous prototype for â€˜cpu_x86_get_vendor’ [-Wmissing-prototypes]
  arch/x86/cpu/cpu_x86.c:41:5: warning: no previous prototype for â€˜cpu_x86_get_desc’ [-Wmissing-prototypes]
  arch/x86/cpu/cpu_x86.c:55:5: warning: no previous prototype for â€˜cpu_x86_get_count’ [-Wmissing-prototypes]

Add missing header inclusion.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 months agox86: cpu: Add a few prototypes to the header file
Andy Shevchenko [Sat, 5 Oct 2024 19:11:59 +0000 (22:11 +0300)]
x86: cpu: Add a few prototypes to the header file

The compiler is not happy to have no prototypes for the functions that
are not defined static. Add them. This helps avoiding the compiler warnings:

  arch/x86/cpu/cpu.c:197:13: warning: no previous prototype for â€˜board_final_init’ [-Wmissing-prototypes]
  arch/x86/cpu/cpu.c:205:13: warning: no previous prototype for â€˜board_final_cleanup’ [-Wmissing-prototypes]
  arch/x86/cpu/cpu.c:307:5: warning: no previous prototype for â€˜reserve_arch’ [-Wmissing-prototypes]

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 months agox86: cpu: Mark a few functions static
Andy Shevchenko [Sat, 5 Oct 2024 19:11:58 +0000 (22:11 +0300)]
x86: cpu: Mark a few functions static

Some functions are not used anywhere except the same file
where they are defined. Mark them static. This helps avoiding
the compiler warnings:

  arch/x86/cpu/cpu.c:343:6: warning: no previous prototype for â€˜detect_coreboot_table_at’ [-Wmissing-prototypes]
  arch/x86/cpu/mtrr.c:90:6: warning: no previous prototype for â€˜mtrr_write_all’ [-Wmissing-prototypes]
  arch/x86/cpu/i386/interrupt.c:240:6: warning: no previous prototype for â€˜__do_irq’ [-Wmissing-prototypes]

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 months agox86: cpu: Use default print_cpuinfo() for all
Andy Shevchenko [Sat, 5 Oct 2024 19:11:57 +0000 (22:11 +0300)]
x86: cpu: Use default print_cpuinfo() for all

Most of the copies of the print_cpuinfo() call the default method.
Remove all of those in order to have only the default one when
no `cpu` command is compiled.

This also helps avoiding compiler warning, e.g.:

  arch/x86/cpu/tangier/tangier.c:23:5: warning: no previous prototype for â€˜print_cpuinfo’ [-Wmissing-prototypes]

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 months agox86: Enable RTC command by default
Simon Glass [Mon, 14 Oct 2024 22:32:12 +0000 (16:32 -0600)]
x86: Enable RTC command by default

The real-time clock is needed for most X86 systems and it is useful to
be able to read from it. Enable the rtc command by default.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agodoc: Update coreboot's CI information
Simon Glass [Mon, 14 Oct 2024 22:32:06 +0000 (16:32 -0600)]
doc: Update coreboot's CI information

This is in the Dockerfile now, so update this section of the docs.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agodocker: Update coreboot
Simon Glass [Mon, 14 Oct 2024 22:32:05 +0000 (16:32 -0600)]
docker: Update coreboot

Update to a newer version which supports settings in CMOS RAM and
linear framebuffer.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
2 months agoexpo: Add forward declaration for udevice to cedit
Simon Glass [Mon, 14 Oct 2024 22:32:03 +0000 (16:32 -0600)]
expo: Add forward declaration for udevice to cedit

Some files may include this header file without first including dm.h
so add a forward declaration.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agoexpo: Drop scene_title_set()
Simon Glass [Mon, 14 Oct 2024 22:32:02 +0000 (16:32 -0600)]
expo: Drop scene_title_set()

This function is really just an assignment, so serves no useful
purpose. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agoexpo: Drop unneceesary calls to expo_str()
Simon Glass [Mon, 14 Oct 2024 22:32:01 +0000 (16:32 -0600)]
expo: Drop unneceesary calls to expo_str()

The scene_txt_str() function calls expo_str() so there is no need to
call it beforehand. Drop this unnecessary code.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agoexpo: Support menu-item values in cedit
Simon Glass [Mon, 14 Oct 2024 22:32:00 +0000 (16:32 -0600)]
expo: Support menu-item values in cedit

Update the cedit read/write functions to support menu items with
values.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agoexpo: Add a little more cedit CMOS logging
Simon Glass [Mon, 14 Oct 2024 22:31:59 +0000 (16:31 -0600)]
expo: Add a little more cedit CMOS logging

Add some more logging in the CMOS read/write code. Tidy up a few
comments while we are here.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agoexpo: Allow menu items to have values
Simon Glass [Mon, 14 Oct 2024 22:31:58 +0000 (16:31 -0600)]
expo: Allow menu items to have values

At present menu items are stored according to their sequence number in
the menu. In some cases we may want to have holes in that sequence, or
not use a sequence at all.

Add a new 'value' property for menu items. This will be used for
reading and writing, if present. If there is no 'value' property, then
the normal sequence number will be used instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agoexpo: Use standard numbering for save and discard
Simon Glass [Mon, 14 Oct 2024 22:31:57 +0000 (16:31 -0600)]
expo: Use standard numbering for save and discard

Set aside some expo IDs for 'save' and 'discard' buttons. This avoids
needing to store the IDs for these. Adjust the documentation and expo
tool for the new EXPOID_BASE_ID value.

Ignore these objects when saving and loading the cedit, since they do
not contain real data.

Adjust 'cedit run' to return failure when the user exits the expo
without saving. Update the test for this change as well.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agoexpo: Set the initial next_id to 1
Simon Glass [Mon, 14 Oct 2024 22:31:56 +0000 (16:31 -0600)]
expo: Set the initial next_id to 1

If expo_set_dynamic_start() is never called, the first scene created
will have an ID of 0, which is invalid. Correct this by setting a
default value.

Add a test to check this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agoexpo: Place menu items to the right of all labels
Simon Glass [Mon, 14 Oct 2024 22:31:55 +0000 (16:31 -0600)]
expo: Place menu items to the right of all labels

At present a fixed position is used for menu items, 200 pixels to the
right of the left side of the labels. This means that a menu item with
a very long label may overlap the items.

It seems better to calculate the maximum label width and then place the
items to the right of all of them.

To implement this, add a new struct to containing arrangement
information. Calculate it before doing the actual arrangement. Add a
new style item which sets the amount of space from the right side of
the labels to left side of the items.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agovideo: Avoid starting a new line to close to the bottom
Simon Glass [Mon, 14 Oct 2024 22:31:54 +0000 (16:31 -0600)]
video: Avoid starting a new line to close to the bottom

When starting a new text line, an assumption is made that the current
vertical position is a multiple of the character height. When this is
not true, characters can be written after the end of the framebuffer.

This can causes crashes and strange errors from QEMU.

Adjust the scrolling check when processing a newline character, to
avoid any problems.

Add some comments to make things a little clearer.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agovideo: Add a dark-grey console colour
Simon Glass [Mon, 14 Oct 2024 22:31:53 +0000 (16:31 -0600)]
video: Add a dark-grey console colour

This is useful for highlighting something with a black background, as
is needed with cedit when using a white-on-black console. Add this as
a new colour.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agosandbox: dts: Add missing sandbox, emul phandle to sandbox-pmic
Marek Vasut [Sat, 5 Oct 2024 14:33:37 +0000 (16:33 +0200)]
sandbox: dts: Add missing sandbox, emul phandle to sandbox-pmic

This phandle was missing in the sandbox DT, add it, otherwise sandbox-i2c
driver cannot look up the emulator via i2c_emul_find(). This fixes the
following i2c_emul_find() error:

"
$ ./u-boot -Dc ""
...
       i2c_emul_find() No emulators for device 'sandbox_pmic'
  sandbox_pmic_write() write error to device: 0000000018c568d0 register: 0x0!
       out_set_value() PMIC write failed: -5
       i2c_emul_find() No emulators for device 'sandbox_pmic'
  sandbox_pmic_write() write error to device: 0000000018c568d0 register: 0x0!
       out_set_value() PMIC write failed: -5
...
"

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 months agobinman: Add a tutorial on resolving test-coverage bugs
Simon Glass [Mon, 30 Sep 2024 18:51:38 +0000 (12:51 -0600)]
binman: Add a tutorial on resolving test-coverage bugs

Provide a short description of how tests work, why they are so critical
and how to resolve gaps in Binman's test coverage.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
2 months agobinman: Support getting test-coverage on just one test
Simon Glass [Mon, 30 Sep 2024 18:51:37 +0000 (12:51 -0600)]
binman: Support getting test-coverage on just one test

Pass the arguments through to test_util so that a single test can be
used.

Update the docs and add some missing backquotes in the same section.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agou_boot_pylib: Support running coverage on selected functions
Simon Glass [Mon, 30 Sep 2024 18:51:36 +0000 (12:51 -0600)]
u_boot_pylib: Support running coverage on selected functions

At present run_test_coverage() assumes you want code coverage for the
entire code base. This is the normal situation, but sometimes it is
useful to see the coverage provided by just a single test. Add support
for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agosandbox_spl: Restrict use of UPL when not enabled
Simon Glass [Wed, 25 Sep 2024 10:44:53 +0000 (12:44 +0200)]
sandbox_spl: Restrict use of UPL when not enabled

With sandbox_spl we want to use the file-based boot in CI, so that this
flow is tested. The recent UPL change enabled booting via that method,
thus overriding the file-based boot.

Correct this by using UPL only when the --upl flag is given.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 91fde8e1764 ("sandbox: Add an SPL loader for UPL")
2 months agobuildman: Correct some warnings about regex strings
Simon Glass [Sat, 21 Sep 2024 17:57:57 +0000 (19:57 +0200)]
buildman: Correct some warnings about regex strings

With Python 3.12 some warnings have cropped up. Fix them.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agobinman: implement signing FIT images during image build
Alexander Kochetkov [Mon, 16 Sep 2024 08:24:46 +0000 (11:24 +0300)]
binman: implement signing FIT images during image build

The patch implement new property 'fit,sign' that can be declared
at the top-level 'fit' node. If that option is declared, fit tryies
to detect private keys directory among binman include directories.
That directory than passed to mkimage using '-k' flag and that enable
signing of FIT.

Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Renumbered files, moved new tests to end:
Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agoimage-host: fix 'unknown error' error message
Alexander Kochetkov [Mon, 16 Sep 2024 08:24:45 +0000 (11:24 +0300)]
image-host: fix 'unknown error' error message

Fix error message like this:
Can't add verification data for node 'fdt-1' (<unknown error>)

We get unknown error because we decode error as fdt error
but actually it is system error.

Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 months agobinman: fix passing loadables to mkimage on first run
Alexander Kochetkov [Mon, 16 Sep 2024 08:24:44 +0000 (11:24 +0300)]
binman: fix passing loadables to mkimage on first run

FIT use mkimage from BuildSectionData() to build FIT entry contents.
BuildSectionData() get called several times during building FIT image.

Currently when fit inserts loadables, it use self._loadables property that
contain loadables computed during previuos BuildSectionData() invocation.
So for the first run it use empty list and pass no loadables to mkimage.

That makes problem for adding signature to FIT image because mkimage
fails to add signature and aborts building FIT if no loadables provided.

The patch fixes described behaviour in a way that BuildSectionData() uses
recently calculated loadables value, not previosly calculated.

Signed-off-by: Alexander Kochetkov <al.kochet@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 months agobootstd: Avoid calling unavailable block functions
Simon Glass [Sun, 1 Sep 2024 22:27:28 +0000 (16:27 -0600)]
bootstd: Avoid calling unavailable block functions

When BLK is not enabled but BOOTSTD is, some features of standard boot
become unavailable. Add a check for this in the only site that is
currently apparent.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agoblk: Make functions available unconditionally
Simon Glass [Sun, 1 Sep 2024 22:27:27 +0000 (16:27 -0600)]
blk: Make functions available unconditionally

Some boards still don't enable BLK but we want to be able to at least
compile the code which relies on this. For example, bootstd includes
calls to blk_...() functions, albeit with a check for BLK so that the
code is eliminated by the compiler.

Reduce the scope of the BLK #ifdef to help with this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agox86: coreboot: Enable receiving timestamps from coreboot
Simon Glass [Wed, 28 Aug 2024 20:13:55 +0000 (14:13 -0600)]
x86: coreboot: Enable receiving timestamps from coreboot

Bring this information into bootstage.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agox86: coreboot: Add timestamps from coreboot to bootstage
Simon Glass [Wed, 28 Aug 2024 20:13:54 +0000 (14:13 -0600)]
x86: coreboot: Add timestamps from coreboot to bootstage

Receiving timestamps from coreboot was unceremoniously dropped some time
ago. Add it back.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: 8ad01ce36f7 ("x86: Remove x86 specific GD flags as they are...")
2 months agox86: coreboot: Update the timestamp code to use sysinfo
Simon Glass [Wed, 28 Aug 2024 20:13:53 +0000 (14:13 -0600)]
x86: coreboot: Update the timestamp code to use sysinfo

Rather than using a special variable, get the timestamp info from the
coreboot sysinfo struct. Return a proper error as well.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agox86: Add msr command
Simon Glass [Wed, 28 Aug 2024 01:44:29 +0000 (19:44 -0600)]
x86: Add msr command

It is useful to obtain the results of MSR queries as well as to update
MSR registers, so add a command these tasks.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agox86: Add a cpuid command
Simon Glass [Wed, 28 Aug 2024 01:44:28 +0000 (19:44 -0600)]
x86: Add a cpuid command

It is useful to obtain the results of cpuid queries, so add a command
for this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agox86: Sync up tsc_timer with Linux
Simon Glass [Wed, 28 Aug 2024 01:44:27 +0000 (19:44 -0600)]
x86: Sync up tsc_timer with Linux

Since we are using the code from Linux, update it to the newer version
in v6.11

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agox86: Avoid timer-clock overflow
Simon Glass [Wed, 28 Aug 2024 01:44:26 +0000 (19:44 -0600)]
x86: Avoid timer-clock overflow

When the clock speed is above about 4GHz, e.g. on modern PC hardware,
the timer overflows, resulting in a much lower frequency than expected.
Deal with this by capping the clock speed.

It would be possible to move to a 64-bit value for the clock, but that
is a pain to deal with. A better approach might be to express the clock
in MHz but that is left for later consideration.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agox86: Ensure the CPU identity exists for timer init
Simon Glass [Wed, 28 Aug 2024 01:44:25 +0000 (19:44 -0600)]
x86: Ensure the CPU identity exists for timer init

When bootstage is used the timer can be inited before the CPU identity
is set up, resulting in the checks for the vendor not working.

Add a special call to work around this.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agox86: Show the CPU vendor in bdinfo
Simon Glass [Wed, 28 Aug 2024 01:44:24 +0000 (19:44 -0600)]
x86: Show the CPU vendor in bdinfo

Refactor the cpu code and use it to show the CPU vendor, e.g.
AuthenticAMD or GenuineIntel

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agovirtio: blk: introduce virtio-block erase support
Dmitrii Merkurev [Wed, 6 Mar 2024 18:59:18 +0000 (18:59 +0000)]
virtio: blk: introduce virtio-block erase support

Co-developed-by: Cody Schuffelen <schuffelen@google.com>
Signed-off-by: Cody Schuffelen <schuffelen@google.com>
Signed-off-by: Dmitrii Merkurev <dimorinny@google.com>
Cc: Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
Cc: Simon Glass <sjg@chromium.org>
Cc: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Cc: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> # sandbox
2 months agox86: Make default_print_cpuinfo be a weak alias for print_cpuinfo
Tom Rini [Mon, 22 Jan 2024 14:35:12 +0000 (09:35 -0500)]
x86: Make default_print_cpuinfo be a weak alias for print_cpuinfo

While a few SoCs have a unique print_cpuinfo function, a number of them
just use default_print_cpuinfo. Make default_print_cpuinfo have a weak
alias to provie print_cpuinfo.

Signed-off-by: Tom Rini <trini@konsulko.com>
2 months agocoreboot: Switch to a monospaced font
Simon Glass [Mon, 8 Jan 2024 00:14:55 +0000 (17:14 -0700)]
coreboot: Switch to a monospaced font

The default font is proportional, with different character widths.
Select a monospace font for coreboot so that the 'dm tree' output lines
up correctly.

Update the coreboot tests to match.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agovideo: Allow querying the font size
Simon Glass [Mon, 8 Jan 2024 00:14:54 +0000 (17:14 -0700)]
video: Allow querying the font size

All the font size to be queried using the 'font size' command.

Signed-off-by: Simon Glass <sjg@chromium.org>
2 months agoefi_driver: use blk_create_devicef()
Heinrich Schuchardt [Fri, 18 Oct 2024 01:30:14 +0000 (03:30 +0200)]
efi_driver: use blk_create_devicef()

The EFI block device driver is the only user of blk_create_device() outside
the block device uclass. Use blk_create_devicef() instead like other block
device drivers.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2 months agoefi_loader: remove ERROR:, WARNING: prefixes in messages
Heinrich Schuchardt [Thu, 17 Oct 2024 18:13:05 +0000 (20:13 +0200)]
efi_loader: remove ERROR:, WARNING: prefixes in messages

We should not write "ERROR:" or "WARNING:" when using log_err() or
log_warning(). These prefixed don't provide additional information.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 months agoefi_loader: add missing lf in error message
Heinrich Schuchardt [Thu, 17 Oct 2024 18:05:07 +0000 (20:05 +0200)]
efi_loader: add missing lf in error message

Messages written with log_err() should terminate with a linefeed.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2 months agoMerge tag 'u-boot-imx-master-20241018a' of https://gitlab.denx.de/u-boot/custodians...
Tom Rini [Fri, 18 Oct 2024 15:05:04 +0000 (09:05 -0600)]
Merge tag 'u-boot-imx-master-20241018a' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx

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

- Switch to using upstream DT on DH i.MX8MP DHCOM PDK2/PDK3.
- Add ability to build fallback DTBOs from arch/$(ARCH)/dts.
- Remove fdt_high and initrd_high env variables from imx6-dhcom.
- Add dummy clk for imx8.
- Fix DT corruption in imx8_cpu.
- Improve DDR stability on pico-imx7d.

2 months agoMerge tag 'u-boot-at91-fixes-2025.01-a' of https://source.denx.de/u-boot/custodians...
Tom Rini [Fri, 18 Oct 2024 15:04:20 +0000 (09:04 -0600)]
Merge tag 'u-boot-at91-fixes-2025.01-a' of https://source.denx.de/u-boot/custodians/u-boot-at91

First set of u-boot-at91 fixes for the 2025.01 cycle:

This small set includes the maintainer e-mail update and a missing
header that was causing some build issues.

2 months agoAzure: Update to latest containers
Tom Rini [Tue, 15 Oct 2024 01:33:10 +0000 (19:33 -0600)]
Azure: Update to latest containers

Soon Azure will be removing the macOS-12 container in following their
normal support schedule. Move us to macOS-14 so we won't have problems
there for a while. At the same time, our Windows container is the oldest
supported, so move to the newer option. Finally, Ubuntu 22.04 is the
middle option currently, but 24.04 should be fine.

Link: https://github.com/actions/runner-images/issues/10721
Signed-off-by: Tom Rini <trini@konsulko.com>
2 months agoefi_loader: reduce noisiness if ESP is missing
Heinrich Schuchardt [Fri, 18 Oct 2024 01:18:36 +0000 (03:18 +0200)]
efi_loader: reduce noisiness if ESP is missing

EFI variables can be stored in a file on the EFI system partition. If that
partition is missing we are writing two error messages per variable. This
is too noisy.

Just warn once about the missing ESP.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2 months agoefi_loader: avoid #ifdef in efi_setup.c
Heinrich Schuchardt [Wed, 16 Oct 2024 10:17:39 +0000 (12:17 +0200)]
efi_loader: avoid #ifdef in efi_setup.c

We prefer `if` over `#ifdef` in our code.

Eliminate #ifdef statements in efi_setup.c.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>