]> git.ipfire.org Git - thirdparty/u-boot.git/log
thirdparty/u-boot.git
4 weeks agosandbox: don't call os_close with invalid file descriptor
Heinrich Schuchardt [Wed, 10 Apr 2024 21:50:34 +0000 (23:50 +0200)] 
sandbox: don't call os_close with invalid file descriptor

If open() fails it returns -1. Calling close() with this value
makes no sense. Return -EIO instead.

Addresses-Coverity-ID: 185828 Improper use of negative value
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Fixes: 566bf3a8698 ("sandbox: Add a function to read a host file")
Reviewed-by: Sean Anderson <seanga2@gmail.com>
4 weeks agoarm: mach-k3: security: Lower verbosity of cert message for GP
Andrew Davis [Wed, 10 Apr 2024 18:38:34 +0000 (13:38 -0500)] 
arm: mach-k3: security: Lower verbosity of cert message for GP

When we find a certificate on an image to be booted on a GP device we
print out a message explaining that the certificate is being skipped.
This message is rather long and is printed for every image. Shorten
the message and make the long version into a debug message.

Signed-off-by: Andrew Davis <afd@ti.com>
Tested-by: Jonathan Humphreys <j-humphreys@ti.com>
4 weeks agoconfigs: am64x_evm_*_defconfig: Increase offsets for eMMC raw boot
Judith Mendez [Wed, 10 Apr 2024 18:20:16 +0000 (13:20 -0500)] 
configs: am64x_evm_*_defconfig: Increase offsets for eMMC raw boot

EMMC boot can fail due to the size of R5 SPL image growing beyond the
500KB of memory allocated in eMMC. Update offsets for eMMMC raw boot
to load each binary from the correct address in eMMC according to the
following eMMC layout:

            boot0/1 partition
    0x0+----------------------------------+
       |     tiboot3.bin (1 MB)           |
  0x800+----------------------------------+
       |       tispl.bin (2 MB)           |
0x1800+-----------------------------------+
       |       u-boot.img (4 MB)          |
0x3800+-----------------------------------+
       |      environment (128 KB)        |
0x3900+-----------------------------------+

Signed-off-by: Judith Mendez <jm@ti.com>
4 weeks agoconfigs: arbel: Use generic timer and npcm reset driver
Jim Liu [Wed, 10 Apr 2024 05:54:37 +0000 (13:54 +0800)] 
configs: arbel: Use generic timer and npcm reset driver

Modify defconfig to use generic timer and npcm reset driver

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
4 weeks agofs: fat: fill creation and change date
Heinrich Schuchardt [Tue, 9 Apr 2024 20:06:07 +0000 (22:06 +0200)] 
fs: fat: fill creation and change date

The FAT specification requires that the change date is set.

If a DM RTC device exists, set the creation and change date to the current
date when updating the directory entry. Otherwise use the date 2020-01-01.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
4 weeks agofs: fat: convert change month correctly
Heinrich Schuchardt [Tue, 9 Apr 2024 18:04:56 +0000 (20:04 +0200)] 
fs: fat: convert change month correctly

The month is stored in 5 - 8. We need to shift it by 5 bits.

Cf. Microsoft FAT Specification, 2005-08-30

Fixes: 13c11c665320 ("fs: fat: add file attributes to struct fs_dirent")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Alexander Dahl <ada@thorsis.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
4 weeks agotools: copyfile: use 64k instead of 512 buffer
Ahelenia Ziemiańska [Tue, 9 Apr 2024 12:14:34 +0000 (14:14 +0200)] 
tools: copyfile: use 64k instead of 512 buffer

This is a trivial but significant optimization:
mkimage took >200ms (and 49489 writes (of which 49456 512)),
now it takes  110ms (and   419 writes (of which   386 64k)).

sendfile is much more appropriate for this and is done in one syscall,
but doesn't bring any significant speedups over 64k r/w
at the 13M size ranges, so there's no need to introduce
#if __linux__
while((size = sendfile(fd_dst, fd_src, NULL, 128 * 1024 * 1024)) > 0)
;
if(size != -1) {
ret = 0;
goto out;
}
#endif

Also extract the buffer size to a macro.

Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
4 weeks agotest: typo curren
Heinrich Schuchardt [Tue, 9 Apr 2024 07:55:49 +0000 (09:55 +0200)] 
test: typo curren

Fix typos in test_eficonfig.py: %s/curren/current/

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Igor Opaniuk <igor.opaniuk@gmail.com>
4 weeks agoMakefile.lib: find capsule ESL dtsi file with CONFIG_OF_UPSTREAM
Jonathan Humphreys [Mon, 8 Apr 2024 21:28:43 +0000 (16:28 -0500)] 
Makefile.lib: find capsule ESL dtsi file with CONFIG_OF_UPSTREAM

When CONFIG_OF_UPSTREAM is enabled, DTS files are in SOC subdirectories (vs the
top level dts directory), but when CONFIG_EFI_CAPSULE_AUTHENTICATE is enabled,
the dynamically created dtsi file containing the capsule ESL DT node is in the
parent directory. This results in a build failure because the #include inserted
in the DTS file is local to the current directory.  Update Makefile to have the
DT preprocessing of #includes search in the parent (dts top level) directory
too.

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
4 weeks agoMerge patch series "configs: ti: Enable basic settings for SystemReady ACS"
Tom Rini [Wed, 17 Apr 2024 19:16:12 +0000 (13:16 -0600)] 
Merge patch series "configs: ti: Enable basic settings for SystemReady ACS"

Jonathan Humphreys <j-humphreys@ti.com> says:

Set basic settings needed for System Ready IR ACS testing, for several TI SoC
based platforms: AM64, AM62, AM62p, BeaglePlay, J7, and BeagleboneAI.

For AM64, AM62, and AM62p, also includes some config cleanup.  Should be no
functional change.

4 weeks agoconfigs: beagleboneai64: Enable RTC emulation
Jonathan Humphreys [Mon, 8 Apr 2024 21:11:00 +0000 (16:11 -0500)] 
configs: beagleboneai64: Enable RTC emulation

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
4 weeks agoconfigs: beagleboneai64: Enable basic EFI CMD support
Jonathan Humphreys [Mon, 8 Apr 2024 21:10:59 +0000 (16:10 -0500)] 
configs: beagleboneai64: Enable basic EFI CMD support

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
4 weeks agoconfigs: am62x: Enable RTC emulation
Jonathan Humphreys [Mon, 8 Apr 2024 21:10:58 +0000 (16:10 -0500)] 
configs: am62x: Enable RTC emulation

This is required to pass SystemReadyIR tests.

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
4 weeks agoconfigs: am62x: Enable basic EFI CMD support
Jonathan Humphreys [Mon, 8 Apr 2024 21:10:57 +0000 (16:10 -0500)] 
configs: am62x: Enable basic EFI CMD support

This is required to pass SystemReadyIR tests.

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
4 weeks agoconfigs: am62x: cosmetic config cleanup
Jonathan Humphreys [Mon, 8 Apr 2024 21:10:56 +0000 (16:10 -0500)] 
configs: am62x: cosmetic config cleanup

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
4 weeks agoconfigs: am62px: Enable RTC emulation
Jonathan Humphreys [Mon, 8 Apr 2024 21:10:55 +0000 (16:10 -0500)] 
configs: am62px: Enable RTC emulation

