]> git.dujemihanovic.xyz Git - u-boot.git/log
u-boot.git
4 months agodlmalloc: Make sure allocation size is within malloc area
Richard Weinberger [Fri, 2 Aug 2024 10:08:46 +0000 (12:08 +0200)]
dlmalloc: Make sure allocation size is within malloc area

Since U-Boot does not support memory overcommit we can
enforce that the allocation size is within the malloc area.
This is a simple and efficient hardening measure to mitigate
further integer overflows in dlmalloc.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 months agodlmalloc: Fix integer overflow in sbrk()
Richard Weinberger [Fri, 2 Aug 2024 10:08:45 +0000 (12:08 +0200)]
dlmalloc: Fix integer overflow in sbrk()

Make sure that the new break is within mem_malloc_start
and mem_malloc_end before making progress.
ulong new = old + increment; can overflow for extremely large
increment values and memset() can get wrongly called.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 months agodlmalloc: Fix integer overflow in request2size()
Richard Weinberger [Fri, 2 Aug 2024 10:08:44 +0000 (12:08 +0200)]
dlmalloc: Fix integer overflow in request2size()

req is of type size_t, casting it to long opens the door
for an integer overflow.
Values between LONG_MAX - (SIZE_SZ + MALLOC_ALIGN_MASK) - 1 and LONG_MAX
cause and overflow such that request2size() returns MINSIZE.

Fix by removing the cast.
The origin of the cast is unclear, it's in u-boot and ppcboot since ever
and predates the CVS history.
Doug Lea's original dlmalloc implementation also doesn't have it.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 months agox86: Fix ptrdiff_t for x86_64
Richard Weinberger [Fri, 2 Aug 2024 10:08:43 +0000 (12:08 +0200)]
x86: Fix ptrdiff_t for x86_64

sbrk() assumes ptrdiff_t is large enough to enlarge/shrink the heap
by LONG_MIN/LONG_MAX.
So, use the long type, also to match the rest of the Linux ecosystem.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 months agobootstage: Fix out-of-bounds read in reloc_bootstage()
Richard Weinberger [Wed, 31 Jul 2024 16:07:54 +0000 (18:07 +0200)]
bootstage: Fix out-of-bounds read in reloc_bootstage()

bootstage_get_size() returns the total size of the data structure
including associated records.
When copying from gd->bootstage, only the allocation size of gd->bootstage
must be used. Otherwise too much memory is copied.

This bug caused no harm so far because gd->new_bootstage is always
large enough and reading beyond the allocation length of gd->bootstage
caused no problem due to the U-Boot memory layout.

Fix by using the correct size and perform the initial copy directly
in bootstage_relocate() to have the whole relocation process in the
same function.

Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 months agoext4: Improve feature checking
Richard Weinberger [Mon, 29 Jul 2024 21:37:31 +0000 (23:37 +0200)]
ext4: Improve feature checking

Evaluate the filesystem incompat and ro_compat bit fields to judge
whether the filesystem can be read or written.
For the read side only a scary warning is shown so far.
I'd love to abort mounting too, but I fear this will break some setups
where the driver works by chance.

Signed-off-by: Richard Weinberger <richard@nod.at>
4 months agolib: elf: Fix bootelf -p crash issue
JianfengA.Zhu@sony.com [Wed, 7 Aug 2024 02:20:07 +0000 (02:20 +0000)]
lib: elf: Fix bootelf -p crash issue

Do not load and flush segments whose program header type is not
PT_LOAD to avoid crash happen.

bootelf will load all program headers and then flush cache.
Since PT_GNU_STACK start address is 0x0, crash happens when
it flushes PT_GNU_STACK area for target that memory cannot be
accessed from address 0x0.

