diff options
148 files changed, 431 insertions, 293 deletions
diff --git a/arch/arm/cpu/u-boot.lds b/arch/arm/cpu/u-boot.lds index 0a5fae6efcc..37d4c605aca 100644 --- a/arch/arm/cpu/u-boot.lds +++ b/arch/arm/cpu/u-boot.lds @@ -74,6 +74,7 @@ SECTIONS *(._secure.data) } +#ifdef CONFIG_ARMV7_PSCI .secure_stack ALIGN(ADDR(.secure_data) + SIZEOF(.secure_data), CONSTANT(COMMONPAGESIZE)) (NOLOAD) : #ifdef __ARMV7_PSCI_STACK_IN_RAM @@ -83,10 +84,10 @@ SECTIONS #endif { KEEP(*(.__secure_stack_start)) -#ifdef CONFIG_ARMV7_PSCI + /* Skip addreses for stack */ . = . + CONFIG_ARMV7_PSCI_NR_CPUS * ARM_PSCI_STACK_SIZE; -#endif + /* Align end of stack section to page boundary */ . = ALIGN(CONSTANT(COMMONPAGESIZE)); @@ -109,6 +110,8 @@ SECTIONS . = LOADADDR(.secure_stack); #endif +#endif + .__secure_end : AT(ADDR(.__secure_end)) { *(.__secure_end) LONG(0x1d1071c); /* Must output something to reset LMA */ diff --git a/arch/arm/mach-tegra/xusb-padctl-common.c b/arch/arm/mach-tegra/xusb-padctl-common.c index 18ad7bfbdc0..dfbc8ef1fe0 100644 --- a/arch/arm/mach-tegra/xusb-padctl-common.c +++ b/arch/arm/mach-tegra/xusb-padctl-common.c @@ -78,11 +78,11 @@ tegra_xusb_padctl_group_parse_dt(struct tegra_xusb_padctl *padctl, const void *fdt, int node) { unsigned int i; - int len, err; + int len; group->name = fdt_get_name(fdt, node, &len); - len = fdt_count_strings(fdt, node, "nvidia,lanes"); + len = fdt_stringlist_count(fdt, node, "nvidia,lanes"); if (len < 0) { error("failed to parse \"nvidia,lanes\" property"); return -EINVAL; @@ -91,9 +91,9 @@ tegra_xusb_padctl_group_parse_dt(struct tegra_xusb_padctl *padctl, group->num_pins = len; for (i = 0; i < group->num_pins; i++) { - err = fdt_get_string_index(fdt, node, "nvidia,lanes", i, - &group->pins[i]); - if (err < 0) { + group->pins[i] = fdt_stringlist_get(fdt, node, "nvidia,lanes", + i, NULL); + if (!group->pins[i]) { error("failed to read string from \"nvidia,lanes\" property"); return -EINVAL; } @@ -101,8 +101,8 @@ tegra_xusb_padctl_group_parse_dt(struct tegra_xusb_padctl *padctl, group->num_pins = len; - err = fdt_get_string(fdt, node, "nvidia,function", &group->func); - if (err < 0) { + group->func = fdt_stringlist_get(fdt, node, "nvidia,function", 0, NULL); + if (!group->func) { error("failed to parse \"nvidia,func\" property"); return -EINVAL; } @@ -223,7 +223,7 @@ tegra_xusb_padctl_config_parse_dt(struct tegra_xusb_padctl *padctl, config->name = fdt_get_name(fdt, node, NULL); - fdt_for_each_subnode(fdt, subnode, node) { + fdt_for_each_subnode(subnode, fdt, node) { struct tegra_xusb_padctl_group *group; int err; @@ -253,7 +253,7 @@ static int tegra_xusb_padctl_parse_dt(struct tegra_xusb_padctl *padctl, return err; } - fdt_for_each_subnode(fdt, subnode, node) { + fdt_for_each_subnode(subnode, fdt, node) { struct tegra_xusb_padctl_config *config = &padctl->config; err = tegra_xusb_padctl_config_parse_dt(padctl, config, fdt, diff --git a/arch/arm/mach-uniphier/board_late_init.c b/arch/arm/mach-uniphier/board_late_init.c index a45412677a0..f23295fbd21 100644 --- a/arch/arm/mach-uniphier/board_late_init.c +++ b/arch/arm/mach-uniphier/board_late_init.c @@ -37,13 +37,12 @@ static int uniphier_set_fdt_file(void) const char *compat; char dtb_name[256]; int buf_len = 256; - int ret; if (getenv("fdt_file")) return 0; /* do nothing if it is already set */ - ret = fdt_get_string(gd->fdt_blob, 0, "compatible", &compat); - if (ret) + compat = fdt_stringlist_get(gd->fdt_blob, 0, "compatible", 0, NULL); + if (!compat) return -EINVAL; if (strncmp(compat, VENDOR_PREFIX, strlen(VENDOR_PREFIX))) diff --git a/arch/x86/cpu/irq.c b/arch/x86/cpu/irq.c index df3cd0abc77..9364410a0f8 100644 --- a/arch/x86/cpu/irq.c +++ b/arch/x86/cpu/irq.c @@ -103,11 +103,12 @@ static int create_pirq_routing_table(struct udevice *dev) /* extract the bdf from fdt_pci_addr */ priv->bdf = dm_pci_get_bdf(dev->parent); - ret = fdt_find_string(blob, node, "intel,pirq-config", "pci"); + ret = fdt_stringlist_search(blob, node, "intel,pirq-config", "pci"); if (!ret) { priv->config = PIRQ_VIA_PCI; } else { - ret = fdt_find_string(blob, node, "intel,pirq-config", "ibase"); + ret = fdt_stringlist_search(blob, node, "intel,pirq-config", + "ibase"); if (!ret) priv->config = PIRQ_VIA_IBASE; else diff --git a/board/compulab/cm_fx6/cm_fx6.c b/board/compulab/cm_fx6/cm_fx6.c index 28e9a8f41ff..5b88bcce598 100644 --- a/board/compulab/cm_fx6/cm_fx6.c +++ b/board/compulab/cm_fx6/cm_fx6.c @@ -602,7 +602,7 @@ int ft_board_setup(void *blob, bd_t *bd) char baseboard_name[16]; int err; - fdt_shrink_to_minimum(blob); /* Make room for new properties */ + fdt_shrink_to_minimum(blob, 0); /* Make room for new properties */ /* MAC addr */ if (eth_getenv_enetaddr("ethaddr", enetaddr)) { diff --git a/cmd/fdt.c b/cmd/fdt.c index 58af7727ba0..b503357dc3a 100644 --- a/cmd/fdt.c +++ b/cmd/fdt.c @@ -662,7 +662,12 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) #endif /* resize the fdt */ else if (strncmp(argv[1], "re", 2) == 0) { - fdt_shrink_to_minimum(working_fdt); + uint extrasize; + if (argc > 2) + extrasize = simple_strtoul(argv[2], NULL, 16); + else + extrasize = 0; + fdt_shrink_to_minimum(working_fdt, extrasize); } else { /* Unrecognized command */ @@ -1056,7 +1061,7 @@ static char fdt_help_text[] = "fdt systemsetup - Do system-specific set up\n" #endif "fdt move <fdt> <newaddr> <length> - Copy the fdt to <addr> and make it active\n" - "fdt resize - Resize fdt to size + padding to 4k addr\n" + "fdt resize [<extrasize>] - Resize fdt to size + padding to 4k addr + some optional <extrasize> if needed\n" "fdt print <path> [<prop>] - Recursive print starting at <path>\n" "fdt list <path> [<prop>] - Print one level starting at <path>\n" "fdt get value <var> <path> <prop> - Get <property> and store in <var>\n" diff --git a/common/fdt_support.c b/common/fdt_support.c index 202058621ae..0609470dfb8 100644 --- a/common/fdt_support.c +++ b/common/fdt_support.c @@ -523,7 +523,7 @@ void fdt_fixup_ethernet(void *fdt) } /* Resize the fdt to its actual size + a bit of padding */ -int fdt_shrink_to_minimum(void *blob) +int fdt_shrink_to_minimum(void *blob, uint extrasize) { int i; uint64_t addr, size; @@ -551,6 +551,7 @@ int fdt_shrink_to_minimum(void *blob) actualsize = fdt_off_dt_strings(blob) + fdt_size_dt_strings(blob) + 5 * sizeof(struct fdt_reserve_entry); + actualsize += extrasize; /* Make it so the fdt ends on a page boundary */ actualsize = ALIGN(actualsize + ((uintptr_t)blob & 0xfff), 0x1000); actualsize = actualsize - ((uintptr_t)blob & 0xfff); diff --git a/common/image-fdt.c b/common/image-fdt.c index 3d23608c043..5454227fc99 100644 --- a/common/image-fdt.c +++ b/common/image-fdt.c @@ -503,7 +503,7 @@ int image_setup_libfdt(bootm_headers_t *images, void *blob, lmb_free(lmb, (phys_addr_t)(u32)(uintptr_t)blob, (phys_size_t)fdt_totalsize(blob)); - ret = fdt_shrink_to_minimum(blob); + ret = fdt_shrink_to_minimum(blob, 0); if (ret < 0) goto err; of_size = ret; diff --git a/common/image-fit.c b/common/image-fit.c index 1b0234a90cb..77dc011dc3b 100644 --- a/common/image-fit.c +++ b/common/image-fit.c @@ -1026,7 +1026,7 @@ int fit_image_verify(const void *fit, int image_noffset) } /* Process all hash subnodes of the component image node */ - fdt_for_each_subnode(fit, noffset, image_noffset) { + fdt_for_each_subnode(noffset, fit, image_noffset) { const char *name = fit_get_name(fit, noffset, NULL); /* @@ -1457,7 +1457,7 @@ int fit_conf_get_prop_node(const void *fit, int noffset, void fit_conf_print(const void *fit, int noffset, const char *p) { char *desc; - char *uname; + const char *uname; int ret; int loadables_index; @@ -1469,7 +1469,7 @@ void fit_conf_print(const void *fit, int noffset, const char *p) else printf("%s\n", desc); - uname = (char *)fdt_getprop(fit, noffset, FIT_KERNEL_PROP, NULL); + uname = fdt_getprop(fit, noffset, FIT_KERNEL_PROP, NULL); printf("%s Kernel: ", p); if (uname == NULL) printf("unavailable\n"); @@ -1477,26 +1477,23 @@ void fit_conf_print(const void *fit, int noffset, const char *p) printf("%s\n", uname); /* Optional properties */ - uname = (char *)fdt_getprop(fit, noffset, FIT_RAMDISK_PROP, NULL); + uname = fdt_getprop(fit, noffset, FIT_RAMDISK_PROP, NULL); if (uname) printf("%s Init Ramdisk: %s\n", p, uname); - uname = (char *)fdt_getprop(fit, noffset, FIT_FDT_PROP, NULL); + uname = fdt_getprop(fit, noffset, FIT_FDT_PROP, NULL); if (uname) printf("%s FDT: %s\n", p, uname); - uname = (char *)fdt_getprop(fit, noffset, FIT_FPGA_PROP, NULL); + uname = fdt_getprop(fit, noffset, FIT_FPGA_PROP, NULL); if (uname) printf("%s FPGA: %s\n", p, uname); /* Print out all of the specified loadables */ for (loadables_index = 0; - fdt_get_string_index(fit, noffset, - FIT_LOADABLE_PROP, - loadables_index, - (const char **)&uname) == 0; - loadables_index++) - { + uname = fdt_stringlist_get(fit, noffset, FIT_LOADABLE_PROP, + loadables_index, NULL), uname; + loadables_index++) { if (loadables_index == 0) { printf("%s Loadables: ", p); } else { diff --git a/common/image-sig.c b/common/image-sig.c index eda5e1353ab..28f7a20cadf 100644 --- a/common/image-sig.c +++ b/common/image-sig.c @@ -212,7 +212,7 @@ static int fit_image_verify_sig(const void *fit, int image_noffset, int ret; /* Process all hash subnodes of the component image node */ - fdt_for_each_subnode(fit, noffset, image_noffset) { + fdt_for_each_subnode(noffset, fit, image_noffset) { const char *name = fit_get_name(fit, noffset, NULL); if (!strncmp(name, FIT_SIG_NODENAME, @@ -260,7 +260,7 @@ int fit_image_verify_required_sigs(const void *fit, int image_noffset, return 0; } - fdt_for_each_subnode(sig_blob, noffset, sig_node) { + fdt_for_each_subnode(noffset, sig_blob, sig_node) { const char *required; int ret; @@ -393,7 +393,7 @@ static int fit_config_verify_sig(const void *fit, int conf_noffset, int ret; /* Process all hash subnodes of the component conf node */ - fdt_for_each_subnode(fit, noffset, conf_noffset) { + fdt_for_each_subnode(noffset, fit, conf_noffset) { const char *name = fit_get_name(fit, noffset, NULL); if (!strncmp(name, FIT_SIG_NODENAME, @@ -438,7 +438,7 @@ int fit_config_verify_required_sigs(const void *fit, int conf_noffset, return 0; } - fdt_for_each_subnode(sig_blob, noffset, sig_node) { + fdt_for_each_subnode(noffset, sig_blob, sig_node) { const char *required; int ret; diff --git a/common/image.c b/common/image.c index c0ad36a60f8..0e86c13a88a 100644 --- a/common/image.c +++ b/common/image.c @@ -1305,7 +1305,7 @@ int boot_get_fpga(int argc, char * const argv[], bootm_headers_t *images, void *buf; int conf_noffset; int fit_img_result; - char *uname, *name; + const char *uname, *name; int err; int devnum = 0; /* TODO support multi fpga platforms */ const fpga_desc * const desc = fpga_get_desc(devnum); @@ -1332,9 +1332,9 @@ int boot_get_fpga(int argc, char * const argv[], bootm_headers_t *images, case IMAGE_FORMAT_FIT: conf_noffset = fit_conf_get_node(buf, images->fit_uname_cfg); - err = fdt_get_string_index(buf, conf_noffset, FIT_FPGA_PROP, 0, - (const char **)&uname); - if (err < 0) { + uname = fdt_stringlist_get(buf, conf_noffset, FIT_FPGA_PROP, 0, + NULL); + if (!uname) { debug("## FPGA image is not specified\n"); return 0; } @@ -1404,7 +1404,7 @@ int boot_get_loadable(int argc, char * const argv[], bootm_headers_t *images, int loadables_index; int conf_noffset; int fit_img_result; - char *uname; + const char *uname; /* Check to see if the images struct has a FIT configuration */ if (!genimg_has_config(images)) { @@ -1428,15 +1428,14 @@ int boot_get_loadable(int argc, char * const argv[], bootm_headers_t *images, conf_noffset = fit_conf_get_node(buf, images->fit_uname_cfg); for (loadables_index = 0; - fdt_get_string_index(buf, conf_noffset, - FIT_LOADABLE_PROP, - loadables_index, - (const char **)&uname) == 0; + uname = fdt_stringlist_get(buf, conf_noffset, + FIT_LOADABLE_PROP, loadables_index, + NULL), uname; loadables_index++) { fit_img_result = fit_image_load(images, tmp_img_addr, - (const char **)&uname, + &uname, &(images->fit_uname_cfg), arch, IH_TYPE_LOADABLE, BOOTSTAGE_ID_FIT_LOADABLE_START, diff --git a/common/spl/Kconfig b/common/spl/Kconfig index 72aacab52cb..bb99f1fcff4 100644 --- a/common/spl/Kconfig +++ b/common/spl/Kconfig @@ -381,6 +381,24 @@ config SPL_ONENAND_SUPPORT load U-Boot from supported devices. This enables the drivers in drivers/mtd/onenand as part of an SPL build. +config SPL_OS_BOOT + bool "Activate Falcon Mode" + depends on SPL && !TI_SECURE_DEVICE + default n + help + Enable booting directly to an OS from SPL. + for more info read doc/README.falcon + +if SPL_OS_BOOT +config SYS_OS_BASE + hex "addr, where OS is found" + depends on SPL && SPL_NOR_SUPPORT + help + Specify the address, where the OS image is found, which + gets booted. + +endif # SPL_OS_BOOT + config SPL_POST_MEM_SUPPORT bool "Support POST drivers" depends on SPL diff --git a/configs/BSC9131RDB_NAND_SYSCLK100_defconfig b/configs/BSC9131RDB_NAND_SYSCLK100_defconfig index babcdd593e7..9a697855c09 100644 --- a/configs/BSC9131RDB_NAND_SYSCLK100_defconfig +++ b/configs/BSC9131RDB_NAND_SYSCLK100_defconfig @@ -28,3 +28,4 @@ CONFIG_FSL_ESPI=y CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/BSC9131RDB_NAND_defconfig b/configs/BSC9131RDB_NAND_defconfig index ad0062284b4..46b5b8e64e6 100644 --- a/configs/BSC9131RDB_NAND_defconfig +++ b/configs/BSC9131RDB_NAND_defconfig @@ -28,3 +28,4 @@ CONFIG_FSL_ESPI=y CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/BSC9131RDB_SPIFLASH_SYSCLK100_defconfig b/configs/BSC9131RDB_SPIFLASH_SYSCLK100_defconfig index 904556718ff..9a50d0c307c 100644 --- a/configs/BSC9131RDB_SPIFLASH_SYSCLK100_defconfig +++ b/configs/BSC9131RDB_SPIFLASH_SYSCLK100_defconfig @@ -25,3 +25,4 @@ CONFIG_FSL_ESPI=y CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/BSC9131RDB_SPIFLASH_defconfig b/configs/BSC9131RDB_SPIFLASH_defconfig index 178618c209a..ebb41d21f5d 100644 --- a/configs/BSC9131RDB_SPIFLASH_defconfig +++ b/configs/BSC9131RDB_SPIFLASH_defconfig @@ -25,3 +25,4 @@ CONFIG_FSL_ESPI=y CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/BSC9132QDS_NAND_DDRCLK100_SECURE_defconfig b/configs/BSC9132QDS_NAND_DDRCLK100_SECURE_defconfig index e678144f20f..5bed9aabe14 100644 --- a/configs/BSC9132QDS_NAND_DDRCLK100_SECURE_defconfig +++ b/configs/BSC9132QDS_NAND_DDRCLK100_SECURE_defconfig @@ -30,3 +30,4 @@ CONFIG_USB_STORAGE=y CONFIG_RSA=y CONFIG_SPL_RSA=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/BSC9132QDS_NAND_DDRCLK100_defconfig b/configs/BSC9132QDS_NAND_DDRCLK100_defconfig index e6fde47b8d1..defeee14f3b 100644 --- a/configs/BSC9132QDS_NAND_DDRCLK100_defconfig +++ b/configs/BSC9132QDS_NAND_DDRCLK100_defconfig @@ -29,3 +29,4 @@ CONFIG_FSL_ESPI=y CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/BSC9132QDS_NAND_DDRCLK133_SECURE_defconfig b/configs/BSC9132QDS_NAND_DDRCLK133_SECURE_defconfig index 1d9b54174d5..3a695fc868f 100644 --- a/configs/BSC9132QDS_NAND_DDRCLK133_SECURE_defconfig +++ b/configs/BSC9132QDS_NAND_DDRCLK133_SECURE_defconfig @@ -30,3 +30,4 @@ CONFIG_USB_STORAGE=y CONFIG_RSA=y CONFIG_SPL_RSA=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/BSC9132QDS_NAND_DDRCLK133_defconfig b/configs/BSC9132QDS_NAND_DDRCLK133_defconfig index 235f304c1a9..6600d1e5431 100644 --- a/configs/BSC9132QDS_NAND_DDRCLK133_defconfig +++ b/configs/BSC9132QDS_NAND_DDRCLK133_defconfig @@ -29,3 +29,4 @@ CONFIG_FSL_ESPI=y CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/BSC9132QDS_NOR_DDRCLK100_SECURE_defconfig b/configs/BSC9132QDS_NOR_DDRCLK100_SECURE_defconfig index f193c4b51c2..8d26cc53ca3 100644 --- a/configs/BSC9132QDS_NOR_DDRCLK100_SECURE_defconfig +++ b/configs/BSC9132QDS_NOR_DDRCLK100_SECURE_defconfig @@ -30,3 +30,4 @@ CONFIG_USB_STORAGE=y CONFIG_RSA=y CONFIG_SPL_RSA=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/BSC9132QDS_NOR_DDRCLK100_defconfig b/configs/BSC9132QDS_NOR_DDRCLK100_defconfig index 4c9c955b9f7..eb1c1de37b3 100644 --- a/configs/BSC9132QDS_NOR_DDRCLK100_defconfig +++ b/configs/BSC9132QDS_NOR_DDRCLK100_defconfig @@ -26,3 +26,4 @@ CONFIG_FSL_ESPI=y CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/BSC9132QDS_NOR_DDRCLK133_SECURE_defconfig b/configs/BSC9132QDS_NOR_DDRCLK133_SECURE_defconfig index 74c3385c31c..5359109617f 100644 --- a/configs/BSC9132QDS_NOR_DDRCLK133_SECURE_defconfig +++ b/configs/BSC9132QDS_NOR_DDRCLK133_SECURE_defconfig @@ -30,3 +30,4 @@ CONFIG_USB_STORAGE=y CONFIG_RSA=y CONFIG_SPL_RSA=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/BSC9132QDS_NOR_DDRCLK133_defconfig b/configs/BSC9132QDS_NOR_DDRCLK133_defconfig index 4bc83ef967f..83a98403724 100644 --- a/configs/BSC9132QDS_NOR_DDRCLK133_defconfig +++ b/configs/BSC9132QDS_NOR_DDRCLK133_defconfig @@ -26,3 +26,4 @@ CONFIG_FSL_ESPI=y CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/BSC9132QDS_SDCARD_DDRCLK100_SECURE_defconfig b/configs/BSC9132QDS_SDCARD_DDRCLK100_SECURE_defconfig index 0bea345f38b..f50c833e260 100644 --- a/configs/BSC9132QDS_SDCARD_DDRCLK100_SECURE_defconfig +++ b/configs/BSC9132QDS_SDCARD_DDRCLK100_SECURE_defconfig @@ -30,3 +30,4 @@ CONFIG_USB_STORAGE=y CONFIG_RSA=y CONFIG_SPL_RSA=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/BSC9132QDS_SDCARD_DDRCLK100_defconfig b/configs/BSC9132QDS_SDCARD_DDRCLK100_defconfig index f16b1b11777..2f28087d1b4 100644 --- a/configs/BSC9132QDS_SDCARD_DDRCLK100_defconfig +++ b/configs/BSC9132QDS_SDCARD_DDRCLK100_defconfig @@ -26,3 +26,4 @@ CONFIG_FSL_ESPI=y CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/BSC9132QDS_SDCARD_DDRCLK133_SECURE_defconfig b/configs/BSC9132QDS_SDCARD_DDRCLK133_SECURE_defconfig index d24f21626e2..596ebad45c8 100644 --- a/configs/BSC9132QDS_SDCARD_DDRCLK133_SECURE_defconfig +++ b/configs/BSC9132QDS_SDCARD_DDRCLK133_SECURE_defconfig @@ -30,3 +30,4 @@ CONFIG_USB_STORAGE=y CONFIG_RSA=y CONFIG_SPL_RSA=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/BSC9132QDS_SDCARD_DDRCLK133_defconfig b/configs/BSC9132QDS_SDCARD_DDRCLK133_defconfig index a9555db150c..cc12251280a 100644 --- a/configs/BSC9132QDS_SDCARD_DDRCLK133_defconfig +++ b/configs/BSC9132QDS_SDCARD_DDRCLK133_defconfig @@ -26,3 +26,4 @@ CONFIG_FSL_ESPI=y CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/BSC9132QDS_SPIFLASH_DDRCLK100_SECURE_defconfig b/configs/BSC9132QDS_SPIFLASH_DDRCLK100_SECURE_defconfig index 06a1770c1cc..c56f9d204e6 100644 --- a/configs/BSC9132QDS_SPIFLASH_DDRCLK100_SECURE_defconfig +++ b/configs/BSC9132QDS_SPIFLASH_DDRCLK100_SECURE_defconfig @@ -30,3 +30,4 @@ CONFIG_USB_STORAGE=y CONFIG_RSA=y CONFIG_SPL_RSA=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/BSC9132QDS_SPIFLASH_DDRCLK100_defconfig b/configs/BSC9132QDS_SPIFLASH_DDRCLK100_defconfig index c86ce6f5351..86f5b87a64b 100644 --- a/configs/BSC9132QDS_SPIFLASH_DDRCLK100_defconfig +++ b/configs/BSC9132QDS_SPIFLASH_DDRCLK100_defconfig @@ -26,3 +26,4 @@ CONFIG_FSL_ESPI=y CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/BSC9132QDS_SPIFLASH_DDRCLK133_SECURE_defconfig b/configs/BSC9132QDS_SPIFLASH_DDRCLK133_SECURE_defconfig index 6f6f2dc787e..f9f671e9901 100644 --- a/configs/BSC9132QDS_SPIFLASH_DDRCLK133_SECURE_defconfig +++ b/configs/BSC9132QDS_SPIFLASH_DDRCLK133_SECURE_defconfig @@ -30,3 +30,4 @@ CONFIG_USB_STORAGE=y CONFIG_RSA=y CONFIG_SPL_RSA=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/BSC9132QDS_SPIFLASH_DDRCLK133_defconfig b/configs/BSC9132QDS_SPIFLASH_DDRCLK133_defconfig index da71c54663c..8594ff32cf7 100644 --- a/configs/BSC9132QDS_SPIFLASH_DDRCLK133_defconfig +++ b/configs/BSC9132QDS_SPIFLASH_DDRCLK133_defconfig @@ -26,3 +26,4 @@ CONFIG_FSL_ESPI=y CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/a3m071_defconfig b/configs/a3m071_defconfig index 9e573a7b38c..ae696b5bdb6 100644 --- a/configs/a3m071_defconfig +++ b/configs/a3m071_defconfig @@ -10,6 +10,8 @@ CONFIG_OF_BOARD_SETUP=y CONFIG_BOOTDELAY=3 CONFIG_SPL=y CONFIG_SPL_NOR_SUPPORT=y +CONFIG_SPL_OS_BOOT=y +CONFIG_SYS_OS_BASE=0xfc200000 CONFIG_HUSH_PARSER=y CONFIG_LOOPW=y # CONFIG_CMD_SETEXPR is not set diff --git a/configs/a4m2k_defconfig b/configs/a4m2k_defconfig index aa09bf5e647..144291e15e8 100644 --- a/configs/a4m2k_defconfig +++ b/configs/a4m2k_defconfig @@ -11,6 +11,8 @@ CONFIG_SYS_EXTRA_OPTIONS="A4M2K" CONFIG_BOOTDELAY=3 CONFIG_SPL=y CONFIG_SPL_NOR_SUPPORT=y +CONFIG_SPL_OS_BOOT=y +CONFIG_SYS_OS_BASE=0xfc200000 CONFIG_HUSH_PARSER=y CONFIG_LOOPW=y # CONFIG_CMD_SETEXPR is not set diff --git a/configs/am335x_boneblack_defconfig b/configs/am335x_boneblack_defconfig index 1049a6de732..12b38554243 100644 --- a/configs/am335x_boneblack_defconfig +++ b/configs/am335x_boneblack_defconfig @@ -1,7 +1,7 @@ CONFIG_ARM=y CONFIG_AM33XX=y -CONFIG_TARGET_AM335X_EVM=y # CONFIG_SPL_NAND_SUPPORT is not set +CONFIG_TARGET_AM335X_EVM=y CONFIG_SPL_STACK_R_ADDR=0x82000000 CONFIG_FIT=y CONFIG_SYS_EXTRA_OPTIONS="EMMC_BOOT" @@ -9,6 +9,7 @@ CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_STACK_R=y CONFIG_SPL_MUSB_NEW_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_AUTOBOOT_KEYED=y CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n" diff --git a/configs/am335x_boneblack_vboot_defconfig b/configs/am335x_boneblack_vboot_defconfig index c6ef65072a6..60d28510cff 100644 --- a/configs/am335x_boneblack_vboot_defconfig +++ b/configs/am335x_boneblack_vboot_defconfig @@ -1,7 +1,7 @@ CONFIG_ARM=y CONFIG_AM33XX=y -CONFIG_TARGET_AM335X_EVM=y # CONFIG_SPL_NAND_SUPPORT is not set +CONFIG_TARGET_AM335X_EVM=y CONFIG_SPL_STACK_R_ADDR=0x82000000 CONFIG_DEFAULT_DEVICE_TREE="am335x-boneblack" CONFIG_FIT=y @@ -12,6 +12,7 @@ CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_STACK_R=y CONFIG_SPL_MUSB_NEW_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_AUTOBOOT_KEYED=y CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n" diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig index 3136957aec0..00bf4a438a7 100644 --- a/configs/am335x_evm_defconfig +++ b/configs/am335x_evm_defconfig @@ -11,6 +11,7 @@ CONFIG_SPL=y CONFIG_SPL_STACK_R=y CONFIG_SPL_MTD_SUPPORT=y CONFIG_SPL_MUSB_NEW_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMLS is not set diff --git a/configs/am335x_evm_nor_defconfig b/configs/am335x_evm_nor_defconfig index 1f12facc398..1046463cd6e 100644 --- a/configs/am335x_evm_nor_defconfig +++ b/configs/am335x_evm_nor_defconfig @@ -10,6 +10,7 @@ CONFIG_SPL=y CONFIG_SPL_STACK_R=y CONFIG_SPL_MTD_SUPPORT=y CONFIG_SPL_MUSB_NEW_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMLS is not set diff --git a/configs/am335x_evm_usbspl_defconfig b/configs/am335x_evm_usbspl_defconfig index 1c3e04d7331..b5d44240724 100644 --- a/configs/am335x_evm_usbspl_defconfig +++ b/configs/am335x_evm_usbspl_defconfig @@ -10,6 +10,7 @@ CONFIG_SPL_STACK_R=y CONFIG_SPL_MTD_SUPPORT=y CONFIG_SPL_MUSB_NEW_SUPPORT=y CONFIG_SPL_NET_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_SPL_USBETH_SUPPORT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y diff --git a/configs/am335x_shc_defconfig b/configs/am335x_shc_defconfig index 5eabd99e16d..cbafdb1a990 100644 --- a/configs/am335x_shc_defconfig +++ b/configs/am335x_shc_defconfig @@ -1,6 +1,5 @@ CONFIG_ARM=y CONFIG_AM33XX=y -CONFIG_TARGET_AM335X_SHC=y CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y @@ -11,6 +10,7 @@ CONFIG_SPL_LIBDISK_SUPPORT=y CONFIG_SPL_MMC_SUPPORT=y CONFIG_SPL_POWER_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y +CONFIG_TARGET_AM335X_SHC=y CONFIG_SPL_WATCHDOG_SUPPORT=y CONFIG_SERIES=y CONFIG_SPL_STACK_R_ADDR=0x82000000 @@ -19,6 +19,7 @@ CONFIG_FIT=y CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_STACK_R=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="U-Boot# " CONFIG_AUTOBOOT_KEYED=y diff --git a/configs/am335x_shc_ict_defconfig b/configs/am335x_shc_ict_defconfig index 93bbf313ab0..203376625b5 100644 --- a/configs/am335x_shc_ict_defconfig +++ b/configs/am335x_shc_ict_defconfig @@ -1,6 +1,5 @@ CONFIG_ARM=y CONFIG_AM33XX=y -CONFIG_TARGET_AM335X_SHC=y CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y @@ -11,6 +10,7 @@ CONFIG_SPL_LIBDISK_SUPPORT=y CONFIG_SPL_MMC_SUPPORT=y CONFIG_SPL_POWER_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y +CONFIG_TARGET_AM335X_SHC=y CONFIG_SPL_WATCHDOG_SUPPORT=y CONFIG_SHC_ICT=y CONFIG_SERIES=y @@ -20,6 +20,7 @@ CONFIG_FIT=y CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_STACK_R=y +CONFIG_SPL_OS_BOOT=y CONFIG_SYS_PROMPT="U-Boot# " CONFIG_AUTOBOOT_KEYED=y CONFIG_AUTOBOOT_PROMPT="Enter 'shc' to enter prompt (times out) %d \nEnter 'noautoboot' to enter prompt without timeout\n" diff --git a/configs/am335x_shc_netboot_defconfig b/configs/am335x_shc_netboot_defconfig index 6e8a9bf29d8..c6a6a1d9a56 100644 --- a/configs/am335x_shc_netboot_defconfig +++ b/configs/am335x_shc_netboot_defconfig @@ -1,6 +1,5 @@ CONFIG_ARM=y CONFIG_AM33XX=y -CONFIG_TARGET_AM335X_SHC=y CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y @@ -12,6 +11,7 @@ CONFIG_SPL_MMC_SUPPORT=y CONFIG_SPL_POWER_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y CONFIG_SPL_ENV_SUPPORT=y +CONFIG_TARGET_AM335X_SHC=y CONFIG_SPL_WATCHDOG_SUPPORT=y CONFIG_SHC_NETBOOT=y CONFIG_SERIES=y @@ -21,6 +21,7 @@ CONFIG_FIT=y CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_STACK_R=y +CONFIG_SPL_OS_BOOT=y CONFIG_SYS_PROMPT="U-Boot# " CONFIG_AUTOBOOT_KEYED=y CONFIG_AUTOBOOT_PROMPT="Enter 'shc' to enter prompt (times out) %d \nEnter 'noautoboot' to enter prompt without timeout\n" diff --git a/configs/am335x_shc_prompt_defconfig b/configs/am335x_shc_prompt_defconfig index 1ce8700d37b..374e5a64859 100644 --- a/configs/am335x_shc_prompt_defconfig +++ b/configs/am335x_shc_prompt_defconfig @@ -1,6 +1,5 @@ CONFIG_ARM=y CONFIG_AM33XX=y -CONFIG_TARGET_AM335X_SHC=y CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y @@ -11,6 +10,7 @@ CONFIG_SPL_LIBDISK_SUPPORT=y CONFIG_SPL_MMC_SUPPORT=y CONFIG_SPL_POWER_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y +CONFIG_TARGET_AM335X_SHC=y CONFIG_SPL_WATCHDOG_SUPPORT=y CONFIG_SERIES=y CONFIG_SPL_STACK_R_ADDR=0x82000000 @@ -19,6 +19,7 @@ CONFIG_FIT=y CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_STACK_R=y +CONFIG_SPL_OS_BOOT=y CONFIG_AUTOBOOT_KEYED=y CONFIG_AUTOBOOT_PROMPT="Enter 'shc' to enter prompt (times out) %d \nEnter 'noautoboot' to enter prompt without timeout\n" CONFIG_AUTOBOOT_DELAY_STR="shc" diff --git a/configs/am335x_shc_sdboot_defconfig b/configs/am335x_shc_sdboot_defconfig index ee8ed06b206..356046e79ba 100644 --- a/configs/am335x_shc_sdboot_defconfig +++ b/configs/am335x_shc_sdboot_defconfig @@ -1,6 +1,5 @@ CONFIG_ARM=y CONFIG_AM33XX=y -CONFIG_TARGET_AM335X_SHC=y CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y @@ -11,6 +10,7 @@ CONFIG_SPL_LIBDISK_SUPPORT=y CONFIG_SPL_MMC_SUPPORT=y CONFIG_SPL_POWER_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y +CONFIG_TARGET_AM335X_SHC=y CONFIG_SPL_WATCHDOG_SUPPORT=y CONFIG_SHC_SDBOOT=y CONFIG_SERIES=y @@ -20,6 +20,7 @@ CONFIG_FIT=y CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_STACK_R=y +CONFIG_SPL_OS_BOOT=y CONFIG_SYS_PROMPT="U-Boot# " CONFIG_AUTOBOOT_KEYED=y CONFIG_AUTOBOOT_PROMPT="Enter 'shc' to enter prompt (times out) %d \nEnter 'noautoboot' to enter prompt without timeout\n" diff --git a/configs/am335x_shc_sdboot_prompt_defconfig b/configs/am335x_shc_sdboot_prompt_defconfig index ee8ed06b206..356046e79ba 100644 --- a/configs/am335x_shc_sdboot_prompt_defconfig +++ b/configs/am335x_shc_sdboot_prompt_defconfig @@ -1,6 +1,5 @@ CONFIG_ARM=y CONFIG_AM33XX=y -CONFIG_TARGET_AM335X_SHC=y CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y @@ -11,6 +10,7 @@ CONFIG_SPL_LIBDISK_SUPPORT=y CONFIG_SPL_MMC_SUPPORT=y CONFIG_SPL_POWER_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y +CONFIG_TARGET_AM335X_SHC=y CONFIG_SPL_WATCHDOG_SUPPORT=y CONFIG_SHC_SDBOOT=y CONFIG_SERIES=y @@ -20,6 +20,7 @@ CONFIG_FIT=y CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_STACK_R=y +CONFIG_SPL_OS_BOOT=y CONFIG_SYS_PROMPT="U-Boot# " CONFIG_AUTOBOOT_KEYED=y CONFIG_AUTOBOOT_PROMPT="Enter 'shc' to enter prompt (times out) %d \nEnter 'noautoboot' to enter prompt without timeout\n" diff --git a/configs/am335x_sl50_defconfig b/configs/am335x_sl50_defconfig index 9dba3f01f8b..89c45da345f 100644 --- a/configs/am335x_sl50_defconfig +++ b/configs/am335x_sl50_defconfig @@ -1,6 +1,5 @@ CONFIG_ARM=y CONFIG_AM33XX=y -CONFIG_TARGET_AM335X_SL50=y CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y @@ -12,6 +11,7 @@ CONFIG_SPL_MMC_SUPPORT=y CONFIG_SPL_POWER_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y CONFIG_SPL_ENV_SUPPORT=y +CONFIG_TARGET_AM335X_SL50=y CONFIG_SPL_WATCHDOG_SUPPORT=y CONFIG_SPL_STACK_R_ADDR=0x82000000 CONFIG_SPL_YMODEM_SUPPORT=y @@ -20,6 +20,7 @@ CONFIG_SYS_EXTRA_OPTIONS="EMMC_BOOT" CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_STACK_R=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y # CONFIG_AUTOBOOT is not set CONFIG_CMD_BOOTZ=y diff --git a/configs/am43xx_evm_defconfig b/configs/am43xx_evm_defconfig index 304743d0e95..e63ee77cc73 100644 --- a/configs/am43xx_evm_defconfig +++ b/configs/am43xx_evm_defconfig @@ -11,6 +11,7 @@ CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_STACK_R=y CONFIG_SPL_MTD_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMLS is not set diff --git a/configs/am43xx_evm_ethboot_defconfig b/configs/am43xx_evm_ethboot_defconfig index 4ed2ac39aca..99d0990e5b2 100644 --- a/configs/am43xx_evm_ethboot_defconfig +++ b/configs/am43xx_evm_ethboot_defconfig @@ -9,6 +9,7 @@ CONFIG_SPL_ETH_SUPPORT=y CONFIG_SPL_MTD_SUPPORT=y CONFIG_SPL_NET_SUPPORT=y CONFIG_SPL_NET_VCI_STRING="AM43xx U-Boot SPL" +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMLS is not set diff --git a/configs/am43xx_evm_usbhost_boot_defconfig b/configs/am43xx_evm_usbhost_boot_defconfig index f3853717a37..00874dd1524 100644 --- a/configs/am43xx_evm_usbhost_boot_defconfig +++ b/configs/am43xx_evm_usbhost_boot_defconfig @@ -12,6 +12,7 @@ CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_STACK_R=y CONFIG_SPL_MTD_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_SPL_USB_HOST_SUPPORT=y CONFIG_SPL_USB_SUPPORT=y CONFIG_HUSH_PARSER=y diff --git a/configs/am57xx_evm_defconfig b/configs/am57xx_evm_defconfig index af54ebefec0..5acd4e711c4 100644 --- a/configs/am57xx_evm_defconfig +++ b/configs/am57xx_evm_defconfig @@ -14,6 +14,7 @@ CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_STACK_R=y CONFIG_SPL_DMA_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMLS is not set diff --git a/configs/am57xx_evm_nodt_defconfig b/configs/am57xx_evm_nodt_defconfig index 608cc10d3b4..9588a55f448 100644 --- a/configs/am57xx_evm_nodt_defconfig +++ b/configs/am57xx_evm_nodt_defconfig @@ -7,6 +7,7 @@ CONFIG_SPL_SPI_SUPPORT=y CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_DMA_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMLS is not set diff --git a/configs/birdland_bav335a_defconfig b/configs/birdland_bav335a_defconfig index d87c3429790..5a773ca7779 100644 --- a/configs/birdland_bav335a_defconfig +++ b/configs/birdland_bav335a_defconfig @@ -1,6 +1,5 @@ CONFIG_ARM=y CONFIG_AM33XX=y -CONFIG_TARGET_BAV335X=y CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y @@ -11,6 +10,7 @@ CONFIG_SPL_LIBDISK_SUPPORT=y CONFIG_SPL_MMC_SUPPORT=y CONFIG_SPL_POWER_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y +CONFIG_TARGET_BAV335X=y CONFIG_SPL_WATCHDOG_SUPPORT=y CONFIG_SPL_YMODEM_SUPPORT=y CONFIG_BAV_VERSION=1 @@ -19,6 +19,7 @@ CONFIG_SYS_EXTRA_OPTIONS="SERIAL1,CONS_INDEX=1" CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_MUSB_NEW_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMLS is not set diff --git a/configs/birdland_bav335b_defconfig b/configs/birdland_bav335b_defconfig index f4bc68706bd..f2d94395531 100644 --- a/configs/birdland_bav335b_defconfig +++ b/configs/birdland_bav335b_defconfig @@ -1,6 +1,5 @@ CONFIG_ARM=y CONFIG_AM33XX=y -CONFIG_TARGET_BAV335X=y CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y @@ -11,6 +10,7 @@ CONFIG_SPL_LIBDISK_SUPPORT=y CONFIG_SPL_MMC_SUPPORT=y CONFIG_SPL_POWER_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y +CONFIG_TARGET_BAV335X=y CONFIG_SPL_WATCHDOG_SUPPORT=y CONFIG_SPL_YMODEM_SUPPORT=y CONFIG_BAV_VERSION=2 @@ -19,6 +19,7 @@ CONFIG_SYS_EXTRA_OPTIONS="SERIAL1,CONS_INDEX=1" CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_MUSB_NEW_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMLS is not set diff --git a/configs/cairo_defconfig b/configs/cairo_defconfig index e6c0b80144e..ba13212186a 100644 --- a/configs/cairo_defconfig +++ b/configs/cairo_defconfig @@ -5,6 +5,7 @@ CONFIG_BOOTDELAY=-2 CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_MTD_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="Cairo # " CONFIG_CMD_BOOTZ=y diff --git a/configs/cm_fx6_defconfig b/configs/cm_fx6_defconfig index 998bc0542b6..7c413d5efdf 100644 --- a/configs/cm_fx6_defconfig +++ b/configs/cm_fx6_defconfig @@ -53,3 +53,4 @@ CONFIG_USB_STORAGE=y CONFIG_USB_KEYBOARD=y CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/devkit8000_defconfig b/configs/devkit8000_defconfig index e836e5e6a75..39a35e9649a 100644 --- a/configs/devkit8000_defconfig +++ b/configs/devkit8000_defconfig @@ -3,6 +3,7 @@ CONFIG_OMAP34XX=y CONFIG_TARGET_DEVKIT8000=y CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y # CONFIG_CMD_IMI is not set # CONFIG_CMD_IMLS is not set diff --git a/configs/dra7xx_evm_defconfig b/configs/dra7xx_evm_defconfig index c883380d4f7..e84a8a1274b 100644 --- a/configs/dra7xx_evm_defconfig +++ b/configs/dra7xx_evm_defconfig @@ -14,6 +14,7 @@ CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_STACK_R=y CONFIG_SPL_DMA_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_FASTBOOT=y CONFIG_USB_FUNCTION_FASTBOOT=y diff --git a/configs/gwventana_defconfig b/configs/gwventana_defconfig index acf9b8494c2..c0904b194db 100644 --- a/configs/gwventana_defconfig +++ b/configs/gwventana_defconfig @@ -20,6 +20,7 @@ CONFIG_BOOTDELAY=3 CONFIG_SPL=y CONFIG_SPL_STACK_R=y CONFIG_SPL_DMA_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="Ventana > " CONFIG_CMD_BOOTZ=y @@ -54,3 +55,4 @@ CONFIG_G_DNL_MANUFACTURER="Gateworks" CONFIG_G_DNL_VENDOR_NUM=0x0525 CONFIG_G_DNL_PRODUCT_NUM=0xa4a5 CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/igep0020_defconfig b/configs/igep0020_defconfig index 0ec4ebc04fe..8c1174e3a07 100644 --- a/configs/igep0020_defconfig +++ b/configs/igep0020_defconfig @@ -8,6 +8,7 @@ CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_MTD_SUPPORT=y CONFIG_SPL_ONENAND_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMLS is not set diff --git a/configs/igep0030_defconfig b/configs/igep0030_defconfig index bc0ec6ab70f..4bc0def7283 100644 --- a/configs/igep0030_defconfig +++ b/configs/igep0030_defconfig @@ -7,6 +7,7 @@ CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_MTD_SUPPORT=y CONFIG_SPL_ONENAND_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMLS is not set diff --git a/configs/igep0030_nand_defconfig b/configs/igep0030_nand_defconfig index 075088149b9..e053e4d4593 100644 --- a/configs/igep0030_nand_defconfig +++ b/configs/igep0030_nand_defconfig @@ -7,6 +7,7 @@ CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_MTD_SUPPORT=y CONFIG_SPL_ONENAND_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMLS is not set diff --git a/configs/igep0032_defconfig b/configs/igep0032_defconfig index 280afbde1b4..b2c5c71aa75 100644 --- a/configs/igep0032_defconfig +++ b/configs/igep0032_defconfig @@ -7,6 +7,7 @@ CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_MTD_SUPPORT=y CONFIG_SPL_ONENAND_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMLS is not set diff --git a/configs/ipam390_defconfig b/configs/ipam390_defconfig index 603b41bbc17..f80b0598a0b 100644 --- a/configs/ipam390_defconfig +++ b/configs/ipam390_defconfig @@ -10,6 +10,7 @@ CONFIG_VERSION_VARIABLE=y # CONFIG_DISPLAY_CPUINFO is not set # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_SPL=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="U-Boot > " # CONFIG_CMD_IMLS is not set diff --git a/configs/microblaze-generic_defconfig b/configs/microblaze-generic_defconfig index cf6c4b1f849..3dbf48a4029 100644 --- a/configs/microblaze-generic_defconfig +++ b/configs/microblaze-generic_defconfig @@ -15,6 +15,8 @@ CONFIG_BOOTDELAY=-1 CONFIG_SPL=y CONFIG_SPL_SYS_MALLOC_SIMPLE=y CONFIG_SPL_NOR_SUPPORT=y +CONFIG_SPL_OS_BOOT=y +CONFIG_SYS_OS_BASE=0x2c060000 CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="U-Boot-mONStR> " CONFIG_CMD_ASKENV=y diff --git a/configs/omap3_beagle_defconfig b/configs/omap3_beagle_defconfig index ece9638e49c..a76a5a35a53 100644 --- a/configs/omap3_beagle_defconfig +++ b/configs/omap3_beagle_defconfig @@ -5,6 +5,7 @@ CONFIG_SYS_EXTRA_OPTIONS="NAND" CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_MTD_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMLS is not set diff --git a/configs/omap3_logic_defconfig b/configs/omap3_logic_defconfig index 26146d211b1..30f06bdf8ce 100644 --- a/configs/omap3_logic_defconfig +++ b/configs/omap3_logic_defconfig @@ -6,6 +6,7 @@ CONFIG_SYS_EXTRA_OPTIONS="NAND" CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_MTD_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="OMAP Logic # " CONFIG_CMD_BOOTZ=y diff --git a/configs/omap3_overo_defconfig b/configs/omap3_overo_defconfig index a4160723116..5a7c6566e9f 100644 --- a/configs/omap3_overo_defconfig +++ b/configs/omap3_overo_defconfig @@ -4,6 +4,7 @@ CONFIG_TARGET_OMAP3_OVERO=y CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y CONFIG_SPL_MTD_SUPPORT=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="Overo # " CONFIG_CMD_BOOTZ=y diff --git a/configs/omap4_panda_defconfig b/configs/omap4_panda_defconfig index e496afe9f87..fc6dda01608 100644 --- a/configs/omap4_panda_defconfig +++ b/configs/omap4_panda_defconfig @@ -6,6 +6,7 @@ CONFIG_OMAP44XX=y CONFIG_TARGET_OMAP4_PANDA=y CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMLS is not set diff --git a/configs/omap4_sdp4430_defconfig b/configs/omap4_sdp4430_defconfig index ea62104fc1f..64c291b4a3b 100644 --- a/configs/omap4_sdp4430_defconfig +++ b/configs/omap4_sdp4430_defconfig @@ -5,6 +5,7 @@ CONFIG_OMAP44XX=y CONFIG_TARGET_OMAP4_SDP4430=y CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMLS is not set diff --git a/configs/omap5_uevm_defconfig b/configs/omap5_uevm_defconfig index 63ff1bcc8e0..50dda81483b 100644 --- a/configs/omap5_uevm_defconfig +++ b/configs/omap5_uevm_defconfig @@ -4,6 +4,7 @@ CONFIG_OMAP54XX=y CONFIG_TARGET_OMAP5_UEVM=y CONFIG_VERSION_VARIABLE=y CONFIG_SPL=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMLS is not set diff --git a/configs/pcm051_rev1_defconfig b/configs/pcm051_rev1_defconfig index dfe9da3a4cc..1c11fde5b39 100644 --- a/configs/pcm051_rev1_defconfig +++ b/configs/pcm051_rev1_defconfig @@ -1,6 +1,5 @@ CONFIG_ARM=y CONFIG_AM33XX=y -CONFIG_TARGET_PCM051=y CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y @@ -12,6 +11,7 @@ CONFIG_SPL_MMC_SUPPORT=y CONFIG_SPL_POWER_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y CONFIG_SPL_ENV_SUPPORT=y +CONFIG_TARGET_PCM051=y CONFIG_SPL_WATCHDOG_SUPPORT=y CONFIG_SPL_YMODEM_SUPPORT=y CONFIG_SYS_EXTRA_OPTIONS="REV1" @@ -20,6 +20,7 @@ CONFIG_SPL=y CONFIG_SPL_ETH_SUPPORT=y CONFIG_SPL_NET_SUPPORT=y CONFIG_SPL_NET_VCI_STRING="pcm051 U-Boot SPL" +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMLS is not set diff --git a/configs/pcm051_rev3_defconfig b/configs/pcm051_rev3_defconfig index 61102e02df1..b14754f3166 100644 --- a/configs/pcm051_rev3_defconfig +++ b/configs/pcm051_rev3_defconfig @@ -1,6 +1,5 @@ CONFIG_ARM=y CONFIG_AM33XX=y -CONFIG_TARGET_PCM051=y CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y @@ -12,6 +11,7 @@ CONFIG_SPL_MMC_SUPPORT=y CONFIG_SPL_POWER_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y CONFIG_SPL_ENV_SUPPORT=y +CONFIG_TARGET_PCM051=y CONFIG_SPL_WATCHDOG_SUPPORT=y CONFIG_SPL_YMODEM_SUPPORT=y CONFIG_SYS_EXTRA_OPTIONS="REV3" @@ -20,6 +20,7 @@ CONFIG_SPL=y CONFIG_SPL_ETH_SUPPORT=y CONFIG_SPL_NET_SUPPORT=y CONFIG_SPL_NET_VCI_STRING="pcm051 U-Boot SPL" +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMLS is not set diff --git a/configs/pdm360ng_defconfig b/configs/pdm360ng_defconfig index f3de685392c..9b8aa2f03ab 100644 --- a/configs/pdm360ng_defconfig +++ b/configs/pdm360ng_defconfig @@ -13,3 +13,4 @@ CONFIG_CMD_DHCP=y CONFIG_CMD_MII=y CONFIG_CMD_PING=y CONFIG_OF_LIBFDT=y +CONFIG_FDT_FIXUP_PARTITIONS=y diff --git a/configs/pengwyn_defconfig b/configs/pengwyn_defconfig index feec566c3ed..5aa9f4bd5dc 100644 --- a/configs/pengwyn_defconfig +++ b/configs/pengwyn_defconfig @@ -1,6 +1,5 @@ CONFIG_ARM=y CONFIG_AM33XX=y -CONFIG_TARGET_PENGWYN=y CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y @@ -13,6 +12,7 @@ CONFIG_SPL_NAND_SUPPORT=y CONFIG_SPL_POWER_SUPPORT=y CONFIG_SPL_SERIAL_SUPPORT=y CONFIG_SPL_ENV_SUPPORT=y +CONFIG_TARGET_PENGWYN=y CONFIG_SPL_WATCHDOG_SUPPORT=y CONFIG_SPL_YMODEM_SUPPORT=y CONFIG_VERSION_VARIABLE=y @@ -21,6 +21,7 @@ CONFIG_SPL_ETH_SUPPORT=y CONFIG_SPL_MTD_SUPPORT=y CONFIG_SPL_NET_SUPPORT=y CONFIG_SPL_NET_VCI_STRING="AM335x U-Boot SPL" +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_CMD_BOOTZ=y # CONFIG_CMD_IMLS is not set diff --git a/configs/twister_defconfig b/configs/twister_defconfig index f4191409483..c92bfc89238 100644 --- a/configs/twister_defconfig +++ b/configs/twister_defconfig @@ -5,6 +5,7 @@ CONFIG_TARGET_TWISTER=y CONFIG_FIT=y CONFIG_BOOTDELAY=10 CONFIG_SPL=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="twister => " # CONFIG_CMD_IMLS is not set diff --git a/configs/xilinx_zynqmp_ep_defconfig b/configs/xilinx_zynqmp_ep_defconfig index af0dd1bd881..74739e5acf7 100644 --- a/configs/xilinx_zynqmp_ep_defconfig +++ b/configs/xilinx_zynqmp_ep_defconfig @@ -13,6 +13,7 @@ CONFIG_SPL_LOAD_FIT=y # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_SPL=y CONFIG_SPL_SYS_MALLOC_SIMPLE=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="ZynqMP> " # CONFIG_CMD_CONSOLE is not set diff --git a/configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig b/configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig index 490c3b2e555..a2938a0a9ff 100644 --- a/configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig +++ b/configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig @@ -13,6 +13,7 @@ CONFIG_SPL_LOAD_FIT=y # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_SPL=y CONFIG_SPL_SYS_MALLOC_SIMPLE=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="ZynqMP> " # CONFIG_CMD_IMLS is not set diff --git a/configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig b/configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig index 30f408196c7..6c9ee65ec98 100644 --- a/configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig +++ b/configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig @@ -16,6 +16,7 @@ CONFIG_SPL_LOAD_FIT=y # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_SPL=y CONFIG_SPL_SYS_MALLOC_SIMPLE=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="ZynqMP> " # CONFIG_CMD_IMLS is not set diff --git a/configs/xilinx_zynqmp_zc1751_xm018_dc4_defconfig b/configs/xilinx_zynqmp_zc1751_xm018_dc4_defconfig index ec55a6d81fe..2feee77118a 100644 --- a/configs/xilinx_zynqmp_zc1751_xm018_dc4_defconfig +++ b/configs/xilinx_zynqmp_zc1751_xm018_dc4_defconfig @@ -11,6 +11,7 @@ CONFIG_SPL_LOAD_FIT=y # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_SPL=y CONFIG_SPL_SYS_MALLOC_SIMPLE=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="ZynqMP> " # CONFIG_CMD_IMLS is not set diff --git a/configs/xilinx_zynqmp_zc1751_xm019_dc5_defconfig b/configs/xilinx_zynqmp_zc1751_xm019_dc5_defconfig index f9754b608b0..7df0c77d48e 100644 --- a/configs/xilinx_zynqmp_zc1751_xm019_dc5_defconfig +++ b/configs/xilinx_zynqmp_zc1751_xm019_dc5_defconfig @@ -12,6 +12,7 @@ CONFIG_SPL_LOAD_FIT=y # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_SPL=y CONFIG_SPL_SYS_MALLOC_SIMPLE=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="ZynqMP> " # CONFIG_CMD_IMLS is not set diff --git a/configs/xilinx_zynqmp_zcu102_defconfig b/configs/xilinx_zynqmp_zcu102_defconfig index 71345085c19..2dcc60eb497 100644 --- a/configs/xilinx_zynqmp_zcu102_defconfig +++ b/configs/xilinx_zynqmp_zcu102_defconfig @@ -14,6 +14,7 @@ CONFIG_SPL_LOAD_FIT=y # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_SPL=y CONFIG_SPL_SYS_MALLOC_SIMPLE=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="ZynqMP> " # CONFIG_CMD_IMLS is not set diff --git a/configs/xilinx_zynqmp_zcu102_revB_defconfig b/configs/xilinx_zynqmp_zcu102_revB_defconfig index 76655436cbe..494bdc6000d 100644 --- a/configs/xilinx_zynqmp_zcu102_revB_defconfig +++ b/configs/xilinx_zynqmp_zcu102_revB_defconfig @@ -14,6 +14,7 @@ CONFIG_SPL_LOAD_FIT=y # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_SPL=y CONFIG_SPL_SYS_MALLOC_SIMPLE=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="ZynqMP> " # CONFIG_CMD_IMLS is not set diff --git a/configs/zynq_microzed_defconfig b/configs/zynq_microzed_defconfig index faaf48278f4..16d26c0e10b 100644 --- a/configs/zynq_microzed_defconfig +++ b/configs/zynq_microzed_defconfig @@ -7,6 +7,7 @@ CONFIG_FIT_SIGNATURE=y CONFIG_SYS_NO_FLASH=y # CONFIG_DISPLAY_CPUINFO is not set CONFIG_SPL=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="Zynq> " # CONFIG_CMD_IMLS is not set diff --git a/configs/zynq_picozed_defconfig b/configs/zynq_picozed_defconfig index ef379141c7a..3ba6b668668 100644 --- a/configs/zynq_picozed_defconfig +++ b/configs/zynq_picozed_defconfig @@ -4,6 +4,7 @@ CONFIG_DEFAULT_DEVICE_TREE="zynq-picozed" CONFIG_SYS_NO_FLASH=y # CONFIG_DISPLAY_CPUINFO is not set CONFIG_SPL=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="Zynq> " # CONFIG_CMD_IMLS is not set diff --git a/configs/zynq_zc702_defconfig b/configs/zynq_zc702_defconfig index acbc5a2f45e..117bfda68d7 100644 --- a/configs/zynq_zc702_defconfig +++ b/configs/zynq_zc702_defconfig @@ -8,6 +8,7 @@ CONFIG_FIT_SIGNATURE=y CONFIG_SYS_NO_FLASH=y # CONFIG_DISPLAY_CPUINFO is not set CONFIG_SPL=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="Zynq> " # CONFIG_CMD_IMLS is not set diff --git a/configs/zynq_zc706_defconfig b/configs/zynq_zc706_defconfig index 64d95d96971..ef73849ea1d 100644 --- a/configs/zynq_zc706_defconfig +++ b/configs/zynq_zc706_defconfig @@ -8,6 +8,7 @@ CONFIG_FIT_SIGNATURE=y CONFIG_SYS_NO_FLASH=y # CONFIG_DISPLAY_CPUINFO is not set CONFIG_SPL=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="Zynq> " # CONFIG_CMD_IMLS is not set diff --git a/configs/zynq_zc770_xm010_defconfig b/configs/zynq_zc770_xm010_defconfig index bec60cc6a3a..1419efa2b8c 100644 --- a/configs/zynq_zc770_xm010_defconfig +++ b/configs/zynq_zc770_xm010_defconfig @@ -8,6 +8,7 @@ CONFIG_SYS_EXTRA_OPTIONS="ZC770_XM010" CONFIG_SYS_NO_FLASH=y # CONFIG_DISPLAY_CPUINFO is not set CONFIG_SPL=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="Zynq> " # CONFIG_CMD_IMLS is not set diff --git a/configs/zynq_zc770_xm011_defconfig b/configs/zynq_zc770_xm011_defconfig index 489becb6ca3..56c28511545 100644 --- a/configs/zynq_zc770_xm011_defconfig +++ b/configs/zynq_zc770_xm011_defconfig @@ -8,6 +8,7 @@ CONFIG_SYS_EXTRA_OPTIONS="ZC770_XM011" CONFIG_SYS_NO_FLASH=y # CONFIG_DISPLAY_CPUINFO is not set CONFIG_SPL=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="Zynq> " # CONFIG_CMD_IMLS is not set diff --git a/configs/zynq_zc770_xm012_defconfig b/configs/zynq_zc770_xm012_defconfig index 55a7336127e..d3116e171a4 100644 --- a/configs/zynq_zc770_xm012_defconfig +++ b/configs/zynq_zc770_xm012_defconfig @@ -7,6 +7,7 @@ CONFIG_FIT_SIGNATURE=y CONFIG_SYS_EXTRA_OPTIONS="ZC770_XM012" # CONFIG_DISPLAY_CPUINFO is not set CONFIG_SPL=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="Zynq> " CONFIG_CMD_GPIO=y diff --git a/configs/zynq_zc770_xm013_defconfig b/configs/zynq_zc770_xm013_defconfig index 265e6412dfc..add038ce7f7 100644 --- a/configs/zynq_zc770_xm013_defconfig +++ b/configs/zynq_zc770_xm013_defconfig @@ -8,6 +8,7 @@ CONFIG_SYS_EXTRA_OPTIONS="ZC770_XM013" CONFIG_SYS_NO_FLASH=y # CONFIG_DISPLAY_CPUINFO is not set CONFIG_SPL=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="Zynq> " # CONFIG_CMD_IMLS is not set diff --git a/configs/zynq_zed_defconfig b/configs/zynq_zed_defconfig index 93e9f17ef4a..96f00e41380 100644 --- a/configs/zynq_zed_defconfig +++ b/configs/zynq_zed_defconfig @@ -7,6 +7,7 @@ CONFIG_FIT_SIGNATURE=y CONFIG_SYS_NO_FLASH=y # CONFIG_DISPLAY_CPUINFO is not set CONFIG_SPL=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="Zynq> " # CONFIG_CMD_IMLS is not set diff --git a/configs/zynq_zybo_defconfig b/configs/zynq_zybo_defconfig index 8a81ef57a84..dfac76458fb 100644 --- a/configs/zynq_zybo_defconfig +++ b/configs/zynq_zybo_defconfig @@ -8,6 +8,7 @@ CONFIG_FIT_SIGNATURE=y CONFIG_SYS_NO_FLASH=y # CONFIG_DISPLAY_CPUINFO is not set CONFIG_SPL=y +CONFIG_SPL_OS_BOOT=y CONFIG_HUSH_PARSER=y CONFIG_SYS_PROMPT="Zynq> " # CONFIG_CMD_IMLS is not set diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index 4d78e3fcac4..c42fff6ec29 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -101,10 +101,10 @@ int clk_get_by_name(struct udevice *dev, const char *name, struct clk *clk) debug("%s(dev=%p, name=%s, clk=%p)\n", __func__, dev, name, clk); - index = fdt_find_string(gd->fdt_blob, dev->of_offset, "clock-names", - name); + index = fdt_stringlist_search(gd->fdt_blob, dev->of_offset, + "clock-names", name); if (index < 0) { - debug("fdt_find_string() failed: %d\n", index); + debug("fdt_stringlist_search() failed: %d\n", index); return index; } diff --git a/drivers/core/device.c b/drivers/core/device.c index b737f1c7890..1935b8d46f1 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -698,7 +698,7 @@ fdt_addr_t dev_get_addr_name(struct udevice *dev, const char *name) #if CONFIG_IS_ENABLED(OF_CONTROL) int index; - index = fdt_find_string(gd->fdt_blob, dev->of_offset, "reg-names", + index = fdt_stringlist_search(gd->fdt_blob, dev->of_offset, "reg-names", name); if (index < 0) return index; diff --git a/drivers/gpio/dwapb_gpio.c b/drivers/gpio/dwapb_gpio.c index 72cec488009..471e18aeaa0 100644 --- a/drivers/gpio/dwapb_gpio.c +++ b/drivers/gpio/dwapb_gpio.c @@ -132,7 +132,8 @@ static int gpio_dwapb_bind(struct udevice *dev) plat->base = base; plat->bank = bank; plat->pins = fdtdec_get_int(blob, node, "snps,nr-gpios", 0); - ret = fdt_get_string(blob, node, "bank-name", &plat->name); + plat->name = fdt_stringlist_get(blob, node, "bank-name", 0, + NULL); if (ret) goto err; diff --git a/drivers/i2c/mxc_i2c.c b/drivers/i2c/mxc_i2c.c index a26f44e1e60..6247d334a0b 100644 --- a/drivers/i2c/mxc_i2c.c +++ b/drivers/i2c/mxc_i2c.c @@ -773,7 +773,7 @@ static int mxc_i2c_probe(struct udevice *bus) * See Documentation/devicetree/bindings/i2c/i2c-imx.txt * Use gpio to force bus idle when necessary. */ - ret = fdt_find_string(fdt, node, "pinctrl-names", "gpio"); + ret = fdt_stringlist_search(fdt, node, "pinctrl-names", "gpio"); if (ret < 0) { dev_info(dev, "i2c bus %d at %lu, no gpio pinctrl state.\n", bus->seq, i2c_bus->base); } else { diff --git a/drivers/mailbox/mailbox-uclass.c b/drivers/mailbox/mailbox-uclass.c index 40f851d9154..a7fcde51d59 100644 --- a/drivers/mailbox/mailbox-uclass.c +++ b/drivers/mailbox/mailbox-uclass.c @@ -85,10 +85,10 @@ int mbox_get_by_name(struct udevice *dev, const char *name, debug("%s(dev=%p, name=%s, chan=%p)\n", __func__, dev, name, chan); - index = fdt_find_string(gd->fdt_blob, dev->of_offset, "mbox-names", - name); + index = fdt_stringlist_search(gd->fdt_blob, dev->of_offset, + "mbox-names", name); if (index < 0) { - debug("fdt_find_string() failed: %d\n", index); + debug("fdt_stringlist_search() failed: %d\n", index); return index; } diff --git a/drivers/net/cpsw.c b/drivers/net/cpsw.c index d1f024e0eb3..cbce683eea9 100644 --- a/drivers/net/cpsw.c +++ b/drivers/net/cpsw.c @@ -1348,7 +1348,7 @@ static int cpsw_eth_ofdata_to_platdata(struct udevice *dev) active_slave = fdtdec_get_int(fdt, node, "active_slave", 0); priv->data.active_slave = active_slave; - fdt_for_each_subnode(fdt, subnode, node) { + fdt_for_each_subnode(subnode, fdt, node) { int len; const char *name; diff --git a/drivers/net/keystone_net.c b/drivers/net/keystone_net.c index e41b7d1365d..f88d83e7273 100644 --- a/drivers/net/keystone_net.c +++ b/drivers/net/keystone_net.c @@ -990,7 +990,7 @@ static int ks2_eth_bind_slaves(struct udevice *dev, int gbe, int *gbe_0) char *slave_name; interfaces = fdt_subnode_offset(fdt, gbe, "interfaces"); - fdt_for_each_subnode(fdt, slave, interfaces) { + fdt_for_each_subnode(slave, fdt, interfaces) { int slave_no; slave_no = fdtdec_get_int(fdt, slave, "slave-port", -ENOENT); @@ -1015,7 +1015,7 @@ static int ks2_eth_bind_slaves(struct udevice *dev, int gbe, int *gbe_0) } sec_slave = fdt_subnode_offset(fdt, gbe, "secondary-slave-ports"); - fdt_for_each_subnode(fdt, slave, sec_slave) { + fdt_for_each_subnode(slave, fdt, sec_slave) { int slave_no; slave_no = fdtdec_get_int(fdt, slave, "slave-port", -ENOENT); diff --git a/drivers/net/mvpp2.c b/drivers/net/mvpp2.c index 340b85a7101..405776af95d 100644 --- a/drivers/net/mvpp2.c +++ b/drivers/net/mvpp2.c @@ -4153,7 +4153,7 @@ static int mvpp2_base_bind(struct udevice *parent) return -ENOENT; } - fdt_for_each_subnode(blob, subnode, node) { + fdt_for_each_subnode(subnode, blob, node) { /* Skip disabled ports */ if (!fdtdec_get_is_enabled(blob, subnode)) continue; diff --git a/drivers/net/sun8i_emac.c b/drivers/net/sun8i_emac.c index 4c149e1bdf2..91570a29106 100644 --- a/drivers/net/sun8i_emac.c +++ b/drivers/net/sun8i_emac.c @@ -456,8 +456,9 @@ static int parse_phy_pins(struct udevice *dev) for (i = 0; ; i++) { int pin; - if (fdt_get_string_index(gd->fdt_blob, offset, - "allwinner,pins", i, &pin_name)) + pin_name = fdt_stringlist_get(gd->fdt_blob, offset, + "allwinner,pins", i, NULL); + if (!pin_name) break; if (pin_name[0] != 'P') continue; diff --git a/drivers/pci/pci_tegra.c b/drivers/pci/pci_tegra.c index ea8adb98db3..430270ec292 100644 --- a/drivers/pci/pci_tegra.c +++ b/drivers/pci/pci_tegra.c @@ -531,7 +531,7 @@ static int tegra_pcie_parse_dt(const void *fdt, int node, enum tegra_pci_id id, } #endif - fdt_for_each_subnode(fdt, subnode, node) { + fdt_for_each_subnode(subnode, fdt, node) { unsigned int index = 0, num_lanes = 0; struct tegra_pcie_port *port; diff --git a/drivers/phy/marvell/comphy_core.c b/drivers/phy/marvell/comphy_core.c index 344df3bed1d..651397d8161 100644 --- a/drivers/phy/marvell/comphy_core.c +++ b/drivers/phy/marvell/comphy_core.c @@ -152,7 +152,7 @@ static int comphy_probe(struct udevice *dev) } lane = 0; - fdt_for_each_subnode(blob, subnode, node) { + fdt_for_each_subnode(subnode, blob, node) { /* Skip disabled ports */ if (!fdtdec_get_is_enabled(blob, subnode)) continue; diff --git a/drivers/pinctrl/exynos/pinctrl-exynos.c b/drivers/pinctrl/exynos/pinctrl-exynos.c index a28405fc155..c9c13e68028 100644 --- a/drivers/pinctrl/exynos/pinctrl-exynos.c +++ b/drivers/pinctrl/exynos/pinctrl-exynos.c @@ -71,7 +71,7 @@ int exynos_pinctrl_set_state(struct udevice *dev, struct udevice *config) { const void *fdt = gd->fdt_blob; int node = config->of_offset; - unsigned int count, idx, pin_num, ret; + unsigned int count, idx, pin_num; unsigned int pinfunc, pinpud, pindrv; unsigned long reg, value; const char *name; @@ -80,7 +80,7 @@ int exynos_pinctrl_set_state(struct udevice *dev, struct udevice *config) * refer to the following document for the pinctrl bindings * linux/Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt */ - count = fdt_count_strings(fdt, node, "samsung,pins"); + count = fdt_stringlist_count(fdt, node, "samsung,pins"); if (count <= 0) return -EINVAL; @@ -89,9 +89,8 @@ int exynos_pinctrl_set_state(struct udevice *dev, struct udevice *config) pindrv = fdtdec_get_int(fdt, node, "samsung,pin-drv", -1); for (idx = 0; idx < count; idx++) { - ret = fdt_get_string_index(fdt, node, "samsung,pins", - idx, &name); - if (ret < 0) + name = fdt_stringlist_get(fdt, node, "samsung,pins", idx, NULL); + if (!name) continue; reg = pin_to_bank_base(dev, name, &pin_num); diff --git a/drivers/pinctrl/meson/pinctrl-meson.c b/drivers/pinctrl/meson/pinctrl-meson.c index d21a3dd7552..30f7cfc8200 100644 --- a/drivers/pinctrl/meson/pinctrl-meson.c +++ b/drivers/pinctrl/meson/pinctrl-meson.c @@ -122,7 +122,7 @@ static fdt_addr_t parse_address(int offset, const char *name, int na, int ns) int index, len = 0; const fdt32_t *reg; - index = fdt_find_string(gd->fdt_blob, offset, "reg-names", name); + index = fdt_stringlist_search(gd->fdt_blob, offset, "reg-names", name); if (index < 0) return FDT_ADDR_T_NONE; @@ -154,7 +154,7 @@ int meson_pinctrl_probe(struct udevice *dev) return -EINVAL; } - fdt_for_each_subnode(gd->fdt_blob, node, dev->of_offset) { + fdt_for_each_subnode(node, gd->fdt_blob, dev->of_offset) { if (fdt_getprop(gd->fdt_blob, node, "gpio-controller", &len)) { gpio = node; break; diff --git a/drivers/pinctrl/pinctrl-generic.c b/drivers/pinctrl/pinctrl-generic.c index baff40f1f0d..482db295fee 100644 --- a/drivers/pinctrl/pinctrl-generic.c +++ b/drivers/pinctrl/pinctrl-generic.c @@ -306,11 +306,11 @@ static int pinctrl_generic_set_state_subnode(struct udevice *dev, const char *name; int strings_count, selector, i, ret; - strings_count = fdt_count_strings(fdt, node, subnode_target_type); + strings_count = fdt_stringlist_count(fdt, node, subnode_target_type); if (strings_count < 0) { subnode_target_type = "groups"; is_group = true; - strings_count = fdt_count_strings(fdt, node, + strings_count = fdt_stringlist_count(fdt, node, subnode_target_type); if (strings_count < 0) { /* skip this node; may contain config child nodes */ @@ -319,9 +319,9 @@ static int pinctrl_generic_set_state_subnode(struct udevice *dev, } for (i = 0; i < strings_count; i++) { - ret = fdt_get_string_index(fdt, node, subnode_target_type, - i, &name); - if (ret < 0) + name = fdt_stringlist_get(fdt, node, subnode_target_type, i, + NULL); + if (!name) return -EINVAL; if (is_group) diff --git a/drivers/pinctrl/pinctrl-uclass.c b/drivers/pinctrl/pinctrl-uclass.c index 7397de28c01..02ab9b4afde 100644 --- a/drivers/pinctrl/pinctrl-uclass.c +++ b/drivers/pinctrl/pinctrl-uclass.c @@ -72,7 +72,7 @@ static int pinctrl_select_state_full(struct udevice *dev, const char *statename) struct udevice *config; int state, size, i, ret; - state = fdt_find_string(fdt, node, "pinctrl-names", statename); + state = fdt_stringlist_search(fdt, node, "pinctrl-names", statename); if (state < 0) { char *end; /* diff --git a/drivers/power/pmic/palmas.c b/drivers/power/pmic/palmas.c index 6c79a93d1b7..0ab425e5dc7 100644 --- a/drivers/power/pmic/palmas.c +++ b/drivers/power/pmic/palmas.c @@ -52,7 +52,7 @@ static int palmas_bind(struct udevice *dev) int node = dev->of_offset; int subnode, len; - fdt_for_each_subnode(blob, subnode, node) { + fdt_for_each_subnode(subnode, blob, node) { const char *name; char *temp; diff --git a/drivers/reset/reset-uclass.c b/drivers/reset/reset-uclass.c index edaecfbc99b..d3744ef703c 100644 --- a/drivers/reset/reset-uclass.c +++ b/drivers/reset/reset-uclass.c @@ -88,10 +88,10 @@ int reset_get_by_name(struct udevice *dev, const char *name, debug("%s(dev=%p, name=%s, reset_ctl=%p)\n", __func__, dev, name, reset_ctl); - index = fdt_find_string(gd->fdt_blob, dev->of_offset, "reset-names", - name); + index = fdt_stringlist_search(gd->fdt_blob, dev->of_offset, + "reset-names", name); if (index < 0) { - debug("fdt_find_string() failed: %d\n", index); + debug("fdt_stringlist_search() failed: %d\n", index); return index; } diff --git a/drivers/spi/fsl_qspi.c b/drivers/spi/fsl_qspi.c index 729ded9a050..4d378c227d5 100644 --- a/drivers/spi/fsl_qspi.c +++ b/drivers/spi/fsl_qspi.c @@ -1098,7 +1098,7 @@ static int fsl_qspi_ofdata_to_platdata(struct udevice *bus) } /* Count flash numbers */ - fdt_for_each_subnode(blob, subnode, node) + fdt_for_each_subnode(subnode, blob, node) ++flash_num; if (flash_num == 0) { diff --git a/drivers/video/sunxi_display.c b/drivers/video/sunxi_display.c index 50b16a9129f..6cba1b95a11 100644 --- a/drivers/video/sunxi_display.c +++ b/drivers/video/sunxi_display.c @@ -1562,7 +1562,7 @@ int sunxi_simplefb_setup(void *blob) offset = fdt_node_offset_by_compatible(blob, -1, "allwinner,simple-framebuffer"); while (offset >= 0) { - ret = fdt_find_string(blob, offset, "allwinner,pipeline", + ret = fdt_stringlist_search(blob, offset, "allwinner,pipeline", pipeline); if (ret == 0) break; diff --git a/include/configs/BSC9131RDB.h b/include/configs/BSC9131RDB.h index 81021ba5a33..057a3cfc933 100644 --- a/include/configs/BSC9131RDB.h +++ b/include/configs/BSC9131RDB.h @@ -367,13 +367,6 @@ extern unsigned long get_sdram_size(void); #define MTDIDS_DEFAULT "nand0=ff800000.flash," #define MTDPARTS_DEFAULT "mtdparts=ff800000.flash:1m(uboot)," \ "8m(kernel),512k(dtb),-(fs)" -/* - * Override partitions in device tree using info - * in "mtdparts" environment variable - */ -#ifdef CONFIG_CMD_MTDPARTS -#define CONFIG_FDT_FIXUP_PARTITIONS -#endif /* * Environment Configuration diff --git a/include/configs/BSC9132QDS.h b/include/configs/BSC9132QDS.h index 6c5c1721448..1c8a77baba9 100644 --- a/include/configs/BSC9132QDS.h +++ b/include/configs/BSC9132QDS.h @@ -605,14 +605,6 @@ combinations. this should be removed later "8m(kernel),512k(dtb),-(fs)" #endif /* - * Override partitions in device tree using info - * in "mtdparts" environment variable - */ -#ifdef CONFIG_CMD_MTDPARTS -#define CONFIG_FDT_FIXUP_PARTITIONS -#endif - -/* * Environment Configuration */ diff --git a/include/configs/a3m071.h b/include/configs/a3m071.h index 1919475d198..ee75785781d 100644 --- a/include/configs/a3m071.h +++ b/include/configs/a3m071.h @@ -330,7 +330,6 @@ #undef CONFIG_BOOTARGS -#define CONFIG_SYS_OS_BASE 0xfc200000 #define CONFIG_SYS_FDT_BASE 0xfc1e0000 #define CONFIG_SYS_FDT_SIZE (16<<10) @@ -401,7 +400,6 @@ #define CONFIG_SPL_BSS_START_ADDR ((128 - 1) << 20) #define CONFIG_SPL_BSS_MAX_SIZE (64 << 10) -#define CONFIG_SPL_OS_BOOT /* Place patched DT blob (fdt) at this address */ #define CONFIG_SYS_SPL_ARGS_ADDR 0x01800000 diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h index daa7dd8b9f2..ec70b72970e 100644 --- a/include/configs/am335x_evm.h +++ b/include/configs/am335x_evm.h @@ -380,7 +380,6 @@ */ #if defined(CONFIG_SPI_BOOT) /* SPL related */ -#undef CONFIG_SPL_OS_BOOT /* Not supported by existing map */ #define CONFIG_SPL_SPI_LOAD #define CONFIG_SYS_SPI_U_BOOT_OFFS 0x20000 diff --git a/include/configs/am335x_igep0033.h b/include/configs/am335x_igep0033.h index 18db58ad8af..32aa392e8b4 100644 --- a/include/configs/am335x_igep0033.h +++ b/include/configs/am335x_igep0033.h @@ -123,7 +123,6 @@ #undef CONFIG_USE_IRQ /* SPL */ -#undef CONFIG_SPL_OS_BOOT /* Not supported by existing map */ #define CONFIG_SPL_LDSCRIPT "$(CPUDIR)/am33xx/u-boot-spl.lds" #define CONFIG_SYS_NAND_5_ADDR_CYCLE diff --git a/include/configs/baltos.h b/include/configs/baltos.h index 58df571323e..e69c1b63c14 100644 --- a/include/configs/baltos.h +++ b/include/configs/baltos.h @@ -54,7 +54,6 @@ #undef CONFIG_SYS_OMAP24_I2C_SPEED #define CONFIG_SYS_OMAP24_I2C_SPEED 1000 -#undef CONFIG_SPL_OS_BOOT #ifdef CONFIG_NAND #define CONFIG_SYS_NAND_U_BOOT_OFFS 0x00080000 #ifdef CONFIG_SPL_OS_BOOT diff --git a/include/configs/bav335x.h b/include/configs/bav335x.h index f1ae1a6c19d..ac47decb638 100644 --- a/include/configs/bav335x.h +++ b/include/configs/bav335x.h @@ -513,7 +513,6 @@ DEFAULT_LINUX_BOOT_ENV \ */ #if defined(CONFIG_SPI_BOOT) /* SPL related */ -#undef CONFIG_SPL_OS_BOOT /* Not supported by existing map */ #define CONFIG_SPL_SPI_LOAD #define CONFIG_SYS_SPI_U_BOOT_OFFS 0x20000 diff --git a/include/configs/brppt1.h b/include/configs/brppt1.h index e01d53565cb..ccc5bb4b37b 100644 --- a/include/configs/brppt1.h +++ b/include/configs/brppt1.h @@ -68,7 +68,6 @@ #define CONFIG_CMD_MTDPARTS #endif /* CONFIG_SPI_BOOT, ... */ -#undef CONFIG_SPL_OS_BOOT #ifdef CONFIG_SPL_OS_BOOT #define CONFIG_SYS_SPL_ARGS_ADDR 0x80F80000 diff --git a/include/configs/cm_fx6.h b/include/configs/cm_fx6.h index 46584fdf746..b0d8c5f3ab4 100644 --- a/include/configs/cm_fx6.h +++ b/include/configs/cm_fx6.h @@ -56,7 +56,6 @@ /* MTD support */ #ifndef CONFIG_SPL_BUILD -#define CONFIG_FDT_FIXUP_PARTITIONS #define CONFIG_MTD_DEVICE #define CONFIG_MTD_PARTITIONS #define CONFIG_SPI_FLASH_MTD diff --git a/include/configs/cm_t335.h b/include/configs/cm_t335.h index 6dbc9e980c9..7eed776f62f 100644 --- a/include/configs/cm_t335.h +++ b/include/configs/cm_t335.h @@ -19,7 +19,6 @@ #undef CONFIG_BOARD_LATE_INIT #undef CONFIG_SPI #undef CONFIG_OMAP3_SPI -#undef CONFIG_SPL_OS_BOOT #undef CONFIG_BOOTCOUNT_LIMIT #undef CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC diff --git a/include/configs/cm_t43.h b/include/configs/cm_t43.h index 92ff2513102..3a605f7504b 100644 --- a/include/configs/cm_t43.h +++ b/include/configs/cm_t43.h @@ -90,7 +90,6 @@ #define CONFIG_HSMMC2_8BIT #include <configs/ti_armv7_omap.h> -#undef CONFIG_SPL_OS_BOOT #undef CONFIG_SYS_MONITOR_LEN #undef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR diff --git a/include/configs/cm_t54.h b/include/configs/cm_t54.h index ddb1e97b6c8..a3b1e5fe8b8 100644 --- a/include/configs/cm_t54.h +++ b/include/configs/cm_t54.h @@ -16,8 +16,6 @@ #include <configs/ti_omap5_common.h> -#undef CONFIG_SPL_OS_BOOT - /* EEPROM related defines */ #define CONFIG_SYS_I2C_OMAP34XX #define CONFIG_SYS_I2C_EEPROM_ADDR 0x50 diff --git a/include/configs/duovero.h b/include/configs/duovero.h index 868158b2e01..b5bd3ba651f 100644 --- a/include/configs/duovero.h +++ b/include/configs/duovero.h @@ -21,7 +21,6 @@ #include <configs/ti_omap4_common.h> -#undef CONFIG_SPL_OS_BOOT #undef CONFIG_EFI_PARTITION #undef CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS diff --git a/include/configs/gw_ventana.h b/include/configs/gw_ventana.h index 6caa3b10146..0b058766240 100644 --- a/include/configs/gw_ventana.h +++ b/include/configs/gw_ventana.h @@ -14,7 +14,6 @@ /* Falcon Mode */ #define CONFIG_CMD_SPL -#define CONFIG_SPL_OS_BOOT #define CONFIG_SYS_SPL_ARGS_ADDR 0x18000000 #define CONFIG_CMD_SPL_WRITE_SIZE (128 * SZ_1K) @@ -421,7 +420,4 @@ "if run ${btype}_boot; then; fi; " \ "done" -/* Device Tree Support */ -#define CONFIG_FDT_FIXUP_PARTITIONS - #endif /* __CONFIG_H */ diff --git a/include/configs/ipam390.h b/include/configs/ipam390.h index 5f07629a597..381fe04aeaf 100644 --- a/include/configs/ipam390.h +++ b/include/configs/ipam390.h @@ -297,7 +297,6 @@ /* add FALCON boot mode */ #define CONFIG_CMD_SPL -#define CONFIG_SPL_OS_BOOT #define CONFIG_SYS_NAND_SPL_KERNEL_OFFS 0x00200000 #define CONFIG_SYS_SPL_ARGS_ADDR LINUX_BOOT_PARAM_ADDR #define CONFIG_CMD_SPL_NAND_OFS 0x00180000 diff --git a/include/configs/microblaze-generic.h b/include/configs/microblaze-generic.h index a07bcc632ca..2a7006f3282 100644 --- a/include/configs/microblaze-generic.h +++ b/include/configs/microblaze-generic.h @@ -292,10 +292,7 @@ #endif /* for booting directly linux */ -#define CONFIG_SPL_OS_BOOT -#define CONFIG_SYS_OS_BASE (CONFIG_SYS_FLASH_BASE + \ - 0x60000) #define CONFIG_SYS_FDT_BASE (CONFIG_SYS_FLASH_BASE + \ 0x40000) #define CONFIG_SYS_FDT_SIZE (16<<10) diff --git a/include/configs/omap3_zoom1.h b/include/configs/omap3_zoom1.h index 4dcd5de2bc9..0f28278fc22 100644 --- a/include/configs/omap3_zoom1.h +++ b/include/configs/omap3_zoom1.h @@ -26,7 +26,6 @@ /* Remove SPL boot option - we do not support that on LDP yet */ #undef CONFIG_SPL_FRAMEWORK -#undef CONFIG_SPL_OS_BOOT /* Generic NAND definition conflicts with debug_base */ #undef CONFIG_SYS_NAND_BASE diff --git a/include/configs/pdm360ng.h b/include/configs/pdm360ng.h index 3c86b25267a..2e72889b477 100644 --- a/include/configs/pdm360ng.h +++ b/include/configs/pdm360ng.h @@ -249,14 +249,6 @@ "f8000000.flash:-(unused);" \ "MPC5121 NAND:1024m(extended-userfs)" -/* - * Override partitions in device tree using info - * in "mtdparts" environment variable - */ -#ifdef CONFIG_CMD_MTDPARTS -#define CONFIG_FDT_FIXUP_PARTITIONS -#endif - #define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE /* Start of monitor */ #define CONFIG_SYS_MONITOR_LEN (512 * 1024) /* 512 kB for monitor */ #ifdef CONFIG_FSL_DIU_FB diff --git a/include/configs/pepper.h b/include/configs/pepper.h index 921d33124db..e99188fc43e 100644 --- a/include/configs/pepper.h +++ b/include/configs/pepper.h @@ -11,7 +11,6 @@ #include <configs/ti_am335x_common.h> #undef CONFIG_BOARD_LATE_INIT -#undef CONFIG_SPL_OS_BOOT /* Clock defines */ #define V_OSCK 24000000 /* Clock output from T2 */ diff --git a/include/configs/smartweb.h b/include/configs/smartweb.h index 0302740cea3..df5fe2163f0 100644 --- a/include/configs/smartweb.h +++ b/include/configs/smartweb.h @@ -275,6 +275,5 @@ #define CONFIG_SYS_THUMB_BUILD #define CONFIG_SYS_ICACHE_OFF #define CONFIG_SYS_DCACHE_OFF -#undef CONFIG_SPL_OS_BOOT /* Not supported by existing map */ #endif #endif /* __CONFIG_H */ diff --git a/include/configs/taurus.h b/include/configs/taurus.h index 3a762e363fd..ab457da2a00 100644 --- a/include/configs/taurus.h +++ b/include/configs/taurus.h @@ -139,7 +139,6 @@ #if defined(CONFIG_SPL_BUILD) /* SPL related */ -#undef CONFIG_SPL_OS_BOOT /* Not supported by existing map */ #define CONFIG_SPL_SPI_LOAD #define CONFIG_SYS_SPI_U_BOOT_OFFS 0x20000 diff --git a/include/configs/ti_armv7_common.h b/include/configs/ti_armv7_common.h index f5602b8c3ee..f31d5d36870 100644 --- a/include/configs/ti_armv7_common.h +++ b/include/configs/ti_armv7_common.h @@ -205,9 +205,6 @@ * We also support Falcon Mode so that the Linux kernel can be booted * directly from SPL. This is not currently available on HS devices. */ -#if !defined(CONFIG_TI_SECURE_DEVICE) -#define CONFIG_SPL_OS_BOOT -#endif /* * Place the image at the start of the ROM defined image space (per diff --git a/include/configs/ti_armv7_keystone2.h b/include/configs/ti_armv7_keystone2.h index 66d85be7223..7e365aa6c60 100644 --- a/include/configs/ti_armv7_keystone2.h +++ b/include/configs/ti_armv7_keystone2.h @@ -301,7 +301,6 @@ #include <configs/ti_armv7_common.h> /* We wont be loading up OS from SPL for now.. */ -#undef CONFIG_SPL_OS_BOOT /* We do not have MMC support.. yet.. */ #undef CONFIG_MMC diff --git a/include/configs/twister.h b/include/configs/twister.h index 66f4680b7e1..fd117b8260c 100644 --- a/include/configs/twister.h +++ b/include/configs/twister.h @@ -42,7 +42,6 @@ #define CONFIG_SYS_NAND_SPL_KERNEL_OFFS 0x00200000 #define CONFIG_CMD_SPL_NAND_OFS (CONFIG_SYS_NAND_SPL_KERNEL_OFFS+\ 0x600000) -#define CONFIG_SPL_OS_BOOT #define CONFIG_SYS_SPL_ARGS_ADDR (PHYS_SDRAM_1 + 0x100) #define CONFIG_SPL_BOARD_INIT diff --git a/include/configs/xilinx_zynqmp.h b/include/configs/xilinx_zynqmp.h index adc42cff125..cbdef6eafd0 100644 --- a/include/configs/xilinx_zynqmp.h +++ b/include/configs/xilinx_zynqmp.h @@ -268,7 +268,6 @@ #define CONFIG_SPL_BOARD_INIT #define CONFIG_SPL_RAM_DEVICE -#define CONFIG_SPL_OS_BOOT /* u-boot is like dtb */ #define CONFIG_SPL_FS_LOAD_ARGS_NAME "u-boot.bin" #define CONFIG_SYS_SPL_ARGS_ADDR 0x8000000 diff --git a/include/configs/zynq-common.h b/include/configs/zynq-common.h index 0118fd24624..4f0253cd7d4 100644 --- a/include/configs/zynq-common.h +++ b/include/configs/zynq-common.h @@ -330,7 +330,6 @@ #endif /* for booting directly linux */ -#define CONFIG_SPL_OS_BOOT /* SP location before relocation, must use scratch RAM */ #define CONFIG_SPL_TEXT_BASE 0x0 diff --git a/include/fdt_support.h b/include/fdt_support.h index 8f402310f6b..506bc5a9f69 100644 --- a/include/fdt_support.h +++ b/include/fdt_support.h @@ -167,7 +167,15 @@ void ft_pci_setup(void *blob, bd_t *bd); int ft_system_setup(void *blob, bd_t *bd); void set_working_fdt_addr(ulong addr); -int fdt_shrink_to_minimum(void *blob); + +/** + * shrink down the given blob to minimum size + some extrasize if required + * + * @param blob FDT blob to update + * @param extrasize additional bytes needed + * @return 0 if ok, or -FDT_ERR_... on error + */ +int fdt_shrink_to_minimum(void *blob, uint extrasize); int fdt_increase_size(void *fdt, int add_len); int fdt_fixup_nor_flash_size(void *blob); diff --git a/include/libfdt.h b/include/libfdt.h index b6a400a7a82..8746790a253 100644 --- a/include/libfdt.h +++ b/include/libfdt.h @@ -61,7 +61,7 @@ #define FDT_ERR_NOTFOUND 1 /* FDT_ERR_NOTFOUND: The requested node or property does not exist */ #define FDT_ERR_EXISTS 2 - /* FDT_ERR_EXISTS: Attemped to create a node or property which + /* FDT_ERR_EXISTS: Attempted to create a node or property which * already exists */ #define FDT_ERR_NOSPACE 3 /* FDT_ERR_NOSPACE: Operation needed to expand the device @@ -121,12 +121,17 @@ /* FDT_ERR_BADNCELLS: Device tree has a #address-cells, #size-cells * or similar property with a bad format or value */ -#define FDT_ERR_TOODEEP 15 +#define FDT_ERR_BADVALUE 15 + /* FDT_ERR_BADVALUE: Device tree has a property with an unexpected + * value. For example: a property expected to contain a string list + * is not NUL-terminated within the length of its value. */ + +#define FDT_ERR_TOODEEP 16 /* FDT_ERR_TOODEEP: The depth of a node has exceeded the internal * libfdt limit. This can happen if you have more than * FDT_MAX_DEPTH nested nodes. */ -#define FDT_ERR_MAX 15 +#define FDT_ERR_MAX 16 /**********************************************************************/ /* Low-level functions (you probably don't need these) */ @@ -171,24 +176,27 @@ int fdt_next_subnode(const void *fdt, int offset); /** * fdt_for_each_subnode - iterate over all subnodes of a parent * + * @node: child node (int, lvalue) + * @fdt: FDT blob (const void *) + * @parent: parent node (int) + * * This is actually a wrapper around a for loop and would be used like so: * - * fdt_for_each_subnode(fdt, node, parent) { - * ... - * use node + * fdt_for_each_subnode(node, fdt, parent) { + * Use node * ... * } * - * Note that this is implemented as a macro and node is used as iterator in - * the loop. It should therefore be a locally allocated variable. The parent - * variable on the other hand is never modified, so it can be constant or - * even a literal. + * if ((node < 0) && (node != -FDT_ERR_NOT_FOUND)) { + * Error handling + * } + * + * Note that this is implemented as a macro and @node is used as + * iterator in the loop. The parent variable be constant or even a + * literal. * - * @fdt: FDT blob (const void *) - * @node: child node (int) - * @parent: parent node (int) */ -#define fdt_for_each_subnode(fdt, node, parent) \ +#define fdt_for_each_subnode(node, fdt, parent) \ for (node = fdt_first_subnode(fdt, parent); \ node >= 0; \ node = fdt_next_subnode(fdt, node)) @@ -213,7 +221,7 @@ int fdt_next_subnode(const void *fdt, int offset); #define __fdt_set_hdr(name) \ static inline void fdt_set_##name(void *fdt, uint32_t val) \ { \ - struct fdt_header *fdth = (struct fdt_header*)fdt; \ + struct fdt_header *fdth = (struct fdt_header *)fdt; \ fdth->name = cpu_to_fdt32(val); \ } __fdt_set_hdr(magic); @@ -288,11 +296,13 @@ const char *fdt_string(const void *fdt, int stroffset); * @fdt: pointer to the device tree blob * * fdt_get_max_phandle retrieves the highest phandle in the given - * device tree + * device tree. This will ignore badly formatted phandles, or phandles + * with a value of 0 or -1. * * returns: * the highest phandle on success - * 0, if an error occurred + * 0, if no phandle was found in the device tree + * -1, if an error occurred */ uint32_t fdt_get_max_phandle(const void *fdt); @@ -356,8 +366,9 @@ int fdt_subnode_offset_namelen(const void *fdt, int parentoffset, * returns: * structure block offset of the requested subnode (>=0), on success * -FDT_ERR_NOTFOUND, if the requested subnode does not exist - * -FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE tag - * -FDT_ERR_BADMAGIC, + * -FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE + * tag + * -FDT_ERR_BADMAGIC, * -FDT_ERR_BADVERSION, * -FDT_ERR_BADSTATE, * -FDT_ERR_BADSTRUCTURE, @@ -366,13 +377,13 @@ int fdt_subnode_offset_namelen(const void *fdt, int parentoffset, int fdt_subnode_offset(const void *fdt, int parentoffset, const char *name); /** - * fdt_path_offset_namelen - find a tree node based on substring + * fdt_path_offset_namelen - find a tree node by its full path * @fdt: pointer to the device tree blob * @path: full path of the node to locate - * @namelen: number of characters of name to consider + * @namelen: number of characters of path to consider * - * Identical to fdt_path_offset(), but only examine the first - * namelen characters of path for matching the node path. + * Identical to fdt_path_offset(), but only consider the first namelen + * characters of path as the path name. */ int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen); @@ -389,7 +400,8 @@ int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen); * address). * * returns: - * structure block offset of the node with the requested path (>=0), on success + * structure block offset of the node with the requested path (>=0), on + * success * -FDT_ERR_BADPATH, given path does not begin with '/' or is invalid * -FDT_ERR_NOTFOUND, if the requested node does not exist * -FDT_ERR_BADMAGIC, @@ -398,10 +410,7 @@ int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen); * -FDT_ERR_BADSTRUCTURE, * -FDT_ERR_TRUNCATED, standard meanings. */ -static inline int fdt_path_offset(const void *fdt, const char *path) -{ - return fdt_path_offset_namelen(fdt, path, strlen(path)); -} +int fdt_path_offset(const void *fdt, const char *path); /** * fdt_get_name - retrieve the name of a given node @@ -416,10 +425,12 @@ static inline int fdt_path_offset(const void *fdt, const char *path) * * returns: * pointer to the node's name, on success - * If lenp is non-NULL, *lenp contains the length of that name (>=0) + * If lenp is non-NULL, *lenp contains the length of that name + * (>=0) * NULL, on error * if lenp is non-NULL *lenp contains an error code (<0): - * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag + * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE + * tag * -FDT_ERR_BADMAGIC, * -FDT_ERR_BADVERSION, * -FDT_ERR_BADSTATE, standard meanings @@ -468,23 +479,26 @@ int fdt_first_property_offset(const void *fdt, int nodeoffset); int fdt_next_property_offset(const void *fdt, int offset); /** - * fdt_for_each_property - iterate over all properties of a node - * @property_offset: property offset (int) + * fdt_for_each_property_offset - iterate over all properties of a node + * + * @property_offset: property offset (int, lvalue) * @fdt: FDT blob (const void *) * @node: node offset (int) * * This is actually a wrapper around a for loop and would be used like so: * - * fdt_for_each_property(fdt, node, property) { - * ... - * use property + * fdt_for_each_property_offset(property, fdt, node) { + * Use property * ... * } * + * if ((property < 0) && (property != -FDT_ERR_NOT_FOUND)) { + * Error handling + * } + * * Note that this is implemented as a macro and property is used as - * iterator in the loop. It should therefore be a locally allocated - * variable. The node variable on the other hand is never modified, so - * it can be constant or even a literal. + * iterator in the loop. The node variable can be constant or even a + * literal. */ #define fdt_for_each_property_offset(property, fdt, node) \ for (property = fdt_first_property_offset(fdt, node); \ @@ -527,8 +541,8 @@ const struct fdt_property *fdt_get_property_by_offset(const void *fdt, * @namelen: number of characters of name to consider * @lenp: pointer to an integer variable (will be overwritten) or NULL * - * Identical to fdt_get_property_namelen(), but only examine the first - * namelen characters of name for matching the property name. + * Identical to fdt_get_property(), but only examine the first namelen + * characters of name for matching the property name. */ const struct fdt_property *fdt_get_property_namelen(const void *fdt, int nodeoffset, @@ -555,7 +569,8 @@ const struct fdt_property *fdt_get_property_namelen(const void *fdt, * NULL, on error * if lenp is non-NULL, *lenp contains an error code (<0): * -FDT_ERR_NOTFOUND, node does not have named property - * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag + * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE + * tag * -FDT_ERR_BADMAGIC, * -FDT_ERR_BADVERSION, * -FDT_ERR_BADSTATE, @@ -647,7 +662,8 @@ static inline void *fdt_getprop_namelen_w(void *fdt, int nodeoffset, * NULL, on error * if lenp is non-NULL, *lenp contains an error code (<0): * -FDT_ERR_NOTFOUND, node does not have named property - * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE tag + * -FDT_ERR_BADOFFSET, nodeoffset did not point to FDT_BEGIN_NODE + * tag * -FDT_ERR_BADMAGIC, * -FDT_ERR_BADVERSION, * -FDT_ERR_BADSTATE, @@ -689,7 +705,7 @@ const char *fdt_get_alias_namelen(const void *fdt, const char *name, int namelen); /** - * fdt_get_alias - retreive the path referenced by a given alias + * fdt_get_alias - retrieve the path referenced by a given alias * @fdt: pointer to the device tree blob * @name: name of the alias th look up * @@ -749,11 +765,11 @@ int fdt_get_path(const void *fdt, int nodeoffset, char *buf, int buflen); * structure from the start to nodeoffset. * * returns: - * structure block offset of the node at node offset's ancestor * of depth supernodedepth (>=0), on success * -FDT_ERR_BADOFFSET, nodeoffset does not refer to a BEGIN_NODE tag -* -FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of nodeoffset + * -FDT_ERR_NOTFOUND, supernodedepth was greater than the depth of + * nodeoffset * -FDT_ERR_BADMAGIC, * -FDT_ERR_BADVERSION, * -FDT_ERR_BADSTATE, @@ -946,51 +962,66 @@ int fdt_node_offset_by_compatible(const void *fdt, int startoffset, int fdt_stringlist_contains(const char *strlist, int listlen, const char *str); /** - * fdt_count_strings - count the number of strings in a string list + * fdt_stringlist_count - count the number of strings in a string list * @fdt: pointer to the device tree blob - * @node: offset of the node + * @nodeoffset: offset of a tree node * @property: name of the property containing the string list - * @return: the number of strings in the given property + * @return: + * the number of strings in the given property + * -FDT_ERR_BADVALUE if the property value is not NUL-terminated + * -FDT_ERR_NOTFOUND if the property does not exist */ -int fdt_count_strings(const void *fdt, int node, const char *property); +int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property); /** - * fdt_find_string - find a string in a string list and return its index + * fdt_stringlist_search - find a string in a string list and return its index * @fdt: pointer to the device tree blob - * @node: offset of the node + * @nodeoffset: offset of a tree node * @property: name of the property containing the string list * @string: string to look up in the string list - * @return: the index of the string or negative on error + * + * Note that it is possible for this function to succeed on property values + * that are not NUL-terminated. That's because the function will stop after + * finding the first occurrence of @string. This can for example happen with + * small-valued cell properties, such as #address-cells, when searching for + * the empty string. + * + * @return: + * the index of the string in the list of strings + * -FDT_ERR_BADVALUE if the property value is not NUL-terminated + * -FDT_ERR_NOTFOUND if the property does not exist or does not contain + * the given string */ -int fdt_find_string(const void *fdt, int node, const char *property, - const char *string); +int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property, + const char *string); /** - * fdt_get_string_index() - obtain the string at a given index in a string list + * fdt_stringlist_get() - obtain the string at a given index in a string list * @fdt: pointer to the device tree blob - * @node: offset of the node + * @nodeoffset: offset of a tree node * @property: name of the property containing the string list * @index: index of the string to return - * @output: return location for the string - * @return: 0 if the string was found or a negative error code otherwise - */ -int fdt_get_string_index(const void *fdt, int node, const char *property, - int index, const char **output); - -/** - * fdt_get_string() - obtain the first string in a string list - * @fdt: pointer to the device tree blob - * @node: offset of the node - * @property: name of the property containing the string list - * @output: return location for the string - * @return: 0 if the string was found or a negative error code otherwise + * @lenp: return location for the string length or an error code on failure + * + * Note that this will successfully extract strings from properties with + * non-NUL-terminated values. For example on small-valued cell properties + * this function will return the empty string. * - * This is a shortcut for: + * If non-NULL, the length of the string (on success) or a negative error-code + * (on failure) will be stored in the integer pointer to by lenp. * - * fdt_get_string_index(fdt, node, property, 0, output). + * @return: + * A pointer to the string at the given index in the string list or NULL on + * failure. On success the length of the string will be stored in the memory + * location pointed to by the lenp parameter, if non-NULL. On failure one of + * the following negative error codes will be returned in the lenp parameter + * (if non-NULL): + * -FDT_ERR_BADVALUE if the property value is not NUL-terminated + * -FDT_ERR_NOTFOUND if the property does not exist */ -int fdt_get_string(const void *fdt, int node, const char *property, - const char **output); +const char *fdt_stringlist_get(const void *fdt, int nodeoffset, + const char *property, int index, + int *lenp); /**********************************************************************/ /* Read-only functions (addressing related) */ @@ -1060,7 +1091,7 @@ int fdt_size_cells(const void *fdt, int nodeoffset); * @nodeoffset: offset of the node whose property to change * @name: name of the property to change * @namelen: number of characters of name to consider - * @index: index of the property to change in the array + * @idx: index of the property to change in the array * @val: pointer to data to replace the property value with * @len: length of the property value * @@ -1071,7 +1102,7 @@ int fdt_size_cells(const void *fdt, int nodeoffset); */ int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset, const char *name, int namelen, - uint32_t index, const void *val, + uint32_t idx, const void *val, int len); /** @@ -1700,9 +1731,11 @@ int fdt_add_subnode_namelen(void *fdt, int parentoffset, * change the offsets of some existing nodes. * returns: - * structure block offset of the created nodeequested subnode (>=0), on success + * structure block offset of the created nodeequested subnode (>=0), on + * success * -FDT_ERR_NOTFOUND, if the requested subnode does not exist - * -FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE tag + * -FDT_ERR_BADOFFSET, if parentoffset did not point to an FDT_BEGIN_NODE + * tag * -FDT_ERR_EXISTS, if the node at parentoffset already has a subnode of * the given name * -FDT_ERR_NOSPACE, if there is insufficient free space in the diff --git a/lib/Kconfig b/lib/Kconfig index 16ff01a2cd3..0e0d8efd33f 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -154,6 +154,15 @@ config SPL_OF_LIBFDT particular compatible nodes. The library operates on a flattened version of the device tree. +config FDT_FIXUP_PARTITIONS + bool "overwrite MTD partitions in DTS through defined in 'mtdparts'" + depends on OF_LIBFDT + default n + help + Allow overwriting defined partitions in the device tree blob + using partition info defined in the 'mtdparts' environment + variable. + source lib/efi/Kconfig source lib/efi_loader/Kconfig diff --git a/lib/fdtdec.c b/lib/fdtdec.c index 4defb902b87..4e619c49a2f 100644 --- a/lib/fdtdec.c +++ b/lib/fdtdec.c @@ -836,7 +836,7 @@ int fdtdec_get_child_count(const void *blob, int node) int subnode; int num = 0; - fdt_for_each_subnode(blob, subnode, node) + fdt_for_each_subnode(subnode, blob, node) num++; return num; @@ -1014,7 +1014,7 @@ int fdt_get_named_resource(const void *fdt, int node, const char *property, { int index; - index = fdt_find_string(fdt, node, prop_names, name); + index = fdt_stringlist_search(fdt, node, prop_names, name); if (index < 0) return index; diff --git a/lib/libfdt/fdt.c b/lib/libfdt/fdt.c index 96017a15a27..2055734012a 100644 --- a/lib/libfdt/fdt.c +++ b/lib/libfdt/fdt.c @@ -35,18 +35,19 @@ int fdt_check_header(const void *fdt) const void *fdt_offset_ptr(const void *fdt, int offset, unsigned int len) { - const char *p; + unsigned absoffset = offset + fdt_off_dt_struct(fdt); + + if ((absoffset < offset) + || ((absoffset + len) < absoffset) + || (absoffset + len) > fdt_totalsize(fdt)) + return NULL; if (fdt_version(fdt) >= 0x11) if (((offset + len) < offset) || ((offset + len) > fdt_size_dt_struct(fdt))) return NULL; - p = _fdt_offset_ptr(fdt, offset); - - if (p + len < p) - return NULL; - return p; + return _fdt_offset_ptr(fdt, offset); } uint32_t fdt_next_tag(const void *fdt, int startoffset, int *nextoffset) diff --git a/lib/libfdt/fdt_overlay.c b/lib/libfdt/fdt_overlay.c index 40b6d274558..d35ceacbf00 100644 --- a/lib/libfdt/fdt_overlay.c +++ b/lib/libfdt/fdt_overlay.c @@ -146,7 +146,7 @@ static int overlay_adjust_node_phandles(void *fdto, int node, if (!found && !ret) return ret; - fdt_for_each_subnode(fdto, child, node) + fdt_for_each_subnode(child, fdto, node) overlay_adjust_node_phandles(fdto, child, delta); return 0; @@ -248,7 +248,7 @@ static int overlay_update_local_node_references(void *fdto, } } - fdt_for_each_subnode(fdto, fixup_child, fixup_node) { + fdt_for_each_subnode(fixup_child, fdto, fixup_node) { const char *fixup_child_name = fdt_get_name(fdto, fixup_child, NULL); int tree_child; @@ -511,7 +511,7 @@ static int overlay_apply_node(void *fdt, int target, return ret; } - fdt_for_each_subnode(fdto, node, fragment) { + fdt_for_each_subnode(node, fdto, fragment) { const char *name = fdt_get_name(fdto, node, NULL); int nnode; int ret; @@ -550,7 +550,7 @@ static int overlay_merge(void *dt, void *dto) { int fragment; - fdt_for_each_subnode(dto, fragment, 0) { + fdt_for_each_subnode(fragment, dto, 0) { int overlay; int target; int ret; diff --git a/lib/libfdt/fdt_ro.c b/lib/libfdt/fdt_ro.c index 9cc98db6e2b..7e894b742b4 100644 --- a/lib/libfdt/fdt_ro.c +++ b/lib/libfdt/fdt_ro.c @@ -60,11 +60,11 @@ uint32_t fdt_get_max_phandle(const void *fdt) return max_phandle; if (offset < 0) - return 0; + return (uint32_t)-1; phandle = fdt_get_phandle(fdt, offset); if (phandle == (uint32_t)-1) - return 0; + continue; if (phandle > max_phandle) max_phandle = phandle; @@ -204,6 +204,11 @@ int fdt_path_offset_namelen(const void *fdt, const char *path, int namelen) return offset; } +int fdt_path_offset(const void *fdt, const char *path) +{ + return fdt_path_offset_namelen(fdt, path, strlen(path)); +} + const char *fdt_get_name(const void *fdt, int nodeoffset, int *len) { const struct fdt_node_header *nh = _fdt_offset_ptr(fdt, nodeoffset); @@ -538,80 +543,104 @@ int fdt_stringlist_contains(const char *strlist, int listlen, const char *str) return 0; } -int fdt_count_strings(const void *fdt, int node, const char *property) +int fdt_stringlist_count(const void *fdt, int nodeoffset, const char *property) { - int length, i, count = 0; - const char *list; + const char *list, *end; + int length, count = 0; - list = fdt_getprop(fdt, node, property, &length); + list = fdt_getprop(fdt, nodeoffset, property, &length); if (!list) - return length; + return -length; + + end = list + length; + + while (list < end) { + length = strnlen(list, end - list) + 1; - for (i = 0; i < length; i++) { - int len = strlen(list); + /* Abort if the last string isn't properly NUL-terminated. */ + if (list + length > end) + return -FDT_ERR_BADVALUE; - list += len + 1; - i += len; + list += length; count++; } return count; } -int fdt_find_string(const void *fdt, int node, const char *property, - const char *string) +int fdt_stringlist_search(const void *fdt, int nodeoffset, const char *property, + const char *string) { + int length, len, idx = 0; const char *list, *end; - int len, index = 0; - list = fdt_getprop(fdt, node, property, &len); + list = fdt_getprop(fdt, nodeoffset, property, &length); if (!list) - return len; + return -length; - end = list + len; - len = strlen(string); + len = strlen(string) + 1; + end = list + length; while (list < end) { - int l = strlen(list); + length = strnlen(list, end - list) + 1; - if (l == len && memcmp(list, string, len) == 0) - return index; + /* Abort if the last string isn't properly NUL-terminated. */ + if (list + length > end) + return -FDT_ERR_BADVALUE; - list += l + 1; - index++; + if (length == len && memcmp(list, string, length) == 0) + return idx; + + list += length; + idx++; } return -FDT_ERR_NOTFOUND; } -int fdt_get_string_index(const void *fdt, int node, const char *property, - int index, const char **output) +const char *fdt_stringlist_get(const void *fdt, int nodeoffset, + const char *property, int idx, + int *lenp) { - const char *list; - int length, i; + const char *list, *end; + int length; - list = fdt_getprop(fdt, node, property, &length); + list = fdt_getprop(fdt, nodeoffset, property, &length); + if (!list) { + if (lenp) + *lenp = length; - for (i = 0; i < length; i++) { - int len = strlen(list); + return NULL; + } - if (index == 0) { - *output = list; - return 0; + end = list + length; + + while (list < end) { + length = strnlen(list, end - list) + 1; + + /* Abort if the last string isn't properly NUL-terminated. */ + if (list + length > end) { + if (lenp) + *lenp = -FDT_ERR_BADVALUE; + + return NULL; } - list += len + 1; - i += len; - index--; + if (idx == 0) { + if (lenp) + *lenp = length - 1; + + return list; + } + + list += length; + idx--; } - return -FDT_ERR_NOTFOUND; -} + if (lenp) + *lenp = -FDT_ERR_NOTFOUND; -int fdt_get_string(const void *fdt, int node, const char *property, - const char **output) -{ - return fdt_get_string_index(fdt, node, property, 0, output); + return NULL; } int fdt_node_check_compatible(const void *fdt, int nodeoffset, @@ -623,10 +652,8 @@ int fdt_node_check_compatible(const void *fdt, int nodeoffset, prop = fdt_getprop(fdt, nodeoffset, "compatible", &len); if (!prop) return len; - if (fdt_stringlist_contains(prop, len, compatible)) - return 0; - else - return 1; + + return !fdt_stringlist_contains(prop, len, compatible); } int fdt_node_offset_by_compatible(const void *fdt, int startoffset, diff --git a/lib/libfdt/fdt_rw.c b/lib/libfdt/fdt_rw.c index 47447b2bce8..87d4030fb14 100644 --- a/lib/libfdt/fdt_rw.c +++ b/lib/libfdt/fdt_rw.c @@ -60,6 +60,8 @@ static int _fdt_splice(void *fdt, void *splicepoint, int oldlen, int newlen) if (((p + oldlen) < p) || ((p + oldlen) > end)) return -FDT_ERR_BADOFFSET; + if ((p < (char *)fdt) || ((end - oldlen + newlen) < (char *)fdt)) + return -FDT_ERR_BADOFFSET; if ((end - oldlen + newlen) > ((char *)fdt + fdt_totalsize(fdt))) return -FDT_ERR_NOSPACE; memmove(p + newlen, p + oldlen, end - p - oldlen); @@ -164,7 +166,7 @@ static int _fdt_resize_property(void *fdt, int nodeoffset, const char *name, int err; *prop = fdt_get_property_w(fdt, nodeoffset, name, &oldlen); - if (!(*prop)) + if (!*prop) return oldlen; if ((err = _fdt_splice_struct(fdt, (*prop)->data, FDT_TAGALIGN(oldlen), diff --git a/lib/libfdt/fdt_wip.c b/lib/libfdt/fdt_wip.c index 216c51287d0..45fb9641206 100644 --- a/lib/libfdt/fdt_wip.c +++ b/lib/libfdt/fdt_wip.c @@ -16,7 +16,7 @@ int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset, const char *name, int namelen, - uint32_t index, const void *val, + uint32_t idx, const void *val, int len) { void *propval; @@ -27,10 +27,10 @@ int fdt_setprop_inplace_namelen_partial(void *fdt, int nodeoffset, if (!propval) return proplen; - if (proplen < (len + index)) + if (proplen < (len + idx)) return -FDT_ERR_NOSPACE; - memcpy(propval + index, val, len); + memcpy((char *)propval + idx, val, len); return 0; } diff --git a/test/overlay/cmd_ut_overlay.c b/test/overlay/cmd_ut_overlay.c index 87dc9328c67..cbef720b4c0 100644 --- a/test/overlay/cmd_ut_overlay.c +++ b/test/overlay/cmd_ut_overlay.c @@ -52,12 +52,15 @@ static int fdt_getprop_str(void *fdt, const char *path, const char *name, const char **out) { int node_off; + int len; node_off = fdt_path_offset(fdt, path); if (node_off < 0) return node_off; - return fdt_get_string(fdt, node_off, name, out); + *out = fdt_stringlist_get(fdt, node_off, name, 0, &len); + + return len < 0 ? len : 0; } static int fdt_overlay_change_int_property(struct unit_test_state *uts) diff --git a/test/py/tests/test_sleep.py b/test/py/tests/test_sleep.py index 5c1a2623fef..b59a4cfc0fc 100644 --- a/test/py/tests/test_sleep.py +++ b/test/py/tests/test_sleep.py @@ -9,6 +9,8 @@ def test_sleep(u_boot_console): """Test the sleep command, and validate that it sleeps for approximately the correct amount of time.""" + if u_boot_console.config.buildconfig.get('config_cmd_misc', 'n') != 'y': + pytest.skip('sleep command not supported') # 3s isn't too long, but is enough to cross a few second boundaries. sleep_time = 3 tstart = time.time() |