summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-09-01arm: mvebu: espressobin: Enable also SATA support via PCIePali Rohár
Espressobin has one on-board SATA port which is connected directly to CPU. More SATA disks can be connected via mPCIe add-in card with PCIe-SATA controller. So enable required SATA AHCI PCIe drivers in defconfig file. Signed-off-by: Pali Rohár <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2021-09-01arm: mvebu: axp: Properly check for Armada XP in mach/soc.hPali Rohár
File mach/soc.h is included also in 64-bit mvebu processors, so define Armada XP related macros only when compiling for Armada XP. Signed-off-by: Pali Rohár <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2021-09-01tools: kwbimage: Use IBR_HDR_* constants instead of raw numbersPali Rohár
There are already IBR_HDR_* constants for these numbers, so use them. Signed-off-by: Pali Rohár <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2021-09-01tools: kwbimage: Verify size of image dataPali Rohár
Part of image data is 4 byte checksum, so every image must contain at least 4 bytes. Verify it to prevent memory corruptions. Signed-off-by: Pali Rohár <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2021-09-01tools: kwbimage: Verify size of v0 image headerPali Rohár
Check that extended image header size is not larger than file size. Signed-off-by: Pali Rohár <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2021-09-01tools: kwbimage: Verify supported image versionPali Rohár
Only image versions 0 and 1 are supported. Verify it in kwbimage_verify_header() function. Signed-off-by: Pali Rohár <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2021-09-01arm: mvebu: a38x: Define supported UART baudratesPali Rohár
Define all standard baudrates plus 3 non-standard high speed: 3125000 4000000 5150000 3125000 matches divisor 5 with 250 MHz TCLK and divisor 4 with 200 MHz TCLK. 4000000 is the rounded value for divisor 4 with 250 MHz TCLK (3906250) and divisor 3 with 200 MHz TCLK (4166666). 5150000 is the rounded value (5208333) for divisor 3 with 250 MHz TCLK. Testing showed that rounded value is more stable then exactly calculated. And it is the highest possible baudrate which is stable on A38x platform. Any other baudrate values above 2500000 are unstable, which is reason why e.g. standard value 3000000 is not defined, and it is needed to use non-standard value 3125000. Tested all defined UART baudrates on Turris Omnia (A38x with 250 MHz TCLK). Signed-off-by: Pali Rohár <[email protected]> Reviewed-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
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 https://gitlab.denx.de/u-boot/custodians/u-boot-shTom Rini
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 <[email protected]> [trini: Rework FSP_USE_UPD portion] Signed-off-by: Tom Rini <[email protected]>
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 <[email protected]> Acked-by: Sean Anderson <[email protected]> Reviewed-by: Rick Chen <[email protected]>
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 <[email protected]>
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 <[email protected]> Cc: Anup Patel <[email protected]> Cc: Atish Patra <[email protected]> Cc: Bin Meng <[email protected]> Cc: Leo <[email protected]> Cc: Palmer Dabbelt <[email protected]> Cc: Paul Walmsley <[email protected]> Cc: Sean Anderson <[email protected]> Cc: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]> Acked-by: Sean Anderson <[email protected]> Reviewed-by: Daniel Schwierzeck <[email protected]> Reviewed-by: Rick Chen <[email protected]>
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 <[email protected]> Cc: Rajesh Bhagat <[email protected]> Signed-off-by: Tom Rini <[email protected]>
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 <[email protected]>
2021-08-31Convert CONFIG_QSPI_BOOT to KconfigTom Rini
This converts the following to Kconfig: CONFIG_QSPI_BOOT Signed-off-by: Tom Rini <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]> Acked-by: Troy Kisky <[email protected]>
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 <[email protected]> Acked-by: Troy Kisky <[email protected]>
2021-08-31Convert CONFIG_SPL to KconfigTom Rini
This converts the following to Kconfig: CONFIG_SPL Signed-off-by: Tom Rini <[email protected]>
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 <[email protected]>
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 <[email protected]>
2021-08-31Convert CONFIG_MX7D to KconfigTom Rini
This converts the following to Kconfig: CONFIG_MX7D Cc: Oleksandr Suvorov <[email protected]> Signed-off-by: Tom Rini <[email protected]>
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 <[email protected]> Reviewed-by: Rick Chen <[email protected]>
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 <[email protected]>
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 <[email protected]> Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Bin Meng <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
2021-08-31mvebe: Migrate CONFIG_DDR_LOG_LEVEL to KconfigTom Rini
Move this specific option to Kconfig. Signed-off-by: Tom Rini <[email protected]>
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 <[email protected]> Cc: Stefan Roese <[email protected]> Signed-off-by: Tom Rini <[email protected]> Acked-by: Marek Behún <[email protected]>
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 <[email protected]> Acked-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
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 <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Signed-off-by: Rasmus Villemoes <[email protected]>
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 <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Signed-off-by: Rasmus Villemoes <[email protected]>
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 <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Signed-off-by: Rasmus Villemoes <[email protected]>
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 <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Signed-off-by: Rasmus Villemoes <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Signed-off-by: Rasmus Villemoes <[email protected]>
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 <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Signed-off-by: Rasmus Villemoes <[email protected]>
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 <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Signed-off-by: Rasmus Villemoes <[email protected]>
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 <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Signed-off-by: Rasmus Villemoes <[email protected]>
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 <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Signed-off-by: Rasmus Villemoes <[email protected]>
2021-08-31watchdog: wdt-uclass.c: use wdt_start() in wdt_expire_now()Rasmus Villemoes
wdt_start() does the "no ->start? return -ENOSYS" check, don't open-code that in wdt_expire_now(). Also, wdt_start() maintains some global (and later some per-device) state, which would get out of sync with this direct method call - not that it matters much here since the board is supposed to reset very soon. Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Stefan Roese <[email protected]> Signed-off-by: Rasmus Villemoes <[email protected]>
2021-08-30global: Remove unused or unnecessary CONFIG symbols related to DDRTom Rini
These symbols are now either unused or were only used within the config file to determine other logic, which could be done in a way that doesn't further pollute the CONFIG namespace. Signed-off-by: Tom Rini <[email protected]>
2021-08-30Merge branch '2021-08-30-kconfig-migrations-part1' into nextTom Rini
- Begin merging some Kconfig migration, and CONFIG namespace cleanup series in. This gives us: - A number of I2C symbols migrated over - DWC2, i8042, altera_spi and a few other areas updated to use CFG not CONFIG for the concept of "configuration space" defines. - Rename CONFIG_EXTRA_ENV_BOARD_SETTINGS to EXTRA_ENV_BOARD_SETTINGS - Some dead code removal. - Rename a number of CONFIG symbols that were only referenced within the config header to not use CONFIG as a prefix.
2021-08-30Kconfig: Use spaces not tabs in Kconfig entiresTom Rini
While the Kconfig language seems to accept either form of whitespace, we use a space throughout the project, except in these spots. Signed-off-by: Tom Rini <[email protected]>