This is required to pass SystemReadyIR tests.

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
4 weeks agoconfigs: am62px: Enable basic EFI CMD support
Jonathan Humphreys [Mon, 8 Apr 2024 21:10:54 +0000 (16:10 -0500)] 
configs: am62px: Enable basic EFI CMD support

This is required to pass SystemReadyIR tests.

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
4 weeks agoconfigs: am62px: cosmetic config cleanup
Jonathan Humphreys [Mon, 8 Apr 2024 21:10:53 +0000 (16:10 -0500)] 
configs: am62px: cosmetic config cleanup

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
4 weeks agoconfigs: beagleplay: Enable RTC emulation
Jonathan Humphreys [Mon, 8 Apr 2024 21:10:52 +0000 (16:10 -0500)] 
configs: beagleplay: Enable RTC emulation

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
4 weeks agoconfigs: beagleplay: Enable basic EFI CMD support
Jonathan Humphreys [Mon, 8 Apr 2024 21:10:51 +0000 (16:10 -0500)] 
configs: beagleplay: Enable basic EFI CMD support

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
4 weeks agoconfigs: j721e: Enable RTC emulation
Jonathan Humphreys [Mon, 8 Apr 2024 21:10:50 +0000 (16:10 -0500)] 
configs: j721e: Enable RTC emulation

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
4 weeks agoconfigs: j721e: Enable basic EFI CMD support
Jonathan Humphreys [Mon, 8 Apr 2024 21:10:49 +0000 (16:10 -0500)] 
configs: j721e: Enable basic EFI CMD support

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
4 weeks agoconfigs: am64x: Enable RTC emulation
Jonathan Humphreys [Mon, 8 Apr 2024 21:10:48 +0000 (16:10 -0500)] 
configs: am64x: Enable RTC emulation

This is required to pass SystemReadyIR tests.

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
4 weeks agoconfigs: am64x: Enable basic EFI CMD support
Jonathan Humphreys [Mon, 8 Apr 2024 21:10:47 +0000 (16:10 -0500)] 
configs: am64x: Enable basic EFI CMD support

This is required to pass SystemReadyIR tests.

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
4 weeks agoconfigs: am64x: cosmetic config cleanup
Jonathan Humphreys [Mon, 8 Apr 2024 21:10:46 +0000 (16:10 -0500)] 
configs: am64x: cosmetic config cleanup

Signed-off-by: Jonathan Humphreys <j-humphreys@ti.com>
4 weeks agoMerge patch series "zfs: Fix zfs support on aarch64"
Tom Rini [Wed, 17 Apr 2024 16:08:03 +0000 (10:08 -0600)] 
Merge patch series "zfs: Fix zfs support on aarch64"

mwleeds@mailtundra.com <mwleeds@mailtundra.com> says:

This patch series is needed to get U-Boot to boot from a ZFS filesystem
on an aarch64 computer. Some of the patches are not architecture specific
and would be needed to boot ZFS on other platforms as well. The ZFS
support in U-Boot hasn't been substantively touched in several years and
to me it seems like it must have been broken for a long time on all
platforms, but I have only tested on aarch64.

Since there doesn't seem to be a mantainer for this area who I can cc,
I'm hoping these patches get seen and pulled in by a general U-Boot
maintainer.

[trini: Per Igor's comment and Phaedrus agreement, dropped his Tested-by
 on the patches themselves]

4 weeks agozfs: Fix zfs_read() to actually work
mwleeds@mailtundra.com [Sun, 7 Apr 2024 01:47:29 +0000 (18:47 -0700)] 
zfs: Fix zfs_read() to actually work

Without this patch, the while loop being modified goes on infinitely,
but with the patch I am able to boot linux on zfs on a jetson tx2 nx.

It seems like this code was never tested because the logic is clearly
wrong. The function do_div(a,b) does a division that modifies the first
parameter to have a = a / b, and returns the remainder of the division.
So clearly in the usual case when file->offset = 0, the line
"blkid = do_div(blkid, blksz);" just results in blkid being set to zero
on every iteration of the loop, rather than being incremented as blocks
are read. Hence the zeroth block is read over and over and this becomes
an infinite loop.

So instead capture the remainder of the division in a "blkoff" variable,
and use that to properly calculate the memory address to move from in
memmove() below.

For example, if file->offset were 1337, on the first iteration of the
loop blkid would be 0 and blkoff would be 1337. If the blksz is 131072
(as it was for me), that amount of data would be copied into
data->file_buf. movesize would be 131072 - 1337 = 129735 so 129735 bytes
would be moved into buf. On the second iteration of the loop (assuming
there is one), red would be 129735, blkid would be 1, blkoff would be 0,
and 131072 bytes would be copied into buf. And so on...

Signed-off-by: Phaedrus Leeds <mwleeds@mailtundra.com>
4 weeks agozfs: Fix return value of fs_devread()
mwleeds@mailtundra.com [Sun, 7 Apr 2024 01:47:28 +0000 (18:47 -0700)] 
zfs: Fix return value of fs_devread()

As evidenced by how other filesystems handle it, a return value of 0
from fs_devread() means failure; nonzero means success. The opposite
assumption was being made in zfs.c for the use of zfs_devread() so fix
the confusion by making zfs_devread() return 0 on success.

It probably doesn't make sense to change the handling of zfs_devread()
in zfs.c instead, because as it is it matches the semantics of the other
functions there.

Signed-off-by: Phaedrus Leeds <mwleeds@mailtundra.com>
4 weeks agozfs: Fix unaligned read of uint64
mwleeds@mailtundra.com [Sun, 7 Apr 2024 01:47:27 +0000 (18:47 -0700)] 
zfs: Fix unaligned read of uint64

Without this patch, when trying to boot zfs using U-Boot on a Jetson TX2
NX (which is aarch64), I get a CPU reset error like so:

"Synchronous Abort" handler, esr 0x96000021
elr: 00000000800c9000 lr : 00000000800c8ffc (reloc)
elr: 00000000fff77000 lr : 00000000fff76ffc
x0 : 00000000ffb40f04 x1 : 0000000000000000
x2 : 000000000000000a x3 : 0000000003100000
x4 : 0000000003100000 x5 : 0000000000000034
x6 : 00000000fff9cc6e x7 : 000000000000000f
x8 : 00000000ff7f84a0 x9 : 0000000000000008
x10: 00000000ffb40f04 x11: 0000000000000006
x12: 000000000001869f x13: 0000000000000001
x14: 00000000ff7f84bc x15: 0000000000000010
x16: 0000000000002080 x17: 00000000001fffff
x18: 00000000ff7fbdd8 x19: 00000000ffb405f8
x20: 00000000ffb40dd0 x21: 00000000fffabe5e
x22: 000000ea77940000 x23: 00000000ffb42090
x24: 0000000000000000 x25: 0000000000000000
x26: 0000000000000000 x27: 0000000000000000
x28: 0000000000bab10c x29: 00000000ff7f85f0

Code: d00001a0 9103a000 94006ac6 f9401ba0 (f9400000)
Resetting CPU ...

This happens when be64_to_cpu() is called on a value that exists at a
memory address that's 4 byte aligned but not 8 byte aligned (e.g. an
address ending in 04). The call stack where that happens is:
check_pool_label() ->
zfs_nvlist_lookup_uint64(vdevnvlist, ZPOOL_CONFIG_ASHIFT,...) ->
be64_to_cpu()

