| Age | Commit message (Collapse) | Author |
|
https://git.u-boot-project.org/u-boot/custodians/u-boot-rockchip into next
- Fixed possible SPI hangs when only PICO is routed (TX-only),
- Added support for ROC-RK3399-PC-PLUS (via roc-pc-rk3399_defconfig)
|
|
The block cache keys its entries on (iftype, devnum, start, blkcnt,
blksz) but not on the block descriptor's hardware partition. Devices
that expose several independent address spaces through blk_desc->hwpart
therefore alias each other in the cache: once a block has been cached
for one hwpart, reads of the same LBA on another hwpart return the data
cached for the first one.
For MMC this is masked because switching hwpart invalidates the cache,
but a UBI block device selects the target volume purely through hwpart
and does not invalidate on switch, so scanning several UBI volumes
returns the first volume's blocks for all of them.
Add hwpart to the cache key so entries for different hardware partitions
(or UBI volumes) are kept distinct.
Fixes: e40cf34a29f1 ("drivers: block: add block device cache")
Signed-off-by: Daniel Golle <[email protected]>
|
|
Target-side configuration verification builds the signed-region list from
every image-reference property in the selected configuration. Host-side
signing still uses either the signature node sign-images property or the
legacy kernel/fdt/script default list.
This lets mkimage generate configuration signatures which U-Boot cannot
verify when the configuration references other image types, such as
firmware, loadables or ramdisk entries. It also lets the host and target
disagree when sign-images names only a subset of the configuration images.
Build the host-side signing list from the configuration properties in the
same way as target-side verification. Use one shared property classifier so
the host and target cannot drift apart again. This makes signed
configurations cover the root node, the configuration node, every
referenced image node, and its hash, cipher and dm-verity subnodes,
regardless of image type.
Warn when a legacy sign-images property is present, since it no longer
limits the signed image list. Require every referenced image to have at
least one hash subnode. Add sandbox coverage proving that a firmware
reference omitted from sign-images is still recorded in hashed-nodes and
verified.
Update the signed-configuration documentation to describe the same rule and
the hash-subnode requirement.
Fixes: 2092322b31cc ("boot: Add fit_config_get_hash_list() to build signed node list")
Signed-off-by: James Hilliard <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
|
|
https://git.u-boot-project.org/u-boot/custodians/u-boot-mediatek into next
* New HDMI PHY and I2C DDC drivers, default EDID_ADDR macro
* MT8189 clock qualifier fix
* Phase-aware PSCI reset (MT8195/MT8365)
* dwc_eth_qos MT8366 support
* MediaTek TPHY v3 hardware support
* mtk_snor mt8188/mt8189 compatible-string cleanup
* MT6358/MT6366 PMIC regulator + pwrap support
* MediaTek pinctrl Kconfig cleanup (per-SoC symbols → single driver + TARGET_*)
* New MT8366 pinctrl driver + dt-bindings header
* MediaTek serial driver clock-handling fixes
|
|
|
|
Add a header with MT8366 pin function definitions for use in devicetrees.
Upstreaming of MT8366 has not even started yet, so we will have to
carry a downstream version of this for some time.
Signed-off-by: Deep Pani <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: David Lechner <[email protected]>
|
|
Add a new driver for MediaTek MT6366 PMIC regulators. The register
layout is compatible with MT6358, so the driver itself is called
"mt6358". Only support for MT6366 is added currently for use with
the MediaTek Genio 360 EVK.
Reviewed-by: Julien Stephan <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: David Lechner <[email protected]>
|
|
Make lmb_free() return -EFAULT when the requested memory region is not
allocated, instead of the generic -1 error value.
Document the updated error code in the public API comment and change the
LMB unit test to check for the new -EFAULT errno value.
Signed-off-by: Jonas Karlman <[email protected]>
Reviewed-by: Randolph Sapp <[email protected]>
|
|
lmb_alloc_addr() is documented to return -EINVAL when the requested
memory region is not part of the LMB memory map. However, -EINVAL is
also used to e.g. indicate that a NULL pointer is passed as the addr
parameter or when the requested memory region partially overlaps an
existing region.
Change lmb_alloc_addr() to return -EFAULT when the requested memory
region is not part of the LMB memory map to make the type of error known
to callers. Also extend unit tests to validate that the return code has
stay the same when the requested memory region partially overlaps.
No caller of lmb_alloc_addr() is checking what type of error code is
returned, so this change has no intended behavior change.
Signed-off-by: Jonas Karlman <[email protected]>
Reviewed-by: Randolph Sapp <[email protected]>
|
|
The spi-peripheral-props binding shipped in dts/upstream allows a bus
width of 0, meaning no RX or TX is possible on this device. The
switches in spi_slave_of_to_plat() only handle 1/2/4/8, so a width of
0 falls through to the default case and warns "spi-rx-bus-width 0 not
supported" on every boot, even though the devicetree is valid per the
binding. The fact that the wire is missing is then dropped from
plat->mode.
Map 0 to new SPI_NO_TX/SPI_NO_RX mode bits, as Linux has done since
v5.12 ("spi: Add SPI_NO_TX/RX support", mainline d962608ce218).
Bits 16 and 17 are the first free mode bits.
Mapping the bits is not enough on its own, as Quentin pointed out:
nothing would stop a caller from asking for a transfer in a direction
that has no wire, and every controller driver would need its own
guard. Validate centrally in dm_spi_xfer() instead, matching Linux's
__spi_validate(): a din on a SPI_NO_RX device or a dout on a SPI_NO_TX
device fails with -EINVAL before it reaches the driver. A new sandbox
test covers both rejections.
This comes up on devices with no MISO line at all, such as a
write-only SPI display described with spi-rx-bus-width = <0>.
Signed-off-by: Cole Munz <[email protected]>
Acked-by: Quentin Schulz <[email protected]>
Link: https://patch.msgid.link/ae6a85d6f985b63c8f5a3fe8deeab89d79757b14.1787309754.git.Munzzyy1@proton.me
Signed-off-by: Quentin Schulz <[email protected]>
|
|
https://git.u-boot-project.org/u-boot/custodians/u-boot-dfu into next
CI: https://git.u-boot-project.org/u-boot/custodians/u-boot-dfu/-/pipelines/1016
u-boot-dfu-next-20260819
Android:
* avb: Make the AVB root key source pluggable
* avb: Add OP-TEE root key digest provider
* avb: Add board-specific root key provider
* avb: Update docs for root key source
|
|
V4H Sparrow Hawk
Switch Retronix R-Car V4H Sparrow Hawk to distro boot command to obtain
generic distro boot capability. The boot scripts now search each of the
SD, NVMe, USB boot devices for either a fitImage with embedded script,
regular boot script, or extlinux.conf, and boot the first one found.
This allows for standardized boot of the device, similar to other such
devices.
There are slight customizations to the distro boot commands, specifically
the PCIe controller is started before USB controller, because the USB
controller is attached to the PCIe controller. Furthermore, USB ethernet
boot is not enabled.
Signed-off-by: Marek Vasut <[email protected]>
|
|
R-Car V4H Sparrow Hawk
Add bootloader update environment to Retronix R-Car V4H Sparrow Hawk.
The "update_loader_from_{mmc,nvme,usb}" script updates U-Boot "flash.bin"
in SPI NOR at offset 0x0 from SD card, NVMe SSD and USB mass storage
device respectively. Each script sets up parameters for the generic
update script "update_loader_from_blk", which can be used to update
the "flash.bin" from any block device. The parameters are these:
- renesas_update_loader_iface ....... Update block device (mmc, nvme, usb, ...)
- renesas_update_loader_dev ......... Update block device number (0, 1, ...)
- renesas_update_loader_part ........ Update block device partition (1, 2, ...)
- renesas_update_loader_filename .... Update file name (flash.bin)
- renesas_update_loader_sf_offset ... SPI NOR target offset (0x0)
Signed-off-by: Marek Vasut <[email protected]>
|
|
V4H Sparrow Hawk
Add PCIe controller firmware handling environment to Retronix R-Car
V4H Sparrow Hawk. The "renesas_rcar_gen4_load_firmware" script is used
to load PCIe controller firmware from SPI NOR offset 0x300000. The
"flash_pcie_fw_to_qspi_from_mmc" script is used to write the firmware
from SD card to SPI NOR offset 0x300000 .
Signed-off-by: Marek Vasut <[email protected]>
|
|
Drop the N5X board-local CFG_EXTRA_ENV_SETTINGS override and use the
common SoC64 environment from socfpga_soc64_common.h, matching other
SoC64 boards.
Do not enable CONFIG_DISTRO_DEFAULTS. N5X continues to use the legacy
common env helpers referenced by BOOTCOMMAND (fatscript and mmc* /
mmcfit*) with a board u-boot.scr that only enables the FPGA bridges,
which matches the current N5X SD image layout.
Also set CONFIG_SYS_LOAD_ADDR=0x02000000, matching Agilex/S10, so kernel
and FIT loads sit above the 32 MiB /reserved-memory svcbuffer at 0x0 in
socfpga_agilex.dtsi (included by the N5X board DT). Drop
CONFIG_SYS_BOOTM_LEN=0x2000000 so the ARM64 default (128 MiB) applies;
the previous 32 MiB override is too small for current images.
Tested-on: Intel SoCFPGA N5X SoCDK hardware (ddr retention, linux boot).
Signed-off-by: Tien Fong Chee <[email protected]>
Signed-off-by: Chen Huei Lok <[email protected]>
|
|
The struct list_head dmtag_list, struct udevice *dm_root, struct
list_head uclass_root_s and struct list_head *uclass_root fields in
struct global_data takes up 24/48 bytes of memory on ARMv7/AArch64.
However, these fields are only used when $(PHASE_)DM is enabled.
Guard driver model related fields using CONFIG_IS_ENABLED(DM) to save
memory space when U-Boot proper is built with DM=y and xPL is built
without xPL_DM.
Signed-off-by: Jonas Karlman <[email protected]>
Reviewed-by: Tom Rini <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
|
|
Move the SCP initialization from board file into remoteproc driver
where this is supposed to be. Add SCP MDLC DT node and describe the
SCP reset controlled by the SCP MDLC in remoteproc DT node. Adjust
the driver to control the SCP reset via reset framework instead of
the current board-specific register poking.
Signed-off-by: Marek Vasut <[email protected]>
|
|
spl_load_legacy_lzma() lives in common/spl/spl_legacy.c, which is only
built when CONFIG_$(PHASE_)LEGACY_IMAGE_FORMAT is set, but the call site
in _spl_load() is guarded by CONFIG_SPL_LZMA alone. Enabling LZMA
decompression without the legacy image format therefore fails to link:
ld: common/spl/spl.o: in function `_spl_load':
include/spl_load.h:73: undefined reference to `spl_load_legacy_lzma'
CONFIG_SPL_LZMA is also needed to support LZMA-compressed payloads with a
FIT-only SPL, so add the missing condition to avoid including the legacy
image related function call when legacy image support is not built.
Signed-off-by: Alexey Charkov <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
|
|
EDID info is most of the time stored at address 0x50, so define a macro
for it in the common edid.h header.
Also drop the now-duplicate definition from the Rockchip edp_rk3288.h
header and rely on the common one.
Signed-off-by: Julien Stephan <[email protected]>
Reviewed-by: Heiko Schocher <[email protected]>
Link: https://patch.msgid.link/20260727-mt8188-add-ddc-i2c-driver-v2-1-bf1c45fcd588@baylibre.com
Signed-off-by: David Lechner <[email protected]>
|
|
https://git.u-boot-project.org/u-boot/custodians/u-boot-rockchip
CI: https://git.u-boot-project.org/u-boot/custodians/u-boot-rockchip/-/pipelines/972
- Disable JTAG for RK3576. Fix for boards potentially not being able to
use SD card anymore due to automatic switch to JTAG based on level of
one specific pin,
|
|
https://git.u-boot-project.org/u-boot/custodians/u-boot-net
Pull request net-20260813.
net:
- phy: dp83867: enable extended read / write for driver
- phy: fix duplicate eth_phy binding
- Drop unnecessary device_set_name
- dwc_eth_xgmac: Return -ENODEV when phy_connect() fails
- nfs: clean up bounds checks in nfs_readlink_reply()
- rtl8169: add support for RTL8126A and RTL8127A
- srand_mac(): fix -ENODEV crash with CONFIG_DM_RNG
net-legacy:
- Fix out-of-bounds write in IP fragment reassembly
- test: net: add regression test for IP reassembly overflow
net-lwip:
- Add tftpsrv command
- Handle chained pbufs in transmit path
- sntp: fix netif leak when ntpserverip is unset
- wget: free mbedtls x509 cert context to avoid memory leak
- Fix DHCP fine timer interval
|
|
AVB's whole chain of trust reduces to a single public key, and that key is
currently hard-coded in U-Boot as the AVB reference/test key, whose private
half is public. That is fine for bring-up but unusable for a locked
product, which must anchor its root of trust in something an attacker
cannot swap out -- a hash fused into the SoC, a secure element -- rather
than a blob compiled into the bootloader.
Make the source of the trusted key digest selectable so a board can decide
where its root of trust lives, without touching the verification logic and
with any lookup failure treated as untrusted. The built-in key remains the
default, so existing users are unaffected; the sources a production device
actually needs are added in the following patches.
Signed-off-by: Igor Opaniuk <[email protected]>
Reviewed-by: Mattijs Korpershoek <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Mattijs Korpershoek <[email protected]>
|
|
Add firmware interface for UFS access but also keep IO interface when
firmware is not enabled.
Signed-off-by: Michal Simek <[email protected]>
Link: https://patch.msgid.link/6419fe4f6f1f451aee624c7762b7aa690d50e498.1784870711.git.michal.simek@amd.com
|
|
The GIC redistributor base address depends on the part: the 2VM3654
device has 4 APU cores and 3 GIC ITS blocks, which shifts the
redistributor region up compared to the base 8 core / single ITS part.
A single U-Boot binary must therefore pick the right base at runtime
instead of relying on the compile-time GICR_BASE used by the generic
lowlevel_init().
Add a SoC specific lowlevel_init() that reads the PMC TAP IDCODE and
selects GICR_BASE_2VM3654 for the 2VM3654 device, otherwise keeps the
default GICR_BASE. CONFIG_ARMV8_MULTIENTRY is not supported on Versal
Gen 2 so the generic slave handling is intentionally dropped.
Signed-off-by: Michal Simek <[email protected]>
Link: https://patch.msgid.link/4c0dc2b6e29d300db15be0844879ab4d028d98a9.1783493630.git.michal.simek@amd.com
|
|
Randolph Sapp <[email protected]> says:
Resubmitting with a synced rm-cfg.yaml and tuned diff parameters. We desperately
need to add documentation about how the rm-cfg.yaml is generated here. And the
beagleplay needs to get it's rm-cfg resynced with am62x at some point.
Since it's been decided internally to follow along with what Zephyr is doing and
make a completely separate device tree for the 1GB + eMMC Industrial board, I'm
resubmitting v3 with the variant support patch dropped. We will circle back to
enable the Industrial part once the dt has been accepted kernel side.
See the following link for more information regarding that decision:
https://lore.kernel.org/u-boot/[email protected]/
Add initial board support for the PocketBeagle 2 from BeagleBoard.org. This is
based on the current official series from Robert Nelson [1] and work from Bryan
Brattlof [2].
Now that the various memory issues have been resolved we can clearly see at
runtime that there's an issue with the current device. One of our reservations
overlaps with the u-boot stack. To get around this we'll need to change the
relocation address to something we know will not collide.
[1] https://github.com/beagleboard/u-boot/tree/v2026.01-am62-pocketbeagle2
[2] https://github.com/bryanbrattlof/beagleboot/tree/b4/pb2i
Link: https://lore.kernel.org/r/[email protected]
|
|
Add support for EFI capsules for this device. One large caveat is that
the partition holding boot binaries cannot be the ESP partition due to
the following ROM limitations.
- The boot disk must be MBR
- The boot partition must be labeled 0x0c with a boot flag
A separate ESP partition should be provided for EFI capabilities.
Signed-off-by: Randolph Sapp <[email protected]>
|
|
Add initial board support for the PocketBeagle 2, based on Robert Nelson
and Bryan Brattlof's work. Unify all debug consoles to main_uart6. Use
DDR config v10.32 from our sysconfig tool [1] for Kingston's memory [2],
(4Gb Desnity with a CL of 11 and CWL of 9). Add support for the
SPL_TEXT_BASE config parameter. Ensure all files have a summary and SPDX
identifier.
Also, use board_get_usable_ram_top() to fixup our relocaddr since
otherwise the u-boot stack reservation will collide with the
wkup_r5fss0_core0_memory_region.
[1] https://dev.ti.com/sysconfig
[2] https://mm.digikey.com/Volume0/opasdata/d220001/medias/docus/6465/D2516AN9EXGXN-TU.pdf
Signed-off-by: Randolph Sapp <[email protected]>
Reviewed-by: Andrew Davis <[email protected]>
|
|
v7.1"
Alexey Charkov <[email protected]> says:
U-Boot's <linux/math64.h> was last really synced with Linux in 2017 by
commit 0342e335ba88 ("lib: div64: sync with Linux"). Since then it has
only been patched locally twice, and both times in ways that increased
the divergence rather than tracking upstream.
The one that prompted this series is DIV64_U64_ROUND_UP(). Commit
3adc17f60bf8 ("lib: div64: Add support for round up of div64_u64") added
it inside the #if BITS_PER_LONG == 64 branch, whereas upstream defines
it unconditionally after that block, so any 32-bit user fails to build.
While auditing the header, two bugs turned up in lib/div64.c, so this
series starts with those. Both are 32-bit only:
- div64_u64() and div64_u64_rem() shifted by 1 + fls(high) instead of
fls(high), losing a bit of the divisor. Linux fixed this in 2019, while
U-Boot never picked it up.
- div64_s64() used abs() on s64 operands. U-Boot's abs() is not 64-bit
safe: its own comment says to use abs64() instead. Both operands were
silently truncated to 32 bits.
Transitive headers that affect what <linux/math64.h> offers were checked
too. <linux/math.h> and <vdso/math64.h> have no U-Boot equivalent and
are not needed; do_div() comes from U-Boot's <div64.h> in place of
<asm/div64.h>.
Deliberately left out of this resync:
- CONFIG_ARCH_SUPPORTS_INT128 is tested by <linux/math64.h> but isn't
defined anywhere in U-Boot, so the __int128 fast paths for
mul_u64_u32_shr() and mul_u64_u64_shr() are dead code on arm64,
riscv64 and x86_64 where they could have been useful. Wiring it up in
the arch Kconfigs looks like an easy win (but could result in subtle
behavior changes or code size drift, so needs to be approached
separately).
- abs() in <linux/kernel.h> diverges from Linux and is not 64-bit safe.
Patch 2 and patch 5 work around it with abs64() at the two call
sites that need it. Replacing it with Linux's __abs_choose_expr()
version would be the root fix, but changes abs()'s return type from
long to typeof(x) for every caller in the tree.
- abs_diff() lives in <linux/math64.h> here rather than upstream's
<linux/math.h>; it could move to <linux/kernel.h> alongside abs().
- mul_u64_add_u64_div_u64() and the mul_u64_u64_div_u64() macros are
not ported, as they need a u128 type and ~110 lines of
lib/math/div64.c that nothing in U-Boot calls yet.
Build tested with both gcc and clang for evb-rk3288-rk808 (32-bit LE),
generic-rk3576 (64-bit LE), malta (32-bit big-endian, which is what
actually compiles the __BIG_ENDIAN union paths), plus sandbox and
tools-only. No size change on any phase.
Link: https://git.u-boot-project.org/u-boot/contributors/alchark/u-boot/-/pipelines/812
Link: https://lore.kernel.org/r/[email protected]
|
|
U-Boot's copy was last synced with Linux in 2017 by commit 0342e335ba88
("lib: div64: sync with Linux"). Since then it has only been touched
twice locally, and both times in ways that increased the divergence
rather than tracking upstream. Take the file from the v7.1 tag.
The immediate motivation is DIV64_U64_ROUND_UP(). Commit 3adc17f60bf8
("lib: div64: Add support for round up of div64_u64") added it inside
the #if BITS_PER_LONG == 64 branch, whereas Linux defines it
unconditionally after that block. Any 32-bit user therefore fails to
compile:
error: implicit declaration of function 'DIV64_U64_ROUND_UP';
did you mean 'DIV_ROUND_UP'?
This has been surfaced while reworking fractional PLL logic for Rockchip
RK3588/RK3576, which unexpectedly failed to compile on 32-bit variants [1].
Newly available as a result: DIV64_U64_ROUND_UP() on 32-bit,
DIV_U64_ROUND_UP(), DIV64_U64_ROUND_CLOSEST(), DIV_U64_ROUND_CLOSEST(),
DIV_S64_ROUND_CLOSEST(), roundup_u64(), add_u64_u32() and
mul_s64_u64_shr(), plus upstream's kernel-doc for everything that was
already here and __always_inline on mul_u64_u32_shr()/mul_u64_u64_shr().
The file is otherwise a verbatim copy of v7.1. Four deviations:
- The includes. U-Boot has no <linux/math.h>, no <asm/div64.h> and no
<vdso/math64.h>. do_div() comes from U-Boot's <div64.h>,
BITS_PER_LONG from <linux/bitops.h>, and abs64() from
<linux/kernel.h>, which is where U-Boot keeps the rest of what
upstream puts in <linux/math.h>.
- mul_s64_u64_shr() uses abs64() rather than abs(), because U-Boot's
abs() evaluates its argument as int for anything that is not a long.
- mul_u64_add_u64_div_u64() and the mul_u64_u64_div_u64() and
mul_u64_u64_div_u64_roundup() macros built on it are not ported.
They would need ~110 lines of lib/math/div64.c brought along, plus a
u128 type and OPTIMIZER_HIDE_VAR(), and U-Boot has no users for them
yet.
- abs_diff(), added locally by commit f1f4a1d1d835 ("compat: math64:
add abs_diff()"), is kept. Upstream has it in <linux/math.h>.
Build tested for evb-rk3288-rk808 (32-bit LE), generic-rk3576 (64-bit
LE), malta (32-bit BE, which is what compiles the __BIG_ENDIAN union
paths in mul_u64_u64_shr() and mul_u64_u32_div()), sandbox and
tools-only, with both gcc and clang. All six DIV*_ROUND_* macros plus
roundup_u64(), mul_s64_u64_shr(), add_u64_u32() and abs_diff() were
additionally instantiated on 32-bit ARM to confirm they now resolve.
Closes: https://patchwork.ozlabs.org/project/uboot/patch/[email protected]/#3731361 [1]
Signed-off-by: Alexey Charkov <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
|
|
__iter_div_u64_rem() is only split out in Linux for its vDSO header, which
has no use in U-Boot. Inline the body of the helper directly into its only
user, which is the iter_div_u64_rem() wrapper in this same file, and drop
the static inline, so that a subsequent resync of include/linux/math64.h
against Linux does not have to carry an exception for it.
include/vdso/math64.h is deliberately not created: its only other resident,
mul_u64_u32_add_u64_shr(), has no U-Boot user.
No functional change: the generated code is identical, verified by
comparing objdump -d of lib/div64.o before and after for
evb-rk3288-rk808_defconfig. The compiler was already inlining the sole
call.
iter_div_u64_rem() itself has no in-tree callers either, but it is
upstream API and is left in place.
Signed-off-by: Alexey Charkov <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
|
|
https://git.u-boot-project.org/u-boot/custodians/u-boot-snapdragon into next
* Support for building mbn files during the build with the new mkmbn
tool.
* Remove UCLASS_SMEM and the old smem driver (Qualcomm was the only
user of both), replace it with a port of the Linux SMEM driver.
* Refactor memory map parsing and support reading the memory layout from
the SMEM database.
* Set the serial# from SMEM.
* Introduce initial support for SPL in mach-snapdragon.
* Add a defconfig for sm8650 with U-Boot as the primary bootloader.
* Workaround an MMC issue by limiting the transfer size.
* Add support for SM7125/SC7180 (clock/pinctrl drivers and UFS phy).
* Add support for the QCS6490 powered Rubik Pi 3 board and document it.
|
|
Hardware of various vendors, but very notably Rockchip, often uses
32-bit registers where the upper 16-bit half of the register is a
write-enable mask for the lower half.
Add hw_bitfield.h with two macros: FIELD_PREP_WM16, and
FIELD_PREP_WM16_CONST. The latter is a version that can be used in
initializers, like FIELD_PREP_CONST.
Import hw_bitfield.h from Linux commit 21368fcbb124 ("bitmap: introduce
hardware-specific bitfield operations"), first introduced in v6.18-rc1.
This contains two changes compared to the Linux version:
- include of linux/limit.h was dropped
- use of const_true() in FIELD_PREP_WM16_CONST() was dropped
Signed-off-by: Jonas Karlman <[email protected]>
Acked-by: Quentin Schulz <[email protected]>
Reviewed-by: Tom Rini <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Quentin Schulz <[email protected]>
|
|
Fix typo in enum scmi_config_type in include/scmi_protocols.h.
The enum value SCMI_PIN_DEFUALT was misspelled and should be
SCMI_PIN_DEFAULT to match the correct English spelling. This fixes
potential compilation issues and improves code clarity for any code
that references this enum value
Fixes: 0cb160f1b629 ("scmi: pinctrl: add pinctrl driver for SCMI")
Signed-off-by: Udit Kumar <[email protected]>
Signed-off-by: Peng Fan <[email protected]>
|
|
According to the TPS65219 datasheet, selectors 0x38 through 0x3f
saturate at 3.4 V for LDO1 and LDO2.
For LDO3 and LDO4, selectors 0x00 through 0x0c saturate at
1.2 V, while selectors 0x36 through 0x3f saturate at 3.3 V.
The driver currently uses 0x56, 0x12, and 0x54 as selector boundary
values. These values do not match the selector boundaries defined by
the datasheet.
Use the correct selector boundary values of 0x38, 0x0c, and 0x36
for interpolation.
Fixes: b5cfa0c7ca4f ("power: add driver for the TPS65219 PMIC")
Signed-off-by: Kumara Bhimeswararao Matsa <[email protected]>
Acked-by: Maarten Brock <[email protected]>
Signed-off-by: Peng Fan <[email protected]>
|
|
Preparing to add the AMD/Xilinx SCMI vendor protocol driver, support probe
of SCMI vendor ID 0x81. Add the protocol ID, the per-agent protocol device
slot, the probe/lookup switch cases and the scmi command name, gated by a
Kconfig option for conditional compilation.
The same wiring has been done by commit 7830ccc77a13 ("firmware: scmi:
Support probe vendor ID 0x80 and 0x82").
Signed-off-by: Michal Simek <[email protected]>
Signed-off-by: Peng Fan <[email protected]>
|
|
touched
Commit aa5ef3c0a752 ("bootretry: check for bootretry variable changes")
broke the feature where one can define different keys for "delaying"
versus "stopping" boot. The way the latter is implemented is by the code
in autoboot.c calling bootretry_dont_retry() when the stop sequence
has been detected, and that simply sets the retry_time variable in
bootretry.c to -1.
However, with the mentioned commit, that is unconditionally overridden
on every command, since it gets re-initialized from either the
bootretry environment variable or CONFIG_BOOT_RETRY_TIME, thus making
"delay" and "stop" effectively the same.
To fix that, while still picking up changes to the bootretry
environment variable, use the proper mechanism for C code to be
notified about changes to environment variables.
Since the callback is invoked before the change has actually been done
to the environment (callbacks can reject the change from taking
effect), we cannot simply call the existing
bootretry_init_cmd_timeout() from the callback, as its env_get() would
not see the new value. Instead, refactor most of it to an internal
bootretry_parse(), and call that with the new value (which is NULL in
the case bootretry is being deleted, so that works exactly as it
should).
Signed-off-by: Rasmus Villemoes <[email protected]>
|
|
U-Boot running as a coreboot payload obtains serial console
information either from the coreboot table or from the ACPI DBG2
table.
When serial console support is disabled in coreboot, the coreboot
table does not contain serial information. In this case U-Boot falls
back to parsing the DBG2 table.
Some AMD platforms or any other platforms that uses memory-mapped I/O
advertise the debug UART using DBG2 subtype 0x0012 ("16550-compatible
with parameters defined in Generic Address Structure"). U-Boot
currently accepts only subtype 0x0000, causing DBG2 UART detection to
fail and leaving no console output.
Accept subtype 0x0012 as well and keep the existing handling logic.
Signed-off-by: Desapogu Jayaramudu <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
|
|
Daniel Golle <[email protected]> says:
A signed FIT configuration can delegate the integrity of a (potentially
large) root filesystem image to the kernel's dm-verity instead of having
U-Boot hash the whole payload at boot: the FIT carries a "dm-verity"
subnode with the roothash, salt and block parameters, U-Boot passes the
roothash to Linux through the dm-mod.create bootargs, and dm-verity then
validates the filesystem block by block against it.
For that to be safe the roothash has to be trusted, and in a signed
configuration the only thing that establishes trust is the configuration
signature. The roothash was not covered by it. fit_config_add_hash()
collected the image node, its hash subnodes and its cipher subnode into
the signed region, but not the dm-verity subnode, so the roothash, the
sole integrity anchor for the filesystem, was left unsigned.
The result is a verified-boot bypass for the root filesystem: an
attacker who can rewrite the boot medium can replace the filesystem,
recompute a matching dm-verity tree, write the new roothash into the
unsigned dm-verity subnode, and the configuration signature still
verifies. dm-verity then faithfully validates the malicious filesystem
against the attacker's roothash.
This series closes the gap.
Link: https://lore.kernel.org/r/[email protected]
|
|
A dm-verity protected filesystem image is not hashed by U-Boot; its
integrity is delegated to the kernel, which trusts the roothash taken
from the FIT dm-verity subnode. For that chain of trust to hold, the
roothash (and salt) must be part of the region covered by the
configuration signature, otherwise an attacker can replace both the
filesystem and the roothash while keeping the signature valid.
Add two independent checks of this property:
- test/py/tests/test_fit_verity_sign.py signs a configuration that
references a filesystem image carrying a dm-verity subnode, then
confirms that tampering the roothash or the salt is rejected by
fit_check_sign. A control that tampers a byte known to be signed
proves the check can fail. A matching page is added under
doc/develop/pytest/ so the module documentation is rendered with
the rest of the generated docs.
- test/boot/fit_verity.c gains a runtime unit test that builds the
exact node list the configuration signature is computed over,
turns it into hashed regions and checks both that the roothash
bytes fall inside a signed region and that tampering them changes
the hash. It needs no private key, so it also runs on real devices
and uses the same hash path a device would.
To let the unit test build the signed-region node list, rename the
config node-list helper to fit_config_get_signed_nodes(), make it
non-static and declare it in image.h.
Signed-off-by: Daniel Golle <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
|
|
https://git.u-boot-project.org/u-boot/custodians/u-boot-sh
This includes temporary U-Boot DT ECC carveouts for R-Car Gen5, they
will be dropped from U-Boot DTs once OF_UPSTREAM DTs get re-synced.
This also includes RPC-IF support for R-Car Gen5 and env storage in RPC
HF.
This also includes an update for R-Car Gen5 UFS controller driver.
|
|
Enable RPC and HyperFlash support on R-Car R8A78000 X5H Cortex-M33 RSIP.
RPC is used both to update the HF content, which includes the U-Boot on
RSIP itself and SCP firmware, as well as access the U-Boot environment
for U-Boot on RSIP.
Signed-off-by: Marek Vasut <[email protected]>
|
|
https://git.u-boot-project.org/u-boot/custodians/u-boot-imx
CI: https://git.u-boot-project.org/u-boot/custodians/u-boot-imx/-/pipelines/906
- Fix a boot regression on i.MX7 related to the system counter.
- Add Aquila iMX95 0243 PID4.
- Update phycore_imx8mm DDR timings.
- Add FRDM-IMX95 initial support.
- Handle FCFB header during SPI NOR boot and CST backend selection.
|
|
Allow smem to be optional for Qualcomm platforms by providing stub
functions.
Reviewed-by: Neil Armstrong <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
Tested-by: Sumit Garg <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Casey Connolly <[email protected]>
|
|
Implement socinfo support to fetch the serial number if available.
Tested-by: Sumit Garg <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Casey Connolly <[email protected]>
|
|
Port over the smem code to U-Boot and ensure the smem region gets mapped
after dcache is enabled.
Tested-by: Sumit Garg <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Casey Connolly <[email protected]>
|
|
Import the SMEM driver from Linux.
Reviewed-by: Neil Armstrong <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
Tested-by: Sumit Garg <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Casey Connolly <[email protected]>
|
|
SMEM is a highly Qualcomm specific interface, while having a dedicated
UCLASS for it offers a nice abstraction, for things like memory layout
parsing we need to use it before the driver model is available.
Therefore, it doesn't make sense to fit SMEM into the driver model.
Instead let's adopt a model closer to Linux, and parse SMEM really early
during boot (as soon as we have the FDT).
This reverts commit 7b384eccc785b596f68448b155cbda26df57fb23.
Reviewed-by: Sumit Garg <[email protected]>
Reviewed-by: Neil Armstrong <[email protected]>
Tested-by: Sumit Garg <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Casey Connolly <[email protected]>
|
|
https://git.u-boot-project.org/u-boot/custodians/u-boot-riscv
CI: https://git.u-boot-project.org/u-boot/custodians/u-boot-riscv/-/pipelines/884
- board: MPFS: add hardware RNG support and fix RNG consumers
- board: sophgo: add support for Milk-V Duo 256M
|
|
Add boot support and peripherals like eMMC/SD, UART, I2C, GPIO, ENETC0/1
and PCIE0/1 for iMX95 15x15 FRDM.
Updated doc for build instructions.
Signed-off-by: Lei Xu <[email protected]>
Signed-off-by: Joseph Guo <[email protected]>
|
|
Add U-Boot support for Milk-V Duo 256M.
This board has a different SoC compared to the Milk-V Duo 64M, it uses
the Sophgo SG2002 instead of the Sophgo CV1800B. Both SoCs share many
common IP blocks, so this board reuses the existing cv1800b CPU support.
The board shares the same 'board.c' with Milk-V Duo 64MB (CV1800B), so
use the same file for now.
Link: https://milkv.io/docs/duo/getting-started/duo256m
Signed-off-by: Hiago De Franco <[email protected]>
Acked-by: Leo Yu-Chi Liang <[email protected]>
|