v2026.10.0

Sascha Hauer s.hauer at pengutronix.de
Tue Oct 20 07:37:20 PDT 2026


Hi All,

Here comes barebox-2026.10.0

This release brings us Raspberry Pi 5 support along with a new Broadcom
SDHCI driver. Also new drivers: A UEFI USB driver which can UEFI
provided USB devices and a PCA9450 PMIC driver which is commonly used on
i.MX8 boards.

Ahmad has written a Threat model in which he has written down what we
consider a security issue and what not. It's worth a read, check the
documentation.

Barebox now has a OSS-Fuzz integration which lives in the tree and is
exercised in the CI. The outcome has already led to several patches
also in this release.

Also worth noting barebox can now not only register and initialize USB
devices, but also unregister them when they are gone. While previously
a 'usb' command would only add devices, it now syncs the barebox state
with the hardware state, so also unregisters devices.

As usual, see below for a full list of patches that went into this
release.

Have Fun!
  Sascha

----------------------------------------------------------------
Ahmad Fatoum (186):
      param: fix indirect call through incompatible function pointer
      filetype: fix dead code in RISC-V barebox image detection
      decompress_unlz4: fix heap-buffer-overflow on malformed input
      decompress_bunzip2: fix heap-buffer-overflow on truncated input
      decompress_bunzip2: fix heap overflow on long symbol runs
      jsmn: fix out-of-bounds access in token navigation functions
      partitions: efi: validate the GPT partition entry size
      driver: report registration failure in add_generic_device() and friends
      commands: nvmem: check device registration for failure
      fs: ubootvarfs: fix tail relocation length computation
      tlv: fix memory leak in __tlv_format() on duplicate parameter
      image-fit: fix digest memory leak in fit_verify_signature()
      treewide: remove dead stores and unused variables
      nvmem: rmem: report invalid protection mode to the caller
      sandbox: use /proc/self/exe instead of realpath(argv[0])
      sandbox: allow use of alternative linkers like ld.lld
      sandbox: support linking external $LIB_FUZZING_ENGINE
      libfuzzer: disable options not required for fuzzing
      tlsf: poison redzones and freed memory under host AddressSanitizer
      fuzzing: use libc malloc for leak detection
      Makefile: find the coverage profile in the build directory
      Makefile: honour $(GENHTML) when generating the HTML report
      Makefile: keep the HTML coverage report working with lcov 2.x
      Documentation: fuzzing: correct the coverage report path
      fuzzing: add automated coverage-check Makefile target
      Documentation: fuzzing: fix fuzzer list and drop leak workaround
      fuzz: allow accepting partial checksums and digests
      fuzzing: add decompression fuzzer
      fuzzing: exercise DTB flatten in fuzz_dtb
      fuzzing: add DTB overlay fuzzer
      fuzzing: add TLV parser fuzzer
      fs: fat: add fuzz test for FAT filesystem
      state: add fuzz tests for raw format
      fuzz: fit: select verification mode from trailing data
      fs: ubootvarfs: bound environment parsing to the mapped size
      fs: ubootvarfs: let the filesystem own the parsed variables
      fs: ubootvarfs: implement flush
      efi: allow building the PE parser without the loader
      efi: validate PE parser input ranges
      efi: add PE parser fuzz test
      of: fdt: remove dead code in fdt_machine_is_compatible
      Documentation: fuzzing: list all fuzzers
      state: fuzz the authenticated raw format as well
      fuzzing: apply the overlay in the DTB overlay fuzzer
      fuzz: fit: exercise the paths reached before authentication
      console: add log_set_max_messages()
      fuzz: don't buffer log messages while fuzzing
      fuzz: set up a fuzz test's device before the first input
      sandbox: os: honor CONFIG_DEBUG_INFO for compiler options
      libfuzzer: config: enable CONFIG_DEBUG_INFO
      fs: fat: propagate actual error code when opening/creating files
      fs: fat: drop stray printf debug output
      fs: fat: use fixed-width 32-bit FatFs types
      fs: fat: flush metadata updates to the block device
      RISC-V: configs: enable CONFIG_DEEP_PROBE_DEFAULT
      RISC-V: reloc: ignore R_RISCV_NONE relocations
      efi: payload: don't fail postcore initcall when image has no device path
      efi: loader: accept NULL DevicePath in LoadImage when SourceBuffer is given
      efi: devicepath: don't spin on hard drive nodes without a signature
      efi: payload: iomem: use efi_uintn_t for the memory map key
      efi: payload: env: don't execute unmatched network driver glob
      fs: efivarfs: allow creating variables under any GUID in loader mode
      partitions: efi: only warn about valid GPT entries beyond the limit
      efi: loader: fix year and month reported by GetTime
      efi: don't truncate EFI_MEMORY_RUNTIME when setting resource attributes
      ARM: cpu: suppress arm_early_mmu_cache_invalidate if dcache enabled
      ARM: v7r: factor out armv7r_cache_enable
      serial: name the semihosting console
      efi: loader: don't let VarToFile stop the variable file from being written
      efi: loader: keep booting when the runtime variable store is unavailable
      ARM: always call cache_invalidate_stale before enabling D-Cache
      test: qemu: make synthesized features visible to the tests
      ci: labgrid-pytest: give the arm64 target a framebuffer
      ci: labgrid-pytest: run the security policy tests
      test: network: don't tie the mock TFTP test to testfs
      scripts: qemu_interactive: instantiate the virtio NIC explicitly
      ARM: defconfigs: enable the PL061 GPIO and virtio net drivers for virt
      input: gpio_keys: use dev_err_probe() for failed GPIO requests
      block: partitions: don't report a missing medium as an error
      fs: tftp: drop the leftover SELFTEST_TFTP references
      ARM: dts: imx6q-sabrelite-qemu: disable unmodelled peripherals
      ARM: rpi: validate the FDT magic before copying the VideoCore DT
      RISC-V: defconfigs: enable the tftp command
      test: make a few assertions actually assert something
      test: check the boot log for errors, not just critical failures
      test: fit: fail the dry-run test when bootm fails
      test: smbios: drop the unused Debian ISO fixture
      test: declare the network feature for the QEMU virt targets
      ci: labgrid-pytest: build the test images with -Werror
      video: bochs: don't report a missing ISA device as an initcall failure
      ci: labgrid-pytest: activate the sandbox allyesconfig console explicitly
      test: py: don't reintroduce line breaks in JSON command output
      treewide: replace inappropriate printk
      virtio: fix out-of-bounds scatterlist array access in virtqueue_add_{in,out}buf
      efi: loader: disk: detect the file system type only once
      video: efi_gop: reject Blt-only graphics output
      clk: stm32f4: allow building under COMPILE_TEST and fix the build
      clk: at91: sam9x60-pll: allow building under COMPILE_TEST and fix the build
      clk: composite: return ERR_PTR on registration failure
      clk: fixed-factor: use 64-bit arithmetic in recalc_rate
      clk: imx: pllv3: use 64-bit arithmetic in fractional PLL recalc_rate
      clk: divider: use 64-bit division in _div_round_up and divider_get_val
      clk: divider: round up when searching for the best divider
      clk: divider: fix calculation of maximal parent rate for a given divider
      test: Containerfile: include EDK-II for RISC-V
      fs: efi: don't leak the file info buffer in efifs_truncate()
      kbuild: emit asm-offsets markers as .ascii strings
      scripts: imx9image: fix warnings reported by clang
      kbuild: disable -Wunused-but-set-variable after -Wall
      kbuild: disable -Winitializer-overrides for clang
      ARM64: cache: use WEAK() for v8_flush_l3_cache stub
      common: boot: support passing an argument to a boot script
      defaultenv: boot/devboot: add a devboot boot target
      defaultenv: bin/devboot: clear linux.bootargs.devboot. namespace after boot
      defaultenv: add optional devboot snippets under /env/devboot/
      Documentation: state: drop stale backend-stridesize claims for circular storage
      state: warn when direct buckets on block devices are not block aligned
      Documentation: devicetree: barebox,state: require block aligned stride
      ARM: stm32mp: lxa: align state backend-stridesize with other LXA boards
      commands: bootm: remove -c and -s options
      clock: make udelay(), get_time_ns() and is_timeout() weak aliases
      ARM64: fall back to reading the counter directly in the PBL udelay()
      scripts: clang-runtime-dir.sh: cope with a wrapped compiler
      ci: pytest: hardcode Debian netinstall ISO version at single place
      Documentation: fix inconsistent whitespace
      Documentation: fix reST markup and formatting
      Documentation: update outdated and incorrect information
      Documentation: fix typos, grammar and capitalization
      treewide: replace git.pengutronix.de addresses
      sandbox: route malloc_usable_size() through the PBL glue again
      test: self: free a zero-sized buffer with free_sensitive()
      usb: dwc3: imx8mp: check dev_request_mem_resource return with IS_ERR
      mtd: spi-nor: add GigaDevice GD25LQ128D
      ARM: at91: include linux/types.h in aic.h
      defaultenv: bin/devboot: propagate exit status of boot command
      .mailmap: fix Bruno Produit's author name
      block: ramdisk: keep num_blocks in sync with the size
      fs: devfs: reject cdev aliases containing a slash
      sandbox: keep stickypage in a memfd
      sandbox: keep ASan's C++ runtime out of the libfuzzer link
      scripts: add oss-fuzz.sh build script
      Documentation: fuzzing: document OSS-Fuzz support
      ci: exercise scripts/oss-fuzz.sh in GitHub Actions
      Documentation: security: unnest hardening sections from dm-verity section
      Documentation: security: clarify development key insecurity
      Documentation: security: require signature verification to be pinned
      Documentation: security: document trust for builtin devicetree
      Documentation: security: clarify the environment section
      Documentation: security: describe shell and environment as trust boundary
      Documentation: security: document the barebox update attack surface
      Documentation: security: update for barebox dm-verity support
      Documentation: security: add anchors for the different sections
      Documentation: define a barebox threat model
      README, SECURITY.md: link the threat model and security considerations
      ARM: i.MX8MP: variscite-dt8mcustomboard: use i.MX8MP early clock init
      net: 9p: client: don't leave trans_tag uninitialized
      net: 9p: client: don't wait forever for a flush
      commands: mkdir: create directories with mode 0777
      usb: gadget: u_serial: don't wait for a host that isn't reading
      sandbox: console: only look for ^\q on consoles used for input
      console: don't unregister a console whose device file is open
      nvmem: core: default to a stride and word size of 1
      partitions: efi: print LBAs as unsigned
      of: fdt: fix out-of-bounds read of the root node name
      decompress_bunzip2: fix signed overflow in get_bits()
      clk: imx: pll14xx: enable PLL output in clk_pll1416x_early_set_rate()
      ARM: i.MX8MM/8MN: clock NOC from SYS_PLL3 in early clock init
      ARM: i.MX8M: feed A53 cores from ARM PLL via CORE_SEL_CFG in early clock init
      ARM: i.MX8M: source dram_apb from sys_pll2_200m in early clock init
      ARM: i.MX8M: order early clock init like U-Boot
      ARM: rockchip: rk3568-qnap-ts433eu: re-enable combphy0, disable sata2
      ARM: rpi: look up emmc2bus by alias for dma-ranges fixup
      of: base: use default bus match table when populating /firmware
      Documentation: migration-guides: add heading for v2026.09.0
      defaultenv: bin/devboot: fix typo in final exit
      defaultenv: devboot: use rsinit.bind_modules to bind mount modules
      Documentation: devicetree: document overlays in a FIT image
      test: py: add test for FIT images in global.of.overlay.path
      ARM: zynq: reduce barebox-avnet-zedboard.img size by 21K
      efi: payload: fix inverted efi.secure_boot and efi.secure_mode
      treewide: fix variable names in BAREBOX_MAGICVAR
      treewide: add missing BAREBOX_MAGICVAR for global variables
      treewide: add BAREBOX_MAGICVAR for parameters of fixed-name devices
      Documentation: turn more magic variable literals into references
      ARM: dts: imx93-frdm: allow dummy supplies for the PMIC regulators
      ARM: dts: zii-imx8mq-ultra: move i210 below the PCIe root port