Signed-off-by: Phaedrus Leeds <mwleeds@mailtundra.com>
Fixes: 4d3c95f5ea7c ("zfs: Add ZFS filesystem support")
4 weeks agozfs: Add a comment to clarify nvlist memory layout
mwleeds@mailtundra.com [Sun, 7 Apr 2024 01:47:26 +0000 (18:47 -0700)] 
zfs: Add a comment to clarify nvlist memory layout

Signed-off-by: Phaedrus Leeds <mwleeds@mailtundra.com>
4 weeks agozfs: Fix malloc() success check
mwleeds@mailtundra.com [Sun, 7 Apr 2024 01:47:25 +0000 (18:47 -0700)] 
zfs: Fix malloc() success check

This code was hitting the error code path whenever malloc() succeeded
rather than when it failed, so presumably this part of the code hasn't
been tested. I had to apply this fix (and others) to get U-Boot to boot
from ZFS on an Nvidia Jetson TX2 NX SoM (an aarch64 computer).

Signed-off-by: Phaedrus Leeds <mwleeds@mailtundra.com>
4 weeks agonet: wget: fix TCP sequence number wrap around issue
Yasuharu Shibata [Tue, 16 Apr 2024 00:26:24 +0000 (09:26 +0900)] 
net: wget: fix TCP sequence number wrap around issue

If tcp_seq_num is wrap around, tcp_seq_num >= initial_data_seq_num
isn't satisfied and store_block() isn't called.
The condition has a wrap around issue, so it is fixed in this patch.

Signed-off-by: Yasuharu Shibata <yasuharu.shibata@gmail.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Suggested-by: Michael Trimarchi <michael@amarulasolutions.com>
Reported-by: Tim Harvey <tharvey@gateworks.com>
Tested-by: Fabio Estevam <festevam@denx.de>
4 weeks agonet: wget: Support retransmission a dropped packet
Yasuharu Shibata [Sun, 14 Apr 2024 10:46:07 +0000 (19:46 +0900)] 
net: wget: Support retransmission a dropped packet

The server sends multiple packets without waiting for an ACK
by window control and if some packets are dropped,
wget will return an ACK including the dropped packets.

Following log indicates this issue.

  wget_handler() wget: Transferring, seq=97bbdd4a, ack=30,len=580
  wget_handler() wget: Transferring, seq=97bbedca, ack=30,len=580

First packet of TCP sequence number is 0x97bbdd4a.
Second packet of TCP sequence number should be 0x97bbe2ca,
however it is 0x97bbedca and returns its ACK, so the server
suppose that 0x97bbe2ca and 0x97bbedca are received appropriately.
In this case, 0x97bbe2ca was lost and the data of wget was broken.

In this patch, next_data_seq_num holds the next expected
TCP sequence number.
If the TCP sequence number different from next_data_seq_num,
trying to retransmit the packet.

Signed-off-by: Yasuharu Shibata <yasuharu.shibata@gmail.com>
Tested-by: Fabio Estevam <festevam@gmail.com>
5 weeks agoMerge tag 'u-boot-imx-master-20240415' of https://gitlab.denx.de/u-boot/custodians...
Tom Rini [Mon, 15 Apr 2024 13:39:14 +0000 (07:39 -0600)] 
Merge tag 'u-boot-imx-master-20240415' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx

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

- Update the imx_rgpio2p to only access one address as per the
  dt-schema.
- Remove unused imx9_cpu.c file.
- Only use the LPUART ipg clk for i.MX7ULP.
- Use the correct anatop base for accessing the PLL clocks on i.MX93.

5 weeks agoMerge https://source.denx.de/u-boot/custodians/u-boot-mmc
Tom Rini [Mon, 15 Apr 2024 13:38:51 +0000 (07:38 -0600)] 
Merge https://source.denx.de/u-boot/custodians/u-boot-mmc

5 weeks agoMerge tag 'u-boot-socfpga-next-20240415' of https://source.denx.de/u-boot/custodians...
Tom Rini [Mon, 15 Apr 2024 13:38:18 +0000 (07:38 -0600)] 
Merge tag 'u-boot-socfpga-next-20240415' of https://source.denx.de/u-boot/custodians/u-boot-socfpga

- Add option to reprogram FPGA every reboot, enable this as default in
  chameleonv3 defconfig.
- Fixes: Rename CONFIG_SPL_SOCFPGA_SEC_REG to CONFIG_SPL_SOCFPGA_DT_REG,
  so the driver can be built when CONFIG_SPL_SOCFPGA_DT_REG is set in
  defconfig.

5 weeks agoclk: imx93: fix anatop base
Peng Fan [Fri, 12 Apr 2024 14:24:54 +0000 (22:24 +0800)] 
clk: imx93: fix anatop base

The PLL clk needs use anatop base, otherwise wrong PLL address will
be used.

Fixes: 9c153e46661b ("clk: imx: add i.MX93 CCF driver")
Signed-off-by: Peng Fan <peng.fan@nxp.com>
5 weeks agocpu: drop imx9_cpu
Peng Fan [Fri, 12 Apr 2024 14:24:53 +0000 (22:24 +0800)] 
cpu: drop imx9_cpu

This was wrongly committed, no user, remove it.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
5 weeks agoserial: lpuart: use ipg clk for i.MX7ULP
Peng Fan [Fri, 12 Apr 2024 14:24:52 +0000 (22:24 +0800)] 
serial: lpuart: use ipg clk for i.MX7ULP

To i.MX7ULP compatible lpuart, there is only ipg clk, no per clk.
So add a devtype check for i.MX7ULP.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
5 weeks agogpio: imx_rgpio2p: support one address
Peng Fan [Fri, 12 Apr 2024 14:24:51 +0000 (22:24 +0800)] 
gpio: imx_rgpio2p: support one address

The i.MX8ULP/93 gpio dt-schema have been updated to only have one
address entry, update the driver to support it.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
5 weeks agommc: cv1800b_sdhci: Remove the unused argument
Jaehoon Chung [Mon, 15 Apr 2024 07:56:50 +0000 (16:56 +0900)] 
mmc: cv1800b_sdhci: Remove the unused argument

Remove the unused argument about cmd_error.

Fixes: a3b2786651c7 ("mmc: Drop unused mmc_send_tuning() cmd_error parameter")
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
5 weeks agommc: hi6220_dw_mmc: add fifoth_val to private data and set it in .probe
Yang Xiwen [Thu, 1 Feb 2024 14:05:44 +0000 (22:05 +0800)] 
mmc: hi6220_dw_mmc: add fifoth_val to private data and set it in .probe

The value defaults to 0 and is ignored by dw_mmc code, so the other
users are not affected.

Setting this explicitly fixes some weird reading error found on Hi3798MV200.

Fixes: 8a5dc8140e62 ("mmc: hi6220_dw_mmc: add compatible for HC2910 support")
Signed-off-by: Yang Xiwen <forbidden405@outlook.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
5 weeks agommc: dw_mmc: Don't return error if data busy timeout
Yang Xiwen [Thu, 1 Feb 2024 14:05:43 +0000 (22:05 +0800)] 
mmc: dw_mmc: Don't return error if data busy timeout

As described in [1], some poor hardware or cards would fail to release
the bus and keep driving data lines low. Ignore it and send the next cmd
directly seems okay for most cases.

[1]: https://patchwork.kernel.org/project/linux-mmc/patch/1424458179-5456-1-git-send-email-dianders@chromium.org/