crash call stack:
====================================================================
bootelf -p
|-> do_bootelf (cmd/elf.c)
 |-> load_elf_image_phdr (lib/elf.c) /* Load each program header */
  |-> for (i = 0; i < ehdr->e_phnum; ++i) { /* e_phnum is 2 */
   |-> flush_cache(start=0, size=0) (arch/arm/lib/cache.c) (*1)
    |-> flush_dcache_range(start=0, 0); (arch/arm/cpu/armv8/cache_v8.c)
     |-> __asm_flush_dcache_range(start=0, 0) (arch/arm/cpu/armv8/cache.S)
      |-> /* clean & invalidate data or unified cache */
      |-> dc      civac, x0       <<== crash happen x0:start=0
====================================================================
*1 Here the p_paddr and p_filesz of the GNU_STACK program are 0.

hello_world elf image program headers
====================================================================
Program Headers:
  Type           Offset             VirtAddr           PhysAddr
                 FileSiz            MemSiz              Flags  Align
  LOAD           0x0000000000000000 0x0000000080ff0000 0x0000000080ff0000
                 0x0000000000010390 0x0000000000010390  R E    0x10000
  GNU_STACK      0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x0000000000000000 0x0000000000000000  RW     0x10

 Section to Segment mapping:
  Segment Sections...
   00     .text .rodata .eh_frame
   01
====================================================================

bootelf -p crash error log
====================================================================
bootelf -p 0x80f00000
"Synchronous Abort" handler, esr 0x96000147, far 0x0
elr: 000000008f6035bc lr : 000000008f66ff54 (reloc)
elr: 00000000bd9475bc lr : 00000000bd9b3f54
x0 : 0000000000000000 x1 : 0000000000000000
x2 : 0000000000000040 x3 : 000000000000003f
x4 : 0000000081000390 x5 : 00000000bd12da98
x6 : 0000000000000010 x7 : 0000000000000010
x8 : 000000000000000a x9 : 00000000bd156b30
x10: 00000000bd1526e0 x11: 0000000000000000
x12: 0000000000000004 x13: 00000000bda00000
x14: 00000000ffffffff x15: 00000000bd12dab7
x16: 00000000bd957b14 x17: 0000000000000000
x18: 00000000bd13fd90 x19: 0000000080f000b0
x20: 0000000080f00000 x21: 0000000000000002
x22: 0000000000000000 x23: 0000000000000003
x24: 00000000bd9eacc0 x25: 0000000000000000
x26: 0000000000000000 x27: 0000000000000000
x28: 00000000bd154c80 x29: 00000000bd12da70

Code: d2800082 9ac32042 d1000443 8a230000 (d50b7e20)
====================================================================

Signed-off-by: Jianfeng Zhu <JianfengA.Zhu@sony.com>
Reviewed-by: Jacky Cao <Jacky.Cao@sony.com>
Reviewed-by: Toyama, Yoshihiro <Yoshihiro.Toyama@sony.com>
4 months agoarm: dts: keystone: Move to OF_UPSTREAM
Andrew Davis [Wed, 7 Aug 2024 14:56:51 +0000 (09:56 -0500)]
arm: dts: keystone: Move to OF_UPSTREAM

Enable OF_UPSTREAM for Keystone boards. Remove DT files that
are now available in dts/upstream.

Signed-off-by: Andrew Davis <afd@ti.com>
Acked-by: Neha Malcom Francis <n-francis@ti.com>
4 months agopinmux: generic: Use ENOENT instead of ENOSYS
Sean Anderson [Sat, 10 Aug 2024 13:59:37 +0000 (09:59 -0400)]
pinmux: generic: Use ENOENT instead of ENOSYS

ENOSYS should only be used when a subsystem is completely absent.
Convert its use in pinctrl-generic to ENOENT, which better reflects the
error condition (that a function/group/pin is missing).

Signed-off-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 months agoenv: remove vars that are not in default env
Ravi Minnikanti [Sun, 11 Aug 2024 18:44:15 +0000 (11:44 -0700)]
env: remove vars that are not in default env

current env_set_default_vars() doesn't delete
var that are not in the imported env. hashtable
removes vars that are not in the imported
env but present in the current env only if H_NOCLEAR
flag is not set.

This change is to avoid passing H_NOCLEAR flag if
specific vars are passed to env_set_default_vars()

Without this change:
Marvell>> env default boot_mode
Marvell>>

With the change:
Marvell>> env default boot_mode
WARNING: 'boot_mode' not in imported env, deleting it!

Signed-off-by: Ravi Minnikanti <rminnikanti@marvell.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
4 months agosandbox: fix wget test failure after fixing wget issue
Yasuharu Shibata [Wed, 14 Aug 2024 12:41:07 +0000 (21:41 +0900)]
sandbox: fix wget test failure after fixing wget issue

After applying the following patch, wget test on sandbox failed[1].

  Commit: cab7867cff ("net: wget: Support retransmission a dropped packet")

Here are two reasons why the test is failed and how to fix it:

1. tcp_ack is calculated by the wrong value.
   tcp_ack needs to be calculated by the received TCP payload size.
2. wget command may have a problem that HTTP response from server
   must be divided into more than two packets.
   In this commit, HTTP response is divided into two packets.

In addition, I fixed the HTTP response returned at the correct timing.

[1] https://lore.kernel.org/u-boot/CAFLszThEbk2Jr8OZ6Hj21wPSnJjgJhaDe037RqwHvwt1KjB3_A@mail.gmail.com/

Signed-off-by: Yasuharu Shibata <yasuharu.shibata@gmail.com>
Reported-by: Simon Glass <sjg@chromium.org>
4 months agosandbox: Enable wget command
Yasuharu Shibata [Wed, 14 Aug 2024 12:41:06 +0000 (21:41 +0900)]
sandbox: Enable wget command

Enable this so that the tests run.

Fix a few warnings in the code so that CI passes.

Signed-off-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Yasuharu Shibata <yasuharu.shibata@gmail.com>
4 months agocmd: led: fix led command usage for the LED_SW_BLINK enabled case
Mikhail Kshevetskiy [Wed, 14 Aug 2024 10:08:30 +0000 (14:08 +0400)]
cmd: led: fix led command usage for the LED_SW_BLINK enabled case

CONFIG_LED_BLINK and CONFIG_LED_SW_BLINK can be defined independently.
Led blinking works if any (or both) of them is enabled. Unfortunately
the led command help does not display blinking option if only
CONFIG_LED_SW_BLINK is enabled. This is definitely wrong.

This patch fix an issue.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Alexander Dahl <ada@thorsis.com>
4 months agospi: soft_spi: Parse cs-gpios only if num-chipselects is not <0>
Michael Polyntsov [Wed, 31 Jul 2024 04:11:29 +0000 (08:11 +0400)]
spi: soft_spi: Parse cs-gpios only if num-chipselects is not <0>

Some boards don't have chipselect lines for leds so cs-gpios is not
specified in the dts leading to probing error. Fix it by making
behavior similar to the one in Linux, parse num-chipselects and
if it is zero, ignore cs-gpios.

Signed-off-by: Michael Polyntsov <michael.polyntsov@iopsys.eu>
Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
4 months agospi: soft_spi: fix miso gpio property name
Mikhail Kshevetskiy [Wed, 31 Jul 2024 04:11:28 +0000 (08:11 +0400)]
spi: soft_spi: fix miso gpio property name

The patch fix a missprint introduced in commit 2e9fe73a883a ("spi: soft_spi:
Support the recommended soft spi properties").

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
4 months agoMerge tag 'i2c-dm-updates-for-v2024-10-next' of https://source.denx.de/u-boot/custodi...
Tom Rini [Tue, 13 Aug 2024 16:09:45 +0000 (10:09 -0600)]
Merge tag 'i2c-dm-updates-for-v2024-10-next' of https://source.denx.de/u-boot/custodians/u-boot-i2c into next

i2c DM updates for v2024.10 next

- Add series from Simon, which removes old content in i2c.h
  so that we can move towards having just the dm API.

  It does not remove any boards, but instead removes functionality.

4 months agoi2c: Remove CFG_SYS_I2C_DIRECT_BUS
Simon Glass [Sun, 11 Aug 2024 14:50:47 +0000 (08:50 -0600)]
i2c: Remove CFG_SYS_I2C_DIRECT_BUS

Now that this is always 1, remove it and the associated dead code.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
4 months agoi2c: Remove CFG_SYS_I2C_MAX_HOPS
Simon Glass [Sun, 11 Aug 2024 14:50:46 +0000 (08:50 -0600)]
i2c: Remove CFG_SYS_I2C_MAX_HOPS

Now that this is always 0, remove it and the associated dead code.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
4 months agoi2c: Drop i2c_get_bus_num_fdt() and i2c_reset_port_fdt()
Simon Glass [Sun, 11 Aug 2024 14:50:45 +0000 (08:50 -0600)]
i2c: Drop i2c_get_bus_num_fdt() and i2c_reset_port_fdt()

These functions are 11 years old and are only used by one board. Drop
them.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
4 months agoi2c: Drop CFG_SYS_MAX_I2C_BUS
Simon Glass [Sun, 11 Aug 2024 14:50:44 +0000 (08:50 -0600)]
i2c: Drop CFG_SYS_MAX_I2C_BUS

Only one board uses this option and it is very old. Let's drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
4 months agoi2c: Remove I2C_GET_BUS()
Simon Glass [Sun, 11 Aug 2024 14:50:43 +0000 (08:50 -0600)]
i2c: Remove I2C_GET_BUS()

This is very old, predating even the legacy I2C support, so drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
4 months agoi2c: Remove I2C_SET_BUS()
Simon Glass [Sun, 11 Aug 2024 14:50:42 +0000 (08:50 -0600)]
i2c: Remove I2C_SET_BUS()

This is very old, predating even the legacy I2C support, so drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
4 months agoocteon: Drop OCTEON_I2C_FDT dead code
Simon Glass [Sun, 11 Aug 2024 14:50:41 +0000 (08:50 -0600)]
octeon: Drop OCTEON_I2C_FDT dead code

This option is not defined by any board, so drop the code.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
4 months agoi2c: Drop reference to SYS_I2C_INIT_BOARD
Simon Glass [Sun, 11 Aug 2024 14:50:40 +0000 (08:50 -0600)]
i2c: Drop reference to SYS_I2C_INIT_BOARD

This is not now used by any boards, so drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
4 months agofsl: mxc: Drop legacy I2c
Simon Glass [Sun, 11 Aug 2024 14:50:39 +0000 (08:50 -0600)]
fsl: mxc: Drop legacy I2c

Drop some old code from the mxc_i2c and ddr/fsl drivers. This will allow
removal of very old common I2C code.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
4 months agodate: Drop the legacy I2C code
Simon Glass [Sun, 11 Aug 2024 14:50:38 +0000 (08:50 -0600)]
date: Drop the legacy I2C code

Drop two generations of old code in this command. All boards should use
driver model for I2C from 2021.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
4 months agortc: Drop CFG_SYS_RTC_BUS_NUM
Simon Glass [Sun, 11 Aug 2024 14:50:37 +0000 (08:50 -0600)]
rtc: Drop CFG_SYS_RTC_BUS_NUM

This option is very old and the migration deadline was years ago. Drop
it so that the I2C system can be simplified.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
4 months agoMPC837XERDB: ethernut5: work_92105: Drop CMD_DATE
Simon Glass [Sun, 11 Aug 2024 14:50:36 +0000 (08:50 -0600)]
MPC837XERDB: ethernut5: work_92105: Drop CMD_DATE

These use pre-driver model code and it is several years since the
migration deadline. Disable the 'date' command so that this old code can
be removed.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
4 months agomx28 / mx51: Drop CMD_DATE
Simon Glass [Sun, 11 Aug 2024 14:50:35 +0000 (08:50 -0600)]
mx28 / mx51: Drop CMD_DATE

These use pre-driver model code and it is several years since the
migration deadline. Disable the 'date' command so that this old code can
be removed.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
4 months agoarmv8: ls2085a: Drop CMD_DATE
Simon Glass [Sun, 11 Aug 2024 14:50:34 +0000 (08:50 -0600)]
armv8: ls2085a: Drop CMD_DATE

These boards use pre-driver model code and it is several years since the
migration deadline. Disable the 'date' command so that this old code can
be removed.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
4 months agomips: malta: Drop CMD_DATE
Simon Glass [Sun, 11 Aug 2024 14:50:33 +0000 (08:50 -0600)]
mips: malta: Drop CMD_DATE

These boards use pre-driver model code and it is several years since the
migration deadline. Disable the 'date' command so that this old code can
be removed.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
4 months agoi2c: Remove CFG_I2C_MULTI_BUS
Simon Glass [Sun, 11 Aug 2024 14:50:32 +0000 (08:50 -0600)]
i2c: Remove CFG_I2C_MULTI_BUS

This is used by a few boards but we are years past the migration date,
so let's drop it now.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
4 months agoi2c: Remove IC2_xxx enum
Simon Glass [Sun, 11 Aug 2024 14:50:31 +0000 (08:50 -0600)]
i2c: Remove IC2_xxx enum

This is only used by devkit3250 which is being removed. Drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
4 months agoi2c: Remove board_i2c_init()
Simon Glass [Sun, 11 Aug 2024 14:50:30 +0000 (08:50 -0600)]
i2c: Remove board_i2c_init()

This function is not used, so drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Heiko Schocher <hs@denx.de>
4 months agoMerge patch series "Universal Payload initial series"
Tom Rini [Fri, 9 Aug 2024 22:03:21 +0000 (16:03 -0600)]
Merge patch series "Universal Payload initial series"

Simon Glass <sjg@chromium.org> says:

Universal Payload (UPL) is an Industry Standard for firmware
components[1]. UPL is designed to improve interoperability within the
firmware industry, allowing mixing and matching of projects with less
friction and fewer project-specific implementations. UPL is
cross-platform, supporting ARM, x86 and RISC-V initially.

This series provides some initial support for this, targeting 0.9.1 and
sandbox only.

Features still to come include:
- Support for architectures
- FIT validation
- Handoff validation
- Interoperability tests

4 months agoupl: Add an end-to-end test
Simon Glass [Wed, 7 Aug 2024 22:47:39 +0000 (16:47 -0600)]
upl: Add an end-to-end test

Now that sandbox_vpl supports UPL, add a test that checks that the
payload can be loaded by SPL and the handoff information passed through
to U-Boot proper.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agosandbox: Add an SPL loader for UPL
Simon Glass [Wed, 7 Aug 2024 22:47:38 +0000 (16:47 -0600)]
sandbox: Add an SPL loader for UPL

Add support for loading a UPL image from SPL. This uses the simple FIT
implementation, but also loads the full FIT just to permit more testing.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agosandbox: Add a flag to enable UPL
Simon Glass [Wed, 7 Aug 2024 22:47:37 +0000 (16:47 -0600)]
sandbox: Add a flag to enable UPL

UPL significantly alters the boot flow for sandbox. Add a flag to enable
this so that it can be enabled only on tests which need it.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agoupl: Add initial documentation
Simon Glass [Wed, 7 Aug 2024 22:47:36 +0000 (16:47 -0600)]
upl: Add initial documentation

Add some documentation to explain the basic concept along with a link
to the full spec.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agosandbox_vpl: Enable Universal Payload
Simon Glass [Wed, 7 Aug 2024 22:47:35 +0000 (16:47 -0600)]
sandbox_vpl: Enable Universal Payload

Use the sandbox_vpl build to test UPL since it supports a real devicetree
in SPL. The sandbox_spl build uses OF_PLATDATA.

Enable writing the UPL handoff in SPL and reading it in U-Boot proper.
Provide a test to check that this handoff works.

Note that the test uses the standard devicetree rather than the test one,
since it is a lot smaller and fits in the existing bloblist.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agoupl: Plumb in universal payload to the init process
Simon Glass [Wed, 7 Aug 2024 22:47:34 +0000 (16:47 -0600)]
upl: Plumb in universal payload to the init process

Read the UPL early in boot so that it is available. For now none of the
information is used.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agospl: Plumb in the Universal Payload handoff
Simon Glass [Wed, 7 Aug 2024 22:47:33 +0000 (16:47 -0600)]
spl: Plumb in the Universal Payload handoff

Specify the FIT and include information about each loaded image, as
required by the UPL handoff.

Write the UPL handoff into the bloblist before jumping to the next phase.

Control this using a runtime flag to avoid conflicting with other
handoff mechanisms.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agospl: Set SPL_FIT_FOUND for full FIT also
Simon Glass [Wed, 7 Aug 2024 22:47:32 +0000 (16:47 -0600)]
spl: Set SPL_FIT_FOUND for full FIT also

This flag is set for simple FIT, so set it for full FIT too.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agoupl: Add support for Universal Payload in SPL
Simon Glass [Wed, 7 Aug 2024 22:47:31 +0000 (16:47 -0600)]
upl: Add support for Universal Payload in SPL

Add the basic code to create a handoff structure in SPL, so it can be
passed to the next phase. For now this is not plumbed in.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agoupl: Add a command
Simon Glass [Wed, 7 Aug 2024 22:47:30 +0000 (16:47 -0600)]
upl: Add a command

Add a 'upl' command to work with Universal Payload features. For now it
only supports reading and writing a handoff structure.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agoupl: Add basic tests
Simon Glass [Wed, 7 Aug 2024 22:47:29 +0000 (16:47 -0600)]
upl: Add basic tests

Add some unit tests to check that we can write a UPL handoff and read it
back.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agoupl: Add support for writing a upl handoff
Simon Glass [Wed, 7 Aug 2024 22:47:28 +0000 (16:47 -0600)]
upl: Add support for writing a upl handoff

Universal Payload provides a standard way of handing off control between
two firmware phases. Add support for writing the handoff information from
a structure.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agoupl: Add support for reading a upl handoff
Simon Glass [Wed, 7 Aug 2024 22:47:27 +0000 (16:47 -0600)]
upl: Add support for reading a upl handoff

Universal Payload provides a standard way of handing off control between
two firmware phases. Add support for reading the handoff information into
a structure.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agosandbox: Set up global_data earlier
Simon Glass [Wed, 7 Aug 2024 22:47:26 +0000 (16:47 -0600)]
sandbox: Set up global_data earlier

It is possible for U-Boot functions such as printf() to be called
within state_init(). This can end up checking gd->flags (e.g. in putc())
before global_data is set up.

Move the setup earlier to avoid this. This fixes the suppression of some
debug output in memory allocation (when enabled).

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agosandbox: Add ELF file to VPL u-boot.img
Simon Glass [Wed, 7 Aug 2024 22:47:25 +0000 (16:47 -0600)]
sandbox: Add ELF file to VPL u-boot.img

At present sandbox builds package up u-boot.bin in the .img file. This
cannot actually be executed, since it is not an ELF file.

For sandbox_vpl we want to be able to run the full boot flow.

Adjust the build rule for sandbox_vpl to package the ELF file and
thereby allow full testing of the sandbox transition from SPL to U-Boot
proper.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agosandbox: Return error code from read/write/seek
Simon Glass [Wed, 7 Aug 2024 22:47:24 +0000 (16:47 -0600)]
sandbox: Return error code from read/write/seek

The existing API for these functions is different from the rest of
U-Boot, in that any error code must be obtained from the errno variable
on failure. This variable is part of the C library, so accessing it
outside of the special 'sandbox' shim-functions is not ideal.

Adjust the API to return an error code, to avoid this. Update existing
uses to check for any negative value, rather than just -1.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agosandbox: fdt: Avoid overwriting an existing fdt
Simon Glass [Wed, 7 Aug 2024 22:47:23 +0000 (16:47 -0600)]
sandbox: fdt: Avoid overwriting an existing fdt

Since the removal of OF_HOSTFILE logic in board_fdt_blob_setup(), the
logic for obtaining the DT is handled in the OF_BOARD option. If a
devicetree comes from a bloblist it is immediately overwritten by this
function.

Fix this by skipping the function if a devicetree is already present.

This is sort-of a fix for e7fb7896 ("sandbox: Remove OF_HOSTFILE") but
it has only come to light since bloblist was added, so I have not added
a Fixes tag.

Unfortunately it is not possible to report the correct FDT source with
the current code. It might be best to use an error-return code for
board_fdt_blob_setup() so that an error can be reported if the board
does not provide the DT.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agofdt: Don't overwrite bloblist devicetree
Simon Glass [Wed, 7 Aug 2024 22:47:22 +0000 (16:47 -0600)]
fdt: Don't overwrite bloblist devicetree

When the devicetree comes from a bloblist, it is currently overwritten
by the appended one, if present. It should be preserved.

Adjust the logic to support this.

Fixes: 70fe2385943 ("fdt: Allow the devicetree to come from a bloblist")
Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agotest: Move some SPL-loading test-code into sandbox common
Simon Glass [Wed, 7 Aug 2024 22:47:21 +0000 (16:47 -0600)]
test: Move some SPL-loading test-code into sandbox common

This code is useful for loading an image in sandbox_spl so move it into
a place where it can be called as needed.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agosandbox: Fix a comment in os_find_u_boot()
Simon Glass [Wed, 7 Aug 2024 22:47:20 +0000 (16:47 -0600)]
sandbox: Fix a comment in os_find_u_boot()

Fix a missing dot in a comment, since '..' is confusing.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
4 months agosandbox: Use const in os_jump_to_file()
Simon Glass [Wed, 7 Aug 2024 22:47:19 +0000 (16:47 -0600)]
sandbox: Use const in os_jump_to_file()

The argument array is not changed by the callee, so mark it const.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
4 months agoMerge tag 'i2cupdates-for-v2024-10-next' of https://source.denx.de/u-boot/custodians...
Tom Rini [Fri, 9 Aug 2024 14:22:50 +0000 (08:22 -0600)]
Merge tag 'i2cupdates-for-v2024-10-next' of https://source.denx.de/u-boot/custodians/u-boot-i2c into next

i2c updates for v2024.10 next

- DM_I2C conversion for some remaining boards
  from Anatolij

4 months agoboard: vining_2000: convert to DM_I2C
Anatolij Gustschin [Wed, 7 Aug 2024 22:34:38 +0000 (00:34 +0200)]
board: vining_2000: convert to DM_I2C

Conversion to DM_I2C is mandatory, enable DM_I2C
to disable board removal warning.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
4 months agoboard: cm_fx6: convert to DM_I2C
Anatolij Gustschin [Wed, 7 Aug 2024 13:09:33 +0000 (15:09 +0200)]
board: cm_fx6: convert to DM_I2C

Conversion to DM_I2C is mandatory, enable DM_I2C to fix board
removal warning. Convert EEPROM access to use DM_I2C API.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
4 months agoboard: vf610twr: convert to DM_I2C
Anatolij Gustschin [Sat, 3 Aug 2024 16:15:13 +0000 (18:15 +0200)]
board: vf610twr: convert to DM_I2C

Conversion to DM_I2C is mandatory, enable DM_I2C
to disable board removal warning.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
4 months agoboard: novena: convert to DM_I2C
Anatolij Gustschin [Sat, 3 Aug 2024 16:15:09 +0000 (18:15 +0200)]
board: novena: convert to DM_I2C

Conversion to DM_I2C is mandatory, enable DM_I2C
to disable board removal warning. Convert EEPROM
and IT6251 access to use DM_I2C API.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Reviewed-by: Marek Vasut <marex@denx.de>
4 months agoboard: rut: convert to DM_I2C
Anatolij Gustschin [Sat, 3 Aug 2024 16:15:08 +0000 (18:15 +0200)]
board: rut: convert to DM_I2C

Conversion to DM_I2C is mandatory, enable DM_I2C
to disable board removal warning.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
4 months agoboard: sl50: convert to DM_I2C
Anatolij Gustschin [Sat, 3 Aug 2024 16:15:07 +0000 (18:15 +0200)]
board: sl50: convert to DM_I2C

Conversion to DM_I2C is mandatory, enable DM_I2C
to disable board removal warning.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
4 months agoboard: igep003x: convert to DM_I2C
Anatolij Gustschin [Sat, 3 Aug 2024 16:15:06 +0000 (18:15 +0200)]
board: igep003x: convert to DM_I2C

Conversion to DM_I2C is mandatory, enable DM_I2C
to disable board removal warning.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
4 months agoboard: cm-t43: convert to DM_I2C
Anatolij Gustschin [Sat, 3 Aug 2024 16:15:05 +0000 (18:15 +0200)]
board: cm-t43: convert to DM_I2C

Conversion to DM_I2C is mandatory, enable DM_I2C
to disable board removal warning.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
4 months agoboard: chiliboard: convert to DM_I2C
Anatolij Gustschin [Sat, 3 Aug 2024 16:15:04 +0000 (18:15 +0200)]
board: chiliboard: convert to DM_I2C

Conversion to DM_I2C is mandatory, enable DM_I2C
to disable board removal warning.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
4 months agoboard: shc: convert to DM_I2C
Anatolij Gustschin [Sat, 3 Aug 2024 16:15:03 +0000 (18:15 +0200)]
board: shc: convert to DM_I2C

Conversion to DM_I2C is mandatory, rework to remove
use of legacy I2C API.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Reviewed-by: Heiko Schocher <hs@denx.de>
4 months agoMerge patch series "alist: Implement a pointer list / array of structs"
Tom Rini [Wed, 7 Aug 2024 14:49:18 +0000 (08:49 -0600)]
Merge patch series "alist: Implement a pointer list / array of structs"

Simon Glass <sjg@chromium.org> says:

This data structure provides a list of pointers / array of structures.
I was planning to use it for the lmb restructure, to allow it to
support any number of entries, but then I gave up on it.

There are quite a few places in U-Boot where such a list would be
useful, since it supports growing the array.

[...]
Example:

 struct my_struct obj;
 struct my_struct *ptr = alist_add(&lst, &obj, struct my_struct);

 // now ptr is in the list

[trini: Reword the cover letter slightly, do not merge the RFC portion]

4 months agoalist: Add support for an allocated pointer list
Simon Glass [Tue, 30 Jul 2024 14:39:37 +0000 (08:39 -0600)]
alist: Add support for an allocated pointer list

In various places it is useful to have an array of structures, but allow
it to grow. In some cases we work around it by setting maximum number of
entries, using a Kconfig option. In other places we use a linked list,
which does not provide for random access and can complicate the code.

Introduce a new data structure, which is a variable-sized list of structs
each of the same, pre-set size. It provides O(1) access and is reasonably
efficient at expanding linearly, since it doubles in size when it runs out
of space.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agolib: Handle a special case with str_to_list()
Simon Glass [Tue, 30 Jul 2024 14:39:36 +0000 (08:39 -0600)]
lib: Handle a special case with str_to_list()

The current implementation can return an extra result at the end when
the string ends with a space. Fix this by adding a special case.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agomalloc: Support testing with realloc()
Simon Glass [Tue, 30 Jul 2024 14:39:35 +0000 (08:39 -0600)]
malloc: Support testing with realloc()

At present in tests it is possible to cause an out-of-memory condition
with malloc() but not realloc(). Add support to realloc() too, so code
which uses that function can be tested.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agoomap3: sniper: Convert to device-tree control and DM I2C
Paul Kocialkowski [Mon, 29 Jul 2024 20:44:39 +0000 (22:44 +0200)]
omap3: sniper: Convert to device-tree control and DM I2C

This converts the sniper board (LG P970) to device-tree control
and DM I2C, both for SPL and U-Boot.

Note that we lose the call to board_mmc_power_init to enable power
for MMC2. This is now expected to take place through proper
regulators, which are not yet available with the twl4030 driver.
The call to twl4030_power_mmc_init is moved to spl_board_init for now.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
4 months agoam33xx: Use regular spl_board_init instead of am33xx_spl_board_init
Paul Kocialkowski [Mon, 29 Jul 2024 20:44:38 +0000 (22:44 +0200)]
am33xx: Use regular spl_board_init instead of am33xx_spl_board_init

The am33xx_spl_board_init function was introduced as a way to add
board-specific SPL init for AM33xx devices since the spl_board_init
function was already used for SoC-specific init.

Now that the SoC-specific SPL init was moved to spl_soc_init, we can
use spl_board_init for this purpose and get rid of
am33xx_spl_board_init.

Rename the function in board files and enable the related config
option for concerned boards.

Signed-off-by: Paul Kocialkowski <paulk@sys-base.io>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 months agoomap: Use spl_soc_init instead of spl_board_init
Paul Kocialkowski [Mon, 29 Jul 2024 20:44:37 +0000 (22:44 +0200)]
omap: Use spl_soc_init instead of spl_board_init

Both spl_board_init and spl_soc_init are available as ways to run
specific code in the SPL's board_init_r. Use the former for init
code that is specific to the SoC and leave spl_board_init available
for boards to use.

Signed-off-by: Paul Kocialkowski <paulk@sys-base.io>
Reviewed-by: Tom Rini <trini@konsulko.com>
4 months agoMerge patch series "omap configuration cleanups"
Tom Rini [Wed, 7 Aug 2024 00:33:08 +0000 (18:33 -0600)]
Merge patch series "omap configuration cleanups"

Paul Kocialkowski <paulk@sys-base.io> says:

Here is a bunch of configuration cleanups for OMAP boards, mostly
unifying and moving common configuration from board-specific defconfigs
to Kconfig definitions.

There's also a cleanup of the sniper (LG Optimus Black) defconfig,
prior to migrating it to DM/DT in a future follow-up series.

4 months agoomap3: sniper: Streamline defconfig
Paul Kocialkowski [Sun, 28 Jul 2024 20:25:01 +0000 (22:25 +0200)]
omap3: sniper: Streamline defconfig

Remove custom config options that are not particularly necessary.
Align them with OMAP3 defaults used on other boards (especially for
memory locations).

Also enable Thumb build to reduce the SPL size and remove the custom
prompt text.

This makes the config a lot more minimalistic, maintainable and easier
to read.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
4 months agodra7xx: Remove explicit DRAM banks number from defconfigs
Paul Kocialkowski [Sun, 28 Jul 2024 20:25:00 +0000 (22:25 +0200)]
dra7xx: Remove explicit DRAM banks number from defconfigs

The common EMIF init code used for DRA7xx does not explicitly fill
the gd->bd->bi_dram entries (like OMAP3 does), so there is no reason
to set an explicit number of DRAM banks which doesn't correspond to
anything in particular.

Remove the CONFIG_NR_DRAM_BANKS option from the concerned defconfigs.
The dram_init_banksize default implementation will be fine with the
default value for the config option.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
4 months agoomap3: Define DRAM banks number in Kconfig instead of defconfigs
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:59 +0000 (22:24 +0200)]
omap3: Define DRAM banks number in Kconfig instead of defconfigs

The number of DRAM banks was defined to the same value in each OMAP3
board defconfig, which is expected and hardcoded in the code. Move the
common definition to the Kconfig option declaration instead.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
4 months agoomap3: Define maximum SPL size in Kconfig instead of defconfigs
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:58 +0000 (22:24 +0200)]
omap3: Define maximum SPL size in Kconfig instead of defconfigs

