summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-09-01arm: dts: u8500: Update from Linux ux500-dts-for-v5.15Stephan Gerhold
Update ste-dbx5x0.dtsi, ste-ab8500.dtsi and ste-ab8505.dtsi with the changes made in upstream Linux. They are taken from https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git/ branch "ux500-dts-for-v5.15" (pending merge for Linux 5.15). The only relevant change for U-Boot here is "ARM: dts: ux500: ab8500: Link USB PHY to USB controller node" [1] which links the USB PHY to the USB controller. This is necessary on U-Boot because the PHY driver is implemented as part of the generic PHY subsystem that makes use of these bindings. [1]: https://lore.kernel.org/linux-arm-kernel/20210709182234.47232-1-stephan@gerhold.net/ Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
2021-09-01arm: u8500: Imply options for new driversStephan Gerhold
Imply the options for new drivers added for ARM U8500 during the U-Boot 2021.10 merge window. Adding these as "imply" in the Kconfig avoids having to add them to all the board defconfigs but still allows disabling them if wanted. Also select DM_USB_GADGET if DM_USB is selected because otherwise the Ux500 MUSB glue driver does not show up in the configuration. Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
2021-09-01MAINTAINERS: Add new drivers for ARM U8500Stephan Gerhold
Update MAINTAINERS with various drivers for ARM U8500 that were added during the U-Boot 2021.10 merge window. Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
2021-09-01loadb: Properly indicate aborted kermit transferPali Rohár
When k_recv() returns zero it indicates that kermit transfer was aborted. Function do_load_serial_bin() (caller of load_serial_bin()) interprets value ~0 as aborted transfer, so properly propagates information about aborted transfer from k_recv() to do_load_serial_bin(). Signed-off-by: Pali Rohár <pali@kernel.org>
2021-09-01scripts/checkpatch.pl: Resync with v5.13Tom Rini
This resyncs us with the version found in v5.13 of the Linux kernel with the following exceptions: - Keep our u-boot specific tests / code area. - Change the location of checkpatch.rst (which we now import) - Drop the "use strscpy" test as we don't have that, but do have strlcpy and want that used now. - Keep debug/printf in the list for $logFunctions And note that we now also include the spdxcheck.py tool that checkpatch.pl supports calling out to, and include upstream's checkpatch.rst in our develop section of the documentation. Signed-off-by: Tom Rini <trini@konsulko.com>
2021-09-01mkimage: clarify error message for empty input filesThomas Hebb
Currently, an empty imput file causes `mmap()` to fail, and you get an error like "mkimage: Can't read file.img: Invalid argument", which is extremely unintuitive and hard to diagnose if you don't know what to look for. Add an explicit check for an empty file and provide a clear error message instead. We already bounds check the image size when listing and re-signing existing images, so we only need this check here, when opening data files going into a image. Signed-off-by: Thomas Hebb <tommyhebb@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2021-09-01lib: -Wformat-truncation in rsa_engine_get_priv_keyHeinrich Schuchardt
With glibc 2.33 (Ubuntu package glibc6 2.33-0ubuntu9) building sifive_unmatched_defconfig results in: In file included from /usr/include/stdio.h:866, from ././include/compiler.h:26, from <command-line>: In function ‘snprintf’, inlined from ‘rsa_engine_get_priv_key’ at ./tools/../^:273:4: /usr/include/riscv64-linux-gnu/bits/stdio2.h:71:10: warning: ‘%s’ directive argument is null [-Wformat-truncation=] 71 | return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 72 | __glibc_objsize (__s), __fmt, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | __va_arg_pack ()); | ~~~~~~~~~~~~~~~~~ Avoid passing a NULL string. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2021-09-01fit: Use DM hash driver if supportedChia-Wei Wang
Calculate hash using DM driver if supported. For backward compatibility, the call to legacy hash functions is reserved. Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
2021-09-01crypto: hash: Add software hash DM driverChia-Wei Wang
Add purely software-implmented drivers to support multiple hash operations including CRC, MD5, and SHA family. This driver is based on the new hash uclass. Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
2021-09-01dm: hash: Add new UCLASS_HASH supportChia-Wei Wang
Add UCLASS_HASH for hash driver development. Thus the hash drivers (SW or HW-accelerated) can be developed in the DM-based fashion. Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
2021-09-01lib/md5: Export progressive APIsChia-Wei Wang
Export the MD5 hash init/update/finish progressive APIs for better flexibility. Signed-off-by: Chia-Wei Wang <chiawei_wang@aspeedtech.com>
2021-09-01lib/rsa: Remove support for OpenSSL < 1.1.0 and libressl < 2.7.0Alexandru Gagniuc
Older OpenSSL and libressl versions have a slightly different API. This require #ifdefs to support. However, we still can't support it because the ECDSA path does not compile with these older versions. These #ifdefs are truly a vestigial appendage. Alternatively, the ECDSA path could be updated for older libraries, but this requires significant extra code, and #ifdefs. Those libraries are over three years old, and there concerns whether it makes sense to build modern software for real world use against such old libraries. Thusly, remove #ifdefs and code for old OpenSSL and LibreSSL support. Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
2021-08-31Merge branch 'next' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-marvell into next - Handling all DM watchdogs in watchdog_reset() (Rasmus)
2021-08-31Merge branch '2021-08-31-kconfig-migrations-part2' into nextTom Rini
- Further CONFIG to Kconfig migrations - Some DDR related symbols - CONFIG_SYS_LOAD_ADDR moved, loadaddr always set in environment now. - Finish MX7D, convert IMX_CONFIG - Some RAMBOOT related options - L1 cache size converted and named consistently for all arches. A further follow-up to rename things for even better clarity is welcome. - CONFIG_SKIP_LOWLEVEL_INIT, CONFIG_SYS_MALLOC_LEN
2021-08-31Kconfig: Remove all default n/no optionsMichal Simek
default n/no doesn't need to be specified. It is default option anyway. Signed-off-by: Michal Simek <michal.simek@xilinx.com> [trini: Rework FSP_USE_UPD portion] Signed-off-by: Tom Rini <trini@konsulko.com>
2021-08-31Convert CONFIG_SYS_MALLOC_LEN to KconfigTom Rini
This converts the following to Kconfig: CONFIG_SYS_MALLOC_LEN Signed-off-by: Tom Rini <trini@konsulko.com> Acked-by: Sean Anderson <seanga2@gmail.com> Reviewed-by: Rick Chen <rick@andestech.com>
2021-08-31Convert CONFIG_SKIP_LOWLEVEL_INIT et al to KconfigTom Rini
This converts the following to Kconfig: CONFIG_SKIP_LOWLEVEL_INIT CONFIG_SKIP_LOWLEVEL_INIT_ONLY In order to do this, we need to introduce SPL and TPL variants of these options so that we can clearly disable these options only in SPL in some cases, and both instances in other cases. Signed-off-by: Tom Rini <trini@konsulko.com>
2021-08-31Finish converting CONFIG_SYS_CACHELINE_SIZE to KconfigTom Rini
We move the SYS_CACHE_SHIFT_N options from arch/arm/Kconfig to arch/Kconfig, and introduce SYS_CACHE_SHIFT_4 to provide a size of 16. Introduce select statements for other architectures based on current usage. For MIPS, we take the existing arch-specific symbol and migrate to the generic symbol. This lets us remove a little bit of otherwise unused code. Cc: Alexey Brodkin <alexey.brodkin@synopsys.com> Cc: Anup Patel <anup.patel@wdc.com> Cc: Atish Patra <atish.patra@wdc.com> Cc: Bin Meng <bmeng.cn@gmail.com> Cc: Leo <ycliang@andestech.com> Cc: Palmer Dabbelt <palmer@dabbelt.com> Cc: Paul Walmsley <paul.walmsley@sifive.com> Cc: Sean Anderson <seanga2@gmail.com> Cc: Simon Glass <sjg@chromium.org> Signed-off-by: Tom Rini <trini@konsulko.com> Acked-by: Sean Anderson <seanga2@gmail.com> Reviewed-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com> Reviewed-by: Rick Chen <rick@andestech.com>
2021-08-31ls1046ardb_qspi*: Enable RAMBOOT_PBLTom Rini
Based on include/configs/ls1046ardb.h it seems that CONFIG_RAMBOOT_PBL should have been enabled, but was not. Enable and migrate the values to Kconfig. Cc: Mingkai Hu <mingkai.hu@nxp.com> Cc: Rajesh Bhagat <rajesh.bhagat@nxp.com> Signed-off-by: Tom Rini <trini@konsulko.com>
2021-08-31Convert CONFIG_RAMBOOT_PBL et al to KconfigTom Rini
This converts the following to Kconfig: CONFIG_RAMBOOT_PBL CONFIG_SYS_FSL_PBL_PBI CONFIG_SYS_FSL_PBL_RCW Signed-off-by: Tom Rini <trini@konsulko.com>
2021-08-31Convert CONFIG_QSPI_BOOT to KconfigTom Rini
This converts the following to Kconfig: CONFIG_QSPI_BOOT Signed-off-by: Tom Rini <trini@konsulko.com>
2021-08-31Convert CONFIG_SYS_FSL_DDR4 to KconfigTom Rini
This converts the following to Kconfig: CONFIG_SYS_FSL_DDR4 Signed-off-by: Tom Rini <trini@konsulko.com>
2021-08-31configs: Remove unused IMX_NAND symbolTom Rini
The symbol CONFIG_IMX_NAND is not referenced in the code, remove it. Signed-off-by: Tom Rini <trini@konsulko.com>
2021-08-31nitrogen6x: Populate FDTFILE at build-time for all platformsTom Rini
Rather than using CONFIG_SABRELITE to set FDTFILE for only that platform, switch to always setting this based on CONFIG_DEFAULT_DEVICE_TREE as this should always match the kernel device tree name anyhow. Signed-off-by: Tom Rini <trini@konsulko.com> Acked-by: Troy Kisky <troy.kisky@boundarydevices.com>
2021-08-31nitrogen6x: Migrate DDR_MB to KconfigTom Rini
Move the CONFIG_DDR_MB symbol to Kconfig. A later clean-up would be to make dynamic memory size detection work based on how this is done on other i.MX6 platforms. Signed-off-by: Tom Rini <trini@konsulko.com> Acked-by: Troy Kisky <troy.kisky@boundarydevices.com>
2021-08-31Convert CONFIG_SPL to KconfigTom Rini
This converts the following to Kconfig: CONFIG_SPL Signed-off-by: Tom Rini <trini@konsulko.com>
2021-08-31imx: Finish migration of IMX_CONFIG to KconfigTom Rini
- Provide a default Kconfig value of the default script - Largely continue to define this via the board Kconfig file - For the boards that select a script based on defconfig rather than TARGET, keep this within the defconfig. Signed-off-by: Tom Rini <trini@konsulko.com>
2021-08-31imx: Introduce CONFIG_MACH_IMXTom Rini
Currently, there is no over-arching symbol for access to arch/arm/mach-imx nor the CONFIG symbols that are common over all of these related platforms. This new CONFIG symbol will allow us to start down this path. Signed-off-by: Tom Rini <trini@konsulko.com>
2021-08-31Convert CONFIG_MX7D to KconfigTom Rini
This converts the following to Kconfig: CONFIG_MX7D Cc: Oleksandr Suvorov <oleksandr.suvorov@toradex.com> Signed-off-by: Tom Rini <trini@konsulko.com>
2021-08-31Convert CONFIG_SYS_LOAD_ADDR to KconfigTom Rini
Now that we have consistent usage, migrate this symbol to Kconfig. Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Rick Chen <rick@andestech.com>
2021-08-31global: Convert CONFIG_LOADADDR to CONFIG_SYS_LOADADDRTom Rini
- In most of the codebase, we reference CONFIG_SYS_LOAD_ADDR and not CONFIG_LOADADDR. - Generally, CONFIG_SYS_LOADADDR is set to CONFIG_LOADADDR and then as noted, we use CONFIG_SYS_LOADADDR. Signed-off-by: Tom Rini <trini@konsulko.com>
2021-08-31qfw: Switch to CONFIG_SYS_LOAD_ADDR from CONFIG_LOADADDRTom Rini
All platforms define CONFIG_SYS_LOAD_ADDR, but only some define CONFIG_LOADADDR. Very very rarely are these not the same address, and qemu-ppce500 is one such case. However, based on reading the history of the code, this mismatched value was simply a copy-paste from other PowerPC platforms where it is this unused currently. Switch the code to use CONFIG_SYS_LOAD_ADDR and update the documentation. Cc: Bin Meng <bmeng.cn@gmail.com> Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
2021-08-31Convert CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT to KconfigTom Rini
This converts the following to Kconfig: CONFIG_SPL_MPC8XXX_INIT_DDR_SUPPORT Signed-off-by: Tom Rini <trini@konsulko.com>
2021-08-31nxp: Migrate a number of DDR related symbols to KconfigTom Rini
- Guard most of the options in drivers/ddr/fsl/Kconfig with SYS_FSL_DDR || SYS_FSL_MMDC. - Migrate FSL_DMA, DDR_ECC, DDR_ECC_CMD, and ECC_INIT_VIA_DDRCONTROLLER to Kconfig. - Clean up the logic for including the DDR_ECC_CMD code. Signed-off-by: Tom Rini <trini@konsulko.com>
2021-08-31nxp: Migrate CONFIG_DDR_CLK_FREQ to KconfigTom Rini
As this symbol can either be a fixed value or the function get_board_ddr_clk, migration is tricky. Introduce a choice of DYNAMIC or STATIC_DDR_CLK_FREQ. If DYNAMIC, we continue to use the board defined get_board_ddr_clk function. If STATIC, set CONFIG_DDR_CLK_FREQ to that value and now include/clock_legacy.h contains the function prototype or defines get_board_ddr_clk() to that static value. Update callers to test for DYNAMIC or STATIC. Signed-off-by: Tom Rini <trini@konsulko.com>
2021-08-31ddr: Migrate DDR_SPD to KconfigTom Rini
Move the symbol that controls building some JEDEC SPD support functions to Kconfig. This is required on the TI keystone 2 platforms and very frequently (but not always) used on large number of Freescale/NXP platforms, so use imply there. Signed-off-by: Tom Rini <trini@konsulko.com>
2021-08-31mvebe: Migrate CONFIG_DDR_LOG_LEVEL to KconfigTom Rini
Move this specific option to Kconfig. Signed-off-by: Tom Rini <trini@konsulko.com>
2021-08-31mvebu: ddr: Rename CONFIG_DDR_FIXED_SIZE to CONFIG_SYS_SDRAM_SIZETom Rini
We have a number of CONFIG symbols to express the fixed size of system memory. For now, rename CONFIG_DDR_FIXED_SIZE to CONFIG_SYS_SDRAM_SIZE and adjust usage to match that CONFIG_SYS_SDRAM_SIZE expects the entire size rather than MiB. Cc: Marek Behún <marek.behun@nic.cz> Cc: Stefan Roese <sr@denx.de> Signed-off-by: Tom Rini <trini@konsulko.com> Acked-by: Marek Behún <marek.behun@nic.cz>
2021-08-31mvebu: Migrate CONFIG_DDR_32BIT/64BIT to KconfigTom Rini
Move CONFIG_DDR_32BIT/64BIT to Kconfig as a choice for Armada XP platforms. Make 64bit the default as this mirrors the current code. Signed-off-by: Tom Rini <trini@konsulko.com> Acked-by: Marek Behún <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de>
2021-08-31sandbox: add test of wdt-uclass' watchdog_reset()Rasmus Villemoes
Check that the watchdog_reset() implementation in wdt-uclass behaves as expected: - resets all activated watchdog devices - leaves unactivated/stopped devices alone - that the rate-limiting works, with a per-device threshold Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Stefan Roese <sr@denx.de> Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
2021-08-31sandbox: add test of wdt_gpio driverRasmus Villemoes
It seems that no other test has claimed gpio_a:7 yet, so use that. The only small wrinkle is modifying the existing wdt test to use uclass_get_device_by_driver() since we now have two UCLASS_WDT instances in play, so it's a little more robust to fetch the device by driver and not merely uclass+index. Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Stefan Roese <sr@denx.de> Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
2021-08-31watchdog: add gpio watchdog driverRasmus Villemoes
A rather common kind of external watchdog circuit is one that is kept alive by toggling a gpio. Add a driver for handling such a watchdog. The corresponding linux driver apparently has support for some watchdog circuits which can be disabled by tri-stating the gpio, but I have never actually encountered such a chip in the wild; the whole point of adding an external watchdog is usually that it is not in any way under software control. For forward-compatibility, and to make DT describe the hardware, the current driver only supports devices that have the always-running property. I went a little back and forth on whether I should fail ->probe or only ->start, and ended up deciding ->start was the right place. The compatible string is probably a little odd as it has nothing to do with linux per se - however, I chose that to make .dts snippets reusable between device trees used with U-Boot and linux, and this is the (only) compatible string that linux' corresponding driver and DT binding accepts. I have asked whether one should/could add "wdt-gpio" to that binding, but the answer was no: https://lore.kernel.org/lkml/CAL_JsqKEGaFpiFV_oAtE+S_bnHkg4qry+bhx2EDs=NSbVf_giA@mail.gmail.com/ If someone feels strongly about this, I can certainly remove the "linux," part from the string - it probably wouldn't the only place where one can't reuse a DT snippet as-is between linux and U-Boot. Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Stefan Roese <sr@denx.de> Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
2021-08-31watchdog: wdt-uclass.c: handle all DM watchdogs in watchdog_reset()Rasmus Villemoes
A board can have and make use of more than one watchdog device, say one built into the SOC and an external gpio-petted one. Having wdt-uclass only handle the first is both a little arbitrary and unexpected. So change initr_watchdog() so we visit (probe) all DM watchdog devices, and call the init_watchdog_dev helper for each. Similarly let watchdog_reset() loop over the whole uclass - each having their own ratelimiting metadata, and a separate "is this device running" flag. This gets rid of the watchdog_dev member of struct global_data. We do, however, still need the GD_FLG_WDT_READY set in initr_watchdog(). This is because watchdog_reset() can get called before DM is ready, and I don't think we can call uclass_get() that early. The current code just returns 0 if "getting" the first device fails - that can of course happen because there are no devices, but it could also happen if its ->probe call failed. In keeping with that, continue with the handling of the remaining devices even if one fails to probe. This is also why we cannot use uclass_probe_all(). If desired, it's possible to later add a per-device "u-boot,autostart" boolean property, so that one can do CONFIG_WATCHDOG_AUTOSTART per-device. Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Stefan Roese <sr@denx.de> Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
2021-08-31board: x530: switch to wdt_stop_all()Rasmus Villemoes
Since the gd->watchdog_dev member is going away, switch to using the new wdt_stop_all() helper. While here, clean up the preprocessor conditional: The ->watchdog_dev member is actually guarded by CONFIG_WDT [disabling that in x530_defconfig while keeping CONFIG_WATCHDOG breaks the build], and in the new world order so is the existence of the wdt_stop_all() function. Actually, existence of wdt_stop_all() depends on CONFIG_${SPL_}WDT, so really spell the condition using CONFIG_IS_ENABLED, and make it a C rather than cpp if. Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
2021-08-31watchdog: wdt-uclass.c: add wdt_stop_all() helperRasmus Villemoes
Since the watchdog_dev member of struct global_data is going away in favor of the wdt-uclass handling all watchdog devices, prepare for that by adding a helper to call wdt_stop() on all known devices. If an error is encountered, still do wdt_stop() on remaining devices, but remember and return the first error seen. Initially, this will only be used in one single place (board/alliedtelesis/x530/x530.c). Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
2021-08-31sandbox: disable CONFIG_WATCHDOG_AUTOSTARTRasmus Villemoes
For the unit tests, it is more convenient if the tests are in charge of when the watchdog devices are started and stopped, so prevent wdt-uclass from doing it automatically. Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Stefan Roese <sr@denx.de> Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
2021-08-31watchdog: wdt-uclass.c: keep track of each device's running stateRasmus Villemoes
As a step towards handling all DM watchdogs in watchdog_reset(), use a per-device flag to keep track of whether the device has been started instead of a bit in gd->flags. We will still need that bit to know whether we are past initr_watchdog() and hence have populated gd->watchdog_dev - incidentally, that is how it was used prior to commit 9c44ff1c5f3c. Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Stefan Roese <sr@denx.de> Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
2021-08-31watchdog: wdt-uclass.c: refactor initr_watchdog()Rasmus Villemoes
In preparation for handling all DM watchdogs in watchdog_reset(), pull out the code which handles starting (or not) the gd->watchdog_dev device. Include the device name in various printfs. Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Stefan Roese <sr@denx.de> Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
2021-08-31watchdog: wdt-uclass.c: neaten UCLASS_DRIVER definitionRasmus Villemoes
The addition of .pre_probe and .per_device_auto made this look bad. Fix it. Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Stefan Roese <sr@denx.de> Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
2021-08-31watchdog: wdt-uclass.c: introduce struct wdt_privRasmus Villemoes
As preparation for having the wdt-uclass provided watchdog_reset() function handle all DM watchdog devices, and not just the first such, introduce a uclass-owned struct to hold the reset_period and next_reset, so these become per-device instead of being static variables. No functional change intended. Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Stefan Roese <sr@denx.de> Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>