Signed-off-by: Yang Xiwen <forbidden405@outlook.com>
Tested-by: Jaehoon Chung <jh80.chung@samsung.com>
5 weeks agommc: hi6220-dwmmc: handle clocks and resets if CONFIG_CLK and CONFIG_DM_RESET enabled
Yang Xiwen [Thu, 1 Feb 2024 14:05:42 +0000 (22:05 +0800)] 
mmc: hi6220-dwmmc: handle clocks and resets if CONFIG_CLK and CONFIG_DM_RESET enabled

This can avoid hardcoding a clock rate in driver. Also can enable the
clocks and deassert the resets if the pre-bootloader does not do this
for us.

Currently only enabled for Hi3798MV200.

Signed-off-by: Yang Xiwen <forbidden405@outlook.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
5 weeks agommc: Unconditionally call mmc_deinit()
Marek Vasut [Sun, 17 Mar 2024 03:01:22 +0000 (04:01 +0100)] 
mmc: Unconditionally call mmc_deinit()

Place the SDR104/HS200/HS400 checks into the mmc_deinit() and always
call it. This simplifies the code and removes ifdeffery. No functional
change is expected.

Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
5 weeks agommc: renesas-sdhi: Do not access SCC during tuning in send_cmd callback
Marek Vasut [Sat, 24 Feb 2024 22:32:11 +0000 (23:32 +0100)] 
mmc: renesas-sdhi: Do not access SCC during tuning in send_cmd callback

Do not access SCC when sending commands during tuning operation as that
will disrupt the tuning operation. The tuning operation is adjusting the
SCC settings itself in execute_tuning callback.

When renesas_sdhi_execute_tuning() is called by the MMC core code, a loop
which consists of renesas_sdhi_prepare_tuning(), mmc_send_tuning() and
renesas_sdhi_compare_scc_data() iterates over each SCC tuning tap.

The renesas_sdhi_prepare_tuning() configures the SCC tuning tap number into
hardware, mmc_send_tuning() triggers transfer of tuning block which depends
on the bus mode for which the bus is currently being tuned, this information
is supplied by the MMC core code, and finally renesas_sdhi_compare_scc_data()
tests the received tuning block for validity.

Because renesas_sdhi_prepare_tuning() configures the SCC tuning tap into
the hardware to fit the tuning operation, mmc_send_tuning() which triggers
command transfer using renesas_sdhi_send_cmd() must not manipulate with
the SCC in any way. Currently renesas_sdhi_send_cmd() does unconditionally
call renesas_sdhi_check_scc_error(), which may adjust the SCC tuning tap
position by writing RENESAS_SDHI_SCC_TAPSET, which would overwrite the
required tuning configuration set by renesas_sdhi_prepare_tuning() and
disrupt the tuning operation.

Fix this by skipping the renesas_sdhi_check_scc_error() call in case the
MMC subsystem is in tuning state. This way, the SCC settings are left
unmodified by command transfer during tuning operation.

Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Tested-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
5 weeks agommc: Add generic tuning flag
Marek Vasut [Sat, 24 Feb 2024 22:32:10 +0000 (23:32 +0100)] 
mmc: Add generic tuning flag

Set generic mmc->tuning flag when performing tuning to indicate
this condition to drivers. Drivers may use this to bypass various
checks during tuning.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
5 weeks agommc: Convert hs400_tuning flag from u8 to bool
Marek Vasut [Sat, 24 Feb 2024 22:32:09 +0000 (23:32 +0100)] 
mmc: Convert hs400_tuning flag from u8 to bool

This hs400_tuning is a flag, make it bool. No functional change.
This will be useful in the following patch, which adds another
more generic flag, where the compiler can better use the space
now reserved for the u8 to store more flags in it.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
5 weeks agommc: renesas-sdhi: Stop transmission in case tuning block transfer fails
Marek Vasut [Tue, 20 Feb 2024 08:38:45 +0000 (09:38 +0100)] 
mmc: renesas-sdhi: Stop transmission in case tuning block transfer fails

The current code uses the state of tuning block received by SCC to
determine whether or not to send transmission stop command. This is
not correct. Use the state of tuning block transfer to determine
whether or not to send transmission stop command instead, because
the transmission stop command has to be sent in case the tuning
block transfer failed.

This requires two changes, separate variable to store and check the
state of tuning block received by SCC, and another separate variable
to store and check return value from transmission stop command.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Tested-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
5 weeks agommc: tmio: Check INFO1 for completion during DMA transfer
Marek Vasut [Tue, 20 Feb 2024 08:38:14 +0000 (09:38 +0100)] 
mmc: tmio: Check INFO1 for completion during DMA transfer

In case a CRC error occurs during DMA transfer, the transfer completion
flag is not set in TMIO_SD_DMA_INFO1 and the transfer would eventually
time out. The timeout could be very long in case the transfer consists
of a large amount of blocks, the base timeout is 10 seconds and every
block adds 100 us more.

In case a CRC error does occur, a completion flag is set in a different
register, TMIO_SD_INFO1. Use this other completion flag to detect DMA
transfer ended and stop waiting for TMIO_SD_DMA_INFO1 completion flag.
This reduces the lengthy timeout in case of an error. The unconditional
check of TMIO_SD_DMA_INFO2 register for DMA related errors must not be
skipped in any case to actually recognize the DMA error and report it.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Tested-by: Paul Barker <paul.barker.ct@bp.renesas.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
5 weeks agommc: Drop unused mmc_send_tuning() cmd_error parameter
Marek Vasut [Tue, 20 Feb 2024 08:36:23 +0000 (09:36 +0100)] 
mmc: Drop unused mmc_send_tuning() cmd_error parameter

The cmd_error parameter is not used, remove it.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
5 weeks agommc: arm_pl180_mmci: Rely on DM
Linus Walleij [Thu, 8 Feb 2024 09:33:43 +0000 (10:33 +0100)] 
mmc: arm_pl180_mmci: Rely on DM

The PL180/MMCI driver is implied to use CONFIG_DM and the ARM
defconfigs such as configs/vexpress_ca9x4_defconfig will get it
as well.

With a simple oneline to default to not being the v2 variant,
the original ARM MMCI variant works fine with the driver as well.
The IP version actually needs to be read out from a register on
the ARM versions, but we will simply assume we are running on the
original hardware if arm,primecell-periphid is not explicitly
specified in the device tree.

Drop the !CONFIG_DM code and depend on DM_MMC.

Tested on the Versatile Express CA9x4 board.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
5 weeks agommc: Add SPL_MMC_PWRSEQ to fix link issue when building SPL
Jonas Karlman [Sat, 27 Jan 2024 17:12:35 +0000 (17:12 +0000)] 
mmc: Add SPL_MMC_PWRSEQ to fix link issue when building SPL

With MMC_PWRSEQ enabled the following link issue may happen when
building SPL and SPL_PWRSEQ is not enabled.

  aarch64-linux-gnu-ld.bfd: drivers/mmc/meson_gx_mmc.o: in function `meson_mmc_probe':
  drivers/mmc/meson_gx_mmc.c:295: undefined reference to `pwrseq_set_power'

Fix this by adding a SPL_MMC_PWRSEQ Kconfig option used to enable mmc
pwrseq support in SPL.