The maximum SPL size was defined to the same value in each OMAP3
board defconfig. Move the common definition to the Kconfig option
declaration instead.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
4 months agoomap3: Define maximum U-Boot size in Kconfig instead of defconfigs
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:57 +0000 (22:24 +0200)]
omap3: Define maximum U-Boot size in Kconfig instead of defconfigs

The maximum U-Boot size was defined to the same value in each OMAP3
board defconfig. Move the common definition to the Kconfig option
declaration instead.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
4 months agodra7xx: Define common init stack pointer address in Kconfig
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:56 +0000 (22:24 +0200)]
dra7xx: Define common init stack pointer address in Kconfig

The init stack pointer was defined to the same value in each DRA7xx
board defconfig. Move the common definition to the Kconfig option
declaration instead.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
4 months agodra7xx: Unify init stack pointer address across boards
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:55 +0000 (22:24 +0200)]
dra7xx: Unify init stack pointer address across boards

The DRA7xx EVM board use a slightly different init stack pointer
address compared to the AM57xx EVM board, for no particular reason.

Align the address with the AM57xx EVM board (which matches the usual
offset to the end of SRAM used by other OMAP devices) prior to removing
it as a per-board option in a later commit.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
4 months agoam43xx: Define common init stack pointer address in Kconfig
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:54 +0000 (22:24 +0200)]
am43xx: Define common init stack pointer address in Kconfig

