summaryrefslogtreecommitdiffstats
path: root/include/linux
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'for-next/misc'Sascha Hauer2024-03-151-1/+1
|\
| * commands: dmesg: support aborting dmesg output with ctrl-cAhmad Fatoum2024-03-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | dmesg output can get very long, especially if debug messages are compiled in and the maximum number of retained log messages is increased. Therefore, follow what we do for other potentially long-running commands and allow the user to abort it with ctrl+c. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240306184519.626594-2-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Merge branch 'for-next/imx'Sascha Hauer2024-03-152-7/+47
|\ \
| * | net: phy: micrel: update id table from Linux kernelMarc Kleine-Budde2024-03-131-7/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This syncs the known Micrel PHY IDs and register definitions with the Linux kernel, commit f600bb612b06adf70ccdefbd3294c71275b650c2. Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> Signed-off-by: Stefan Kerkmann <s.kerkmann@pengutronix.de> Link: https://lore.barebox.org/20240311-karo-imx8mp-som-board-upstreaming-v2-2-6ecda693adb2@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | nvmem: add nvmem_device_get_device()Sascha Hauer2024-03-131-0/+5
| |/ | | | | | | | | | | | | | | | | We'll want to add a device parameter to the imx_ocotp0 device in the next step, but the device is private to the nvmem core. Add a getter function for it. Link: https://lore.barebox.org/20240311102152.360762-4-s.hauer@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Merge branch 'for-next/hwrng'Sascha Hauer2024-03-152-0/+39
|\ \
| * | hw_random: add OMAP RNG driverAhmad Fatoum2024-03-151-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | To enable proper hardening with stack protector, add support for the OMAP RNG driver. This has been tested on a Beagle Bone Black. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240313105631.686778-13-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | hw_random: add BCM2835 RNG driverAhmad Fatoum2024-03-151-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | To enable proper hardening with stack protector, add support for the BCM2835 RNG. This has been tested on a Raspberry Pi 3B. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240313105631.686778-9-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | hw_random: add struct hwrng::priv memberAhmad Fatoum2024-03-151-0/+1
| |/ | | | | | | | | | | | | | | | | | | | | A number of Linux hw_random drivers use container_of to arrive at the driver private data, but some others use the priv member of struct hwrng. A unsigned long worth of extra malloc space doesn't hurt, so add the same member to barebox too. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240313105631.686778-5-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Merge branch 'for-next/bus-probe'Sascha Hauer2024-03-151-0/+4
|\ \
| * | usb: print number of skipped OTG controllers when scanningAhmad Fatoum2024-02-291-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I often get confused by running usb and wondering why devices behind unconfigured OTG controllers are not enumerated. Improve the user experience by printing a message when doing a USB scan while some OTG controllers are not yet configured (i.e. the otg.mode device parameter hasn't been set to "peripheral" or "host"). Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240228160518.1589193-6-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | usb: otg: maintain list of USB OTG controllersAhmad Fatoum2024-02-291-0/+2
| |/ | | | | | | | | | | | | | | | | | | | | We register devices for OTG controllers only to associate a .mode device parameter with them. Follow-up commits will need to refer to previously registered OTG controllers, so let's register a bus type for them and use it to maintain a list of controllers. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240228160518.1589193-4-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | lib: string: import Linux strreplace helperAhmad Fatoum2024-03-051-0/+1
| | | | | | | | | | | | | | | | This helper replaces all occurrences of a given character in a string. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240304190038.3486881-93-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | common: add PE/COFF loaderAhmad Fatoum2024-03-052-0/+483
| | | | | | | | | | | | | | | | | | EFI loader will need to parse and load PE executables. Add functions to facilitate that. The API is inspired by the already existing ELF API. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240304190038.3486881-66-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | pbl: introduce CONFIG_PBL_FULLY_PICAhmad Fatoum2024-03-052-1/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the quest for making barebox PBL code W^X mappable, we have now taken care to make the ARM64 assembly routines not emit code relocations, so let's do the same for the C code as well. We do this by setting pragma GCC visibility push(hidden) globally. This option is stronger than -fvisibility=hidden and ensures we are completely position-independent. See kernel commit e544ea57ac07 ("x86/boot/compressed: Force hidden visibility for all symbol references") for more information. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240304190038.3486881-59-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | fs: drop unused LOOKUP_ flagsAhmad Fatoum2024-03-051-13/+0
|/ | | | | | | | | Most flags used during VFS lookup are apparently unused, so let's delete them to make the code easier to reason about. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240304190038.3486881-29-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/zstd'Sascha Hauer2024-02-213-8/+19
|\
| * bootm: add support to boot ZSTD compressed imagesMarco Felsch2024-02-061-0/+11
| | | | | | | | | | | | | | | | | | | | | | This adds the support to bootm to decompress and boot ZSTD compressed kernels. The decompress_unzstd.c was taken from Linux and slighlty adapted. Also the unzstd() function is adapted since we don't support large >2G images yet like Linux does. Signed-off-by: Marco Felsch <m.felsch@pengutronix.de> Link: https://lore.barebox.org/20240124134738.133782-3-m.felsch@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * decompress: change length arguments to longSascha Hauer2024-02-062-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to support decompression of files > 2GiB Linux has changed the prototypes of decompression functions from int uncompress(unsigned char *inbuf, int len, int(*fill)(void*, unsigned int), int(*flush)(void*, unsigned int), unsigned char *output, int *pos, void(*error_fn)(char *x)); to int uncompress(unsigned char *inbuf, long len, long(*fill)(void*, unsigned long), long(*flush)(void*, unsigned long), unsigned char *output, long *pos, void(*error_fn)(char *x)); Do likewise in barebox for easier code sharing with Linux. Link: https://lore.barebox.org/20240206094838.1987246-1-s.hauer@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Merge branch 'for-next/partitions'Sascha Hauer2024-02-211-0/+12
|\ \
| * | linux/sizes.h: add more definesSascha Hauer2024-02-201-0/+12
| |/ | | | | | | | | | | | | Update linux/sizes.h from Linux to get Terabyte defines. Link: https://lore.barebox.org/20240219083140.2713047-7-s.hauer@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Merge branch 'for-next/imx'Sascha Hauer2024-02-211-0/+39
|\ \
| * | Port SoC framework from LinuxMarco Felsch2024-01-291-0/+39
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | This adds the initial support for the Linux soc framework which can be used to register all SoC relevant informations. The framework can be used by driver to check for errata for an specific soc(-revision) in the future since this require porting the matching function. For now it gathers all required SoC information and provide a standard interface to query the data via device params. Signed-off-by: Marco Felsch <m.felsch@pengutronix.de> Link: https://lore.barebox.org/20240125133856.3792552-1-m.felsch@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | clk: at91: sync drivers with LinuxAhmad Fatoum2024-02-162-0/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During bug hunt of a clocking issue that ultimately turned out to be unrelated, I resynced AT91 clk support with Linux. The changes look more extensive than they really are, because I first imported the clock drivers before a major overhaul of the barebox clock framework to be more compatible with the more recent kernel API changes. Most of the diff is due to that, but this resync also fixes at least a USB issue for the at91rm9200 and adds support for the new SAMA7 SoC as well as more clocks for the SAM9x60. Both these SoCs aren't supported by barebox yet, but this at least adds clock driver support. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240215121837.251013-4-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | clk: define empty stub for clk_hw_unregisterAhmad Fatoum2024-02-161-0/+4
| | | | | | | | | | | | | | | | | | We don't do clk unregistration and thus define clk_unregister as empty stub. Let's do likewise for clk_hw_unregister. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240215121837.251013-3-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | clk: add dummy definitions for CLK_SET_RATE_GATE, CLK_SET_PARENT_GATEAhmad Fatoum2024-02-161-0/+5
|/ | | | | | | | | | | | | | | | | | | CLK_SET_RATE_GATE and CLK_SET_PARENT_GATE mean that the clk itself or its parent, respectively, needs to be gated before attempting a set rate. If this is not the case, the operation would fail in Linux with -EBUSY. The usual way this is ported to barebox is by just omitting the flag, because a well-behaving driver shouldn't be gating clocks before setting rate anyway. Embrace this guard rail free life by defining the macros as zero. If in future, we decide to add them, we can always redefine them and implement appropriate behavior. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240215121837.251013-2-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/net'Sascha Hauer2024-01-241-4/+51
|\
| * net/phy: sync phy_interface_t types with LinuxSascha Hauer2024-01-051-4/+51
| | | | | | | | | | | | | | | | This syncs the phy interface modes with Linux as of linux-6.7-rc7. Reviewed-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240104112241.989839-1-s.hauer@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | Merge branch 'for-next/pci'Sascha Hauer2024-01-242-5/+51
|\ \
| * | pci: implement function level resetSascha Hauer2024-01-021-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | This will be needed for upcoming LS1028a support. The code is taken from U-Boot which suffices for our usecase. The kernel code is much more elaborated here. Link: https://lore.barebox.org/20231219125630.3684-7-s.hauer@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | pci: implement Enhanced Allocation supportSascha Hauer2024-01-021-1/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some PCI devices have their base addresses not defined in the BARs, but instead have them defined in Enhanced Allocation structures. Add support for these Enhanced Allocation structures, taken directly from the Linux Kernel. Motivation for adding this is the LS1028a SoC which uses Enhanced Allocation for the Ethernet Subsystem which comes as an integrated Endpoint Root Complex. Link: https://lore.barebox.org/20231219125630.3684-6-s.hauer@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | pci: fix __pci_bus_find_cap_startSascha Hauer2024-01-021-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | BIT(7) of dev->hdr_type has unrelated information. Mask out the upper bit so that the capabilities can properly be found. Link: https://lore.barebox.org/20231219125630.3684-5-s.hauer@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | pci: remove duplicate definition of pci_resource_startSascha Hauer2024-01-021-4/+0
| | | | | | | | | | | | | | | | | | | | | pci_resource_start is defined twice. Remove the duplicate. Link: https://lore.barebox.org/20231219125630.3684-2-s.hauer@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | | Merge branch 'for-next/misc'Sascha Hauer2024-01-236-19/+41
|\ \ \
| * | | lib: add optional linked list debuggingAhmad Fatoum2024-01-111-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When enabled, this outputs messages like: list_del corruption, 000000005fe4a9d0->next is LIST_POISON1 (0000000000000100) which can be useful when debugging. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240103101948.2630473-2-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | | list: rename debugging hooksAhmad Fatoum2024-01-111-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Linux recently renamed the name of these helpers, so have barebox follow suit before implementing them out of line when optional list debugging is enabled. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240103101948.2630473-1-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | | treewide: mark linker list elements with __ll_elemAhmad Fatoum2024-01-113-9/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To fix build with clang while using ASAN, define all linker list elements with __ll_elem. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240103101748.2629927-3-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * | | compiler: define __ll_elem for linker list elementsAhmad Fatoum2024-01-111-0/+6
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When built with clang + AddressSanitizer, global variables end up with a redzone that breaks linker list elements. The __no_sanitize_address attribute prevents these redzones, but GCC isn't happy about applying it to anything but functions. Therefore define a __ll_elem macro for defining linker list elements that takes care to avoid these redzones when building with clang. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240103101748.2629927-2-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | | clk: define aliases for clk_bulk_prepare_enable/disable_unprepareAhmad Fatoum2024-01-221-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't have a separate atomic prepare/unprepare step for clocks in barebox and instead combine it with enable/disable. We have macros to alias prepare_enable/disable_unprepare for non-bulk API, so add the same for the bulk API too. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240119162610.1014870-17-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | | regmap: include missing header from linux/regmap.hAhmad Fatoum2024-01-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | The header defines regmap_read_poll_timeout, which requires <linux/iopoll.h>, thus include the header. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240119162610.1014870-16-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | | include: linux/device.h: implement dev_platform_ioremap_resourceAhmad Fatoum2024-01-221-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are more than a thousand instances of devm_platform_ioremap_resource across Linux drivers and porting it to barebox is cumbersome, because unlike Linux we don't remap, so the MMIO region may be at address zero. Now that dev_request_mem_region_err_null() prints a warning in that case, let's just use it to implement dev_platform_ioremap_resource(). Platforms with relevant MMIO at address 0 are scarce anyway and when we run on such a platform, we can always switch to use normal dev_request_mem_resource(). Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240119162610.1014870-15-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | | clk: fix of_clk_hw_simple_get stub definitionAhmad Fatoum2024-01-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When !CONFIG_COMMON_CLK_OF_PROVIDER, we end up with a stub definition that defers from the out-of-line version. Fix that. Fixes: 054ccac22bd1 ("clk: implement of_clk_hw_{onecell,simple}_get") Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240118084514.1294791-1-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | | regmap: clarify struct regmap::max_register value some moreAhmad Fatoum2024-01-111-0/+3
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | We already have documentation for the member that was taken from Linux, but still managed to use it wrongly at multiple places that were recently fixed. To prevent such issues from reoccurring in the future, expand the documentation a bit. Suggested-by: Robin van der Gracht <robin@protonic.nl> Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Acked-by: Robin van der Gracht <robin@protonic.nl> Link: https://lore.barebox.org/20240111073412.1318725-1-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | ARM: kasan: reserve shadow memory regionAhmad Fatoum2024-01-041-2/+2
|/ | | | | | | | | | We did not have any protection in place to ensure that KASAN shadow memory isn't overwritten during boot. Add that now to avoid strange effects during debugging. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20240104085736.541171-1-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* clk: add STM32MP13 clock and reset driversAhmad Fatoum2023-12-052-0/+31
| | | | | | | | | | | The reset and clock control peripheral of the STM32MP13 is with publicly available firmware exclusively handled by the secure world and normal world needs to employ SCMI to interact with OP-TEE to toggle clocks for it. Import the Linux driver to facilitate this. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20231127064947.2207726-10-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* clk: implement clk_hw_reparentAhmad Fatoum2023-12-051-0/+5
| | | | | | | | | | clk_hw_reparent does a bit of work in Linux to update the cached clock tree, but we have no cached clock tree in barebox, so just implement it as empty stub. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20231127064947.2207726-9-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* clk: add struct clk_init_data::parent_hwsAhmad Fatoum2023-12-051-0/+3
| | | | | | | | | | | For cases where all clock parents are internal to the clock controller, parent_hws allows specifying direct pointers to the clk_hw structures instead of globally unique names. Add support for this to barebox to be used by the incoming STM32MP13 clock driver. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20231127064947.2207726-8-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* clk: implement clk clk_hw_get_parent_by_indexAhmad Fatoum2023-12-051-0/+1
| | | | | | | | | | This is the inverse operation to clk_get_parent_index and is already implemented inline in clk_get_parent. Factor that code out for use by the incoming STM32MP13 clock driver. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20231127064947.2207726-7-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* clk: divider: implement divider_[ro_]round_rate_parentAhmad Fatoum2023-12-051-0/+21
| | | | | | | | | These functions will be used in the incoming STM32MP13 clock driver support. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20231127064947.2207726-6-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* clk: divider: implement CLK_DIVIDER_ALLOW_ZEROAhmad Fatoum2023-12-051-0/+1
| | | | | | | | | | We already support CLK_DIVIDER_ONE_BASED and incoming STM32MP13 clock support can have clock dividers evaluate to zero. Add support for CLK_DIVIDER_ALLOW_ZERO analogously to Linux. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Link: https://lore.barebox.org/20231127064947.2207726-5-a.fatoum@pengutronix.de Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>