Also add depends on DM_GPIO to fix following link issue:

  aarch64-linux-gnu-ld.bfd: drivers/mmc/mmc-pwrseq.o: in function `mmc_pwrseq_set_power':
  drivers/mmc/mmc-pwrseq.c:26: undefined reference to `gpio_request_by_name'
  aarch64-linux-gnu-ld.bfd: drivers/mmc/mmc-pwrseq.c:29: undefined reference to `dm_gpio_set_value'
  aarch64-linux-gnu-ld.bfd: drivers/mmc/mmc-pwrseq.c:31: undefined reference to `dm_gpio_set_value'

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Ferass El Hafidi <vitali64pmemail@protonmail.com>
5 weeks agommc: Don't suggest to build modules in Kconfig.
Heinrich Schuchardt [Tue, 23 Jan 2024 16:18:16 +0000 (17:18 +0100)] 
mmc: Don't suggest to build modules in Kconfig.

U-Boot does not support building kernel modules.

Fixes: 3c0dbed232bd ("mmc: arm_pl180_mmci: adapt driver to DM usage")
Fixes: 36645f45a048 ("drivers: mmc: Add sdhci driver for Broadcom iProc platform")
Fixes: dadd43c14368 ("mmc: synquacer: Add SynQuacer F_SDH30 SDHCI driver")
Fixes: b312c590bcd8 ("mmc: Add MMC support for stm32h7 Socs")
Fixes: d24b69395949 ("mmc: mtk-sd: add SD/MMC host controller driver for MT7623 SoC")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
5 weeks agommc: Avoid buffer overrun in mmc_startup()
Heinrich Schuchardt [Thu, 4 Jan 2024 03:49:42 +0000 (04:49 +0100)] 
mmc: Avoid buffer overrun in mmc_startup()

If the CSD register contains a reserved value (4 - 7) in bits 0:2 of the
TRAN_SPEED field, a buffer overrun occurs. Resize the mapping table.

According to the original report
https://lore.kernel.org/u-boot/20180826231332.2491-11-erosca@de.adit-jv.com/
reserved values have been observed resulting in a buffer overrun.

Reported-by: Eugeniu Rosca <erosca@de.adit-jv.com>
Fixes: 272cc70b211e ("Add MMC Framework")
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com>
5 weeks agodrivers: misc: Fixes: Rename CONFIG_SPL_SOCFPGA_SEC_REG to CONFIG_SPL_SOCFPGA_DT_REG
Wan Yee Lau [Thu, 28 Mar 2024 06:24:00 +0000 (14:24 +0800)] 
drivers: misc: Fixes: Rename CONFIG_SPL_SOCFPGA_SEC_REG to CONFIG_SPL_SOCFPGA_DT_REG

Commit 3f190c55a4211215914126b74357344342329943
("drivers: misc: Add socfpga_dtreg driver for Intel SoCFPGA")

This commit rename CONFIG_SPL_SOCFPGA_SEC_REG to CONFIG_SPL_SOCFPGA_DT_REG
in Makefile.

Signed-off-by: Wan Yee Lau <wan.yee.lau@intel.com>
5 weeks agochameleonv3: set in defconfig for FPGA to reprogram every reboot
Michał Barnaś [Tue, 19 Mar 2024 18:18:14 +0000 (18:18 +0000)] 
chameleonv3: set in defconfig for FPGA to reprogram every reboot

Set CONFIG_TARGET_SOCFPGA_ARRIA10_ALWAYS_REPROGRAM as enabled in
chameleon v3 board's defconfig.

Signed-off-by: Michał Barnaś <barnas@google.com>
5 weeks agoarm: socfpga: arria10: add option to reprogram the FPGA every reboot
Michał Barnaś [Tue, 19 Mar 2024 18:18:13 +0000 (18:18 +0000)] 
arm: socfpga: arria10: add option to reprogram the FPGA every reboot

Add Kconfig that enables FPGA reprogramming with warm boot on Arria 10.
This option allows to change the bitstream on the filesystem and apply
changes with warm reboot without the need for a power cycle.

Signed-off-by: Michał Barnaś <barnas@google.com>
5 weeks agoMerge https://source.denx.de/u-boot/custodians/u-boot-usb
Tom Rini [Sun, 14 Apr 2024 21:58:31 +0000 (15:58 -0600)] 
Merge https://source.denx.de/u-boot/custodians/u-boot-usb

5 weeks agoMerge tag 'u-boot-nand-20240414' of https://source.denx.de/u-boot/custodians/u-boot...
Tom Rini [Sun, 14 Apr 2024 18:26:42 +0000 (12:26 -0600)] 
Merge tag 'u-boot-nand-20240414' of https://source.denx.de/u-boot/custodians/u-boot-nand-flash

The first patch is by Weizhao Ouyang and avoids sf probe crashes.

The second patch is by Arseniy Krasnov and adds basic support for Amlogic
Meson NAND controller on AXG.

The following four patches are by Alexander Dahl and apply some fixes to
drivers/mtd/nand/raw/ and port some changes applied in Linux.

The following patch is by Bruce Suen and adds support for XTX SPINAND.

Finally, the last patch is again by Arseniy Krasnov and adds access to
OTP region, supporting info, dump, write and lock operations.

5 weeks agocmd: mtd: OTP access support
Arseniy Krasnov [Tue, 26 Mar 2024 22:39:19 +0000 (01:39 +0300)] 
cmd: mtd: OTP access support

Add access to OTP region. It supports info, dump, write and lock
operations. Usage example:

'mtd otpread nand0 u 0 1024' - dump 1024 bytes of user area starting
 from offset 0 of device 'nand0'.

'mtd otpwrite nand0 10 11223344' - write binary data 0x11, 0x22, 0x33,
 0x44 to offset 10 to user area of device 'nand0'.

'mtd otplock nand0 0 1024' - lock 1024 bytes of user area starting
 from offset 0 of device 'nand0'.

'mtd otpinfo nand0 f' - show info about factory area of device 'nand0'.

Link: https://lore.kernel.org/all/20240326223919.3781-1-avkrasnov@salutedevices.com
Signed-off-by: Arseniy Krasnov <avkrasnov@salutedevices.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
5 weeks agomtd: spinand: Add support for XTX SPINAND
Bruce Suen [Tue, 12 Mar 2024 01:43:14 +0000 (21:43 -0400)] 
mtd: spinand: Add support for XTX SPINAND

Add support for XTX XT26G0xA and XT26xxxD. The driver is ported from
linux-6.7.1. This driver is tested on Banana BPI-R3 with XT26G01A and
XT26G12D.

Link: https://lore.kernel.org/all/20240312014314.15454-1-bruce_suen@163.com
Signed-off-by: Bruce Suen <bruce_suen@163.com>
Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
5 weeks agomtd: nand: raw: atmel: Fix comment in timings preparation
Alexander Dahl [Wed, 20 Mar 2024 09:02:13 +0000 (10:02 +0100)] 
mtd: nand: raw: atmel: Fix comment in timings preparation

