summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-08-27dm: core: ofnode: Avoid multiple calls to ofnode_get_parent()Jonas Karlman
Until a live tree is used in U-Boot proper after relocation, use of ofnode_get_parent() will trigger a call to the very expensive fdt_parent_offset() as detailed by the function documentation: NOTE: This function is expensive, as it must scan the device tree structure from the start to nodeoffset, *twice*. Re-use the returned value from a single call instead of having to make multiple calls for same node. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2024-08-27dm: core: fdtaddr: Avoid multiple calls to fdt_parent_offset()Jonas Karlman
Use of fdt_parent_offset() is very expensive as detailed by the function documentation: NOTE: This function is expensive, as it must scan the device tree structure from the start to nodeoffset, *twice*. Re-use the returned value from a single call instead of having to make multiple calls for same nodeoffset. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2024-08-27gpio: npcm: Add SGPIO support for Nuvoton NPCM SoCsJim Liu
Add Nuvoton BMC NPCM7xx/NPCM8xx sgpio driver. BMC can use this driver to increase 64 GPI pins and 64 GPO pins to use. Signed-off-by: Jim Liu <[email protected]>
2024-08-27test/py: spi: Add tests for SPI flash deviceLove Kumar
Add test cases for sf commands to verify various SPI flash operations such as erase, write and read. It also adds qspi lock unlock cases. This test relies on boardenv_* configurations to run it for different SPI flash family such as single SPI, QSPI, and OSPI. Signed-off-by: Love Kumar <[email protected]>
2024-08-27cmd: bind: Use device sequence instead for driver bind/unbindZixun LI
Currently uclass index is used for bind/unbind which ignores alias sequence numbering. Use device sequence number instead as it's the number explicitly set in the DT. Also update documentation to use sequence number. Signed-off-by: Zixun LI <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2024-08-27dm: core: Show device sequence instead in dm_dump_tree()Zixun LI
Currently uclass index is shown in DM tree dump which ignores alias sequence numbering. The result could be confusing since these 2 numbers could be different. Show device sequence number instead as it's more meaningful. Also update documentation to use sequence number. Signed-off-by: Zixun LI <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2024-08-27mtd: nand: raw: omap_gpmc: Check return value of gpmc_nand_initVignesh Raghavendra
If the function is called with no NAND device attached, then this function can return error value, proceeding further ignoring the same can cause system crash. This is seen when "mtd list" is run with no NAND addon cards connected. Signed-off-by: Vignesh Raghavendra <[email protected]> Acked-by: Roger Quadros <[email protected]>
2024-08-27omap3: omap3evm: Migrate to OF_UPSTREAMDerald D. Woods
This commit brings the omap3evm inline with the remaining OMAP3XXX variants. Signed-off-by: Derald D. Woods <[email protected]>
2024-08-27sandbox: Fix pinmux warnings with non-test devicetreesSean Anderson
The sandbox pinmux driver is used in the non-test devicetree as well as the test one. I didn't realize this when I modified the driver for tests, and so broke the regular use case (which only resulted in warnings). First, making the pinmux and the UART group available pre-relocation to avoid ENODEV errors. Then, convert the pin groups and functions to the new style, adding onewire group as well. Fixes: 7f0f1806e3a ("test: pinmux: Add test for pin muxing") Closes: https://source.denx.de/u-boot/u-boot/-/issues/2 Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2024-08-27ata: sata_rescan must scan for block devicesHeinrich Schuchardt
A system may have multiple SATA controller. Removing the controller with the lowest sequence number before probing all SATA controllers makes no sense. In sata_rescan we remove all block devices which are children of SATA controllers. We also have to remove the bootdev devices as they will be created when scanning for block devices. After probing all SATA controllers we must scan for block devices otherwise we end up without any SATA block device. Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Tony Dinh <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2024-08-27pci: mediatek: add support for upstream split PCIe nodeChristian Marangi
Add support for upstream linux split PCIe node. Upstream linux have an alternative way to declare PCIe nodes that splits them in dedicated nodes for each line instead of putting them all in one node. Detect this by checking if the mediatek,generic-pciecfg node is passed as it's used to reference the common address for all the PCIe lines. Signed-off-by: Christian Marangi <[email protected]>
2024-08-27remoteproc: uclass: Modify uc_pdata->name to use combination of device name ↵MD Danish Anwar
and device's parent name uc_pdata->name is populated from device tree property "remoteproc-name". For those devcices that don't set "remoteproc-name", uc_pdata->name falls back to dev->name. If two devices have same name, this will result into uc_pdata->name not being unique and rproc_init() will fail. Fix this by using combination of dev->name and dev->parent->name instead of using just the dev->name to populate uc_pdata->name. Signed-off-by: MD Danish Anwar <[email protected]> Reviewed-by: Roger Quadros <[email protected]> Reviewed-by: Andrew Davis <[email protected]>
2024-08-27ata: dwc_ahsata: create boot deviceHeinrich Schuchardt
For each block device we must create a sibling boot device. Signed-off-by: Heinrich Schuchardt <[email protected]>
2024-08-27Merge patch series "bootstd: Try again to resolve infinite-loop bug"Tom Rini
Simon Glass <[email protected]> says: This little series tries to resolve a problem found with an earlier fix.
2024-08-27Merge patch series "arch: arm: dts: ti: Add missing fss range"Tom Rini
Jonathan Humphreys <[email protected]> says: Upstream DTS added explicit ranges to the fss node. It did not include the 32 bit memory space needed by the R5 to access OSPI. With the upstream DTS sync, OSPI boot no longer works. Adding the missing range here. It is also being added in the upstream DTS, so after the next upstream DTS sync, these patches can be removed. Fixes: 5024a96db8e ("Subtree merge tag 'v6.10-dts' of devicetree-rebasing repo [1] into dts/upstream")
2024-08-27bootstd: Make bootdev_next_prio() continue after failureSimon Glass
When a device fails to probe, the next device should be tried, until either we find a suitable device or run out of devices. A device should never be tried twice. When we run out of devices of a particular priority, the hunter should be used to generate devices of the next priority. Only if all attempts fail should this function return an error. Update the function to use the latent 'found' boolean to determine whether another loop iteration is warranted, rather than setting 'dev' to NULL, which creates confusion, suggesting that no devices have been scanned and the whole process is starting from the beginning. Note that the upcoming bootflow_efi() test is used to test this behaviour. Signed-off-by: Simon Glass <[email protected]> Fixes: https://source.denx.de/u-boot/custodians/u-boot-dm/-/issues/17
2024-08-27Revert "bootdev: avoid infinite probe loop"Simon Glass
This turns out to be insufficient to fix the problem, since when bootdev_next_prio() exits, the caller has no idea that this really is the end. Nor is it, since there may be other devices which should be checked. The caller iterates which calls iter_incr() which calls bootdev_next_prio() again, which finds the same device and the loop continues. We never did create a test for this[1], which makes it hard to be sure which problem was fixed. The original code had the virtue of staying in the loop looking for a bootdev, so let's go back to that and try to fix this another way. A future patch will make bootdev_next_prio() continue after failure which should provide same effect. This reverts commit 9d92c418acfb7576e12e2bd53fed294bb9543724. Signed-off-by: Simon Glass <[email protected]>
2024-08-27arch: arm: dts: k3-j721e-r5-sk: Add missing fss rangeJonathan Humphreys
Upstream DTS added explicit ranges to the fss node. It did not include the 32 bit memory space needed by the R5 to access OSPI. With the upstream DTS sync, OSPI boot no longer works. Adding the missing range here. It is also being added in the upstream DTS, so after the next upstream DTS sync, this patch can be removed. See 0c0e03ec22 (arm64: dts: ti: k3-j721e: Use exact ranges for FSS node) Fixes: 5024a96db8e ("Subtree merge tag 'v6.10-dts' of devicetree-rebasing repo [1] into dts/upstream") Signed-off-by: Jonathan Humphreys <[email protected]>
2024-08-27arch: arm: dts: k3-j721e-r5-evm: Add missing fss rangeJonathan Humphreys
Upstream DTS added explicit ranges to the fss node. It did not include the 32 bit memory space needed by the R5 to access OSPI. With the upstream DTS sync, OSPI boot no longer works. Adding the missing range here. It is also being added in the upstream DTS, so after the next upstream DTS sync, this patch can be removed. See 0c0e03ec22 (arm64: dts: ti: k3-j721e: Use exact ranges for FSS node) Fixes: 5024a96db8e ("Subtree merge tag 'v6.10-dts' of devicetree-rebasing repo [1] into dts/upstream") Signed-off-by: Jonathan Humphreys <[email protected]>
2024-08-27arch: arm: dts: k3-j7200-r5-evm: Add missing fss rangeJonathan Humphreys
Upstream DTS added explicit ranges to the fss node. It did not include the 32 bit memory space needed by the R5 to access OSPI. With the upstream DTS sync, OSPI boot no longer works. Adding the missing range here. It is also being added in the upstream DTS, so after the next upstream DTS sync, this patch can be removed. See f00e626085 (arm64: dts: ti: k3-j7200: Use exact ranges for FSS node) Fixes: 5024a96db8e ("Subtree merge tag 'v6.10-dts' of devicetree-rebasing repo [1] into dts/upstream") Signed-off-by: Jonathan Humphreys <[email protected]> Reviewed-by: Aniket Limaye <[email protected]>
2024-08-27arch: arm: dts: k3-am69-r5-sk: Add missing fss rangeJonathan Humphreys
Upstream DTS added explicit ranges to the fss node. It did not include the 32 bit memory space needed by the R5 to access OSPI. With the upstream DTS sync, OSPI boot no longer works. Adding the missing range here. It is also being added in the upstream DTS, so after the next upstream DTS sync, this patch can be removed. See f062a015f4 (arm64: dts: ti: k3-j784s4: Use exact ranges for FSS node) Fixes: 5024a96db8e ("Subtree merge tag 'v6.10-dts' of devicetree-rebasing repo [1] into dts/upstream") Signed-off-by: Jonathan Humphreys <[email protected]>
2024-08-27arch: arm: dts: k3-j784s4-r5-evm: Add missing fss rangeJonathan Humphreys
Upstream DTS added explicit ranges to the fss node. It did not include the 32 bit memory space needed by the R5 to access OSPI. With the upstream DTS sync, OSPI boot no longer works. Adding the missing range here. It is also being added in the upstream DTS, so after the next upstream DTS sync, this patch can be removed. See f062a015f4 (arm64: dts: ti: k3-j784s4: Use exact ranges for FSS node) Fixes: 5024a96db8e ("Subtree merge tag 'v6.10-dts' of devicetree-rebasing repo [1] into dts/upstream") Signed-off-by: Jonathan Humphreys <[email protected]> Reviewed-by: Andrew Davis <[email protected]>
2024-08-26Merge patch series "Tidy up console recording in tests"Tom Rini
Simon Glass <[email protected]> says: This series started as a small fix for checking for an empty line, but in the process several other problems were found and fixed: - fix tests which use console recording but don't set the flag - drop unnecessary resetting of the console in tests - drop unnecessary blank line before MMC output - update the docs a little - fix buildman test failure on newer Pythons - a few other minor things This series also renames the confusing flag names, so that they are easier to remember - just a UTF_ (unit-test flags) prefix.
2024-08-26test: Tidy up checking for console endSimon Glass
Use the ut_assert_console_end() function provided, rather than doing it separately. Signed-off-by: Simon Glass <[email protected]>
2024-08-26test: dm: Use UTF_CONSOLE in testsSimon Glass
Set this flag rather than doing things manually in the test. Signed-off-by: Simon Glass <[email protected]>
2024-08-26doc: Add a few notes about how to use console checkingSimon Glass
Tidy up the existing docs in line with current conventions. Signed-off-by: Simon Glass <[email protected]>
2024-08-26test: Use UTF_CONSOLE in remaining testsSimon Glass
Set this flag rather than doing things manually in the test. Signed-off-by: Simon Glass <[email protected]>
2024-08-26test: cmd: Drop unnecessary console_record_reset_enable()Simon Glass
It is seldom necessary to call this function. Drop its use in the command tests. Add a few extra checks to the wget test so that resetting is not needed. Signed-off-by: Simon Glass <[email protected]>
2024-08-26test: log: Use UTF_CONSOLE in testsSimon Glass
Set this flag rather than doing things manually in the test. Signed-off-by: Simon Glass <[email protected]>
2024-08-26test: cmd: Use UTF_CONSOLE in testsSimon Glass
Set this flag rather than doing things manually in the test. Signed-off-by: Simon Glass <[email protected]>
2024-08-26test: hush: Use UTF_CONSOLE in testsSimon Glass
Set this flag rather than doing things manually in the test. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2024-08-26test: fdt: Move common code into the setup functionsSimon Glass
Quite a lot of tests have the same two lines of code at the start. Move this into the two setup functions to reduce redundancy. Add a line to check the output from set_working_fdt_addr() since this is always emitted. Signed-off-by: Simon Glass <[email protected]>
2024-08-26test: fdt: Check internal-function return valuesSimon Glass
Some functions are using asserts but the result of the functions themselves is not checked. This means that if a test fails, the result is not noticed until later, which can be confusing to debug. Add the missing asserts. Signed-off-by: Simon Glass <[email protected]>
2024-08-26test: boot: Use UTF_CONSOLE in testsSimon Glass
Set this flag rather than doing things manually in the test. Drop unnecessary calls to console_record_reset_enable() Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2024-08-26test: bloblist: Use UTF_CONSOLE in testsSimon Glass
Set this flag rather than doing things manually in the test. Drop the code which is now unnecessary. Signed-off-by: Simon Glass <[email protected]>
2024-08-26test: Update NAND test to avoid extra macrosSimon Glass
Write out the tests in full to allow the test to be found more easily when there is a failure. We could use a single test function with a for() loop but this would stop at the first failure, and some variations might while other pass. Signed-off-by: Simon Glass <[email protected]>
2024-08-26mmc: Drop the blank line before accessesSimon Glass
Several mmc subcommand print a blank line before starting and after finishing. It isn't necessary to do both, so drop the first one. It is questionable whether these command should produce any output at all, but leave it for now. Signed-off-by: Simon Glass <[email protected]>
2024-08-26test: Rename UTF_CONSOLE_REC to UTF_CONSOLESimon Glass
The _REC suffix doesn't add much. Really what we want to know is whether the test uses the console, so rename this flag. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2024-08-26test: Drop the blank line before test macrosSimon Glass
Most tests don't have this. It helps to keep the test declaration clearly associated with the function it relates to, rather than the next one in the file. Remove the extra blank line and mention this in the docs. Signed-off-by: Simon Glass <[email protected]>
2024-08-26test: Rename unit-test flagsSimon Glass
The UT_TESTF_ macros read as 'unit test test flags' which is not right. Rename to UTF ('unit test flags'). This has the benefit of being shorter, which helps keep UNIT_TEST() declarations on a single line. Give the enum a name and reference it from the UNIT_TEST() macros while we are here. Signed-off-by: Simon Glass <[email protected]>
2024-08-26test: Fail when an empty line is expected but not presentSimon Glass
The existing implementation of ut_assert_nextline_empty() cannot distinguish between an empty line and no line at all. It can in fact be called at the end of the recorded output and will happily return success. Adjust the logic so that this condition is detected. Show a failure message in this case. Fix the one test which falls foul of this fix. Signed-off-by: Simon Glass <[email protected]> Fixes: 400175b0a7d ("test: Add a way to check each line of console...") Reviewed-by: Mattijs Korpershoek <[email protected]>
2024-08-26buildman: Make test_process_limit handle time.monotonic()Simon Glass
Newer versions of filelock use time.monotonic() instead of time.time(). Update the test the handle this. It would be better if filelock had support for writing unit tests which use locking. Signed-off-by: Simon Glass <[email protected]>
2024-08-26Merge patch series "global_data: Reduce size of struct global_data"Tom Rini
Simon Glass <[email protected]> says: The global data structure has grown quite a lot over the years, being the best place to put an important pointer or something that must be accessed before and after relocation. This series attempts to reduce the size a little, by moving some things out and shrinking and aligning some fields. Some fields are needed during init but not afterwards. To deal with this a new 'boardf' structure is created, which sits on the stack and is only present during board_init_f(). It is possible that more fields could move to this struct, but for now only 4 are moved. An assumption is made that an int is 32-bits wide on all architectures, which seems to be true, but maintainers should be able to confirm. Mostly the code-size impact is neutral, but the patch 'Use less space for environment fields' does increase U-Boot's size by about 30 bytes on aarch64. For firefly-rk3399 (64-bit) the size of global reduces from 456 to 368 bytes. For SPL it reduces from 416 to 272 bytes. There are other things which could be attempted, for example: - Using hlist instead of list for some lists - Checking that only necessary fields are present in SPL
2024-08-26doc: Add some guidelines about global dataSimon Glass
Update the documentation to provide a bit more information about how to use global data. Signed-off-by: Simon Glass <[email protected]>
2024-08-26doc: Move generic-board documentation into rstSimon Glass
This information is useful for people looking at how U-Boot has changed over the years and the design decisions which led to it. Move it into doc/ in an 'historical' section. Signed-off-by: Simon Glass <[email protected]>
2024-08-26global_data: Remove environment members if not usedSimon Glass
If the environment is not enabled we don't need these fields in global_data. Make them conditional. Make these fields conditional. Move env_buf up one so it can share an #ifdef. Signed-off-by: Simon Glass <[email protected]>
2024-08-26global_data: Remove jump table in SPLSimon Glass
SPL builds don't use the jump table since they cannot run apps. Drop it, moving it together with boardf. Signed-off-by: Simon Glass <[email protected]>
2024-08-26global_data: Move pointer members togetherSimon Glass
Collect the pointer members near the top of global_data to help with alignment. Signed-off-by: Simon Glass <[email protected]>
2024-08-26global_data: Move ulong fields togetherSimon Glass
Move all the always-present ulong fields next to the others at the top of global_data Signed-off-by: Simon Glass <[email protected]>
2024-08-26global_data: Put phys_addr fields near the topSimon Glass
Put these fields near the top and together, since they have the same alignment. Signed-off-by: Simon Glass <[email protected]>