u-boot-brain/common
Andre Przywara 4b9340abdc SPL: FIT: refactor FDT loading
Currently the SPL FIT loader uses the spl_fit_select_fdt() function to
find the offset to the right DTB within the FIT image.
For this it iterates over all subnodes of the /configuration node in
the FIT tree and compares all "description" strings therein using a
board specific matching function.
If that finds a match, it uses the string in the "fdt" property of that
subnode to locate the matching subnode in the /images node, which points
to the DTB data.
Now this works very well, but is quite specific to cover this particular
use case. To open up the door for a more generic usage, let's split this
function into:
1) a function that just returns the node offset for the matching
   configuration node (spl_fit_find_config_node())
2) a function that returns the image data any given property in a given
   configuration node points to, additionally using a given index into
   a possbile list of strings (spl_fit_select_index())
This allows us to replace the specific function above by asking for the
image the _first string of the "fdt" property_ in the matching
configuration subnode points to.

This patch introduces no functional changes, it just refactors the code
to allow reusing it later.

(diff is overly clever here and produces a hard-to-read patch, so I
recommend to throw a look at the result instead).

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Lokesh Vutla <lokeshvuta@ti.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
Tested-by: Kever Yang <kever.yang@rock-chips.com>
Tested-by: Jagan Teki <jagan@openedev.com>
2017-05-17 23:13:27 +05:30
..
eeprom cmd: eeprom: add support for layout aware commands 2016-05-20 17:02:07 -04:00
init board_init.c: Always use memset() 2017-01-20 15:38:01 -05:00
spl SPL: FIT: refactor FDT loading 2017-05-17 23:13:27 +05:30
autoboot.c autoboot: move bootdelay >= 0 check to abortboot() 2016-07-01 17:42:56 -04:00
bedbug.c Consolidate bool type 2013-04-01 16:33:52 -04:00
board_f.c Merge branch 'master' of git://git.denx.de/u-boot-i2c 2017-05-15 13:01:26 -04:00
board_info.c generic-board: make show_board_info a weak function 2016-11-28 15:10:32 -05:00
board_r.c Merge branch 'master' of git://git.denx.de/u-boot-mmc 2017-05-16 08:10:50 -04:00
bootm_os.c fdt: Move fdt_fixup_ethernet to a common place 2017-05-01 09:11:59 -04:00
bootm.c bootm: fix passing argc to standalone apps 2016-10-01 20:04:37 -04:00
bootretry.c Rename bootretry functions and remove #ifdefs 2014-05-29 17:49:00 -04:00
bootstage.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
bouncebuf.c Fix a few printf argument verification warnings 2014-09-15 13:32:55 -04:00
cli_hush.c hush: Add rudimentary support for PS1 and PS2 2016-02-08 10:10:37 -05:00
cli_readline.c common: cli_readline: Improve command line editing 2016-08-20 14:03:24 -04:00
cli_simple.c common: cli_simple: use strlcpy instead of strcpy 2016-01-13 21:05:26 -05:00
cli.c hush: complete renaming CONFIG_SYS_HUSH_PARSER to CONFIG_HUSH_PARSER 2016-06-24 17:24:34 -04:00
command.c Drop command-processing code when CONFIG_CMDLINE is disabled 2016-04-01 17:17:40 -04:00
console.c console: Don't enable CONFIG-CONSOLE_MUX, etc. in SPL 2017-02-06 11:38:46 +08:00
cros_ec.c cros_ec: Remove unused cros_ec_board_init() function 2015-04-18 11:11:16 -06:00
ddr_spd.c Add more SPDX-License-Identifier tags 2016-01-19 08:31:21 -05:00
dfu.c common: dfu: ignore reset for spl-dfu 2017-05-12 08:37:09 -04:00
dlmalloc.c malloc: improve memalign fragmentation fix 2016-05-23 11:50:17 -04:00
dlmalloc.src Consolidate bool type 2013-04-01 16:33:52 -04:00
edid.c edid: Add HDMI flag to timing info 2017-05-15 20:32:12 +02:00
env_attr.c env: avoid possible NULL pointer access 2017-05-12 08:37:17 -04:00
env_callback.c common: env: initialize scalar variable 2016-01-04 12:25:35 -05:00
env_common.c Rename aes.h to uboot_aes.h 2017-04-12 13:28:27 -04:00
env_dataflash.c env: Add env_export() wrapper 2014-03-21 16:43:59 -04:00
env_eeprom.c env_eeprom invalidates gd->env_addr by setting it to an offset value 2016-04-11 12:44:37 -04:00
env_embedded.c tools/env: Correct include kconfig 2016-11-23 23:41:23 -08:00
env_ext4.c common: Fix support for environment file in EXT4 2016-06-24 17:24:35 -04:00
env_fat.c dm: block: Rename device number member dev to devnum 2016-03-14 15:34:50 -06:00
env_flags.c env: split fw_env.h in public and private parts 2017-04-12 13:28:28 -04:00
env_flash.c env_flash.c: Drop unused variables 2014-04-17 17:44:36 -04:00
env_mmc.c env_mmc: Allow SPL to use any MMC device to load/save the environment 2017-04-08 09:26:44 -04:00
env_nand.c common: env_nand: Ensure that we have nand_info[0] prior to use 2016-08-15 18:46:41 -04:00
env_nowhere.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
env_nvram.c env: Add env_export() wrapper 2014-03-21 16:43:59 -04:00
env_onenand.c env: Add env_export() wrapper 2014-03-21 16:43:59 -04:00
env_remote.c Coding Style cleanup: remove trailing white space 2013-10-14 16:06:53 -04:00
env_sata.c common: env: support sata device 2016-04-18 12:29:14 -04:00
env_sf.c env_sf: use DIV_ROUND_UP to calculate number of sectors to erase 2017-05-03 11:18:20 +05:30
env_ubi.c common: env_ubi: Clear environment buffer before reading 2016-06-13 06:41:20 +02:00
exports.c board/ls2085rdb: Export functions for standalone AQ FW load apps 2015-07-20 11:44:37 -07:00
fb_mmc.c disk: Return the partition number in part_get_info_by_name() 2017-05-11 22:03:37 -04:00
fb_nand.c fastboot: sparse: implement reserve() 2016-06-27 16:37:39 -04:00
fdt_support.c fdt_support: Fixup 'ethernet' aliases not ending in digits 2017-03-26 09:58:23 -05:00
flash.c flash: compile common/flash.c iif CONFIG_MTD_NO_FLASH is enabled 2017-02-12 14:30:31 -05:00
hash.c treewide: replace #include <asm/errno.h> with <linux/errno.h> 2016-09-23 17:55:42 -04:00
hwconfig.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
ide.c dm: ide: Add support for driver-model block devices 2016-05-17 09:54:43 -06:00
image-android.c image: Update include/android_image.h 2017-05-11 22:03:37 -04:00
image-fdt.c fdt: Move fdt_fixup_ethernet to a common place 2017-05-01 09:11:59 -04:00
image-fit.c splash: add support for loading splash from a FIT image 2017-01-13 17:40:38 +01:00
image-sig.c image: Combine image_sig_algo with image_sign_info 2016-11-21 14:07:31 -05:00
image-sparse.c fastboot: sparse: improve CHUNK_TYPE_FILL write performance 2016-06-27 16:37:39 -04:00
image.c common/image.c: Use correct suffixes for binary sizes 2017-01-20 15:37:59 -05:00
iomux.c console: Don't enable CONFIG-CONSOLE_MUX, etc. in SPL 2017-02-06 11:38:46 +08:00
iotrace.c common: Make sure arch-specific map_sysmem() is defined 2015-04-18 11:11:09 -06:00
kallsyms.c Add support for Linux-like kallsysms 2009-06-12 20:45:48 +02:00
Kconfig Merge branch 'master' of git://git.denx.de/u-boot-sunxi 2017-04-08 09:28:02 -04:00
kgdb_stubs.c Use correct spelling of "U-Boot" 2016-02-06 12:00:59 +01:00
kgdb.c Fix spelling of "occurred". 2016-05-02 18:37:09 -04:00
lcd_console_rotation.c common/lcd_console: introduce display/framebuffer rotation 2015-04-18 17:40:37 +02:00
lcd_console.c common/lcd_console: introduce display/framebuffer rotation 2015-04-18 17:40:37 +02:00
lcd_simplefb.c dm: video: Add driver-model support to lcd_simplefb 2017-05-09 20:20:41 -04:00
lcd.c video: bmp: rename CONFIG_BMP_24BMP to CONFIG_BMP_24BPP 2017-05-15 20:55:13 +02:00
lynxkdi.c checkpatch whitespace cleanups 2011-10-22 01:13:35 +02:00
main.c Drop use of CONFIG_SYS_GENERIC_BOARD in U-Boot 2016-05-27 15:39:54 -04:00
Makefile common: Only build cli_readline.o for CMDLINE on non-SPL 2017-05-12 08:37:33 -04:00
malloc_simple.c malloc_simple: Add debug statements to memalign_simple 2017-01-28 14:04:34 -05:00
memsize.c Revert "common/memsize.c: Simplify RAM size detection" 2016-02-10 08:34:42 -05:00
menu.c Fix typo choosen in comments and printf logs 2016-03-27 09:12:23 -04:00
miiphyutil.c common: miiphyutil: Add helper function for mdio bus name 2016-12-20 07:40:04 +01:00
s_record.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
sata.c sata: fix sata command can not being executed bug 2016-11-28 19:49:47 -05:00
scsi.c scsi: dm: split scsi_scan() 2017-05-09 12:14:16 -06:00
splash_source.c splash: Prevent splash_load_fs from writing to 0x0 2017-02-27 16:08:06 +01:00
splash.c splash: Introduce default_splash_locations 2016-07-26 08:47:37 +02:00
stdio.c i2c: Finish dropping use of CONFIG_I2C_HARD 2017-05-15 06:18:30 +02:00
system_map.c Add support for Linux-like kallsysms 2009-06-12 20:45:48 +02:00
update.c flash: complete CONFIG_SYS_NO_FLASH move with renaming 2017-02-12 14:30:25 -05:00
usb_hub.c dm: Use dm_scan_fdt_dev() directly where possible 2016-07-27 14:15:54 -06:00
usb_kbd.c console: Don't enable CONFIG-CONSOLE_MUX, etc. in SPL 2017-02-06 11:38:46 +08:00
usb_storage.c Kconfig: USB: Migrate CONFIG_USB_EHCI to CONFIG_USB_EHCI_HCD 2017-05-15 10:40:05 -04:00
usb.c usb: squash lines for immediate return 2016-09-23 17:53:48 -04:00
xyzModem.c common/xyzModem.c: Do not use hard-coded address for debug buffer 2017-04-08 09:26:55 -04:00