Akari Tsuyukusa (1):
      scripts/dtc: add fdtoverlay to gitignore

Alexander Shiyan (2):
      serial: ns16550: fix memory leak of linux_earlycon_name on probe failure
      amba: simplify amba_lookup function

Andrei Lalaev (6):
      mci: add driver for Broadcom SDHCI
      ARM: rpi: add Raspberry Pi 5 support
      Documentation: bcm283x: add Raspberry Pi 5 support
      arm: dts: bcm2712-rpi: specify clock frequency for uart
      arm: dts: bcm2712-rpi: disable wifi SDIO
      bcm283x: debug_ll: add Raspberry Pi 5 UART support

Fabian Pflug (6):
      efi: usb: add header for usb-efi
      usb: core: make usb_set_maxpacket_ep public
      drivers: usb: host: efi: add efi io driver
      efi: guid: add guid for usb host controller 2
      test: x86: add test for uefi usb io
      drivers: usb: add usb_add_device to add a device

Florijan Plohl (2):
      defaultenv: apply external environment after board overlays again
      ARM: boards: phytec-som-imx6: Add KSZ9131 PHY support

Gabriel Arnautu (2):
      FIT: return error if signature verification is disabled
      envfs: validate inode bounds before extraction

Michael Tretter (4):
      arm: socfpga: iossm: remove unused num_port
      arm: socfpga: iossm: fix macro
      arm: socfpga: iossm: refactor register access
      arm: socfpga: iossm: wait for PLL lock from handoff table