The init stack pointer was defined to the same value in each AM43xx
board defconfig. Move the common definition to the Kconfig option
declaration instead.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
4 months agoam33xx: Define common init stack pointer address in Kconfig
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:53 +0000 (22:24 +0200)]
am33xx: Define common init stack pointer address in Kconfig

The init stack pointer was defined to the same value in each AM33xx
board defconfig. Move the common definition to the Kconfig option
declaration instead.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
4 months agoam33xx: Unify init stack pointer address across boards
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:52 +0000 (22:24 +0200)]
am33xx: Unify init stack pointer address across boards

The AM33xx chiliboard and guardian boards use a slightly different
init stack pointer address compared to other AM33xx boards, for no
particular reason.

Align the address with other AM33xx boards prior to removing it as a
per-board option in a later commit.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
4 months agoomap3: Define common init stack pointer address in Kconfig
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:51 +0000 (22:24 +0200)]
omap3: Define common init stack pointer address in Kconfig

The init stack pointer was defined to the same value in each OMAP3
board defconfig. Move the common definition to the Kconfig option
declaration instead.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
4 months agoomap3: Define common SPL text base in Kconfig instead of defconfigs
Paul Kocialkowski [Sun, 28 Jul 2024 20:24:50 +0000 (22:24 +0200)]
omap3: Define common SPL text base in Kconfig instead of defconfigs

