summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-07-16dfu: Fix dfu_config_interfaces() for single interface DFU syntaxSam Protsenko
As stated in DFU documentation [1], the device interface part might be missing in dfu_alt_info: dfu_alt_info The DFU setting for the USB download gadget with a semicolon separated string of information on each alternate: dfu_alt_info="<alt1>;<alt2>;....;<altN>" When several devices are used, the format is: - <interface> <dev>'='alternate list (';' separated) So in first case dfu_alt_info might look like something like this: dfu_alt_info="mmc 0=rawemmc raw 0 0x747c000 mmcpart 1;" And in second case (when the interface is missing): dfu_alt_info="rawemmc raw 0 0x747c000 mmcpart 1;" When the interface is not specified the 'dfu' command crashes when called using 'dfu 0' or 'dfu list' syntax: => dfu list "Synchronous Abort" handler, esr 0x96000006, far 0x0 That's happening due to incorrect string handling in dfu_config_interfaces(). In case when the interface is not specified in dfu_alt_info it triggers this corner case: d = strsep(&s, "="); // now d contains s, and s is NULL if (!d) break; a = strsep(&s, "&"); // s is already NULL, so a is NULL too if (!a) // corner case a = s; // a is NULL now which causes NULL pointer dereference later in this call, due to 'a' being NULL: part = skip_spaces(part); That's because as per strsep() behavior, when delimiter ("&") is not found, the token (a) becomes the entire string (s), and string (s) becomes NULL. To fix that issue assign "a = d" instead of "a = s", because at that point variable d actually contains previous s, which should be used in this case. [1] doc/usage/dfu.rst Fixes: commit febabe3ed4f4 ("dfu: allow to manage DFU on several devices") Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org> Link: https://lore.kernel.org/r/20250709042342.13544-1-semen.protsenko@linaro.org Signed-off-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
2025-07-16common/avb_verify.c: Make use of LBAF for printing lbaint_tTom Rini
When printing the contents of an lbaint_t variable we need to use LBAF to print it in order to get the correct format type depending on 32 or 64bit-ness. Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org> Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org> Link: https://lore.kernel.org/r/20250702010603.19354-2-trini@konsulko.com Signed-off-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
2025-07-16boot/android_ab.c: Make use of LBAF for printing lbaint_tTom Rini
When printing the contents of an lbaint_t variable we need to use LBAF to print it in order to get the correct format type depending on 32 or 64bit-ness. Furthermore, printed message should not be split as that makes finding them harder, so bring this back to a single line. Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org> Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org> Link: https://lore.kernel.org/r/20250702010603.19354-1-trini@konsulko.com Signed-off-by: Mattijs Korpershoek <mkorpershoek@kernel.org>
2025-07-16cmd: i2c: fix build when CFG_SYS_I2C_NOPROBES defined with DM_I2CHolger Brunck
When DM_I2C is enabled and CFG_SYS_I2C_NOPROBES is defined, the building is broken due to already existing 'bus' local variable. Rename udevice 'bus' to 'cur_bus' to fix this. Signed-off-by: Holger Brunck <holger.brunck@hitachienergy.com>
2025-07-16i2c: Kconfig: Tighten some i2c driver dependenciesTom Rini
A few i2c drivers cannot build without access to some platform specific header files. Express those requirements in Kconfig as well. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-07-16i2c: Add missing <linux/delay.h> to iproc_i2c.cTom Rini
This driver makes delay function calls while relying on an indirection inclusion of <linux/delay.h>. Add the missing include directly. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-07-15MAINTAINERS: Update email of Stefan RoeseStefan Roese
Use the @mailbox.org mail address also for community work. Signed-off-by: Stefan Roese <stefan.roese@mailbox.org>
2025-07-15Merge patch series "drivers/net/airoha_eth: fixes"Tom Rini
Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu> says: Several fixes for the airoha ethernet driver. Link: https://lore.kernel.org/r/20250709092810.4032971-1-mikhail.kshevetskiy@iopsys.eu
2025-07-15drivers/net/airoha_eth: enable hw padding of short tx packetsMikhail Kshevetskiy
Transmission of short packets does not work good for XFI (GDM2) and HSGMII (GDM3) interfaces. The issue can be solved with: - padding of short packets to 60 bytes - setting of PAD_EN bit in the corresponding REG_GDM_FWD_CFG(n) register. The issue should present for the lan switch (GDM1) as well, but it does does not appear due to unknown reason. This patch set PAD_EN bit for the used GDM. Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
2025-07-15drivers/net/airoha_eth: fix stalling in package receivingMikhail Kshevetskiy
ARCH_DMA_MINALIGN is 64 for ARMv7a/ARMv8a architectures, but RX/TX descriptors are 32 bytes long. So they may not be aligned on an ARCH_DMA_MINALIGN boundary. In case of RX path, this may cause the following problem 1) Assume that a packet has arrived and the EVEN rx descriptor has been updated with the incoming data. The driver will invalidate and check the corresponding rx descriptor. 2) Now suppose the next descriptor (ODD) has not yet completed. Please note that all even descriptors starts on 64-byte boundary, and the odd ones are NOT aligned on 64-byte boundary. Inspecting even descriptor, we will read the entire CPU cache line (64 bytes). So we read and sore in CPU cache also the next (odd) descriptor. 3) Now suppose the next packet (for the odd rx descriptor) arrived while the first packet was being processed. So we have new data in memory but old data in cache. 4) After packet processing (in arht_eth_free_pkt() function) we will cleanup the descriptor and put it back to rx queue. This will call flush_dcache_range() function for the even descriptor, so the odd one will be flushed as well (it is in the same cache line). So the old data will be written to the next rx descriptor. 5) We get a freeze. The next descriptor is empty (so the driver is waiting for packets), but the hardware will continue to receive packets on other available descriptors. This will continue until the last available rx descriptor is full. Then the hardware will also freeze. The problem will be solved if the previous descriptor will be put back to the queue instead of the current one. If the current descriptor is even (starts on a 64-byte boundary), then putting the previous descriptor to the rx queue will affect the previous cache line. To be 100% ok, we must make sure that the previous and the one before the previous descriptor cannot be used for receiving at this moment. If the current descriptor is odd, then the previous descriptor is on the same cache line. Both (current and previous) descriptors are not currently in use, so issue will not arrise. WARNING: The following restrictions on PKTBUFSRX must be held: * PKTBUFSRX is even, * PKTBUFSRX >= 4. The bug appears on 32-bit airoha platform, but should be present on 64-bit as well. The code was tested both on 32-bit and 64-bit airoha boards. Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
2025-07-15drivers/net/airoha_eth: fix packet transmission errorsMikhail Kshevetskiy
The dma_map_single() function calls one of the functions * invalidate_dcache_range(), * flush_dcache_range(). Both of them expect that 'vaddr' is aligned to the ARCH_DMA_MINALIGN boundary. Unfortunately, RX/TX descriptors are 32-byte long. Thus they might not be aligned to the ARCH_DMA_MINALIGN boundary. Data flushing (or invalidating) might do nothing in this case. The same applies to dma_unmap_single() function. In the TX path case the issue might prevent package transmission (filled TX descriptor was not flushed). To fix an issue a special wrappers for * dma_map_single(), * dma_unmap_single() functions were created. The patch fix flushing/invalidatiog for the RX path as well. The bug appears on 32-bit airoha platform, but should be present on 64-bit as well. The code was tested both on 32-bit and 64-bit airoha boards. Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
2025-07-15drivers/net/airoha_eth: add missing terminator for compatible devices listMikhail Kshevetskiy
Compatible device list must have a terminator. If terminator is missed the u-boot driver subsystem will access random data placed after the list in the memory. The issue can be observed with the "dm compat" command. Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
2025-07-15Merge patch series "fs: exfat: Fix some Smatch issues"Tom Rini
Andrew Goodbody <andrew.goodbody@linaro.org> says: Smatch reported issues with variables being dereferenced before NULL checks and also testing an unsigned variable for being negative. Link: https://lore.kernel.org/r/20250707-exfat_fix-v1-0-e5783978cd11@linaro.org
2025-07-15fs: exfat: Remove pointless variable uoffsetAndrew Goodbody
In exfat_generic_pread and exfat_generic_pwrite offset is passed in as a off_t type which is defined as 'unsigned long long' so there is no need to create the variable uoffset as a uint64_t as this is just a direct copy of offset. Also remove the impossible test of 'offset < 0' as this is always false due to offset being unsigned. This issue found by Smatch. Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
2025-07-15fs: exfat: Perform NULL check before dereferenceAndrew Goodbody
In the functions exfat_pread and exfat_pwrite there is a NULL check for ctxt.cur_dev but this has already been derefenced twice before this happens. Refactor the code a bit to put the NULL check first. This issue found by Smatch. Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
2025-07-15tools: mkimage: make size_inc a signed typeRasmus Villemoes
In the Fixes commit, I initialized size_inc from the return value of the new fit_estimate_hash_sig_size() helper. That helper may fail and report that by returning a negative value, but I overlooked that size_inc had type size_t, and hence the error check doesn't work. Change size_inc to have type int so the error check works. Inside the loop, it is passed to another function as a size_t parameter, but that's fine, because we know it is non-negative, and its value may be incremented in steps of 1024 and is capped at ~64K, so it will certainly never overflow an int. Fixes: 7d4eacb0e68 ("mkimage: do a rough estimate for the size needed for hashes/signatures") Addresses-Coverity-ID: 569495: Integer handling issues (NEGATIVE_RETURNS) Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2025-07-15fs: btrfs: Do not free multi when guaranteed to be NULLAndrew Goodbody
multi is guaranteed to be NULL in the first two error exit paths so the attempt to free it is not needed. Remove those calls. This issue found by Smatch. Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
2025-07-15net: mediatek: correct the AN8855 TPID value in port isolation settingsWeijie Gao
The TPID value should be 0x9100 instead of 0x8100 according to the datasheet. Fixes: cedafee9ff3 (net: mediatek: add support for Airoha AN8855 ethernet switch) Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-07-14ofnode: NULL check bootscr_flash_size before dereferenceAndrew Goodbody
Move the NULL check of bootscr_flash_size to before the first time it is dereferenced to avoid any possible segment violations. This issue found by Smatch. Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org> Reviewed-by: Tom Rini <trini@konsulko.com>
2025-07-14Fix autoboot countdown printing wrongDavid Zang
Originally when bootdelay >99, the countdown breaks. Setting bootdelay at 101 or bigger will trigger this error. Signed-off-by: David Zang <davidzangcs@gmail.com>
2025-07-14configs: am62x: fix CONFIG_NR_DRAM_BANKS to 1Anshul Dalal
CONFIG_NR_DRAM_BANKS defines the number of DRAM banks on the device. The default value of NR_DRAM_BANKS for ARCH_K3 is set to 2 (arch/arm/mach-k3/Kconfig:199) but should be 1 for am62x platforms. This patch updates NR_DRAM_BANKS value for all am62x platforms to 1. Fixes: 2969ed31b893 ("configs: Add am62x_beagleplay_*_defconfig") Fixes: 2d257d9279e3 ("configs: Add configs for AM62x SK") Fixes: 085cd6459dae ("board: phytec: am62x: Add PHYTEC phyCORE-AM62x SoM") Fixes: 7d1a10659f5b ("board: toradex: add verdin am62 support") Signed-off-by: Anshul Dalal <anshuld@ti.com>
2025-07-14pci: Assign a default value on reads on errorAndrew Goodbody
Many callers of PCI read functions do not check the return value for error before using the variable that should contain the value read were there not to be an error. However in the error case this variable is never assigned to and so will contain uninitialised data. To provide some certainty as to behaviour in the error case assign a default value of all bits set. This issue found by Smatch. Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org>
2025-07-14ecdsa: fix segfault in mkimage when "-r" option is not setLucas Dietrich
Fix a segmentation fault in the ECDSA signing logic of `mkimage` that occurs when the "-r" option is not specified. This reproduces the logic in `lib/rsa/rsa-sign.c` by checking if `info->require_keys` is non-null before passing it to `fdt_setprop_string()`. Signed-off-by: Lucas Dietrich <lucas.dietrich.git@proton.me>
2025-07-14scsi: Make static functions consistent using lbaint_tAndrew Goodbody
The static helper functions are inconsistent in their use of their third parameter which is used to pass a block count. Keep consistency by always using lbaint_t here. This will fix an issue where two left shifts were overflowing the variable type in use. This issue found by Smatch Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org> Reviewed-by: Tom Rini <trini@konsulko.com>
2025-07-14tools: gen_ethaddr_crc: Make functions staticIlias Apalodimas
These functions are only used locally. Enabling -Wmissing-prototypes triggers a warning. Mark them as static. Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-07-14tools: ublimage: Make ublimage_check_params() staticIlias Apalodimas
This functions is only used locally and triggers a warning when compiling with -Wmissing-prototypes. Mark it as static. Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-07-14tools: mkenvimage: Make xstrtol() staticIlias Apalodimas
This function is only used locally. Enabling -Wmissing-prototypes triggers a warning. Mark it as static. Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-07-14tools: bmp_logo: Mark local functions with staticIlias Apalodimas
These functions are only used locally. Enabling -Wmissing-prototypes triggers a warning. Mark them as static. Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2025-07-14cros_ec: sandbox: Use correct value for number of slotsAndrew Goodbody
In the definition of struct ec_state the number of slots that are created is VSTORE_SLOT_COUNT (==4) but the value of req->slot is checked against EC_VSTORE_SLOT_MAX (==32) so this can lead to memory access beyond that allocated. Instead change the size check to use VSTORE_SLOT_COUNT to ensure it matches what has actually been allocated. This issue found by Smatch. Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org> Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-07-14README: remove obsolete notePhilip Molloy
Renaming SPL to XPL fixes the issue referenced in this note so the note is no longer necessary Fixes: 1d6132e2a2b ("global: Use CONFIG_XPL_BUILD instead of CONFIG_SPL_BUILD") Signed-off-by: Philip Molloy <philip.molloy@analog.com>
2025-07-14gpio: add SPL to Kconfig option descriptionPhilip Molloy
DM_GPIO_LOOKUP_LABEL and SPL_DM_GPIO_LOOKUP_LABEL had the same description and therefore appeared to be duplicates in Kconfig frontends Signed-off-by: Philip Molloy <philip.molloy@analog.com>
2025-07-14pinctrl-uclass: update comment to reflect codePhilip Molloy
The logic was updated without modifying the comment above it Fixes: 72b8c6d1ebf ("pinctrl: don't fall back to pinctrl_select_state_simple()") Signed-off-by: Philip Molloy <philip.molloy@analog.com>
2025-07-14Merge patch series "integer limit macro consolidation"Tom Rini
Rasmus Villemoes <ravi@prevas.dk> says: I was bitten by our limit macros not being usable in #if conditionals when building a standalone app. It turns out that the work to fix that had already been started by the inclusion of the mbedtls library, so it's something that people do hit. Let's finish the job by providing suitable limit macros for all three families: - Standard C types, char, short, ... - Kernel-style fixed-width types s8, u64, ... - POSIX/C99 fixed-width types int16_t, uint32_t, ... Please note that a naive approach like spelling out the full decimal value for the constants doesn't really work, as there is no such thing as a "negative integer constant". That is, doing #define LLONG_MIN -9223372036854775808LL would lead to the compiler complaining warning: integer constant is so large that it is unsigned and the type of that LLONG_MIN would actually be "unsigned long long", so e.g. #if LLONG_MIN >= 0 #warning "LLONG_MIN is not negative?" #endif would fire. Link: https://lore.kernel.org/r/20250707203655.613340-1-ravi@prevas.dk
2025-07-14limits.h: provide all limit macros for standard [u]intNN_t typesRasmus Villemoes
Currently, we only have UINT32_MAX and UINT64_MAX in limits.h, and then stdint.h and kernel.h somewhat randomly define UINT8_MAX and INT32_MAX, respectively. Provide a full set of definitions in terms of the min/max macros for the types that [u]intNN_t are defined in terms of, namely the {s,u}NN ones. Try to avoid breaking whatever depended on getting UINT8_MAX from our compat stdint.h by replacing it with an include of limits.h. Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2025-07-14move limits for sNN/uNN types from kernel.h to limits.hRasmus Villemoes
Since we define the {s,u}{8,16,32,64} types the same way on all architectures, i.e. everybody uses asm-generic/int-ll64.h, we can just define the associated limit macros in terms of those for the corresponding types. This eliminates another set of limit macros that are not usable in #if conditionals. These type names and macros are not C or POSIX, so there's no language violation, but certainly a violation of developers' reasonable expectations. Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2025-07-14move more limits from kernel.h to limits.h and standardize their definitionsRasmus Villemoes
In a customer project that was building a stand-alone application, I hit a problem related to the fact that our LONG_MAX and friends are not standards-compliant, in that they are not "suitable for use in #if preprocessing directives" ... /toolchain_none/arm-cortexa8-eabi/sys-include/machine/_default_types.h:25:31: error: missing binary operator before token "long" 25 | || ( defined(LLONG_MAX) && (LLONG_MAX > 0x7fffffff) ) | ^~~~~~~~~ So following up on commit 13de8483388 ("mbedtls: add mbedtls into the build system"), move the rest of the macros associated to the standard C types {signed,unsigned} {char, short, int, long, long long} (and of course bare 'char') to limits.h. Make use of the fact that both gcc and clang provide suitable predefined __FOO_MAX__ macros for the signed types, and use a standard scheme for defining the FOO_MIN and UFOO_MAX macros in terms of FOO_MAX. Note that suffixes like L and ULL are allowed for preprocessor integers; it is (casts) which are not. And using appropriate suffixes, we can arrange for the type of e.g. UINT_MAX to be "unsigned int" due to integer promotion rules. Signed-off-by: Rasmus Villemoes <ravi@prevas.dk>
2025-07-14Merge tag 'qcom-main-20250714' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-snapdragon CI: https://source.denx.de/u-boot/custodians/u-boot-snapdragon/-/pipelines/27056 - Fix unused access in ufetch - Add missing clock for SM8650 - Port the Linux SPMI GPIO driver and port over SM8550 (other platforms should follow)
2025-07-14clk: qcom: sm8650: add usb3 noc clkRui Miguel Silva
Commit [0] introduced, correctly, the bubble of qcom clock errors to make it easy to spot missing clocks in the platforms, and this is a case of that, add the GCC_CFG_NOC_USB3_PRIM_AXI_CLK clock to sm8650 clock pool. 0: 7c5460afec3f ("clk/qcom: bubble up qcom_gate_clk_en() errors") Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://lore.kernel.org/r/20250618093253.225929-1-rui.silva@linaro.org Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
2025-07-14watchdog: qcom-wdt: Drop read check on write-only WDT_EN registerBalaji Selvanathan
On some Qualcomm platforms, such as Dragonwing boards, the WDT_EN register is write-only. Reading it back after enabling the watchdog can return invalid data or cause unexpected behavior. In particular, the check: if (readl(wdt_addr(wdt, WDT_EN)) != 1) may fail even though the watchdog is correctly enabled and running. This leads to misleading error messages and unnecessary failures. Removing the read check ensures compatibility and avoids false negatives on platforms where WDT_EN is not readable. This work builds upon this previous submission: https://lore.kernel.org/u-boot/20250625094607.1348494-1-gopinath.sekar@oss.qualcomm.com/ Signed-off-by: Balaji Selvanathan <balaji.selvanathan@oss.qualcomm.com> Reviewed-by: Stefan Roese <sr@denx.de> Link: https://lore.kernel.org/r/20250701065738.1644669-1-balaji.selvanathan@oss.qualcomm.com Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
2025-07-14qcom_defconfig: enable USB mass storage gadgetCasey Connolly
Enable the USB mass storage gadget to make it easy to access the internal storage on the board. Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://lore.kernel.org/r/20250626132550.353332-1-casey.connolly@linaro.org Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
2025-07-14cmd: ufetch: Initialise size before first useAndrew Goodbody
The local variable size is not assigned to before it is used for the first time. Correct this. This issue was found by Smatch. Fixes: 86d462c05d57 (cmd: add a fetch utility) Signed-off-by: Andrew Goodbody <andrew.goodbody@linaro.org> Reviewed-by: Casey Connolly <casey.connolly@linaro.org> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Link: https://lore.kernel.org/r/20250626-ufetch_fix-v1-1-025afdb85dc2@linaro.org Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
2025-07-14gpio: qcom: move pm8550 gpio to new driverNeil Armstrong
Move support of the pm8550 gpios to the newly introduced driver and drop the compatible entry and the read-only quirk at the same time from the old driver. Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> Reviewed-by: Rui Miguel Silva <rui.silva@linaro.org> Acked-by: Sumit Garg <sumit.garg@oss.qualcomm.com> Link: https://lore.kernel.org/r/20250630-topic-sm8x50-pmic-gpio-pinctrl-new-v2-2-cc1512931197@linaro.org Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
2025-07-14gpio: qcom: add new driver for SPMI gpiosNeil Armstrong
The current qcom_pmic_gpio driver is too limited and doesn't support state tracking for all pins like the Linux driver. Adding full pinconf support would require adding the state and it's much simpler to restart from scratch with a new driver based on the Linux one adapted to the U-Boot GPIO and Pinctrl APIs. For now only the PMICs I've been able to validate are added in the compatible list but we should be able to add the entire list from the Linux driver. There's a few difference from the Linux driver: - no IRQ support - uses the U-Boot GPIO flags that maps very well - uses the gpio-ranges to get the pins count - no debugfs but prints the pin state via pinmux callback It uses the same CONFIG entry as the old one, since the ultimate goal is to migrate entirely on this new driver once we verify it doesn't break the older platforms. Tested-by: Alexey Minnekhanov <alexeymin@postmarketos.org> Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> Reviewed-by: Rui Miguel Silva <rui.silva@linaro.org> Acked-by: Sumit Garg <sumit.garg@oss.qualcomm.com> Link: https://lore.kernel.org/r/20250630-topic-sm8x50-pmic-gpio-pinctrl-new-v2-1-cc1512931197@linaro.org Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
2025-07-12kbuild: Avoid including architecture-specific Makefile twiceYao Zi
Stranges errors are observed when building U-Boot master for almost any RISC-V board, the messages are in two types, one is about duplicated symbols, u-boot/arch/riscv/cpu//mtrap.S:32: multiple definition of `trap_entry'; arch/riscv/cpu/mtrap.o: u-boot/arch/riscv/cpu//mtrap.S:32: first defined here and the other is fixdep's complaint about missing dependency files, fixdep: error opening file: arch/riscv/cpu/.mtrap.o.d: No such file or directory fixdep: error opening file: arch/riscv/cpu//.start.o.d: No such file or directory where the latter could only be reproduced when building parallelly. Both the two types of errors are about files in arch/riscv/cpu, and there's a suspicious slash character in the reported path. Looking through RISC-V-specific Makefiles, there's only one place that may expand to such a path, libs-y += arch/riscv/cpu/$(CPU)/ The right hand expands to "arch/riscv/cpu//" if $(CPU) isn't defined at the time of including. With some debug statement added to arch/riscv/Makefile, the output proves that arch/riscv/Makefile is included twice, once with $(CPU) undefined and once defined correctly according to CONFIG_SYS_CPU. Futher bisecting shows an extra include statement against arch/$(SRCARCH)/Makefile is added in earlier bump of Kbuild system. But the statement is evaluated before config.mk is included and definition of $(CPU), causing objects in arch/riscv/cpu/ are built and linked twice (once as "arch/riscv/cpu/*", and once as "arch/riscv/cpu//*"), resulting in the error. Let's simply remove the extra include to fix these nasty errors. For config targets, bumping Kbuild also introduced a new include to arch/$(SRCARCH)/Makefile, which is removed as well for consistency. Fixes: 5f520875bdf ("kbuild: Bump the build system to 5.1") Signed-off-by: Yao Zi <ziyao@disroot.org> Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Tested-by: Fabio Estevam <festevam@gmail.com> Tested-by: Bryan Brattlof <bb@ti.com>
2025-07-12i2c: muxes: Add PCA9541 i2c arbitrator driverPadmarao Begari
Add a driver for the PCA9541 i2c bus arbitrator based on the Linux driver for the same device. Co-developed-by: Jonathan Stroud <jonathan.stroud@amd.com> Signed-off-by: Jonathan Stroud <jonathan.stroud@amd.com> Signed-off-by: Padmarao Begari <padmarao.begari@amd.com>
2025-07-12i2c: muxes: pca954x: add pca9545 supportFrank Wunderlich
Add support for 4 channel pca9545 found on Bananapi R4. Signed-off-by: Frank Wunderlich <frank-w@public-files.de> Acked-by: Michal Simek <michal.simek@amd.com>
2025-07-11block: sandbox: Add support for SYS_64BIT_LBATom Rini
In order to use SYS_64BIT_LBA with this driver we need for "start" to also be of type lbaint_t and to then use the correct printf format characters. Reviewed-by: Andrew Goodbody <andrew.goodbody@linaro.org> Signed-off-by: Tom Rini <trini@konsulko.com>
2025-07-11Kconfig: Test for !COMPILE_TEST in some locationsTom Rini
We have a few options that we cannot enable in a "allyesconfig" type build because we cannot use zero as a default value. - The logic around HAS_BOARD_SIZE_LIMIT assumes that if we have set this then we compare with it. Similarly, we need to set SPL_NO_BSS_LIMIT as the default there. - Both SYS_CUSTOM_LDSCRIPT and ENV_USE_DEFAULT_ENV_TEXT_FILE then prompt for a file name to use. - The SYS_I2C_SOFT driver is a legacy driver which requires a lot of configuration within the board config. file instead, so disable it. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-07-11Kconfig: Add COMPILE_TEST optionTom Rini
Take the COMPILE_TEST option from the Linux Kernel v6.15 and since the wording there is OK for us too, use it verbatim. Also update the default for WERROR to be COMPILE_TEST which again matches the Linux Kernel. This is the first big step needed to allow for "allyesconfig" to be possible as it then lets us then disable things that aren't valid for a compile only test. Signed-off-by: Tom Rini <trini@konsulko.com>
2025-07-11global: Make ARCH_MISC_INIT a selected symbolTom Rini
This symbol is not something that the user should be enabling or disabling but rather the developer for a particular board should select it when required. This is mostly size neutral, however a few places do have changes. In the case of i.MX6ULL systems, it is always the case that arch_misc_init() could call setup_serial_number() and do useful work, but was not enabled widely, but now is. In the case of i.MX23/28 systems, we should be able to call mx28_fixup_vt() again here, so do so. Finally, some platforms were calling arch_misc_init() and then not doing anything and this results in removing the option. Acked-by: Peng Fan <peng.fan@nxp.com> Signed-off-by: Tom Rini <trini@konsulko.com>