Sascha Hauer (58):
      extlinux: make variable name consistent
      fs: devfs: remove aliases from the list when freeing them
      fs: remove the default automount when a cdev is removed
      fs: devfs: propagate cdev aliases to the partitions
      fs: devfs: make the default automount reachable under cdev aliases
      usb: don't report device removal after the device name is gone
      fs: devfs: count an open partition as an open device
      block: propagate errors from blockdevice_unregister()
      fs: add cdev_umount_all()
      block: add blockdevice_unregister_removed()
      usb: storage: tear the disk down properly on disconnect
      usb: hub: cancel pending port scans of a removed device
      usb: reuse the addresses of removed devices
      usb: hub: detect disconnected devices
      usb: don't keep a dangling root device on enumeration failure
      usb: hub: limit the number of ports to USB_MAXCHILDREN
      usb: detect unplugged devices on transfer errors
      usb: storage: stop talking to a device that is gone
      dts: update to v7.3-rc1
      fs: track streaming and unknown-size files in dedicated inode fields
      fs: reject inodes whose size the superblock cannot address
      x86: efi_defconfig: enable the EFI USB I/O protocol driver
      mci: atmel_mci: improve timeout error message
      mci: wait for card to leave programming state after block writes
      Release v2026.10.

Stefan Kerkmann (1):
      regulator: pca9450: add pmic driver

Stephano Cetola (2):
      extlinux: recognize LINUX as an alias for KERNEL
      extlinux: resolve absolute paths against the partition root

Ulrich Ölmann (2):
      include: ocotp.h: add missing include
      commands: sconfig: fix command description


-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |




More information about the barebox mailing list