Introduced with commit 6a8dfd57220d ("nand: atmel: Add DM based NAND
driver") when driver was initially ported from Linux.  The context
around this and especially the code itself suggests 'read' is meant
instead of write.

The fix is the same as accepted in Linux already with mainline Linux
kernel commit 1c60e027ffde ("mtd: nand: raw: atmel: Fix comment in
timings preparation").

Link: https://lore.kernel.org/all/20240320090214.40465-6-ada@thorsis.com
Link: https://lore.kernel.org/linux-mtd/20240307172835.3453880-1-miquel.raynal@bootlin.com/T/#t
Signed-off-by: Alexander Dahl <ada@thorsis.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
5 weeks agomtd: nand: raw: Fix (most) Kconfig indentation
Alexander Dahl [Wed, 20 Mar 2024 09:02:11 +0000 (10:02 +0100)] 
mtd: nand: raw: Fix (most) Kconfig indentation

One tab in general.  One tab plus two spaces for help text.

Link: https://lore.kernel.org/all/20240320090214.40465-4-ada@thorsis.com
Signed-off-by: Alexander Dahl <ada@thorsis.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
5 weeks agomtd: nand: raw: Port another option flag from Linux
Alexander Dahl [Wed, 20 Mar 2024 09:02:10 +0000 (10:02 +0100)] 
mtd: nand: raw: Port another option flag from Linux

Introduced in upstream Linux with commit 7a08dbaedd365 for release v5.0.

When the new atmel nand driver was backported to U-Boot with commit
6a8dfd57220d ("nand: atmel: Add DM based NAND driver") that definition
was added to the driver instead of the header file.  Move it over to the
other definitions with the same help text it has in Linux.

Code actually using this has not been ported over to raw nand base yet.

Link: https://lore.kernel.org/all/20240320090214.40465-3-ada@thorsis.com
Signed-off-by: Alexander Dahl <ada@thorsis.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
5 weeks agomtd: nand: raw: Use macro nand_to_mtd() where appropriate
Alexander Dahl [Wed, 20 Mar 2024 09:02:09 +0000 (10:02 +0100)] 
mtd: nand: raw: Use macro nand_to_mtd() where appropriate

In every other place in this file the macro is used, make it consistent.

Link: https://lore.kernel.org/all/20240320090214.40465-2-ada@thorsis.com
Fixes: 9d1806fadc24 ("mtd: nand: Get rid of mtd variable in function calls")
Signed-off-by: Alexander Dahl <ada@thorsis.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
5 weeks agomtd: rawnand: Meson NAND controller support
Arseniy Krasnov [Sat, 10 Feb 2024 22:39:27 +0000 (01:39 +0300)] 
mtd: rawnand: Meson NAND controller support

Basic support for Amlogic Meson NAND controller on AXG. This version
works at only first EDO mode.

Based on Linux version 6.7.0-rc4.

Link: https://lore.kernel.org/all/20240210223927.570043-1-avkrasnov@salutedevices.com
Signed-off-by: Arseniy Krasnov <avkrasnov@salutedevices.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
5 weeks agocmd: sf: Fix sf probe crash
Weizhao Ouyang [Thu, 4 Jan 2024 11:46:19 +0000 (11:46 +0000)] 
cmd: sf: Fix sf probe crash

Handle the return value of spi_flash_probe_bus_cs() to avoid sf probe
crashes.

Link: https://lore.kernel.org/all/20240104114619.280513-1-o451686892@gmail.com
Signed-off-by: Weizhao Ouyang <o451686892@gmail.com>
Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Acked-by: Michal Simek <michal.simek@amd.com>
Reviewed-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
5 weeks agoMerge tag 'efi-2024-07-rc1-2' of https://source.denx.de/u-boot/custodians/u-boot-efi
Tom Rini [Sat, 13 Apr 2024 16:18:38 +0000 (10:18 -0600)] 
Merge tag 'efi-2024-07-rc1-2' of https://source.denx.de/u-boot/custodians/u-boot-efi

Pull request efi-2024-07-rc1-2

Documentation:

* bump build dependency idna to 3.7
* update docker image reference to latest
* fix section levels in gen_compile_commands
* fix references to trace doc

UEFI:

* eliminate duplicate runtime section definitions
* let 'EFI using ACPI tables at' be a debug message
* sanitize efi_tcg2_final_events_table definition
* move efi_var_collect to common functions
* improve error messages in variables unit test by using
  EFI_UNSUPPORTED for private authenticated variables

5 weeks agodoc/sphinx: Bump idna to 3.7
Tom Rini [Fri, 12 Apr 2024 14:23:17 +0000 (08:23 -0600)] 
doc/sphinx: Bump idna to 3.7

While we unlikely to have an issue with CVE-2024-3651, it is simple
enough to bump our version of idna to receive the fix, do so.

Reported-by: GitHub dependabot
Signed-off-by: Tom Rini <trini@konsulko.com>
Tested-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 weeks agoFix references to trace doc
Vincent Stehlé [Thu, 11 Apr 2024 16:44:02 +0000 (18:44 +0200)] 
Fix references to trace doc

The README.trace has been moved and converted to rst in commit dce26c7d56ed
("doc: move README.trace to HTML documentation"); fix all the remaining
references to this file.

Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Cc: Tom Rini <trini@konsulko.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 weeks agoefi_loader: sanitize efi_tcg2_final_events_table definition
Heinrich Schuchardt [Wed, 10 Apr 2024 22:50:43 +0000 (00:50 +0200)] 
efi_loader: sanitize efi_tcg2_final_events_table definition

The length of the variable name typically is not 1.
Neither the length of the variable name nor the size of the appended
data is known in the include.

* Define the size of element variable_name as variable.
* Remove the unusable element variable_data.

Addresses-Coverity-ID: 467400 Out-of-bounds read
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
5 weeks agoefi_loader: using EFI_UNSUPPORTED for private authenticated variables
Weizhao Ouyang [Wed, 10 Apr 2024 12:19:33 +0000 (12:19 +0000)] 
efi_loader: using EFI_UNSUPPORTED for private authenticated variables

Improve error message for UEFI SCT tests.

Signed-off-by: Weizhao Ouyang <o451686892@gmail.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
5 weeks agoefi_loader: 'EFI using ACPI tables at' should be debug message
Heinrich Schuchardt [Tue, 9 Apr 2024 20:48:24 +0000 (22:48 +0200)] 
efi_loader: 'EFI using ACPI tables at' should be debug message

The message "EFI using ACPI tables at %lx\n" is only of interest when
debugging. Make it a debug message.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
5 weeks agoefi_loader: eliminate duplicate runtime section definitions
Heinrich Schuchardt [Fri, 5 Apr 2024 08:12:57 +0000 (10:12 +0200)] 
efi_loader: eliminate duplicate runtime section definitions

The following symbols are defined in two includes:

* __efi_runtime_start[]
* __efi_runtime_stop[]
* __efi_runtime_rel_start[]
* __efi_runtime_rel_stop[]

Eliminate the definitions in efi_loader.h.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
5 weeks agoefi_loader: move efi_var_collect to common functions
Ilias Apalodimas [Fri, 5 Apr 2024 06:50:58 +0000 (09:50 +0300)] 
efi_loader: move efi_var_collect to common functions

efi_var_collect() was initially placed in efi_var_file.c, since back
then we only supported efi variables stored in a file. Since then we
support variables stored in an RPMB as well and use that function to
collect variables that should be present at runtime.

So let's move it around in efi_var_common.c which makes more sense

Suggested-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Ilias Apalodimas <apalos@gmail.com>
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
5 weeks agodoc: build: fix gen_compile_commands section level
Mattijs Korpershoek [Fri, 5 Apr 2024 06:18:42 +0000 (08:18 +0200)] 
doc: build: fix gen_compile_commands section level

The 2 subsections of this page ("Compatible IDEs" and "Usage") are using
the same header level as the title (with "===").
Because of this, they always appear in the HTML rendered ToC.

Drop the subsections one level lower by replacing "=" by "-".
This fixes the HTML rendering.

Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
5 weeks agodoc: build: update docker image to latest
Mattijs Korpershoek [Fri, 5 Apr 2024 06:16:19 +0000 (08:16 +0200)] 
doc: build: update docker image to latest

commit cacc0b2678c0 ("CI: Move to latest container image") updated the
docker container image.

Reflect the change in the documentation.

Signed-off-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Tom Rini <trini@konsulko.com>
5 weeks agoMerge patch series "mcheck implementation for U-Boot"
Tom Rini [Fri, 12 Apr 2024 22:23:19 +0000 (16:23 -0600)] 
Merge patch series "mcheck implementation for U-Boot"

Eugene Uriev <eugeneuriev@gmail.com> says:

There was no "mcheck" for U-Boot before.

Since U-Boot has only 1 thread, and normally makes 4000+ - 6000+
mallocs, it's better to use havier canaries to protect heap-chunks.
My variant uses 2x8 = 16byte-long protector. And
the multiplier could be changed to tune speed/protection tradeoff.
This protects not only against memset()-s, but against "near" wild
pointers too, and makes more probable to catch "distant" ones.

The core file of the set is included into the C-file, not complied
separately in order to enable (potential) coexisting of
mcheck-protectors, e.g. malloc_simple(.) and dlmalloc simultaneously.

My tests were for ARM SoC, 64bit, so the patch is
aware of alignment.

Primary this patch is for using by developers: to verify,
if a change doesn't break the heap integrity.
By default the mcheck is disabled and wouldn't affect the boot.

I used pedantic mode, canary=16byte, registry-size=6608.
For my system the overhead was 230ms.

5 weeks agomcheck: let mcheck_abortfunc_t print the pointer
Eugene Uriev [Sun, 31 Mar 2024 20:03:27 +0000 (23:03 +0300)] 
mcheck: let mcheck_abortfunc_t print the pointer

Signed-off-by: Eugene Uriev <eugeneuriev@gmail.com>
5 weeks agomcheck: add stats, add a comment with test results
Eugene Uriev [Sun, 31 Mar 2024 20:03:26 +0000 (23:03 +0300)] 
mcheck: add stats, add a comment with test results

My tests have been run on an U-Boot (of older version)
for ARM (64bits).

Signed-off-by: Eugene Uriev <eugeneuriev@gmail.com>
5 weeks agomcheck: introduce mcheck_on_ramrelocation(.)
Eugene Uriev [Sun, 31 Mar 2024 20:03:25 +0000 (23:03 +0300)] 
mcheck: introduce mcheck_on_ramrelocation(.)

The using of pre-reloc/malloc_simple heap is
too hard to follow after the relocation.

So lets drop it from the pedantic registry
and switch to dlmalloc, when moved.

The offset is ignored, but kept in the API
for the probable case, when that early
heap is relocated too.

Signed-off-by: Eugene Uriev <eugeneuriev@gmail.com>
5 weeks agomcheck: add pedantic mode support
Eugene Uriev [Sun, 31 Mar 2024 20:03:24 +0000 (23:03 +0300)] 
mcheck: add pedantic mode support

The pedantic mode is run-time contolled, so
appropriate registry take place everytime.

Maybe it's worth to use compile-time control only.
So, the registry could be optimized out by an #ifdef.

Signed-off-by: Eugene Uriev <eugeneuriev@gmail.com>
5 weeks agomcheck: support memalign
Eugene Uriev [Sun, 31 Mar 2024 20:03:23 +0000 (23:03 +0300)] 
mcheck: support memalign

Signed-off-by: Eugene Uriev <eugeneuriev@gmail.com>
5 weeks agomcheck: integrate mcheck into dlmalloc.c
Eugene Uriev [Sun, 31 Mar 2024 20:03:22 +0000 (23:03 +0300)] 
mcheck: integrate mcheck into dlmalloc.c

This changes are probable worth to be generalized in a
separate .h-file so, making it able to cover
libc-mallocs and others, without too much copy-paste.

But the malloc<=>mALLOc substitutions interfere
with an elegant way to do this.

Signed-off-by: Eugene Uriev <eugeneuriev@gmail.com>
5 weeks agomcheck: introduce essentials of mcheck
Eugene Uriev [Sun, 31 Mar 2024 20:03:21 +0000 (23:03 +0300)] 
mcheck: introduce essentials of mcheck

The core part of mcheck, but without memalign.
memalign - to be added in ensuing commits.

Signed-off-by: Eugene Uriev <eugeneuriev@gmail.com>
5 weeks agomcheck: Use memset/memcpy instead of MALLOC_ZERO/MALLOC_COPY for mcheck.
Eugene Uriev [Sun, 31 Mar 2024 20:03:20 +0000 (23:03 +0300)] 
mcheck: Use memset/memcpy instead of MALLOC_ZERO/MALLOC_COPY for mcheck.

These fast helpers sometimes breach mem-chunk boundaries.
Thus they trigger mcheck alarm. Standard ones are accurate though.

Signed-off-by: Eugene Uriev <eugeneuriev@gmail.com>
5 weeks agomcheck: prepare +1 tier for mcheck-wrappers, in dl-*alloc commands
Eugene Uriev [Sun, 31 Mar 2024 20:03:19 +0000 (23:03 +0300)] 
mcheck: prepare +1 tier for mcheck-wrappers, in dl-*alloc commands

Signed-off-by: Eugene Uriev <eugeneuriev@gmail.com>
5 weeks agonet: designware: Pass all multicast frames in designware driver
Jim Liu [Mon, 8 Apr 2024 08:50:17 +0000 (16:50 +0800)] 
net: designware: Pass all multicast frames in designware driver

Allowing multicast packets is required for IPv6 neighbor discovery
protocol.

Signed-off-by: Parvathi Bhogaraju <pbhogaraju@microsoft.com>
Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
5 weeks agonet: designware: Invalidate RX buffer cache before freeing the DMA descriptor
Jim Liu [Mon, 8 Apr 2024 08:49:02 +0000 (16:49 +0800)] 
net: designware: Invalidate RX buffer cache before freeing the DMA descriptor

In IPv6 context, the ICMP and UDP checksum byte in the RX packet
is initially set to 0, recaclculated, and then re-inserted.
This process can result in a dirty cache line. To prevent issues,
it is essential to invalidate cache for the RX buffer before freeing
the descriptor for next DMA transfer.
This ensure that the dirty cache line doesn't inadvertently written back
due to cache eviction, there by corrupting the RX buffer

Signed-off-by: Parvathi Bhogaraju <pbhogaraju@microsoft.com>
Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
5 weeks agonet: dwc_eth_qos: Fix compilation warning in eqos_free_pkt()
Patrice Chotard [Fri, 5 Apr 2024 16:15:29 +0000 (18:15 +0200)] 
net: dwc_eth_qos: Fix compilation warning in eqos_free_pkt()

Fix compilation warning:

../arch/arm/include/asm/io.h: In function 'eqos_free_pkt':
../arch/arm/include/asm/io.h:103:32: warning: 'rx_desc' may be used uninitialized [-Wmaybe-uninitialized]
  103 | #define writel(v,c)     ({ u32 __v = v; __iowmb(); __arch_putl(__v,c); __v; })
      |                                ^~~
../drivers/net/dwc_eth_qos.c:1220:27: note: 'rx_desc' was declared here
 1220 |         struct eqos_desc *rx_desc;
      |                           ^~~~~~~

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
5 weeks agoMerge patch series "Introduce ICSSG Ethernet driver"
Tom Rini [Fri, 12 Apr 2024 19:54:51 +0000 (13:54 -0600)] 
Merge patch series "Introduce ICSSG Ethernet driver"

MD Danish Anwar <danishanwar@ti.com> says:

Introduce ICSSG PRUETH support in uboot. The ICSSG driver is used in TI
AM654 SR2.0.

The ICSSG PRU Sub-system runs on EMAC firmware. This series Introduces
support for ICSSG driver in uboot.

This series has been tested on AM65x SR2.0, and the ICSSG interface is
able to ping / dhcp and boot kernel using tftp in uboot.

To use ICSSG2 ethernet, the ICSSG firmware needs to be loaded to PRU RPROC
cores and RPROC cores need to be booted with the firmware. This step is
done inside driver similar to kernel.

The remoteproc driver uses request_fw_into_buf() API from fs-loader driver
to load and start rproc with the required firmwares.

This series only introduces driver files. The device tree and config
changes to enable ICSSG driver will be introduced later.

5 weeks agonet: ti: icssg: Add support sending FDB command to update rx_flow_id
MD Danish Anwar [Thu, 4 Apr 2024 07:08:03 +0000 (12:38 +0530)] 
net: ti: icssg: Add support sending FDB command to update rx_flow_id

ICSSG firmware supports FDB commands. Add support to send FDB commands
from driver. Once rx_flow_id is obtained from dma, let firmware know that
we are using this rx_flow_id by sending a FDB command.

Reviewed-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
5 weeks agonet: ti: icssg: Add ICSSG ethernet driver
MD Danish Anwar [Thu, 4 Apr 2024 07:08:02 +0000 (12:38 +0530)] 
net: ti: icssg: Add ICSSG ethernet driver

This is the PRUSS Ethernet driver for TI AM654 SR2.0 and later SoCs with
the ICSSG PRU Sub-system running EMAC firmware. ICSSG Subsystem supports
two slices per instance. This driver caters to both slices / ports of
the icssg subsystem.

Since it is not possible for Ethernet driver to register more than one
port for a given instance, this patch introduces top level PRUETH as
UCLASS_MISC and binds UCLASS_ETH to individual ports in order to support
bringing up more than one Ethernet interface in U-Boot.

Since top level driver is UCLASS_MISC, board files would need to
instantiate the driver explicitly.

Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
Reviewed-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
5 weeks agonet: ti: icssg: Add icssg queues APIs and macros
MD Danish Anwar [Thu, 4 Apr 2024 07:08:01 +0000 (12:38 +0530)] 
net: ti: icssg: Add icssg queues APIs and macros

Add icssg_queue.c file. This file introduces macros and APIs related to
ICSSG queues. These will be used by ICSSG Ethernet driver.

Reviewed-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
5 weeks agonet: ti: icssg: Add Firmware config and classification APIs.
MD Danish Anwar [Thu, 4 Apr 2024 07:08:00 +0000 (12:38 +0530)] 
net: ti: icssg: Add Firmware config and classification APIs.

Add icssg_config.h / .c and icssg_classifier.c files. These are firmware
configuration and classification related files. Add MII helper APIs and
MACROs. These APIs and MACROs will be later used by ICSSG Ethernet driver.
Also introduce icssg_prueth.h which has definition of prueth related
structures.

Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
Reviewed-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
5 weeks agonet: ti: icssg: Add Firmware Interface for ICSSG Ethernet driver.
MD Danish Anwar [Thu, 4 Apr 2024 07:07:59 +0000 (12:37 +0530)] 
net: ti: icssg: Add Firmware Interface for ICSSG Ethernet driver.

Add firmware interface related headers and macros for ICSSG Ethernet
driver. These macros will be later used by the ICSSG ethernet driver.

Reviewed-by: Ravi Gunasekaran <r-gunasekaran@ti.com>
Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
5 weeks agoMerge patch series "zlib: Address CVE-2016-9841"
Tom Rini [Fri, 12 Apr 2024 18:57:13 +0000 (12:57 -0600)] 
Merge patch series "zlib: Address CVE-2016-9841"

Michal Simek <michal.simek@amd.com> says:

It looks like that only CVE-2016-9841 is not fixed and this series is
trying to address it. The first two patches are just preparation based on
changes which happened in past. The third one is actual fix and the last
one is following what has been done in Linux kernel long time ago and don't
use incorrect zlib version string.

I tested it with and I can't see any issue.
./test/py/test.py --bd sandbox --build -s

And gitlab CI is also not showing any issue.

5 weeks agozlib: Remove incorrect ZLIB_VERSION
Michal Simek [Wed, 27 Mar 2024 14:14:53 +0000 (15:14 +0100)] 
zlib: Remove incorrect ZLIB_VERSION

Get rid of zlib version which is not correct because of U-Boot related
changes and various CVE backports.

The change in inspired by Linux kernel commit 4f3865fb57a0 ("[PATCH]
zlib_inflate: Upgrade library code to a recent version") which described
ZLIB_VERSION removal as

"This patch also removes ZLIB_VERSION as it no longer has a correct value.
We don't need version checks anyway as the kernel's module handling will
take care of that for us.  This removal is also more in keeping with the
zlib author's wishes (http://www.zlib.net/zlib_faq.html#faq24) and I've
added something to the zlib.h header to note its a modified version."

Author describes wish to follow this guidance at
https://www.zlib.net/zlib_faq.html#faq24:
"The license says that altered source versions must be "plainly marked". So
what exactly do I need to do to meet that requirement?

You need to change the ZLIB_VERSION and ZLIB_VERNUM #defines in zlib.h. In
particular, the final version number needs to be changed to f, and an
identification string should be appended to ZLIB_VERSION. Version numbers
x.x.x.f are reserved for modifications to zlib by others than the zlib
maintainers. For example, if the version of the base zlib you are altering
is 1.2.3.4, then in zlib.h you should change ZLIB_VERNUM to 0x123f, and
ZLIB_VERSION to something like 1.2.3.f-zachary-mods-v3. You can also update
the version strings in deflate.c and inftrees.c."

But U-Boot is not exact version that's why following the same style which
has been used by Linux kernel where ZLIB_VERSION is completely removed.

Signed-off-by: Michal Simek <michal.simek@amd.com>
5 weeks agozlib: Port fix for CVE-2016-9841 to U-Boot
Michal Simek [Wed, 27 Mar 2024 14:14:52 +0000 (15:14 +0100)] 
zlib: Port fix for CVE-2016-9841 to U-Boot

The patch corresponds to zlib commit at
https://github.com/madler/zlib/commit/9aaec95e82117c1cb0f9624264c3618fc380cecb
which declares that it is fixing CVE-2016-9841.
Here is c&p description from zlib:
"Use post-increment only in inffast.c.

An old inffast.c optimization turns out to not be optimal anymore
with modern compilers, and furthermore was not compliant with the
C standard, for which decrementing a pointer before its allocated
memory is undefined. Per the recommendation of a security audit of
the zlib code by Trail of Bits and TrustInSoft, in support of the
Mozilla Foundation, this "optimization" was removed, in order to
avoid the possibility of undefined behavior."

Origin patch also updates the code when
INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR is present but this code is not
the part of U-Boot hence it is ignored.
Also do not deal with state->sane variable which requires other changes
which are also not the part of zlib.

Commit 92faa8b10918 ("zlib: handle overflow while calculating available
stream input size") is kept in inffast.c too not to break described case.

Signed-off-by: Michal Simek <michal.simek@amd.com>