summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-10-06tpl: Enable CONFIG_TPL_SYS_MALLOC_F where neededSimon Glass
Enable CONFIG_TPL_SYS_MALLOC_F for boards which have a non-zero value for CONFIG_TPL_SYS_MALLOC_F_LEN Note that the default is yes in most cases, so no changes are needed to board defconfig options. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-06spl: Enable CONFIG_SPL_SYS_MALLOC_F where neededSimon Glass
Enable CONFIG_SPL_SYS_MALLOC_F for boards which have a non-zero value for CONFIG_SPL_SYS_MALLOC_F_LEN Note that the default is yes in most cases, so no changes are needed to board defconfig options. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-06spl: Create proper symbols for enabling the malloc() poolSimon Glass
For U-Boot proper we have CONFIG_SYS_MALLOC_F which indicates that a malloc() pool is available before relocation. For SPL we only have CONFIG_SPL_SYS_MALLOC_F_LEN which indicates the size of the pool. In various places we use CONFIG_SPL_SYS_MALLOC_F_LEN == 0 to indicate that there is no pool. This differing approach is confusing. Add a new CONFIG_SPL_SYS_MALLOC_F symbol for SPL (and similarly for TPL and VPL). Tidy up the Kconfig help for clarity. For now these symbols are not used. That is cleaned up in the following patches. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-06serial: Drop mention of SPL/TPL_SYS_MALLOC_FSimon Glass
These symbols do not (yet) exist, so drop the usage of them in the serial Kconfig file. It has no effect. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-06spl: Drop the switch() statement for OS selectionSimon Glass
This code is pretty ugly, with many #ifdefs There are quite a lot of IH_OS_U_BOOT values so the compiler struggles to create a jump table here. Also, most of the options are normally disabled. Change it to an else...if construct instead. Add an accessor for the spl_image field behind an #ifdef to avoid needing #ifdef in the C code. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-06spl: Avoid #ifdef with CONFIG_SPL_PAYLOAD_ARGS_ADDRSimon Glass
Move the condition to the header file to improve readability. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-06spl: Drop #ifdefs for BOARD_INIT and watchdogSimon Glass
Avoid using the preprocessor for these checks. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-06spl: mx6: powerpc: Drop the condition on timer_init()Simon Glass
It doesn't make sense to have some boards do this differently. Drop the condition in the hope that the maintainers can figure out any run-time problems. This has been tested on qemu-ppce500 Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Christophe Leroy <christophe.leroy@csgroup.eu>
2023-10-06spl: Avoid #ifdef with CONFIG_SPL_SYS_MALLOCSimon Glass
Use IF_ENABLED_INT() to avoid needing to use the preprocessor. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-06spl: Rename SYS_SPL_ARGS_ADDR to SPL_PAYLOAD_ARGS_ADDRSimon Glass
Rename this so that SPL is first, as per U-Boot convention. Also add PAYLOAD_ since this is where in memory the parameters for the payload have been stored. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-06spl: Use CONFIG_SPL... instead of CONFIG_..._SPL_...Simon Glass
We like to put the SPL first so it is clear that it relates to SPL. Rename various malloc-related options which have crept in, to stick to this convention. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Reviewed-by: Martyn Welch <martyn.welch@collabora.com> Reviewed-by: Svyatoslav Ryhel <clamor95@gmail.com>
2023-10-05Merge https://source.denx.de/u-boot/custodians/u-boot-riscvTom Rini
+ ae350: modify memory layout and target name + ae350: use generic RISC-V timer driver in S-mode + Support bootstage report for RISC-V + Support C extension exception command for RISC-V + Add Starfive timer support
2023-10-05Merge branch '2023-10-04-TI-dts-updates'Tom Rini
- Resync some TI K3 DTS files, to fix booting on them.
2023-10-04Merge tag 'dm-pull-4oct23' of https://source.denx.de/u-boot/custodians/u-boot-dmTom Rini
moveconfig: enhance output; rename to qconfig
2023-10-04arm: dts: k3-j721e: Sync with v6.6-rc1Neha Malcom Francis
Sync k3-j721e DTS with kernel.org v6.6-rc1. * Use mcu_timer0 defined in k3-j721e-mcu-wakeup.dtsi and remove timer0, we have its clocks set up in clk-data now * Remove hbmc node as support is buggy and needs to be fixed * Remove aliases and chosen node, use them from Kernel * Remove /delete-property/ and clock-frequency from sdhci, usbss, and mcu_uart nodes as we have them in clk and dev data * Remove dummy_clocks as they are not needed * Remove cpsw node as it is not required since it has been fixed in U-Boot * Remove pcie nodes, they are not needed * Remove mcu_i2c0 as it is used for tps659413 PMIC in j721e-sk for which support is not yet added * Change secproxy nodes to their Linux definitions * Remove overriding of ti,cluster-mode in MAIN R5 to default to lockstep mode same as Kernel * Retain tps6594 node as TPS6594 PMIC support is still under review in the Kernel [1], cleanup will be taken post its merge [1] https://lore.kernel.org/all/20230810-tps6594-v6-0-2b2e2399e2ef@ti.com/ Signed-off-by: Neha Malcom Francis <n-francis@ti.com> Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com>
2023-10-04arm: dts: k3-j721e-r5: Clean up inclusion hierarchyNeha Malcom Francis
Get rid of k3-j721e-r5-*-u-boot.dtsi as it is not necessary. Change the inclusion hierarchy to be as follows: k3-j721e-<board>.dts--- - -->k3-j721e-r5-<board>.dts - k3-j721e-<board>-u-boot.dtsi--- Reason for explicitly mentioning the inclusion of -u-boot.dtsi in code although it could've been automatically done by U-Boot is to resolve some of the dependencies that R5 file requires. Also remove duplicate phandles while making this shift as well as remove firmware-loader as it serves no purpose without "phandlepart" property. Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
2023-10-04configs: j721e: Remove HBMC_AM654 configNeha Malcom Francis
Kernel commit d93036b47f35 ("arm64: dts: ti: k3-j721e-mcu_wakeup: Add HyperBus node") was merged to kernel without its dependent patch [1]. Similar fix is needed in U-Boot, and hbmc currently breaks boot. Till this gets fixed in U-Boot, disable the config by default so that the hbmc probe that happens in board/ti/j721e/evm.c will not take place and lead to boot failure. [1] https://lore.kernel.org/all/20230424184810.29453-1-afd@ti.com/ Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
2023-10-04drivers: firmware: ti_sci: Get SCI revision only if TIFS/SYSFW is upNeha Malcom Francis
When setting up boot media to load the TIFS binary in legacy boot flow (followed by J721E), get_timer() is called which calls dm_timer_init() which then gets the tick-timer: mcu_timer0. mcu_timer0 uses k3_clks (clock controller) and k3_pds (power controller) from the dmsc node that forces probe of the ti_sci driver of TIFS that hasn't been loaded yet! Running ti_sci_cmd_get_revision from the probe leads to panic since no TIFS and board config binaries have been loaded yet. Resolve this by moving ti_sci_cmd_get_revision to ti_sci_get_handle_from_sysfw as a common point of invocation for both legacy and combined boot flows. Before doing this, it is important to go through whether any sync points exist where revision is needed before ti_sci_get_handle_from_sysfw is invoked. Going through the code along with boot tests on both flows ensures that there are none. Signed-off-by: Neha Malcom Francis <n-francis@ti.com>
2023-10-04arm: mach-k3: j721e_init: Move clk_k3 probe before loading TIFSNeha Malcom Francis
When setting boot media to load the TIFS binary in legacy boot flow (followed by J721E), get_timer() is called which eventually calls dm_timer_init() to grab the tick-timer, which is mcu_timer0. Since we need to set up the clocks before using the timer, move clk_k3 driver probe before k3_sysfw_loader to ensure we have all necessary clocks set up before. Signed-off-by: Neha Malcom Francis <n-francis@ti.com> Reviewed-by: Nishanth Menon <nm@ti.com> Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com>
2023-10-04arm: mach-k3: j721e: dev-data: Add mcu_timer0 IDNeha Malcom Francis
U-Boot uses mcu_timer0 as the tick-timer, so add it to device list. Signed-off-by: Neha Malcom Francis <n-francis@ti.com> Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com> Reviewed-by: Nishanth Menon <nm@ti.com>
2023-10-04arm: dts: k3-am625-beagleplay: Fix BootNishanth Menon
Since commit [1] A53 u-boot proper is broken. This is because nodes marked as 'bootph-pre-ram' are not available at u-boot proper before relocation. To fix this we mark all nodes in u-boot.dtsi as 'bootph-all'. [1] 9e644284ab812 ("dm: core: Report bootph-pre-ram/sram node as pre-reloc after relocation") Reported-by: Roger Quadros <rogerq@kernel.org> Signed-off-by: Nishanth Menon <nm@ti.com> Reviewed-by: Roger Quadros <rogerq@kernel.org>
2023-10-04arm: dts: k3-am625-sk: Mark dependent nodes for pre-relocation phaseRoger Quadros
CPSW node needs PHY, MDIO, pinmux, DMA and INTC nodes. main_conf is required for phy_gmii_sel. Mark them as 'bootph-all' so they are available in all pre-relocation phases. Fixes the below dts warnings: <stdout>: Warning (reg_format): /bus@f0000/syscon@100000/phy@4044:reg: property has invalid length (8 bytes) (#address-cells == 2, #size-cells == 1) <stdout>: Warning (reg_format): /bus@f0000/ethernet@8000000/ethernet-ports/port@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1) <stdout>: Warning (unit_address_vs_reg): /bus@f0000/syscon@100000: node has a unit name, but no reg or ranges property <stdout>: Warning (pci_device_reg): Failed prerequisite 'reg_format' <stdout>: Warning (pci_device_bus_num): Failed prerequisite 'reg_format' <stdout>: Warning (simple_bus_reg): Failed prerequisite 'reg_format' <stdout>: Warning (i2c_bus_reg): Failed prerequisite 'reg_format' <stdout>: Warning (spi_bus_reg): Failed prerequisite 'reg_format' <stdout>: Warning (avoid_default_addr_size): /bus@f0000/syscon@100000/phy@4044: Relying on default #address-cells value <stdout>: Warning (avoid_default_addr_size): /bus@f0000/syscon@100000/phy@4044: Relying on default #size-cells value <stdout>: Warning (avoid_default_addr_size): /bus@f0000/ethernet@8000000/ethernet-ports/port@1: Relying on default #address-cells value <stdout>: Warning (avoid_default_addr_size): /bus@f0000/ethernet@8000000/ethernet-ports/port@1: Relying on default #size-cells value <stdout>: Warning (avoid_unnecessary_addr_size): Failed prerequisite 'avoid_default_addr_size' <stdout>: Warning (unique_unit_address): Failed prerequisite 'avoid_default_addr_size' Signed-off-by: Roger Quadros <rogerq@kernel.org> Reviewed-by: Nishanth Menon <nm@ti.com>
2023-10-04arm: dts: k3-am625-sk: Fix bootRoger Quadros
Since commit [1] A53 u-boot proper is broken. This is because nodes marked as 'bootph-pre-ram' are not available at u-boot proper before relocation. To fix this we mark all nodes in sk-u-boot.dtsi as 'bootph-all'. [1] 9e644284ab812 ("dm: core: Report bootph-pre-ram/sram node as pre-reloc after relocation") Signed-off-by: Roger Quadros <rogerq@kernel.org> Reviewed-by: Nishanth Menon <nm@ti.com>
2023-10-04arm: dts: k3-am642-sk: Mark dependent nodes for pre-relocation phaseRoger Quadros
CPSW node needs PHY, MDIO, pinmux, DMA and INTC nodes. Mark them as 'bootph-all' so they are available in all pre-relocation phases. Fixes below dts warnings: <stdout>: Warning (reg_format): /bus@f4000/ethernet@8000000/mdio@f00/ethernet-phy@1:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1) <stdout>: Warning (unit_address_vs_reg): /bus@f4000/ethernet@8000000/mdio@f00: node has a unit name, but no reg or ranges property <stdout>: Warning (pci_device_reg): Failed prerequisite 'reg_format' <stdout>: Warning (pci_device_bus_num): Failed prerequisite 'reg_format' <stdout>: Warning (simple_bus_reg): Failed prerequisite 'reg_format' <stdout>: Warning (i2c_bus_reg): Failed prerequisite 'reg_format' <stdout>: Warning (spi_bus_reg): Failed prerequisite 'reg_format' <stdout>: Warning (avoid_default_addr_size): /bus@f4000/ethernet@8000000/mdio@f00/ethernet-phy@1: Relying on default #address-cells value <stdout>: Warning (avoid_default_addr_size): /bus@f4000/ethernet@8000000/mdio@f00/ethernet-phy@1: Relying on default #size-cells value <stdout>: Warning (avoid_unnecessary_addr_size): Failed prerequisite 'avoid_default_addr_size' <stdout>: Warning (unique_unit_address): Failed prerequisite 'avoid_default_addr_size' <stdout>: Warning (msi_parent_property): /bus@f4000/bus@48000000/dma-controller@485c0100:msi-parent: Could not get phandle node for (cell 0) <stdout>: Warning (msi_parent_property): /bus@f4000/bus@48000000/dma-controller@485c0000:msi-parent: Could not get phandle node for (cell 0) <stdout>: Warning (phys_property): /bus@f4000/ethernet@8000000/ethernet-ports/port@2:phys: Could not get phandle node for (cell 0) Signed-off-by: Roger Quadros <rogerq@kernel.org> Reviewed-by: Nishanth Menon <nm@ti.com>
2023-10-04arm: dts: k3-am642-sk: Fix bootRoger Quadros
Since commit [1] A53 u-boot proper is broken. This is because nodes marked as 'bootph-pre-ram' are not available at u-boot proper before relocation. To fix this we mark all nodes in sk-u-boot.dtsi as 'bootph-all'. Move cbass_mcu node to -r5-sk.dts as it is only required for R5 SPL. [1] 9e644284ab812 ("dm: core: Report bootph-pre-ram/sram node as pre-reloc after relocation") Signed-off-by: Roger Quadros <rogerq@kernel.org> Reviewed-by: Nishanth Menon <nm@ti.com>
2023-10-04arm: dts: k3-am64-evm: Mark dependent nodes for pre-relocation phaseRoger Quadros
CPSW node needs PHY, MDIO, pinmux, DMA and INTC nodes. USB and MMC nodes need pinmux. Mark them as 'bootph-all' so they are available in all pre-relocation phases. Fixes below dts warning: <stdout>: Warning (dmas_property): /bus@f4000/ethernet@8000000:dmas: Could not get phandle node for (cell 0) Signed-off-by: Roger Quadros <rogerq@kernel.org> Reviewed-by: Nishanth Menon <nm@ti.com>
2023-10-04arm: dts: k3-am64-evm: Fix bootRoger Quadros
Since commit [1] A53 u-boot proper is broken. This is because nodes marked as 'bootph-pre-ram' are not available at u-boot proper before relocation. To fix this we mark all nodes in sk-u-boot.dtsi as 'bootph-all'. Move vtt_supply and cbass_mcu node to -r5-evm.dts as it is only required for R5 SPL. [1] 9e644284ab812 ("dm: core: Report bootph-pre-ram/sram node as pre-reloc after relocation") Signed-off-by: Roger Quadros <rogerq@kernel.org> Reviewed-by: Nishanth Menon <nm@ti.com>
2023-10-04qconfig: Update the documentationSimon Glass
Update qconfig's documentation to better reflect its new purpose in life. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04qconfig: Rename the database fileSimon Glass
Use qconfig.db as the new name, to reflect the tool's purpose. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Rename the tool to qconfigSimon Glass
This does not move configs anymore, but queries them, based on a database it can build. Rename the tool to better reflect its purpose. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Move summaries to the endSimon Glass
Write the summary for -s and -b at the end, using a unified format. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Drop the initial outputSimon Glass
Since moveconfig now just does what it is told (build database or sync defconfigs) we don't need to print what it is doing. Drop this info, which is of very little use. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Show a summary at the endSimon Glass
Rather than printing all the failed boards, which are now easily visible on the terminal, just show a summary. Sort it by defconfig and drop the '_defconfig' suffix. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Show failures in progressSimon Glass
Show the number of accumulated failures when processing. Use a shorter format with colour. An unwanted space appears before the defconfig name on every item except the last. Fix that while we are here. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Use u_boot_pylib for terminal colourSimon Glass
Use the existing terminal code to handle ANSI colours. Enable colour by default if the output is going to a terminal. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Avoid showing progress at the endSimon Glass
When the process is finished, moveconfig leaves a line saying that all boards were processed (for better or worse). Drop this, since it is unncessary. Future work will provide a summary at the end instead. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Reduce the amount of outputSimon Glass
Output a single line in the case where the defconfig only has one line of output. Show the name without the _defconfig suffix, since that is the same for all boards. Use a list for the log so it is easier to process at the end. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Only show output when there is a reasonSimon Glass
There is no point in listing a board if everything went well. It makes it harder to see the failures, particularly on a fast machine. Suppress output unless something actually happened. Drop the 'Syncing by savedefconfig' since this is selected by the -s and is the same for all boards in this mode. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Fix misc pylint warningsSimon Glass
Fix various remaining pylint warnings. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Use an encoding with open()Simon Glass
Fix pylint warnings about needing an explicit character encoding. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Correct list-comprehension warningsSimon Glass
Correct some pylint warnings about needing to use list comprehension. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Correct use of members not declared in __init__()Simon Glass
Fix these pylint warnings. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Correct non-snake variables namesSimon Glass
Correct some variable names that do not conform to snake case, with the three-character minimum. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Correct unused variablesSimon Glass
Fix pylint warnings about unused variables. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Use f strings where possibleSimon Glass
Avoid pylint warnings by using 'f' strings where possible. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Correct parameter-type warningsSimon Glass
Fix pylint warnings related to parameter types. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Correct some regular-expression stringsSimon Glass
Use the 'r' prefix for these strings to avoid pylint warnings. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Drop suspicious boardsSimon Glass
This code isn't needed anymore. Drop it. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Drop check_defconfig() and update_dotconfig()Simon Glass
These functions are not needed anymore. Drop them. Signed-off-by: Simon Glass <sjg@chromium.org>
2023-10-04moveconfig: Drop CONFIG-moving codeSimon Glass
As a step towards cleaning out old code, drop most of the code that moves CONFIG options to Kconfig. This includes parse_one_config(). Drop the ACTION_... values as well, since they are no-longer used. Signed-off-by: Simon Glass <sjg@chromium.org>