The SPL text base was defined to the same value in each OMAP3 board
defconfig. Move the common definition to the Kconfig option
declaration instead.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Tested-by: Adam Ford <aford173@gmail.com> #am3517-evm
Reviewed-by: Tom Rini <trini@konsulko.com>
Tested-by: Derald D. Woods <woods.technical@gmail.com>
4 months agoPrepare v2024.10-rc2
Tom Rini [Tue, 6 Aug 2024 00:13:42 +0000 (18:13 -0600)]
Prepare v2024.10-rc2

Signed-off-by: Tom Rini <trini@konsulko.com>
4 months agoconfigs: Resync with savedefconfig
Tom Rini [Mon, 5 Aug 2024 18:21:23 +0000 (12:21 -0600)]
configs: Resync with savedefconfig

Rsync all defconfig files using moveconfig.py

Signed-off-by: Tom Rini <trini@konsulko.com>
4 months agoMerge patch series "Bug-fixes for a few boards"
Tom Rini [Mon, 5 Aug 2024 18:15:44 +0000 (12:15 -0600)]
Merge patch series "Bug-fixes for a few boards"

Simon Glass <sjg@chromium.org> says:

This series includes fixes to get some rockchip and nvidia boards
working again. It also drops the broken Beaglebone Black config and
provides a devicetree fix for coral (x86).

