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        "initrd_high=10000000\0" \
 113        "fdt_addr_r=0x40000000\0" \
 114        "pxefile_addr_r=0x10000000\0" \
 115        "kernel_addr_r=0x18000000\0" \
 116        "scriptaddr=0x02000000\0" \
 117        "ramdisk_addr_r=0x02100000\0" \
 118        "script_offset_f=0x3e80000\0" \
 119        "script_size_f=0x80000\0" \
 120
 121#if defined(CONFIG_MMC_SDHCI_ZYNQ)
 122# define BOOT_TARGET_DEVICES_MMC(func)  func(MMC, mmc, 0) func(MMC, mmc, 1)
 123#else
 124# define BOOT_TARGET_DEVICES_MMC(func)
 125#endif
 126
 127#if defined(CONFIG_SATA_CEVA)
 128# define BOOT_TARGET_DEVICES_SCSI(func) func(SCSI, scsi, 0)
 129#else
 130# define BOOT_TARGET_DEVICES_SCSI(func)
 131#endif
 132
 133#if defined(CONFIG_ZYNQMP_USB)
 134# define BOOT_TARGET_DEVICES_USB(func)  func(USB, usb, 0) func(USB, usb, 1)
 135#else
 136# define BOOT_TARGET_DEVICES_USB(func)
 137#endif
 138
 139#if defined(CONFIG_CMD_PXE) && defined(CONFIG_CMD_DHCP)
 140# define BOOT_TARGET_DEVICES_PXE(func)  func(PXE, pxe, na)
 141#else
 142# define BOOT_TARGET_DEVICES_PXE(func)
 143#endif
 144
 145#if defined(CONFIG_CMD_DHCP)
 146# define BOOT_TARGET_DEVICES_DHCP(func) func(DHCP, dhcp, na)
 147#else
 148# define BOOT_TARGET_DEVICES_DHCP(func)
 149#endif
 150
 151#if defined(CONFIG_ZYNQMP_GQSPI)
 152# define BOOT_TARGET_DEVICES_QSPI(func) func(QSPI, qspi, 0)
 153#else
 154# define BOOT_TARGET_DEVICES_QSPI(func)
 155#endif
 156
 157#if defined(CONFIG_NAND_ARASAN)
 158# define BOOT_TARGET_DEVICES_NAND(func) func(NAND, nand, 0)
 159#else
 160# define BOOT_TARGET_DEVICES_NAND(func)
 161#endif
 162
 163#define BOOTENV_DEV_QSPI(devtypeu, devtypel, instance) \
 164        "bootcmd_" #devtypel #instance "=sf probe " #instance " 0 0 && " \
 165                       "sf read $scriptaddr $script_offset_f $script_size_f && " \
 166                       "source ${scriptaddr}; echo SCRIPT FAILED: continuing...;\0"
 167
 168#define BOOTENV_DEV_NAME_QSPI(devtypeu, devtypel, instance) \
 169        #devtypel #instance " "
 170
 171#define BOOTENV_DEV_NAND(devtypeu, devtypel, instance) \
 172        "bootcmd_" #devtypel #instance "= nand info && " \
 173                       "nand read $scriptaddr $script_offset_f $script_size_f && " \
 174                       "source ${scriptaddr}; echo SCRIPT FAILED: continuing...;\0"
 175
 176#define BOOTENV_DEV_NAME_NAND(devtypeu, devtypel, instance) \
 177        #devtypel #instance " "
 178
 179#define BOOT_TARGET_DEVICES(func) \
 180        BOOT_TARGET_DEVICES_MMC(func) \
 181        BOOT_TARGET_DEVICES_QSPI(func) \
 182        BOOT_TARGET_DEVICES_NAND(func) \
 183        BOOT_TARGET_DEVICES_USB(func) \
 184        BOOT_TARGET_DEVICES_SCSI(func) \
 185        BOOT_TARGET_DEVICES_PXE(func) \
 186        BOOT_TARGET_DEVICES_DHCP(func)
 187
 188#include <config_distro_bootcmd.h>
 189
 190/* Initial environment variables */
 191#ifndef CONFIG_EXTRA_ENV_SETTINGS
 192#define CONFIG_EXTRA_ENV_SETTINGS \
 193        ENV_MEM_LAYOUT_SETTINGS \
 194        BOOTENV \
 195        DFU_ALT_INFO
 196#endif
 197
 198/* SPL can't handle all huge variables - define just DFU */
 199#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_DFU)
 200#undef CONFIG_EXTRA_ENV_SETTINGS
 201# define CONFIG_EXTRA_ENV_SETTINGS \
 202        "dfu_alt_info_ram=uboot.bin ram 0x8000000 0x1000000;" \
 203                          "atf-uboot.ub ram 0x10000000 0x1000000;" \
 204                          "Image ram 0x80000 0x3f80000;" \
 205                          "system.dtb ram 0x4000000 0x100000\0" \
 206        "dfu_bufsiz=0x1000\0"
 207#endif
 208
 209#define CONFIG_SPL_STACK                0xfffffffc
 210#define CONFIG_SPL_MAX_SIZE             0x40000
 211
 212/* Just random location in OCM */
 213#define CONFIG_SPL_BSS_START_ADDR       0x0
 214#define CONFIG_SPL_BSS_MAX_SIZE         0x80000
 215
 216#if defined(CONFIG_SPL_SPI_FLASH_SUPPORT)
 217# define CONFIG_SYS_SPI_KERNEL_OFFS     0x80000
 218# define CONFIG_SYS_SPI_ARGS_OFFS       0xa0000
 219# define CONFIG_SYS_SPI_ARGS_SIZE       0xa0000
 220#endif
 221
 222/* u-boot is like dtb */
 223#define CONFIG_SPL_FS_LOAD_ARGS_NAME    "u-boot.bin"
 224#define CONFIG_SYS_SPL_ARGS_ADDR        0x8000000
 225
 226/* ATF is my kernel image */
 227#define CONFIG_SPL_FS_LOAD_KERNEL_NAME  "atf-uboot.ub"
 228
 229/* FIT load address for RAM boot */
 230#define CONFIG_SPL_LOAD_FIT_ADDRESS     0x10000000
 231
 232/* MMC support */
 233#ifdef CONFIG_MMC_SDHCI_ZYNQ
 234# define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION     1
 235# define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR  0 /* unused */
 236# define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS 0 /* unused */
 237# define CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR        0 /* unused */
 238# define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME        "u-boot.img"
 239#endif
 240
 241#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_DFU)
 242# undef CONFIG_CMD_BOOTD
 243# define CONFIG_SPL_ENV_SUPPORT
 244# define CONFIG_SPL_HASH_SUPPORT
 245# define CONFIG_ENV_MAX_ENTRIES 10
 246#endif
 247
 248#define CONFIG_SYS_SPL_MALLOC_START     0x20000000
 249#define CONFIG_SYS_SPL_MALLOC_SIZE      0x100000
 250
 251#ifdef CONFIG_SPL_SYS_MALLOC_SIMPLE
 252# error "Disable CONFIG_SPL_SYS_MALLOC_SIMPLE. Full malloc needs to be used"
 253#endif
 254
 255#define CONFIG_BOARD_EARLY_INIT_F
 256
 257#endif /* __XILINX_ZYNQMP_H */
 258