
On Wed, 2 Dec 2020 at 22:26, Aswath Govindraju a-govindraju@ti.com wrote:
While assigning the sequence number to subsystem instances by reading the aliases property, only DT nodes names are compared and not the complete path. This causes a problem when there are two DT nodes with same name but have different paths.
In arch/arm/dts/k3-am65-main.dtsi there are two USB controllers with the same device tree node name but different path. When aliases are defined for these USB controllers then fdtdec_get_alias_seq() fails to pick the correct instance for a given index.
fdt_path_offset() function is slow and this would effect the U-Boot startup. To avert the time penalty on all boards, apply this extra check only when required by using a config option.
Fix it by comparing the phandles of DT nodes after the node names match, under a config option.
Signed-off-by: Aswath Govindraju a-govindraju@ti.com
Changes since v2:
- changed #ifdef to if(IS_ENABLED())
- corrected errors in commit description
Changes since v1:
- Added a config option as fdt_path_offset() slows down the u-boot start up and would be better to be enabled only when required
- Added an example case in commit message where the following fix is required.
lib/Kconfig | 8 ++++++++ lib/fdtdec.c | 11 +++++++++++ 2 files changed, 19 insertions(+)
Reviewed-by: Simon Glass sjg@chromium.org
Applied to u-boot-dm/next, thanks!