4 months agorockchip: Avoid #ifdefs in RK3399 SPL
Simon Glass [Thu, 1 Aug 2024 12:47:23 +0000 (06:47 -0600)]
rockchip: Avoid #ifdefs in RK3399 SPL

The code here is confusing due to large blocks which are #ifdefed out.
Add a function phase_sdram_init() which returns whether SDRAM init
should happen in the current phase, using that as needed to control the
code flow.

This increases code size by about 500 bytes in SPL when the cache is on,
since it must call the rather large rockchip_sdram_size() function.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agorockchip: Ensure memory size is available in RK3399 SPL
Simon Glass [Thu, 1 Aug 2024 12:47:22 +0000 (06:47 -0600)]
rockchip: Ensure memory size is available in RK3399 SPL

At present gd->ram_size is 0 in SPL, meaning that it is not possible to
enable the cache. Correct this by always populating the RAM size
correctly.

This increases code size by about 500 bytes in SPL, since it must call
the rather large rockchip_sdram_size() function.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
4 months agofdt: Correct condition for bloblist existing
Simon Glass [Wed, 31 Jul 2024 14:49:05 +0000 (08:49 -0600)]
fdt: Correct condition for bloblist existing

On some boards, the bloblist is created in SPL once SDRAM is ready. It
cannot be accessed until that point, so is not available early in SPL.

