uboot/include/configs/xilinx_zynqmp.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ */
   2/*
   3 * Configuration for Xilinx ZynqMP
   4 * (C) Copyright 2014 - 2015 Xilinx, Inc.
   5 * Michal Simek <michal.simek@xilinx.com>
   6 *
   7 * Based on Configuration for Versatile Express
   8 */
   9
  10#ifndef __XILINX_ZYNQMP_H
  11#define __XILINX_ZYNQMP_H
  12
  13#define CONFIG_REMAKE_ELF
  14
  15/* #define CONFIG_ARMV8_SWITCH_TO_EL1 */
  16
  17/* Generic Interrupt Controller Definitions */
  18#define CONFIG_GICV2
  19#define GICD_BASE       0xF9010000
  20#define GICC_BASE       0xF9020000
  21
  22#ifndef CONFIG_SYS_MEMTEST_SCRATCH
  23# define CONFIG_SYS_MEMTEST_SCRATCH     0x10800000
  24#endif
  25
  26#define CONFIG_SYS_MEMTEST_START        0
  27#define CONFIG_SYS_MEMTEST_END          1000
  28
  29#define CONFIG_SYS_INIT_SP_ADDR         CONFIG_SYS_TEXT_BASE
  30
  31/* Generic Timer Definitions - setup in EL3. Setup by ATF for other cases */
  32#if !defined(COUNTER_FREQUENCY)
  33# define COUNTER_FREQUENCY              100000000
  34#endif
  35
  36/* Size of malloc() pool */
  37#define CONFIG_SYS_MALLOC_LEN           (CONFIG_ENV_SIZE + 0x2000000)
  38
  39/* Serial setup */
  40#define CONFIG_ARM_DCC
  41#define CONFIG_CPU_ARMV8
  42
  43#define CONFIG_SYS_BAUDRATE_TABLE \
  44        { 4800, 9600, 19200, 38400, 57600, 115200 }
  45
  46/* BOOTP options */
  47#define CONFIG_BOOTP_BOOTFILESIZE
  48#define CONFIG_BOOTP_MAY_FAIL
  49
  50#ifdef CONFIG_NAND_ARASAN
  51# define CONFIG_SYS_MAX_NAND_DEVICE     1
  52# define CONFIG_SYS_NAND_ONFI_DETECTION
  53#endif
  54
  55#if defined(CONFIG_SPL_BUILD)
  56#define CONFIG_ZYNQMP_PSU_INIT_ENABLED
  57#endif
  58
  59/* Miscellaneous configurable options */
  60#define CONFIG_SYS_LOAD_ADDR            0x8000000
  61
  62#if defined(CONFIG_ZYNQMP_USB)
  63#define CONFIG_SYS_DFU_DATA_BUF_SIZE    0x1800000
  64#define DFU_DEFAULT_POLL_TIMEOUT        300
  65#define CONFIG_THOR_RESET_OFF
  66#define DFU_ALT_INFO_RAM \
  67        "dfu_ram_info=" \
  68        "setenv dfu_alt_info " \
  69        "Image ram $kernel_addr $kernel_size\\\\;" \
  70        "system.dtb ram $fdt_addr $fdt_size\0" \
  71        "dfu_ram=run dfu_ram_info && dfu 0 ram 0\0" \
  72        "thor_ram=run dfu_ram_info && thordown 0 ram 0\0"
  73
  74#define DFU_ALT_INFO  \
  75                DFU_ALT_INFO_RAM
  76
  77#ifndef CONFIG_SPL_BUILD
  78# define PARTS_DEFAULT \
  79        "partitions=uuid_disk=${uuid_gpt_disk};" \
  80        "name=""boot"",size=16M,uuid=${uuid_gpt_boot};" \
  81        "name=""Linux"",size=-M,uuid=${uuid_gpt_Linux}\0"
  82#endif
  83#endif
  84
  85#if !defined(DFU_ALT_INFO)
  86# define DFU_ALT_INFO
  87#endif
  88
  89#if !defined(PARTS_DEFAULT)
  90# define PARTS_DEFAULT
  91#endif
  92
  93/* Monitor Command Prompt */
  94/* Console I/O Buffer Size */
  95#define CONFIG_SYS_CBSIZE               2048
  96#define CONFIG_SYS_BARGSIZE             CONFIG_SYS_CBSIZE
  97#define CONFIG_PANIC_HANG
  98#define CONFIG_SYS_MAXARGS              64
  99
 100/* Ethernet driver */
 101#if defined(CONFIG_ZYNQ_GEM)
 102# define CONFIG_SYS_FAULT_ECHO_LINK_DOWN
 103# define PHY_ANEG_TIMEOUT       20000
 104#endif
 105
 106#define CONFIG_SYS_BOOTM_LEN    (60 * 1024 * 1024)
 107
 108#define CONFIG_CLOCKS
 109
 110#define ENV_MEM_LAYOUT_SETTINGS \
 111        "fdt_high=10000000\0" \
 112        "fdt_addr_r=0x40000000\0" \
 113        "pxefile_addr_r=0x10000000\0" \
 114        "kernel_addr_r=0x18000000\0" \
 115        "scriptaddr=0x20000000\0" \
 116        "ramdisk_addr_r=0x02100000\0" \
 117        "script_offset_f=0x3e80000\0" \
 118        "script_size_f=0x80000\0" \
 119
 120#if defined(CONFIG_MMC_SDHCI_ZYNQ)
 121# define BOOT_TARGET_DEVICES_MMC(func)  func(MMC, mmc, 0) func(MMC, mmc, 1)
 122#else
 123# define BOOT_TARGET_DEVICES_MMC(func)
 124#endif
 125
 126#if defined(CONFIG_SATA_CEVA)
 127# define BOOT_TARGET_DEVICES_SCSI(func) func(SCSI, scsi, 0)
 128#else
 129# define BOOT_TARGET_DEVICES_SCSI(func)
 130#endif
 131
 132#if defined(CONFIG_ZYNQMP_USB)
 133# define BOOT_TARGET_DEVICES_USB(func)  func(USB, usb, 0) func(USB, usb, 1)
 134#else
 135# define BOOT_TARGET_DEVICES_USB(func)
 136#endif
 137
 138#if defined(CONFIG_CMD_PXE) && defined(CONFIG_CMD_DHCP)
 139# define BOOT_TARGET_DEVICES_PXE(func)  func(PXE, pxe, na)
 140#else
 141# define BOOT_TARGET_DEVICES_PXE(func)
 142#endif
 143
 144#if defined(CONFIG_CMD_DHCP)
 145# define BOOT_TARGET_DEVICES_DHCP(func) func(DHCP, dhcp, na)
 146#else
 147# define BOOT_TARGET_DEVICES_DHCP(func)
 148#endif
 149
 150#if defined(CONFIG_ZYNQMP_GQSPI)
 151# define BOOT_TARGET_DEVICES_QSPI(func) func(QSPI, qspi, 0)
 152#else
 153# define BOOT_TARGET_DEVICES_QSPI(func)
 154#endif
 155
 156#if defined(CONFIG_NAND_ARASAN)
 157# define BOOT_TARGET_DEVICES_NAND(func) func(NAND, nand, 0)
 158#else
 159# define BOOT_TARGET_DEVICES_NAND(func)
 160#endif
 161
 162#define BOOTENV_DEV_QSPI(devtypeu, devtypel, instance) \
 163        "bootcmd_" #devtypel #instance "=sf probe " #instance " 0 0 && " \
 164                       "sf read $scriptaddr $script_offset_f $script_size_f && " \
 165                       "source ${scriptaddr}; echo SCRIPT FAILED: continuing...;\0"
 166
 167#define BOOTENV_DEV_NAME_QSPI(devtypeu, devtypel, instance) \
 168        #devtypel #instance " "
 169
 170#define BOOTENV_DEV_NAND(devtypeu, devtypel, instance) \
 171        "bootcmd_" #devtypel #instance "= nand info && " \
 172                       "nand read $scriptaddr $script_offset_f $script_size_f && " \
 173                       "source ${scriptaddr}; echo SCRIPT FAILED: continuing...;\0"
 174
 175#define BOOTENV_DEV_NAME_NAND(devtypeu, devtypel, instance) \
 176        #devtypel #instance " "
 177
 178#define BOOT_TARGET_DEVICES_JTAG(func)  func(JTAG, jtag, na)
 179
 180#define BOOTENV_DEV_JTAG(devtypeu, devtypel, instance) \
 181        "bootcmd_jtag=source $scriptaddr; echo SCRIPT FAILED: continuing...;\0"
 182
 183#define BOOTENV_DEV_NAME_JTAG(devtypeu, devtypel, instance) \
 184        "jtag "
 185
 186#define BOOT_TARGET_DEVICES(func) \
 187        BOOT_TARGET_DEVICES_JTAG(func) \
 188        BOOT_TARGET_DEVICES_MMC(func) \
 189        BOOT_TARGET_DEVICES_QSPI(func) \
 190        BOOT_TARGET_DEVICES_NAND(func) \
 191        BOOT_TARGET_DEVICES_USB(func) \
 192        BOOT_TARGET_DEVICES_SCSI(func) \
 193        BOOT_TARGET_DEVICES_PXE(func) \
 194        BOOT_TARGET_DEVICES_DHCP(func)
 195
 196#include <config_distro_bootcmd.h>
 197
 198/* Initial environment variables */
 199#ifndef CONFIG_EXTRA_ENV_SETTINGS
 200#define CONFIG_EXTRA_ENV_SETTINGS \
 201        ENV_MEM_LAYOUT_SETTINGS \
 202        BOOTENV \
 203        DFU_ALT_INFO
 204#endif
 205
 206/* SPL can't handle all huge variables - define just DFU */
 207#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_DFU)
 208#undef CONFIG_EXTRA_ENV_SETTINGS
 209# define CONFIG_EXTRA_ENV_SETTINGS \
 210        "dfu_alt_info_ram=uboot.bin ram 0x8000000 0x1000000;" \
 211                          "atf-uboot.ub ram 0x10000000 0x1000000;" \
 212                          "Image ram 0x80000 0x3f80000;" \
 213                          "system.dtb ram 0x4000000 0x100000\0" \
 214        "dfu_bufsiz=0x1000\0"
 215#endif
 216
 217#define CONFIG_SPL_STACK                0xfffffffc
 218#define CONFIG_SPL_MAX_SIZE             0x40000
 219
 220/* Just random location in OCM */
 221#define CONFIG_SPL_BSS_START_ADDR       0x0
 222#define CONFIG_SPL_BSS_MAX_SIZE         0x80000
 223
 224#if defined(CONFIG_SPL_SPI_FLASH_SUPPORT)
 225# define CONFIG_SYS_SPI_KERNEL_OFFS     0x80000
 226# define CONFIG_SYS_SPI_ARGS_OFFS       0xa0000
 227# define CONFIG_SYS_SPI_ARGS_SIZE       0xa0000
 228#endif
 229
 230/* u-boot is like dtb */
 231#define CONFIG_SPL_FS_LOAD_ARGS_NAME    "u-boot.bin"
 232#define CONFIG_SYS_SPL_ARGS_ADDR        0x8000000
 233
 234/* ATF is my kernel image */
 235#define CONFIG_SPL_FS_LOAD_KERNEL_NAME  "atf-uboot.ub"
 236
 237/* FIT load address for RAM boot */
 238#define CONFIG_SPL_LOAD_FIT_ADDRESS     0x10000000
 239
 240/* MMC support */
 241#ifdef CONFIG_MMC_SDHCI_ZYNQ
 242# define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION     1
 243# define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR  0 /* unused */
 244# define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS 0 /* unused */
 245# define CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR        0 /* unused */
 246# define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME        "u-boot.img"
 247#endif
 248
 249#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_DFU)
 250# undef CONFIG_CMD_BOOTD
 251# define CONFIG_SPL_ENV_SUPPORT
 252# define CONFIG_SPL_HASH_SUPPORT
 253# define CONFIG_ENV_MAX_ENTRIES 10
 254#endif
 255
 256#define CONFIG_SYS_SPL_MALLOC_START     0x20000000
 257#define CONFIG_SYS_SPL_MALLOC_SIZE      0x100000
 258
 259#ifdef CONFIG_SPL_SYS_MALLOC_SIMPLE
 260# error "Disable CONFIG_SPL_SYS_MALLOC_SIMPLE. Full malloc needs to be used"
 261#endif
 262
 263#define CONFIG_BOARD_EARLY_INIT_F
 264
 265#endif /* __XILINX_ZYNQMP_H */
 266