mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 07:04:28 +00:00
Revert "fdtdec: drop needlessly convoluted CONFIG_PHANDLE_CHECK_SEQ"
The fdt_path_offset() function is slow since it must scan the tree.
This substantial overhead now applies to all boards.
The original code may not be ideal but it is fit for purpose and is only
needed on a few boards.
Reverting this reduces time to set up driver model by about 30ms.
Before revert:
Accumulated time:
47,170 dm_r
53,237 dm_spl
572,986 dm_f
Accumulated time:
44,598 dm_r
50,347 dm_spl
549,133 dm_f
This reverts commit 26f981f295
.
Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
b2412dd5de
commit
ebc1d50ab5
6 changed files with 16 additions and 2 deletions
|
@ -179,3 +179,4 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x0451
|
|||
CONFIG_USB_GADGET_PRODUCT_NUM=0x6162
|
||||
CONFIG_USB_GADGET_DOWNLOAD=y
|
||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
CONFIG_PHANDLE_CHECK_SEQ=y
|
||||
|
|
|
@ -120,3 +120,4 @@ CONFIG_WDT=y
|
|||
CONFIG_SHA384=y
|
||||
CONFIG_HEXDUMP=y
|
||||
# CONFIG_EFI_LOADER is not set
|
||||
CONFIG_PHANDLE_CHECK_SEQ=y
|
||||
|
|
|
@ -79,3 +79,4 @@ CONFIG_TIMER=y
|
|||
CONFIG_MCHP_PIT64B_TIMER=y
|
||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
# CONFIG_EFI_LOADER_HII is not set
|
||||
CONFIG_PHANDLE_CHECK_SEQ=y
|
||||
|
|
|
@ -79,3 +79,4 @@ CONFIG_TIMER=y
|
|||
CONFIG_MCHP_PIT64B_TIMER=y
|
||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
# CONFIG_EFI_LOADER_HII is not set
|
||||
CONFIG_PHANDLE_CHECK_SEQ=y
|
||||
|
|
|
@ -1045,6 +1045,13 @@ config LMB_RESERVED_REGIONS
|
|||
Define the number of supported reserved regions in the library logical
|
||||
memory blocks.
|
||||
|
||||
config PHANDLE_CHECK_SEQ
|
||||
bool "Enable phandle check while getting sequence number"
|
||||
help
|
||||
When there are multiple device tree nodes with same name,
|
||||
enable this config option to distinguish them using
|
||||
phandles in fdtdec_get_alias_seq() function.
|
||||
|
||||
endmenu
|
||||
|
||||
menu "FWU Multi Bank Updates"
|
||||
|
|
|
@ -519,8 +519,11 @@ int fdtdec_get_alias_seq(const void *blob, const char *base, int offset,
|
|||
* Adding an extra check to distinguish DT nodes with
|
||||
* same name
|
||||
*/
|
||||
if (offset != fdt_path_offset(blob, prop))
|
||||
continue;
|
||||
if (IS_ENABLED(CONFIG_PHANDLE_CHECK_SEQ)) {
|
||||
if (fdt_get_phandle(blob, offset) !=
|
||||
fdt_get_phandle(blob, fdt_path_offset(blob, prop)))
|
||||
continue;
|
||||
}
|
||||
|
||||
val = trailing_strtol(name);
|
||||
if (val != -1) {
|
||||
|
|
Loading…
Reference in a new issue