Add a condition to avoid a hang in this case.

This fixes a hang in chromebook_coral

Fixes: 70fe2385943 ("fdt: Allow the devicetree to come from a bloblist")
Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Raymond Mao <raymond.mao@linaro.org>
4 months agobinman: Keep the efi_capsule input file
Simon Glass [Wed, 31 Jul 2024 14:49:04 +0000 (08:49 -0600)]
binman: Keep the efi_capsule input file

There is no need to remove input files. It makes it harder to diagnose
failures. Keep the payload file.

There is no test for this condition, but one could be added.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Sughosh Ganu <sughosh.ganu@linaro.org>
4 months agobinman: Return failure when a usage() message is generated
Simon Glass [Wed, 31 Jul 2024 14:49:03 +0000 (08:49 -0600)]
binman: Return failure when a usage() message is generated

The tool must return an error code when invalid arguments are provided,
otherwise binman has no way of knowing that anything went wrong.

Correct this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: fab430be2f4 ("tools: add mkeficapsule command for UEFI...")
4 months agobinman: Deal with mkeficapsule being missing
Simon Glass [Wed, 31 Jul 2024 14:49:02 +0000 (08:49 -0600)]
binman: Deal with mkeficapsule being missing

Tools cannot be assumed to be present. Add a check for this with the
mkeficpasule tool.

