From: Tom Rini Date: Wed, 10 Apr 2024 23:06:27 +0000 (-0600) Subject: Merge patch series "pxe: Allow extlinux booting without CMDLINE enabled" X-Git-Url: http://git.dujemihanovic.xyz/img/static/%7B%7B%20%28.OutputFormats.Get?a=commitdiff_plain;h=777c28460947371ada40868dc994dfe8537d7115;p=u-boot.git Merge patch series "pxe: Allow extlinux booting without CMDLINE enabled" Simon Glass says: This series is the culmanation of the current line of refactoring series. It adjusts pxe to call the booting functionality directly rather than going through the command-line interface. With this is is possible to boot using the extlinux bootmeth without the command line enabled. It also updates fastboot to do a similar thing. --- 777c28460947371ada40868dc994dfe8537d7115 diff --cc boot/Kconfig index d9a6c27005,d83047acbd..777e408e24 --- a/boot/Kconfig +++ b/boot/Kconfig @@@ -721,6 -677,85 +688,100 @@@ config BOOTMETH_SCRIP endif # BOOTSTD + config BOOTM + bool "Support booting an application image from memory" + default y + help + This is the main boot implementation in U-Boot, supporting a wide + variety of features including FIT and legacy-image boot, kernel and + FDT selection, setting up of the command line for the OS and many + other features. + + This option should normally be enabled. It is used to implement the + 'bootm' command. + + config BOOTM_LINUX + bool "Support booting Linux OS images" + depends on BOOTM || CMD_BOOTZ || CMD_BOOTI + default y + help + Support booting the Linux kernel directly via a command such as bootm + or booti or bootz. + + config BOOTM_NETBSD + bool "Support booting NetBSD (non-EFI) loader images" + depends on BOOTM + default y + help + Support booting NetBSD via the bootm command. + + config BOOTM_OPENRTOS + bool "Support booting OPENRTOS / FreeRTOS images" + depends on BOOTM + help + Support booting OPENRTOS / FreeRTOS via the bootm command. + + config BOOTM_OSE + bool "Support booting Enea OSE images" + depends on (ARM && (ARM64 || CPU_V7A || CPU_V7R) || SANDBOX || PPC || X86) + depends on BOOTM + help + Support booting Enea OSE images via the bootm command. + + config BOOTM_PLAN9 + bool "Support booting Plan9 OS images" + depends on BOOTM + default y + help + Support booting Plan9 images via the bootm command. + + config BOOTM_RTEMS + bool "Support booting RTEMS OS images" + depends on BOOTM + default y + help + Support booting RTEMS images via the bootm command. + + config BOOTM_VXWORKS + bool "Support booting VxWorks OS images" + depends on BOOTM + default y + help + Support booting VxWorks images via the bootm command. + + config ANDROID_BOOT_IMAGE + bool "Android Boot Images" + default y if FASTBOOT + help + This enables support for booting images which use the Android + image format header. + + config TIMESTAMP + bool "Show image date and time when displaying image information" + default y if CMD_DATE + help + When CONFIG_TIMESTAMP is selected, the timestamp (date and time) of + an image is printed by image commands like bootm or iminfo. This + is shown as 'Timestamp: xxx' and 'Created: xxx'. If this option is + enabled, then U-Boot requires FITs to have a timestamp. If a FIT is + loaded that does not, the message 'Wrong FIT format: no timestamp' + is shown. + ++config BUTTON_CMD ++ bool "Support for running a command if a button is held during boot" ++ depends on CMDLINE ++ depends on BUTTON ++ help ++ For many embedded devices it's useful to enter a special flashing mode ++ such as fastboot mode when a button is held during boot. This option ++ allows arbitrary commands to be assigned to specific buttons. These will ++ be run after "preboot" if the button is held. Configuration is done via ++ the environment variables "button_cmd_N_name" and "button_cmd_N" where n is ++ the button number (starting from 0). e.g: ++ ++ "button_cmd_0_name=vol_down" ++ "button_cmd_0=fastboot usb 0" ++ config LEGACY_IMAGE_FORMAT bool "Enable support for the legacy image format" default y if !FIT_SIGNATURE && !TI_SECURE_DEVICE diff --cc boot/pxe_utils.c index 9620562675,5ceabfd04e..d5e1bead12 --- a/boot/pxe_utils.c +++ b/boot/pxe_utils.c @@@ -469,6 -470,198 +470,220 @@@ skip_overlay } #endif + /** + * calc_fdt_fname() - Figure out the filename to use for the FDT + * + * Determine the path to the FDT filename, based on the "fdtfile" environment + * variable. Use -.dtb as a fallback + * + * @fdtdir: Directory to use for the FDT file + * Return: allocated filename (including directory), or NULL if out of memory + */ + static char *calc_fdt_fname(const char *fdtdir) + { + char *fdtfile; + char *f1, *f2, *f3, *f4, *slash; + int len; + + f1 = env_get("fdtfile"); + if (f1) { + f2 = ""; + f3 = ""; + f4 = ""; + } else { + /* + * For complex cases where this code doesn't generate the + * correct filename, the board code should set $fdtfile during + * early boot, or the boot scripts should set $fdtfile before + * invoking "pxe" or "sysboot". + */ + f1 = env_get("soc"); + f2 = "-"; + f3 = env_get("board"); + f4 = ".dtb"; + if (!f1) { + f1 = ""; + f2 = ""; + } + if (!f3) { + f2 = ""; + f3 = ""; + } + } + + len = strlen(fdtdir); + if (!len) + slash = "./"; + else if (fdtdir[len - 1] != '/') + slash = "/"; + else + slash = ""; + + len = strlen(fdtdir) + strlen(slash) + strlen(f1) + strlen(f2) + + strlen(f3) + strlen(f4) + 1; + fdtfile = malloc(len); + if (!fdtfile) { + printf("malloc fail (FDT filename)\n"); + return NULL; + } + + snprintf(fdtfile, len, "%s%s%s%s%s%s", fdtdir, slash, f1, f2, f3, f4); + + return fdtfile; + } + + /** + * label_run_boot() - Run the correct boot procedure + * + * fdt usage is optional: + * It handles the following scenarios. + * + * Scenario 1: If fdt_addr_r specified and "fdt" or "fdtdir" label is + * defined in pxe file, retrieve fdt blob from server. Pass fdt_addr_r to + * bootm, and adjust argc appropriately. + * + * If retrieve fails and no exact fdt blob is specified in pxe file with + * "fdt" label, try Scenario 2. + * + * Scenario 2: If there is an fdt_addr specified, pass it along to + * bootm, and adjust argc appropriately. + * + * Scenario 3: If there is an fdtcontroladdr specified, pass it along to + * bootm, and adjust argc appropriately, unless the image type is fitImage. + * + * Scenario 4: fdt blob is not available. + * + * @ctx: PXE context + * @label: Label to process + * @kernel_addr: string containing the kernel address / config + * @initrd_str: string containing the initrd address / size + * @initrd_addr_str: initrd address, or NULL if none + * @initrd_filesize: initrd size in bytes; only valid if initrd_addr_str is not + * NULL + * Returns does not return on success, otherwise returns 0 if a localboot + * label was processed, or 1 on error + */ + static int label_run_boot(struct pxe_context *ctx, struct pxe_label *label, + char *kernel_addr, char *initrd_str, + char *initrd_addr_str, char *initrd_filesize) + { + struct bootm_info bmi; + const char *fdt_addr; + ulong kernel_addr_r; + void *buf; + int ret; + + if (IS_ENABLED(CONFIG_BOOTM)) + bootm_init(&bmi); + + fdt_addr = env_get("fdt_addr_r"); + + /* For FIT, the label can be identical to kernel one */ + if (label->fdt && !strcmp(label->kernel_label, label->fdt)) { + fdt_addr = kernel_addr; + /* if fdt label is defined then get fdt from server */ + } else if (fdt_addr) { + char *fdtfile = NULL; + char *fdtfilefree = NULL; + + if (label->fdt) { - fdtfile = label->fdt; ++ if (IS_ENABLED(CONFIG_SUPPORT_PASSING_ATAGS)) { ++ if (strcmp("-", label->fdt)) ++ fdtfile = label->fdt; ++ } else { ++ fdtfile = label->fdt; ++ } + } else if (label->fdtdir) { + fdtfilefree = calc_fdt_fname(label->fdtdir); + if (!fdtfilefree) + return -ENOMEM; + fdtfile = fdtfilefree; + } + + if (fdtfile) { + int err = get_relfile_envaddr(ctx, fdtfile, + "fdt_addr_r", NULL); + + free(fdtfilefree); + if (err < 0) { + fdt_addr = NULL; + + if (label->fdt) { + printf("Skipping %s for failure retrieving FDT\n", + label->name); + return -ENOENT; + } ++ ++ if (label->fdtdir) { ++ printf("Skipping fdtdir %s for failure retrieving dts\n", ++ label->fdtdir); ++ } + } + + if (label->kaslrseed) + label_boot_kaslrseed(); + + #ifdef CONFIG_OF_LIBFDT_OVERLAY + if (label->fdtoverlays) + label_boot_fdtoverlay(ctx, label); + #endif + } else { + fdt_addr = NULL; + } + } + - bmi.addr_fit = kernel_addr; ++ bmi.addr_img = kernel_addr; + + if (initrd_addr_str) + bmi.conf_ramdisk = initrd_str; + - if (!fdt_addr) - fdt_addr = env_get("fdt_addr"); ++ if (!fdt_addr) { ++ if (IS_ENABLED(CONFIG_SUPPORT_PASSING_ATAGS)) { ++ if (strcmp("-", label->fdt)) ++ fdt_addr = env_get("fdt_addr"); ++ } else { ++ fdt_addr = env_get("fdt_addr"); ++ } ++ } + + kernel_addr_r = genimg_get_kernel_addr(kernel_addr); + buf = map_sysmem(kernel_addr_r, 0); + - if (!fdt_addr && genimg_get_format(buf) != IMAGE_FORMAT_FIT) - fdt_addr = env_get("fdtcontroladdr"); ++ if (!fdt_addr && genimg_get_format(buf) != IMAGE_FORMAT_FIT) { ++ if (IS_ENABLED(CONFIG_SUPPORT_PASSING_ATAGS)) { ++ if (strcmp("-", label->fdt)) ++ fdt_addr = env_get("fdtcontroladdr"); ++ } else { ++ fdt_addr = env_get("fdtcontroladdr"); ++ } ++ } + + bmi.conf_fdt = fdt_addr; + + /* Try bootm for legacy and FIT format image */ + if (genimg_get_format(buf) != IMAGE_FORMAT_INVALID && + IS_ENABLED(CONFIG_BOOTM)) + ret = bootm_run(&bmi); + /* Try booting an AArch64 Linux kernel image */ + else if (IS_ENABLED(CONFIG_BOOTM)) + ret = booti_run(&bmi); + /* Try booting a Image */ + else if (IS_ENABLED(CONFIG_BOOTM)) + ret = bootz_run(&bmi); + /* Try booting an x86_64 Linux kernel image */ + else if (IS_ENABLED(CONFIG_ZBOOT)) + ret = zboot_run(hextoul(kernel_addr, NULL), 0, + initrd_addr_str ? + hextoul(initrd_addr_str, NULL) : 0, + initrd_addr_str ? + hextoul(initrd_filesize, NULL) : 0, + 0, NULL); + + unmap_sysmem(buf); + + return 0; + } + /** * label_boot() - Boot according to the contents of a pxe_label * diff --cc configs/colibri_vf_defconfig index a5e6bcb64c,48019f0fa0..0249dc3128 --- a/configs/colibri_vf_defconfig +++ b/configs/colibri_vf_defconfig @@@ -32,8 -32,8 +33,7 @@@ CONFIG_BOARD_EARLY_INIT_F= CONFIG_HUSH_PARSER=y # CONFIG_SYS_LONGHELP is not set CONFIG_SYS_PROMPT="Colibri VFxx # " -CONFIG_SYS_PBSIZE=1056 # CONFIG_CMD_BOOTD is not set - # CONFIG_CMD_BOOTM is not set CONFIG_CMD_BOOTZ=y # CONFIG_CMD_ELF is not set # CONFIG_CMD_IMI is not set diff --cc configs/iot_devkit_defconfig index c4920052f8,a09f3ed5f7..d02a28abfa --- a/configs/iot_devkit_defconfig +++ b/configs/iot_devkit_defconfig @@@ -14,12 -14,12 +14,12 @@@ CONFIG_DEFAULT_DEVICE_TREE="iot_devkit CONFIG_SYS_CLK_FREQ=16000000 CONFIG_SYS_LOAD_ADDR=0x30000000 CONFIG_LOCALVERSION="-iotdk-1.0" + # CONFIG_BOOTM is not set # CONFIG_ARCH_FIXUP_FDT_MEMORY is not set -CONFIG_SYS_PROMPT="IoTDK# " CONFIG_SYS_CBSIZE=256 CONFIG_SYS_PBSIZE=280 +CONFIG_SYS_PROMPT="IoTDK# " # CONFIG_CMD_BOOTD is not set - # CONFIG_CMD_BOOTM is not set # CONFIG_CMD_ELF is not set # CONFIG_CMD_XIMG is not set # CONFIG_CMD_LOADB is not set diff --cc configs/mx6memcal_defconfig index 7f11e6f5d4,6da7a0eaf0..6c5481cd6e --- a/configs/mx6memcal_defconfig +++ b/configs/mx6memcal_defconfig @@@ -14,14 -14,14 +14,14 @@@ CONFIG_SPL_SERIAL= CONFIG_SPL=y CONFIG_SYS_MEMTEST_START=0x10000000 CONFIG_SYS_MEMTEST_END=0x20000000 + # CONFIG_BOOTM is not set CONFIG_SUPPORT_RAW_INITRD=y +CONFIG_SYS_PBSIZE=528 CONFIG_SPL_SYS_MALLOC=y CONFIG_SPL_WATCHDOG=y CONFIG_HUSH_PARSER=y CONFIG_SYS_MAXARGS=32 -CONFIG_SYS_PBSIZE=528 # CONFIG_CMD_BOOTD is not set - # CONFIG_CMD_BOOTM is not set # CONFIG_CMD_ELF is not set # CONFIG_CMD_IMI is not set # CONFIG_CMD_XIMG is not set diff --cc configs/xilinx_versal_mini_defconfig index 9d3924cc9c,4844dcef99..143d262274 --- a/configs/xilinx_versal_mini_defconfig +++ b/configs/xilinx_versal_mini_defconfig @@@ -18,10 -18,9 +18,11 @@@ CONFIG_SYS_MEMTEST_START=0x0000000 CONFIG_SYS_MEMTEST_END=0x00001000 # CONFIG_EXPERT is not set CONFIG_REMAKE_ELF=y + # CONFIG_BOOTM is not set # CONFIG_LEGACY_IMAGE_FORMAT is not set # CONFIG_AUTOBOOT is not set +CONFIG_SYS_CBSIZE=1024 +CONFIG_SYS_PBSIZE=1049 CONFIG_SYS_CONSOLE_INFO_QUIET=y # CONFIG_DISPLAY_CPUINFO is not set CONFIG_BOARD_EARLY_INIT_R=y @@@ -31,9 -30,11 +32,8 @@@ CONFIG_CLOCKS= # CONFIG_AUTO_COMPLETE is not set # CONFIG_SYS_LONGHELP is not set CONFIG_SYS_PROMPT="Versal> " -CONFIG_SYS_MAXARGS=64 -CONFIG_SYS_CBSIZE=1024 -CONFIG_SYS_PBSIZE=1049 # CONFIG_CMD_CONSOLE is not set # CONFIG_CMD_BOOTD is not set - # CONFIG_CMD_BOOTM is not set # CONFIG_CMD_BOOTI is not set # CONFIG_CMD_ELF is not set # CONFIG_CMD_FDT is not set diff --cc configs/xilinx_versal_mini_emmc0_defconfig index 5c949e3444,335ed40427..b0e346208e --- a/configs/xilinx_versal_mini_emmc0_defconfig +++ b/configs/xilinx_versal_mini_emmc0_defconfig @@@ -15,9 -15,8 +15,10 @@@ CONFIG_DEFAULT_DEVICE_TREE="versal-mini CONFIG_SYS_LOAD_ADDR=0x8000000 # CONFIG_EXPERT is not set CONFIG_REMAKE_ELF=y + # CONFIG_BOOTM is not set # CONFIG_AUTOBOOT is not set +CONFIG_SYS_CBSIZE=1024 +CONFIG_SYS_PBSIZE=1049 CONFIG_SYS_CONSOLE_INFO_QUIET=y # CONFIG_DISPLAY_CPUINFO is not set CONFIG_BOARD_EARLY_INIT_R=y diff --cc configs/xilinx_versal_mini_emmc1_defconfig index 04cba5bc72,f64920052a..559b32c2a1 --- a/configs/xilinx_versal_mini_emmc1_defconfig +++ b/configs/xilinx_versal_mini_emmc1_defconfig @@@ -15,9 -15,8 +15,10 @@@ CONFIG_DEFAULT_DEVICE_TREE="versal-mini CONFIG_SYS_LOAD_ADDR=0x8000000 # CONFIG_EXPERT is not set CONFIG_REMAKE_ELF=y + # CONFIG_BOOTM is not set # CONFIG_AUTOBOOT is not set +CONFIG_SYS_CBSIZE=1024 +CONFIG_SYS_PBSIZE=1049 CONFIG_SYS_CONSOLE_INFO_QUIET=y # CONFIG_DISPLAY_CPUINFO is not set CONFIG_BOARD_EARLY_INIT_R=y diff --cc configs/xilinx_versal_mini_ospi_defconfig index 7a110350c2,f91431e9b7..c02c6ba40d --- a/configs/xilinx_versal_mini_ospi_defconfig +++ b/configs/xilinx_versal_mini_ospi_defconfig @@@ -16,9 -16,9 +16,10 @@@ CONFIG_SYS_MEM_RSVD_FOR_MMU= CONFIG_VERSAL_NO_DDR=y # CONFIG_PSCI_RESET is not set CONFIG_SYS_LOAD_ADDR=0x8000000 +CONFIG_LTO=y # CONFIG_EXPERT is not set CONFIG_REMAKE_ELF=y + # CONFIG_BOOTM is not set # CONFIG_AUTOBOOT is not set CONFIG_SYS_CONSOLE_INFO_QUIET=y # CONFIG_DISPLAY_CPUINFO is not set diff --cc configs/xilinx_versal_mini_qspi_defconfig index 58945a1cac,7faab7aad4..4d4b59a22f --- a/configs/xilinx_versal_mini_qspi_defconfig +++ b/configs/xilinx_versal_mini_qspi_defconfig @@@ -14,9 -14,9 +14,10 @@@ CONFIG_SYS_MEM_RSVD_FOR_MMU= CONFIG_VERSAL_NO_DDR=y # CONFIG_PSCI_RESET is not set CONFIG_SYS_LOAD_ADDR=0x8000000 +CONFIG_LTO=y # CONFIG_EXPERT is not set CONFIG_REMAKE_ELF=y + # CONFIG_BOOTM is not set # CONFIG_AUTOBOOT is not set # CONFIG_ARCH_FIXUP_FDT_MEMORY is not set CONFIG_LOGLEVEL=0 diff --cc configs/xilinx_zynqmp_mini_defconfig index 7fdd2eee55,c2977d4203..40d4a4a585 --- a/configs/xilinx_zynqmp_mini_defconfig +++ b/configs/xilinx_zynqmp_mini_defconfig @@@ -13,10 -13,9 +13,11 @@@ CONFIG_SYS_LOAD_ADDR=0x800000 CONFIG_SYS_MEMTEST_START=0x00000000 CONFIG_SYS_MEMTEST_END=0x00001000 CONFIG_REMAKE_ELF=y + # CONFIG_BOOTM is not set # CONFIG_LEGACY_IMAGE_FORMAT is not set # CONFIG_AUTOBOOT is not set +CONFIG_SYS_CBSIZE=1024 +CONFIG_SYS_PBSIZE=1049 # CONFIG_DISPLAY_CPUINFO is not set # CONFIG_BOARD_LATE_INIT is not set CONFIG_CLOCKS=y diff --cc configs/xilinx_zynqmp_mini_emmc0_defconfig index bf34832d22,dc14088eef..9cccf5d486 --- a/configs/xilinx_zynqmp_mini_emmc0_defconfig +++ b/configs/xilinx_zynqmp_mini_emmc0_defconfig @@@ -17,10 -17,9 +17,11 @@@ CONFIG_SYS_LOAD_ADDR=0x800000 CONFIG_REMAKE_ELF=y # CONFIG_MP is not set CONFIG_FIT=y + # CONFIG_BOOTM is not set CONFIG_SUPPORT_RAW_INITRD=y # CONFIG_AUTOBOOT is not set +CONFIG_SYS_CBSIZE=1024 +CONFIG_SYS_PBSIZE=1049 # CONFIG_DISPLAY_CPUINFO is not set CONFIG_BOARD_EARLY_INIT_R=y # CONFIG_BOARD_LATE_INIT is not set diff --cc configs/xilinx_zynqmp_mini_emmc1_defconfig index af70ccfae1,1e9f4cbdb4..3919e23539 --- a/configs/xilinx_zynqmp_mini_emmc1_defconfig +++ b/configs/xilinx_zynqmp_mini_emmc1_defconfig @@@ -17,10 -17,9 +17,11 @@@ CONFIG_SYS_LOAD_ADDR=0x800000 CONFIG_REMAKE_ELF=y # CONFIG_MP is not set CONFIG_FIT=y + # CONFIG_BOOTM is not set CONFIG_SUPPORT_RAW_INITRD=y # CONFIG_AUTOBOOT is not set +CONFIG_SYS_CBSIZE=1024 +CONFIG_SYS_PBSIZE=1049 # CONFIG_DISPLAY_CPUINFO is not set CONFIG_BOARD_EARLY_INIT_R=y # CONFIG_BOARD_LATE_INIT is not set diff --cc configs/xilinx_zynqmp_mini_nand_defconfig index d2e920fc57,024246349b..ae0c3ae718 --- a/configs/xilinx_zynqmp_mini_nand_defconfig +++ b/configs/xilinx_zynqmp_mini_nand_defconfig @@@ -13,10 -13,9 +13,11 @@@ CONFIG_SYS_LOAD_ADDR=0x800000 CONFIG_REMAKE_ELF=y # CONFIG_MP is not set CONFIG_FIT=y + # CONFIG_BOOTM is not set CONFIG_SUPPORT_RAW_INITRD=y # CONFIG_AUTOBOOT is not set +CONFIG_SYS_CBSIZE=1024 +CONFIG_SYS_PBSIZE=1049 # CONFIG_DISPLAY_CPUINFO is not set CONFIG_BOARD_EARLY_INIT_R=y # CONFIG_BOARD_LATE_INIT is not set diff --cc configs/xilinx_zynqmp_mini_nand_single_defconfig index 31f647357f,1dc3b1054f..15d471caf7 --- a/configs/xilinx_zynqmp_mini_nand_single_defconfig +++ b/configs/xilinx_zynqmp_mini_nand_single_defconfig @@@ -13,10 -13,9 +13,11 @@@ CONFIG_SYS_LOAD_ADDR=0x800000 CONFIG_REMAKE_ELF=y # CONFIG_MP is not set CONFIG_FIT=y + # CONFIG_BOOTM is not set CONFIG_SUPPORT_RAW_INITRD=y # CONFIG_AUTOBOOT is not set +CONFIG_SYS_CBSIZE=1024 +CONFIG_SYS_PBSIZE=1049 # CONFIG_DISPLAY_CPUINFO is not set CONFIG_BOARD_EARLY_INIT_R=y # CONFIG_BOARD_LATE_INIT is not set diff --cc configs/zynq_cse_nand_defconfig index 0dbc80442b,521805cb52..982777b910 --- a/configs/zynq_cse_nand_defconfig +++ b/configs/zynq_cse_nand_defconfig @@@ -19,10 -19,9 +19,11 @@@ CONFIG_SYS_LOAD_ADDR=0x CONFIG_REMAKE_ELF=y CONFIG_SYS_CUSTOM_LDSCRIPT=y CONFIG_SYS_LDSCRIPT="arch/arm/mach-zynq/u-boot.lds" + # CONFIG_BOOTM is not set # CONFIG_AUTOBOOT is not set CONFIG_USE_PREBOOT=y +CONFIG_SYS_CBSIZE=1024 +CONFIG_SYS_PBSIZE=1047 # CONFIG_DISPLAY_CPUINFO is not set # CONFIG_BOARD_LATE_INIT is not set CONFIG_CLOCKS=y diff --cc configs/zynq_cse_nor_defconfig index d95f7602d6,7401161a61..7d70dae5e9 --- a/configs/zynq_cse_nor_defconfig +++ b/configs/zynq_cse_nor_defconfig @@@ -19,10 -19,9 +19,11 @@@ CONFIG_SYS_LOAD_ADDR=0x CONFIG_REMAKE_ELF=y CONFIG_SYS_CUSTOM_LDSCRIPT=y CONFIG_SYS_LDSCRIPT="arch/arm/mach-zynq/u-boot.lds" + # CONFIG_BOOTM is not set # CONFIG_AUTOBOOT is not set CONFIG_USE_PREBOOT=y +CONFIG_SYS_CBSIZE=1024 +CONFIG_SYS_PBSIZE=1047 # CONFIG_DISPLAY_CPUINFO is not set # CONFIG_BOARD_LATE_INIT is not set CONFIG_CLOCKS=y