--- /dev/null
- //#define CONFIG_ZYNQ_GEM
- #define CONFIG_ZYNQ_GEM_OLD
+/*
+ * (C) Copyright 2007-2008 Michal Simek
+ *
+ * Michal SIMEK <monstr@monstr.eu>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+
+/* The following table includes the supported baudrates */
+#define CONFIG_SYS_BAUDRATE_TABLE \
+ {300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400}
+
+/* use serial multi for all serial devices */
+#define CONFIG_SERIAL_MULTI
+#define CONFIG_SYS_CONSOLE_IS_IN_ENV 1
+
+#ifdef XILINX_UARTLITE_BASEADDR
+# define CONFIG_XILINX_UARTLITE
+# if defined(XILINX_UARTLITE_BAUDRATE)
+# define CONFIG_BAUDRATE XILINX_UARTLITE_BAUDRATE
+# endif
+#endif
+
+#if XILINX_UART16550_BASEADDR
+# define CONFIG_SYS_NS16550 1
+# define CONFIG_SYS_NS16550_SERIAL
+# define CONFIG_SYS_NS16550_COM1 ((XILINX_UART16550_BASEADDR & ~0xF) + 0x1000)
+# define CONFIG_SYS_NS16550_CLK XILINX_UART16550_CLOCK_HZ
+
+# if defined(__MICROBLAZEEL__)
+# define CONFIG_SYS_NS16550_REG_SIZE -4
+# else
+# define CONFIG_SYS_NS16550_REG_SIZE 4
+# endif
+
+/* CONS_INDEX for system with uartlite only mustn't define CONFIG_CONS_INDEX
+ * u-boot BSP generates CONFIG_CONS_INDEX for system with several uart16550 */
+# if !defined(CONFIG_CONS_INDEX)
+# define CONFIG_CONS_INDEX 1
+# endif
+#endif
+
+#ifdef XILINX_PS7_UART_BASEADDR
+# define CONFIG_ZYNQ_SERIAL
+# define CONFIG_ZYNQ_SERIAL_BASEADDR0 XILINX_PS7_UART_BASEADDR
+# define CONFIG_ZYNQ_SERIAL_BAUDRATE0 CONFIG_BAUDRATE
+# define CONFIG_ZYNQ_SERIAL_CLOCK0 XILINX_PS7_UART_CLOCK_HZ
+#endif
+
+/* Must be separated because of priorities */
+#if defined(CONFIG_ZYNQ_SERIAL)
+# define SERIAL_MULTI "serial=setenv stdout serial;setenv stdin serial\0"
+# define CONSOLE_ARG "console=console=ttyPS0,115200\0"
+#elif defined(XILINX_UART16550_BASEADDR)
+# define SERIAL_MULTI "serial=setenv stdout serial;setenv stdin serial\0"
+# define CONSOLE_ARG "console=console=ttyS0,115200\0"
+#elif defined(CONFIG_XILINX_UARTLITE)
+# define CONSOLE_ARG "console=console=ttyUL0,115200\0"
+# define SERIAL_MULTI "serial=setenv stdout serial;setenv stdin serial\0" \
+ "stdin=ttyUL0\0" \
+ "stdout=ttyUL0\0"
+#endif
+
+#ifdef XILINX_UARTLITE_BASEADDR
+# define TTYUL0 "ttyUL0=setenv stdout ttyUL0;setenv stdin ttyUL0\0"
+#else
+# define TTYUL0
+#endif
+#ifdef XILINX_UARTLITE_BASEADDR1
+# define TTYUL1 "ttyUL1=setenv stdout ttyUL1;setenv stdin ttyUL1\0"
+#else
+# define TTYUL1
+#endif
+#ifdef XILINX_UARTLITE_BASEADDR2
+# define TTYUL2 "ttyUL2=setenv stdout ttyUL2;setenv stdin ttyUL2\0"
+#else
+# define TTYUL2
+#endif
+#ifdef XILINX_UARTLITE_BASEADDR3
+# define TTYUL3 "ttyUL3=setenv stdout ttyUL3;setenv stdin ttyUL3\0"
+#else
+# define TTYUL3
+#endif
+#ifdef CONFIG_SYS_NS16550_COM1
+# define ESERIAL0 "eserial0=setenv stdout eserial0;setenv stdin eserial0\0"
+#else
+# define ESERIAL0
+#endif
+#ifdef CONFIG_SYS_NS16550_COM2
+# define ESERIAL1 "eserial1=setenv stdout eserial1;setenv stdin eserial1\0"
+#else
+# define ESERIAL1
+#endif
+#ifdef CONFIG_SYS_NS16550_COM3
+# define ESERIAL2 "eserial2=setenv stdout eserial2;setenv stdin eserial2\0"
+#else
+# define ESERIAL2
+#endif
+#ifdef CONFIG_SYS_NS16550_COM4
+# define ESERIAL3 "eserial3=setenv stdout eserial3;setenv stdin eserial3\0"
+#else
+# define ESERIAL3
+#endif
+#ifdef CONFIG_ZYNQ_SERIAL_BASEADDR0
+# define PSSERIAL0 "psserial0=setenv stdout ttyPS0;setenv stdin ttyPS0\0"
+#else
+# define PSSERIAL0
+#endif
+#ifdef CONFIG_ZYNQ_SERIAL_BASEADDR1
+# define PSSERIAL1 "psserial1=setenv stdout ttyPS0;setenv stdin ttyPS0\0"
+#else
+# define PSSERIAL1
+#endif
+
+#if !defined(CONFIG_BAUDRATE)
+ #define CONFIG_BAUDRATE 115200
+#endif
+
+#if !defined(XILINX_UARTLITE_BASEADDR) && !defined(XILINX_UART16550_BASEADDR) && !defined(XILINX_PS7_UART_BASEADDR)
+# error Undefined uart
+#endif
+
+/* enable nul device */
+/* #define CONFIG_SYS_DEVICE_NULLDEV */
+
+/* setting reset address */
+/*#define CONFIG_SYS_RESET_ADDRESS TEXT_BASE*/
+
+/* ethernet */
+#undef CONFIG_SYS_ENET
+#ifdef XILINX_EMAC_BASEADDR
+ #define CONFIG_XILINX_EMAC 1
+ #define CONFIG_SYS_ENET
+#endif
+#if defined(XILINX_EMACLITE_BASEADDR)
+ #define CONFIG_XILINX_EMACLITE 1
+ #define CONFIG_SYS_ENET
+#endif
+#if defined(XILINX_LLTEMAC_BASEADDR)
+ #define CONFIG_XILINX_LL_TEMAC 1
+ #define CONFIG_SYS_ENET
+#endif
+#if defined(XILINX_AXIEMAC_BASEADDR)
+ #define CONFIG_XILINX_AXIEMAC 1
+ #define CONFIG_SYS_ENET
+#endif
+#if defined(CONFIG_ZYNQ_GEM_BASEADDR0)
- # define CONFIG_ZYNQ_MMC
++ #define CONFIG_ZYNQ_GEM
+ #define CONFIG_SYS_ENET
+#endif
+
+#undef ET_DEBUG
+
+/* gpio */
+#ifdef XILINX_GPIO_BASEADDR
+ #define CONFIG_SYS_GPIO_0 1
+ #define CONFIG_SYS_GPIO_0_ADDR XILINX_GPIO_BASEADDR
+#endif
+
+/* interrupt controller */
+#ifdef XILINX_INTC_BASEADDR
+ #define CONFIG_SYS_INTC_0 1
+ #define CONFIG_SYS_INTC_0_ADDR XILINX_INTC_BASEADDR
+ #define CONFIG_SYS_INTC_0_NUM XILINX_INTC_NUM_INTR_INPUTS
+#endif
+
+/* timer */
+#ifdef XILINX_TIMER_BASEADDR
+ #if (XILINX_TIMER_IRQ != -1)
+ #define CONFIG_SYS_TIMER_0 1
+ #define CONFIG_SYS_TIMER_0_ADDR XILINX_TIMER_BASEADDR
+ #define CONFIG_SYS_TIMER_0_IRQ XILINX_TIMER_IRQ
+ #define FREQUENCE XILINX_CLOCK_FREQ
+ #define CONFIG_SYS_TIMER_0_PRELOAD ( FREQUENCE/1000 )
+ #endif
+#elif XILINX_CLOCK_FREQ
+ #define CONFIG_XILINX_CLOCK_FREQ XILINX_CLOCK_FREQ
+#endif
+/* FSL */
+/* #define CONFIG_SYS_FSL_2 */
+/* #define FSL_INTR_2 1 */
+
+/*
+ * memory layout - Example
+ * TEXT_BASE = 0x1200_0000;
+ * CONFIG_SYS_SRAM_BASE = 0x1000_0000;
+ * CONFIG_SYS_SRAM_SIZE = 0x0400_0000;
+ *
+ * CONFIG_SYS_GBL_DATA_OFFSET = 0x1000_0000 + 0x0400_0000 - 0x1000 = 0x13FF_F000
+ * CONFIG_SYS_MONITOR_BASE = 0x13FF_F000 - 0x40000 = 0x13FB_F000
+ * CONFIG_SYS_MALLOC_BASE = 0x13FB_F000 - 0x40000 = 0x13F7_F000
+ *
+ * 0x1000_0000 CONFIG_SYS_SDRAM_BASE
+ * FREE
+ * 0x1200_0000 TEXT_BASE
+ * U-BOOT code
+ * 0x1202_0000
+ * FREE
+ *
+ * STACK
+ * 0x13F7_F000 CONFIG_SYS_MALLOC_BASE
+ * MALLOC_AREA 256kB Alloc
+ * 0x11FB_F000 CONFIG_SYS_MONITOR_BASE
+ * MONITOR_CODE 256kB Env
+ * 0x13FF_F000 CONFIG_SYS_GBL_DATA_OFFSET
+ * GLOBAL_DATA 4kB bd, gd
+ * 0x1400_0000 CONFIG_SYS_SDRAM_BASE + CONFIG_SYS_SDRAM_SIZE
+ */
+
+/* ddr sdram - main memory */
+#define CONFIG_SYS_SDRAM_BASE XILINX_RAM_START
+#define CONFIG_SYS_SDRAM_SIZE XILINX_RAM_SIZE
+
+/* Flash memory handling. There are 5 cases:
+ * Parallel Flash, bootenv in flash
+ * Parallel flash, no bootenv in flash (RAMENV will be set)
+ * SPI flash, bootenv in flash
+ * SPI flash, no bootenv in flash (RAMENV will be set)
+ * No flash at all (RAMENV will be set)
+*/
+
+/* Some preprocessor magic to auto-set RAMENV */
+#define BESIZE @besize@
+
+#if !(BESIZE+0)
+#define RAMENV
+#endif
+
+/* Use ZYNQ_BOOT_* to drive the boot dev */
+@ZYNQ_BOOT_DEV@
+#if defined(CONFIG_ZYNQ)
+#if defined(ZYNQ_BOOT_QSPI) && defined(XILINX_PS7_QSPI_FLASH_BASEADDR)
+ #define XILINX_SPI_FLASH_BASEADDR XILINX_PS7_QSPI_FLASH_BASEADDR
+#elif defined(ZYNQ_BOOT_SD) && defined(XILINX_PS7_SDIO_BASEADDR)
+ #define XILINX_SD_FLASH_BASEADDR XILINX_PS7_SDIO_BASEADDR
+ /* enable other */
+ #if defined(XILINX_PS7_QSPI_FLASH_BASEADDR)
+ #define XILINX_SPI_FLASH_BASEADDR XILINX_PS7_QSPI_FLASH_BASEADDR
+ #endif
+ #if defined(XILINX_PS7_NOR_BASEADDR)
+ #define XILINX_FLASH_START XILINX_PS7_NOR_FLASH_BASEADDR
+ #endif
+ #if defined(XILINX_PS7_NAND_BASEADDR)
+ #define XILINX_NAND_FLASH_BASEDDR XILINX_PS7_NAND_FLASH_BASEADDR
+ #define CONFIG_CMD_NAND
+ #define CONFIG_CMD_NAND_LOCK_UNLOCK
+ #define CONFIG_SYS_MAX_NAND_DEVICE 1
+ #define CONFIG_SYS_NAND_BASE XPSS_NAND_BASEADDR
+ #define CONFIG_MTD_DEVICE
+ #define CONFIG_SYS_NAND_ONFI_DETECTION
+ #endif
+/* Features that not been implemented due to hw support */
+#elif defined(ZYNQ_BOOT_NOR) && defined(XILINX_PS7_NOR_BASEADDR)
+ #define XILINX_FLASH_START XILINX_PS7_NOR_FLASH_BASEADDR
+#elif defined(ZYNQ_BOOT_NAND) && defined(XILINX_PS7_NAND_BASEADDR)
+ #define XILINX_NAND_FLASH_BASEDDR XILINX_PS7_NAND_FLASH_BASEADDR
+#elif defined(ZYNQ_BOOT_OTHER)
+ #define RAMENV
+#else
+ #error "Unknown boot source for Zynq. Please set the boot device in appconfig"
+#endif
+#endif
+
+#if defined(XILINX_FLASH_START) /* Parallel Flash */
+ #define FLASH
+ #define CONFIG_SYS_FLASH_BASE XILINX_FLASH_START
+ #define CONFIG_SYS_FLASH_SIZE XILINX_FLASH_SIZE
+ #define CONFIG_SYS_FLASH_CFI 1
+ #define CONFIG_FLASH_CFI_DRIVER 1
+ #define CONFIG_SYS_FLASH_EMPTY_INFO 1 /* ?empty sector */
+ #define CONFIG_SYS_MAX_FLASH_BANKS 1 /* max number of memory banks */
+ #define CONFIG_SYS_MAX_FLASH_SECT 2048 /* max number of sectors on one chip */
+ #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE 1 /* use buffered writes (20x faster) */
+
+ /* Assume env is in flash, this may be undone lower down */
+ #define CONFIG_ENV_IS_IN_FLASH 1
+ #define CONFIG_ENV_SECT_SIZE 0x20000 /* 128K(one sector) for env */
+
+ #if defined (CONFIG_ZYNQ)
+ #define CONFIG_SYS_FLASH_PROTECTION 0 /* use hardware protection */
+ /* optional flash operation parameter from zynq */
+ #define CONFIG_SYS_FLASH_ERASE_TOUT 1000
+ #define CONFIG_SYS_FLASH_WRITE_TOUT 5000
+ #define CONFIG_FLASH_SHOW_PROGRESS 10
+ #else
+ #define CONFIG_SYS_FLASH_PROTECTION
+ #endif
+
+ #define CONFIG_ENV_ADDR @bestart@
+ #define CONFIG_ENV_SIZE @besize@
+#elif defined(XILINX_SPI_FLASH_BASEADDR) /* SPI Flash */
+ #if defined(XILINX_PS7_QSPI_FLASH_BASEADDR)
+ #define CONFIG_ZYNQ_SPI
+ #define CONFIG_XILINX_SPI_BASEADDR XILINX_PS7_QSPI_FLASH_BASEADDR
+ #define CONFIG_CMD_SPI
+ #define CONFIG_ENV_SPI_MAX_HZ XILINX_SPI_FLASH_MAX_FREQ
+ #define CONFIG_SF_DEFAULT_SPEED XILINX_SPI_FLASH_MAX_FREQ
+ #define CONFIG_SPI_FLASH_PLNX
+ #else
+ #define CONFIG_SYS_SPI_BASE XILINX_SPI_FLASH_BASEADDR
+ #define CONFIG_ENV_SPI_MAX_HZ XILINX_SPI_FLASH_MAX_FREQ
+ #define CONFIG_ENV_SPI_CS XILINX_SPI_FLASH_CS
+ #define CONFIG_XILINX_SPI 1
+ #endif
+
+ #define CONFIG_SPI_FLASH 1
+ #define CONFIG_SPI_FLASH_ATMEL
+ #define CONFIG_SPI_FLASH_SPANSION
+ #define CONFIG_SPI_FLASH_STMICRO
+ #define CONFIG_SPI_FLASH_WINBOND
+
+ #define CONFIG_CMD_SF
+
+ #define CONFIG_ENV_SPI_MODE @spiflashmode@
+
+ #define CONFIG_SYS_NO_FLASH
+ #undef CONFIG_CMD_FLASH
+
+ /* Assume env is in flash, this may be undone lower down */
+ #define CONFIG_ENV_IS_IN_SPI_FLASH
+ #define CONFIG_ENV_OFFSET @bestart@
+ #define CONFIG_ENV_SIZE @besize@
+ #define CONFIG_ENV_SECT_SIZE 0x20000 /* 128K(one sector) for env */
+
+ #ifndef CONFIG_SPI_FLASH_DEV_USERDEFINED
+ #define CONFIG_SPI_FLASH_@spiflashdev@
+ #endif
+#else /* No flash memory at all */
+ /* ENV in RAM */
+ #define RAMENV
+ #define CONFIG_SYS_NO_FLASH 1
+#endif /* !FLASH */
+
+#ifdef RAMENV
+ #define CONFIG_ENV_IS_NOWHERE 1
+ #undef CONFIG_ENV_IS_IN_FLASH
+ #undef CONFIG_ENV_IS_IN_SPI_FLASH
+ #define CONFIG_ENV_SIZE 0x1000
+ #define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE)
+ #define CONFIG_SYS_FLASH_PROTECTION /* hardware flash protection */
+#endif
+
+/* system ace */
+#ifdef XILINX_SYSACE_BASEADDR
+ #define CONFIG_SYSTEMACE
+ /* #define DEBUG_SYSTEMACE */
+ #define SYSTEMACE_CONFIG_FPGA
+ #define CONFIG_SYS_SYSTEMACE_BASE XILINX_SYSACE_BASEADDR
+ #define CONFIG_SYS_SYSTEMACE_WIDTH XILINX_SYSACE_MEM_WIDTH
+ #define CONFIG_DOS_PARTITION
+#endif
+
+#if defined(XILINX_USE_ICACHE)
+ #define CONFIG_ICACHE
+#else
+ #undef CONFIG_ICACHE
+#endif
+
+#if defined(XILINX_USE_DCACHE)
+ #define CONFIG_DCACHE
+#else
+ #undef CONFIG_DCACHE
+#endif
+
+/*
+ * BOOTP options
+ */
+#define CONFIG_BOOTP_BOOTFILESIZE
+#define CONFIG_BOOTP_BOOTPATH
+#define CONFIG_BOOTP_GATEWAY
+#define CONFIG_BOOTP_HOSTNAME
+
+/*
+ * Command line configuration.
+ */
+#include <config_cmd_default.h>
+
+#define CONFIG_CMD_ASKENV
+/* FIXME: hack for zynq */
+#ifndef CONFIG_ZYNQ
+#define CONFIG_CMD_IRQ
+#endif
+#ifdef CONFIG_MICROBLAZE
+#define CONFIG_CMD_MFSL
+#endif
+#define CONFIG_CMD_ECHO
+
+/* #define CONFIG_CMD_ROMFS */
+
+/*#if defined(CONFIG_DCACHE) || defined(CONFIG_ICACHE)
+ #define CONFIG_CMD_CACHE
+#else
+ #undef CONFIG_CMD_CACHE
+#endif
+*/
+
+#undef CONFIG_CMD_NFS
+#undef CONFIG_CMD_JFFS2
+#ifndef CONFIG_SYS_ENET
+ #undef CONFIG_CMD_NET
+ #undef CONFIG_NET_MULTI
+#else
+ #define CONFIG_CMD_PING
+ #define CONFIG_NET_MULTI
+ #define CONFIG_CMD_DHCP
+#endif
+
+#if defined(CONFIG_SYSTEMACE)
+ #define CONFIG_CMD_EXT2
+ #define CONFIG_CMD_FAT
+#endif
+
+/* Secure Digital */
+#if defined(XILINX_PS7_SDIO_BASEADDR)
+# define CONFIG_MMC 1
+# define CONFIG_GENERIC_MMC
++# define CONFIG_SDHCI
++# define CONFIG_ZYNQ_SDHCI
+# define CONFIG_CMD_MMC
+# define CONFIG_CMD_FAT
+# define CONFIG_CMD_EXT2
+# define CONFIG_DOS_PARTITION
+/* For now, use only single block reads for the MMC */
+# define CONFIG_SYS_MMC_MAX_BLK_COUNT 1
+#endif
+
+#if defined(FLASH)
+ #define CONFIG_CMD_FLASH
+ #define CONFIG_CMD_IMLS
+#else
+ #undef CONFIG_CMD_IMLS
+ #undef CONFIG_CMD_FLASH
+ #undef CONFIG_CMD_SAVEENV
+ #undef CONFIG_CMD_SAVES
+#endif
+
+#if !defined(RAMENV)
+ #define CONFIG_CMD_SAVEENV
+ #define CONFIG_CMD_SAVES
+#endif
+
+#if defined(CONFIG_CMD_JFFS2)
+/* JFFS2 partitions */
+#define CONFIG_CMD_MTDPARTS /* mtdparts command line support */
+#define CONFIG_MTD_DEVICE /* needed for mtdparts commands */
+#define CONFIG_FLASH_CFI_MTD
+#define MTDIDS_DEFAULT "nor0=@mtdpartsname@"
+
+/* default mtd partition table */
+#define MTDPARTS_DEFAULT "mtdparts=@mtdparts@"
+#endif
+
+/* Miscellaneous configurable options */
+#define CONFIG_SYS_PROMPT "U-Boot-PetaLinux> "
+#if defined(CONFIG_CMD_KGDB)
+#define CONFIG_SYS_CBSIZE 1024/* Console I/O Buffer Size */
+#else
+#define CONFIG_SYS_CBSIZE 256/* Console I/O Buffer Size */
+#endif
+#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE +\
+ sizeof(CONFIG_SYS_PROMPT) + 16)
+#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
+ /* Boot Argument Buffer Size */
+#define CONFIG_SYS_MAXARGS 15 /* max number of command args */
+#define CONFIG_SYS_LONGHELP
+#define CONFIG_SYS_LOAD_ADDR XILINX_RAM_START /* default load address */
+
+#define CONFIG_BOOTDELAY 4
+/* Don't define BOOTARGS, we get it from the DTB chosen fragment */
+#undef CONFIG_BOOTARGS
+#define CONFIG_HOSTNAME XILINX_BOARD_NAME
+#ifdef FLASH
+#define CONFIG_BOOTCOMMAND "setenv var \"if test ${dtbsize} -le 0\\; then bootm ${kernstart}\\; else run dtbboot\\; fi\"; run var; setenv var" \
+
+#elif defined(CONFIG_SPI_FLASH)
+#define CONFIG_BOOTCOMMAND "setenv var \"if test ${dtbsize} -le 0\\; then run sfboot\\; else run dtbboot\\; fi\"; run var; setenv var" \
+
+#endif
+
+#define CONFIG_ENV_OVERWRITE /* Allow to overwrite the u-boot environment variables */
+#define CONFIG_IPADDR @ipaddr@
+#define CONFIG_SERVERIP @serverip@
+#define CONFIG_ETHADDR @ethaddr@
+#define CONFIG_BOOTP_SERVERIP
+
+/* architecture dependent code */
+#define CONFIG_SYS_USR_EXCEP /* user exception */
+#define CONFIG_SYS_HZ 1000
+
+/* netconsole */
+#ifdef CONFIG_SYS_ENET
+#define CONFIG_NETCONSOLE 1
+
+#define NETCONSOLE_ARG "nc=setenv stdout nc;setenv stdin nc;\0" \
+ "ncip=@serverip@\0"
+/* "stdin=nc\0" \
+ "stdout=nc\0"
+*/
+#else
+#define NETCONSOLE_ARG
+#endif
+
+#ifndef CONFIG_SYS_ENET
+# define CONFIG_PREBOOT "echo U-BOOT for ${hostname};setenv preboot;echo;"
+#else
+# define CONFIG_PREBOOT "echo U-BOOT for ${hostname};setenv preboot;echo;@dhcp@"
+#endif
+
+#if defined(CONFIG_ZYNQ)
+#define CONFIG_EXTRA_ARCH_ENV_SETTINGS \
+ "load_boot=tftp ${clobstart} BOOT.BIN\0" \
+ "update_boot=setenv img BOOT.BIN; setenv psize ${bootsize}; setenv installcmd install_uboot; run load_boot test_img; setenv img; setenv psize; setenv installcmd\0"
+#else
+#define CONFIG_EXTRA_ARCH_ENV_SETTINGS \
+ "load_uboot=tftp ${clobstart} u-boot-s.bin\0" \
+ "update_uboot=setenv img U-BOOT; setenv psize ${bootsize}; setenv installcmd install_uboot; run load_uboot test_img; setenv img; setenv psize; setenv installcmd\0"
+#endif
+
+#if defined(XILINX_PS7_SDIO_BASEADDR)
+ #if defined(FLASH) || defined(CONFIG_SPI_FLASH)
+ #define CONFIG_EXTRA_SD_FLASH_UPDATE_ENV \
+ "sd_update_boot=echo Updating BOOT from SD;mmcinfo; fatload mmc 0:1 ${clobstart} BOOT.BIN; run install_uboot\0" \
+ "sd_update_kernel=echo Updating Kernel from SD;mmcinfo; fatload mmc 0:1 ${clobstart} ${bootfile}; set fileaddr ${clobstart};run install_kernel\0"
+ #else
+ #define CONFIG_EXTRA_SD_FLASH_UPDATE_ENV
+ #endif
+#define CONFIG_EXTRA_SD_ENV_SETTINGS \
+ "sdboot=echo boot Petalinux; mmcinfo;fatload mmc 0 ${netstart} ${bootfile}; bootm \0" \
+ CONFIG_EXTRA_SD_FLASH_UPDATE_ENV
+#else
+#define CONFIG_EXTRA_SD_ENV_SETTINGS
+#endif
+
+#if defined(FLASH) || defined(CONFIG_SPI_FLASH)
+#define CONFIG_EXTRA_ENV_SETTINGS_COMMON \
+ CONFIG_EXTRA_SD_ENV_SETTINGS \
+ CONFIG_EXTRA_ARCH_ENV_SETTINGS \
+ "autoload=no\0" \
+ "bootfile=image.ub\0" \
+ "mtdids=nor0=@mtdpartsname@\0" \
+ "mtdparts=mtdparts=@mtdparts@\0" \
+ CONSOLE_ARG \
+ NETCONSOLE_ARG \
+ SERIAL_MULTI \
+ TTYUL0 \
+ TTYUL1 \
+ TTYUL2 \
+ TTYUL3 \
+ ESERIAL0 \
+ ESERIAL1 \
+ ESERIAL2 \
+ ESERIAL3 \
+ PSSERIAL0 \
+ PSSERIAL1 \
+ "clobstart=@cstart@\0" \
+ "netstart=@nstart@\0" \
+ "dtbnetstart=@dtbnstart@\0" \
+ "loadaddr=@nstart@\0" \
+ "bootsize=@bsize@\0" \
+ "bootstart=@bstart@\0" \
+ "bootenvsize=@besize@\0" \
+ "bootenvstart=@bestart@\0" \
+ "confsize=@confsize@\0" \
+ "confstart=@confstart@\0" \
+ "jffs2size=@jffs2size@\0" \
+ "jffs2start=@jffs2start@\0" \
+ "kernsize=@ksize@\0" \
+ "kernstart=@kstart@\0" \
+ "dtbsize=@dtbsize@\0" \
+ "dtbstart=@dtbstart@\0" \
+ "fault=echo $img image size is greater than allocated place - $img is NOT UPDATED\0" \
+ "load_kernel=tftp ${clobstart} image.ub\0" \
+ "load_jffs2=tftp ${clobstart} rootfs.jffs2\0" \
+ "load_dtb=tftp ${clobstart} system.dtb\0" \
+ "update_kernel=setenv img KERNEL; setenv psize ${kernsize}; setenv installcmd \"install_kernel\"; run load_kernel test_crc; setenv img; setenv psize; setenv installcmd\0" \
+ "update_jffs2=setenv img JFFS2; setenv psize ${jffs2size}; setenv installcmd install_jffs2; run load_jffs2 test_img; setenv img; setenv psize; setenv installcmd\0" \
+ "update_dtb=setenv img DTB; setenv psize ${dtbsize}; setenv installcmd install_dtb; run load_dtb test_img; setenv img\0" \
+ "test_crc=if imi ${clobstart}; then run test_img; else echo $img Bad CRC - $img is NOT UPDATED; fi\0" \
+ "test_img=setenv var \"if test 0x${filesize} -gt ${psize}\\; then run fault\\; else run ${installcmd}\\; fi\"; run var; setenv var\0" \
+ "netboot=tftp ${netstart} image.ub && bootm\0" \
+ "dtbnetboot=tftp ${netstart} image.ub; tftp ${dtbnetstart} system.dtb; bootm ${netstart} - ${dtbnetstart}\0" \
+ "get_dtb=run cp_dtb2ram; fdt addr ${clobstart}\0"
+#endif
+
+#if defined(FLASH) /* Parallel Flash */
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ CONFIG_EXTRA_ENV_SETTINGS_COMMON \
+ "eraseenv=protect off ${bootenvstart} +${bootenvsize}; erase ${bootenvstart} +${bootenvsize}\0" \
+ "eraseconf=protect off ${confstart} +${confsize}; erase ${confstart} +${confsize}\0" \
+ "cp_dtb2ram=cp.b ${dtbstart} ${clobstart} ${dtbsize}\0" \
+ "install_kernel=protect off ${kernstart} +${kernsize};erase ${kernstart} +${kernsize};" \
+ "cp.b ${fileaddr} ${kernstart} ${filesize}\0" \
+ "install_uboot=protect off ${bootstart} +${bootsize};erase ${bootstart} +${bootsize};" \
+ "cp.b ${clobstart} ${bootstart} ${filesize}\0" \
+ "install_jffs2=protect off ${jffs2start} +${jffs2size};erase ${jffs2start} +${jffs2size};" \
+ "cp.b ${clobstart} ${jffs2start} ${filesize}\0" \
+ "install_dtb=protect off ${dtbstart} +${dtbsize}; erase ${dtbstart} +${dtbsize};" \
+ "cp.b ${clobstart} ${dtbstart} ${filesize}\0" \
+ "dtbboot=bootm ${kernstart} - ${dtbstart}\0" \
+ ""
+#elif defined(CONFIG_SPI_FLASH) /* SPI Flash */
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ CONFIG_EXTRA_ENV_SETTINGS_COMMON \
+ "eraseenv=sf probe 0; sf erase ${bootenvstart} ${bootenvsize}\0" \
+ "eraseconf=sf probe 0; sf erase ${confstart} ${confsize}\0" \
+ "cp_dtb2ram=sf probe 0; sf read ${clobstart} ${dtbstart} ${dtbsize}\0" \
+ "install_kernel=sf probe 0; sf erase ${kernstart} ${kernsize};" \
+ "sf write ${fileaddr} ${kernstart} 0x${filesize}\0" \
+ "install_uboot=sf probe 0; sf erase ${bootstart} ${bootsize};" \
+ "sf write ${clobstart} ${bootstart} 0x${filesize}\0" \
+ "install_jffs2=sf probe 0; sf erase ${jffs2start} ${jffs2size};" \
+ "sf write ${clobstart} ${jffs2start} 0x${filesize}\0" \
+ "install_dtb=sf probe 0; sf erase ${dtbstart} ${dtbsize};" \
+ "sf write ${clobstart} ${dtbstart} 0x${filesize}\0" \
+ "sfboot=sf probe 0; sf read ${netstart} ${kernstart} ${kernsize}; bootm ${netstart}\0" \
+ "dtbboot=sf probe 0; sf read ${netstart} ${kernstart} ${kernsize}; sf read ${dtbnetstart} ${dtbstart} ${dtbsize}; bootm ${netstart} - ${dtbnetstart}\0" \
+ ""
+#else /* No Flash */
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ CONFIG_EXTRA_SD_ENV_SETTINGS \
+ CONSOLE_ARG \
+ NETCONSOLE_ARG \
+ SERIAL_MULTI \
+ TTYUL0 \
+ TTYUL1 \
+ TTYUL2 \
+ TTYUL3 \
+ ESERIAL0 \
+ ESERIAL1 \
+ ESERIAL2 \
+ ESERIAL3 \
+ PSSERIAL0 \
+ PSSERIAL1 \
+ "autoload=no\0" \
+ "bootfile=image.ub\0" \
+ "netstart=@nstart@\0" \
+ "dtbnetstart=@dtbnstart@\0" \
+ "loadaddr=@nstart@\0" \
+ "bootcmd=run netboot\0" \
+ "netboot=tftp ${netstart} image.ub && bootm\0" \
+ "dtbnetboot=tftp ${netstart} image.ub; tftp ${dtbnetstart} system.dtb; bootm ${netstart} - ${dtbnetstart}\0" \
+ ""
+#endif /* Flash */
+
+#define CONFIG_CMDLINE_EDITING
+
+/* Use the HUSH parser */
+#define CONFIG_SYS_HUSH_PARSER
+#define CONFIG_SYS_PROMPT_HUSH_PS2 "> "
+
+#define CONFIG_FIT 1
+#define CONFIG_OF_LIBFDT 1
+
+#if CONFIG_SYS_SDRAM_SIZE >= 0x10000000
+# ifndef CONFIG_SYS_BOOTMAPSZ
+# define CONFIG_SYS_BOOTMAPSZ 0x0f000000
+# endif
+#endif
+
+/* Make the BOOTM LEN big enough for the compressed image */
+#define CONFIG_SYS_BOOTM_LEN 0x1000000
+
+#include <configs/petalinux/@per_platform_config@>