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#if defined(CONFIG_MMC_SDHCI_ZYNQ)
  51# define CONFIG_SUPPORT_EMMC_BOOT
  52#endif
  53
  54#ifdef CONFIG_NAND_ARASAN
  55# define CONFIG_SYS_MAX_NAND_DEVICE     1
  56# define CONFIG_SYS_NAND_ONFI_DETECTION
  57#endif
  58
  59#if defined(CONFIG_SPL_BUILD)
  60#define CONFIG_ZYNQMP_PSU_INIT_ENABLED
  61#endif
  62
  63/* Miscellaneous configurable options */
  64#define CONFIG_SYS_LOAD_ADDR            0x8000000
  65
  66#if defined(CONFIG_ZYNQMP_USB)
  67#define CONFIG_SYS_DFU_DATA_BUF_SIZE    0x1800000
  68#define DFU_DEFAULT_POLL_TIMEOUT        300
  69#define CONFIG_USB_CABLE_CHECK
  70#define CONFIG_THOR_RESET_OFF
  71#define DFU_ALT_INFO_RAM \
  72        "dfu_ram_info=" \
  73        "setenv dfu_alt_info " \
  74        "Image ram $kernel_addr $kernel_size\\\\;" \
  75        "system.dtb ram $fdt_addr $fdt_size\0" \
  76        "dfu_ram=run dfu_ram_info && dfu 0 ram 0\0" \
  77        "thor_ram=run dfu_ram_info && thordown 0 ram 0\0"
  78
  79#define DFU_ALT_INFO  \
  80                DFU_ALT_INFO_RAM
  81
  82#ifndef CONFIG_SPL_BUILD
  83# define PARTS_DEFAULT \
  84        "partitions=uuid_disk=${uuid_gpt_disk};" \
  85        "name=""boot"",size=16M,uuid=${uuid_gpt_boot};" \
  86        "name=""Linux"",size=-M,uuid=${uuid_gpt_Linux}\0"
  87#endif
  88#endif
  89
  90#if !defined(DFU_ALT_INFO)
  91# define DFU_ALT_INFO
  92#endif
  93
  94#if !defined(PARTS_DEFAULT)
  95# define PARTS_DEFAULT
  96#endif
  97
  98/* Monitor Command Prompt */
  99/* Console I/O Buffer Size */
 100#define CONFIG_SYS_CBSIZE               2048
 101#define CONFIG_SYS_BARGSIZE             CONFIG_SYS_CBSIZE
 102#define CONFIG_PANIC_HANG
 103#define CONFIG_SYS_MAXARGS              64
 104
 105/* Ethernet driver */
 106#if defined(CONFIG_ZYNQ_GEM)
 107# define CONFIG_SYS_FAULT_ECHO_LINK_DOWN
 108# define PHY_ANEG_TIMEOUT       20000
 109#endif
 110
 111/* I2C */
 112#if defined(CONFIG_SYS_I2C_ZYNQ)
 113# define CONFIG_SYS_I2C
 114#endif
 115
 116/* EEPROM */
 117#ifdef CONFIG_ZYNQMP_EEPROM
 118# define CONFIG_SYS_I2C_EEPROM_ADDR_LEN         2
 119# define CONFIG_SYS_I2C_EEPROM_ADDR             0x54
 120# define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS      4
 121# define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS  5
 122# define CONFIG_SYS_EEPROM_SIZE                 (64 * 1024)
 123#endif
 124
 125#define CONFIG_SYS_BOOTM_LEN    (60 * 1024 * 1024)
 126
 127#define CONFIG_CLOCKS
 128
 129#define ENV_MEM_LAYOUT_SETTINGS \
 130        "fdt_high=10000000\0" \
 131        "initrd_high=10000000\0" \
 132        "fdt_addr_r=0x40000000\0" \
 133        "pxefile_addr_r=0x10000000\0" \
 134        "kernel_addr_r=0x18000000\0" \
 135        "scriptaddr=0x02000000\0" \
 136        "ramdisk_addr_r=0x02100000\0" \
 137
 138#if defined(CONFIG_MMC_SDHCI_ZYNQ)
 139# define BOOT_TARGET_DEVICES_MMC(func)  func(MMC, mmc, 0) func(MMC, mmc, 1)
 140#else
 141# define BOOT_TARGET_DEVICES_MMC(func)
 142#endif
 143
 144#if defined(CONFIG_SATA_CEVA)
 145# define BOOT_TARGET_DEVICES_SCSI(func) func(SCSI, scsi, 0)
 146#else
 147# define BOOT_TARGET_DEVICES_SCSI(func)
 148#endif
 149
 150#if defined(CONFIG_ZYNQMP_USB)
 151# define BOOT_TARGET_DEVICES_USB(func)  func(USB, usb, 0) func(USB, usb, 1)
 152#else
 153# define BOOT_TARGET_DEVICES_USB(func)
 154#endif
 155
 156#if defined(CONFIG_CMD_PXE) && defined(CONFIG_CMD_DHCP)
 157# define BOOT_TARGET_DEVICES_PXE(func)  func(PXE, pxe, na)
 158#else
 159# define BOOT_TARGET_DEVICES_PXE(func)
 160#endif
 161
 162#if defined(CONFIG_CMD_DHCP)
 163# define BOOT_TARGET_DEVICES_DHCP(func) func(DHCP, dhcp, na)
 164#else
 165# define BOOT_TARGET_DEVICES_DHCP(func)
 166#endif
 167
 168#define BOOT_TARGET_DEVICES(func) \
 169        BOOT_TARGET_DEVICES_MMC(func) \
 170        BOOT_TARGET_DEVICES_USB(func) \
 171        BOOT_TARGET_DEVICES_SCSI(func) \
 172        BOOT_TARGET_DEVICES_PXE(func) \
 173        BOOT_TARGET_DEVICES_DHCP(func)
 174
 175#include <config_distro_bootcmd.h>
 176
 177/* Initial environment variables */
 178#ifndef CONFIG_EXTRA_ENV_SETTINGS
 179#define CONFIG_EXTRA_ENV_SETTINGS \
 180        ENV_MEM_LAYOUT_SETTINGS \
 181        BOOTENV \
 182        DFU_ALT_INFO
 183#endif
 184
 185/* SPL can't handle all huge variables - define just DFU */
 186#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_DFU_SUPPORT)
 187#undef CONFIG_EXTRA_ENV_SETTINGS
 188# define CONFIG_EXTRA_ENV_SETTINGS \
 189        "dfu_alt_info_ram=uboot.bin ram 0x8000000 0x1000000;" \
 190                          "atf-uboot.ub ram 0x10000000 0x1000000;" \
 191                          "Image ram 0x80000 0x3f80000;" \
 192                          "system.dtb ram 0x4000000 0x100000\0" \
 193        "dfu_bufsiz=0x1000\0"
 194#endif
 195
 196#define CONFIG_SPL_TEXT_BASE            0xfffc0000
 197#define CONFIG_SPL_STACK                0xfffffffc
 198#define CONFIG_SPL_MAX_SIZE             0x40000
 199
 200/* Just random location in OCM */
 201#define CONFIG_SPL_BSS_START_ADDR       0x0
 202#define CONFIG_SPL_BSS_MAX_SIZE         0x80000
 203
 204#if defined(CONFIG_SPL_SPI_FLASH_SUPPORT)
 205# define CONFIG_SYS_SPI_KERNEL_OFFS     0x80000
 206# define CONFIG_SYS_SPI_ARGS_OFFS       0xa0000
 207# define CONFIG_SYS_SPI_ARGS_SIZE       0xa0000
 208
 209# define CONFIG_SYS_SPI_U_BOOT_OFFS     0x170000
 210#endif
 211
 212/* u-boot is like dtb */
 213#define CONFIG_SPL_FS_LOAD_ARGS_NAME    "u-boot.bin"
 214#define CONFIG_SYS_SPL_ARGS_ADDR        0x8000000
 215
 216/* ATF is my kernel image */
 217#define CONFIG_SPL_FS_LOAD_KERNEL_NAME  "atf-uboot.ub"
 218
 219/* FIT load address for RAM boot */
 220#define CONFIG_SPL_LOAD_FIT_ADDRESS     0x10000000
 221
 222/* MMC support */
 223#ifdef CONFIG_MMC_SDHCI_ZYNQ
 224# define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION     1
 225# define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR  0 /* unused */
 226# define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS 0 /* unused */
 227# define CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR        0 /* unused */
 228# define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME        "u-boot.img"
 229#endif
 230
 231#if defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_DFU_SUPPORT)
 232# undef CONFIG_CMD_BOOTD
 233# define CONFIG_SPL_ENV_SUPPORT
 234# define CONFIG_SPL_HASH_SUPPORT
 235# define CONFIG_ENV_MAX_ENTRIES 10
 236#endif
 237
 238#define CONFIG_SYS_SPL_MALLOC_START     0x20000000
 239#define CONFIG_SYS_SPL_MALLOC_SIZE      0x100000
 240
 241#ifdef CONFIG_SPL_SYS_MALLOC_SIMPLE
 242# error "Disable CONFIG_SPL_SYS_MALLOC_SIMPLE. Full malloc needs to be used"
 243#endif
 244
 245#define CONFIG_BOARD_EARLY_INIT_F
 246
 247#endif /* __XILINX_ZYNQMP_H */
 248