Signed-off-by: Simon Glass <sjg@chromium.org>
Fixes: b617611b27a ("binman: capsule: Add support for generating...")
4 months agobinman: Collect the version number for mkeficapsule
Simon Glass [Wed, 31 Jul 2024 14:49:01 +0000 (08:49 -0600)]
binman: Collect the version number for mkeficapsule

Now that this tool has a version number, collect it.

Signed-off-by: Simon Glass <sjg@chromium.org>
4 months agomkeficapsule: Add a --version argument
Simon Glass [Wed, 31 Jul 2024 14:49:00 +0000 (08:49 -0600)]
mkeficapsule: Add a --version argument

Tools should have an option to obtain the version, so add this to the
mkeficapsule tool.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
4 months agoMerge tag 'u-boot-imx-master-20240802' of https://gitlab.denx.de/u-boot/custodians...
Tom Rini [Fri, 2 Aug 2024 20:40:59 +0000 (14:40 -0600)]
Merge tag 'u-boot-imx-master-20240802' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx

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

- Convert warp7 to OF_UPSTREAM.
- Add 'cpu' command to imx8m and imx93.
- Enable CMD_ERASEENV for imx8mm/mp Phytec boards.

4 months agoconfig: Adjust Phytec imx8mm module config to support NVME disk
Lukasz Majewski [Fri, 2 Aug 2024 18:12:00 +0000 (15:12 -0300)]
config: Adjust Phytec imx8mm module config to support NVME disk

This change adds support for PCIe connected nvme disk - phyBOARD-Polis
base board.

One needs to call following commands in u-boot:
> pci enum
> nvme scan
> nvme info

And then ones to access proper file system (like fat[ls|load|write],
ext4[ls|load|write]).

Signed-off-by: Lukasz Majewski <lukma@denx.de>