184c7204bSMichal Simek /* 284c7204bSMichal Simek * Configuration for Xilinx ZynqMP 384c7204bSMichal Simek * (C) Copyright 2014 - 2015 Xilinx, Inc. 484c7204bSMichal Simek * Michal Simek <michal.simek@xilinx.com> 584c7204bSMichal Simek * 684c7204bSMichal Simek * Based on Configuration for Versatile Express 784c7204bSMichal Simek * 884c7204bSMichal Simek * SPDX-License-Identifier: GPL-2.0+ 984c7204bSMichal Simek */ 1084c7204bSMichal Simek 1184c7204bSMichal Simek #ifndef __XILINX_ZYNQMP_H 1284c7204bSMichal Simek #define __XILINX_ZYNQMP_H 1384c7204bSMichal Simek 1484c7204bSMichal Simek #define CONFIG_REMAKE_ELF 1584c7204bSMichal Simek 1684c7204bSMichal Simek /* #define CONFIG_ARMV8_SWITCH_TO_EL1 */ 1784c7204bSMichal Simek 1884c7204bSMichal Simek #define CONFIG_SYS_NO_FLASH 1984c7204bSMichal Simek 2084c7204bSMichal Simek #define CONFIG_SYS_GENERIC_BOARD 2184c7204bSMichal Simek 2284c7204bSMichal Simek /* Generic Interrupt Controller Definitions */ 2384c7204bSMichal Simek #define CONFIG_GICV2 2484c7204bSMichal Simek #define GICD_BASE 0xF9010000 2584c7204bSMichal Simek #define GICC_BASE 0xF9020000 2684c7204bSMichal Simek 2784c7204bSMichal Simek /* Physical Memory Map */ 2884c7204bSMichal Simek #define CONFIG_NR_DRAM_BANKS 1 2984c7204bSMichal Simek #define CONFIG_SYS_SDRAM_BASE 0 3084c7204bSMichal Simek #define CONFIG_SYS_SDRAM_SIZE 0x40000000 3184c7204bSMichal Simek 3284c7204bSMichal Simek #define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE 3384c7204bSMichal Simek #define CONFIG_SYS_MEMTEST_END CONFIG_SYS_SDRAM_SIZE 3484c7204bSMichal Simek 3584c7204bSMichal Simek /* Have release address at the end of 256MB for now */ 3684c7204bSMichal Simek #define CPU_RELEASE_ADDR 0xFFFFFF0 3784c7204bSMichal Simek 3884c7204bSMichal Simek /* Cache Definitions */ 39222b2129SSiva Durga Prasad Paladugu #define CONFIG_SYS_CACHELINE_SIZE 64 4084c7204bSMichal Simek 4184c7204bSMichal Simek #define CONFIG_IDENT_STRING " Xilinx ZynqMP" 4284c7204bSMichal Simek 4384c7204bSMichal Simek #define CONFIG_SYS_TEXT_BASE 0x8000000 4484c7204bSMichal Simek #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + 0x7fff0) 4584c7204bSMichal Simek 4684c7204bSMichal Simek /* Flat Device Tree Definitions */ 4784c7204bSMichal Simek #define CONFIG_OF_LIBFDT 4884c7204bSMichal Simek 4984c7204bSMichal Simek /* Generic Timer Definitions - setup in EL3. Setup by ATF for other cases */ 5084c7204bSMichal Simek #define COUNTER_FREQUENCY 4000000 5184c7204bSMichal Simek 5284c7204bSMichal Simek /* Size of malloc() pool */ 5384c7204bSMichal Simek #define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 0x400000) 5484c7204bSMichal Simek 5584c7204bSMichal Simek /* Serial setup */ 5684c7204bSMichal Simek #define CONFIG_ZYNQ_SERIAL_UART0 5784c7204bSMichal Simek #define CONFIG_ZYNQ_SERIAL 5884c7204bSMichal Simek 5984c7204bSMichal Simek #define CONFIG_CONS_INDEX 0 6084c7204bSMichal Simek #define CONFIG_BAUDRATE 115200 6184c7204bSMichal Simek #define CONFIG_SYS_BAUDRATE_TABLE \ 6284c7204bSMichal Simek { 4800, 9600, 19200, 38400, 57600, 115200 } 6384c7204bSMichal Simek 6484c7204bSMichal Simek /* Command line configuration */ 6584c7204bSMichal Simek #define CONFIG_CMD_ENV 6684c7204bSMichal Simek #define CONFIG_CMD_EXT2 6784c7204bSMichal Simek #define CONFIG_CMD_EXT4 6884c7204bSMichal Simek #define CONFIG_CMD_FAT 6984c7204bSMichal Simek #define CONFIG_CMD_MEMORY 7084c7204bSMichal Simek #define CONFIG_DOS_PARTITION 715cb24200SMichal Simek #define CONFIG_CMD_ELF 725cb24200SMichal Simek #define CONFIG_MP 7384c7204bSMichal Simek 7484c7204bSMichal Simek #if defined(CONFIG_ZYNQ_SDHCI0) || defined(CONFIG_ZYNQ_SDHCI1) 7584c7204bSMichal Simek # define CONFIG_MMC 7684c7204bSMichal Simek # define CONFIG_GENERIC_MMC 7784c7204bSMichal Simek # define CONFIG_SDHCI 7884c7204bSMichal Simek # define CONFIG_ZYNQ_SDHCI 7984c7204bSMichal Simek # define CONFIG_CMD_MMC 8084c7204bSMichal Simek #endif 8184c7204bSMichal Simek 8284c7204bSMichal Simek #if defined(CONFIG_ZYNQ_SDHCI) 8384c7204bSMichal Simek # define CONFIG_FAT_WRITE 8484c7204bSMichal Simek # define CONFIG_CMD_EXT4_WRITE 8584c7204bSMichal Simek #endif 8684c7204bSMichal Simek 8784c7204bSMichal Simek /* Miscellaneous configurable options */ 8884c7204bSMichal Simek #define CONFIG_SYS_LOAD_ADDR 0x8000000 8984c7204bSMichal Simek 9084c7204bSMichal Simek /* Initial environment variables */ 9184c7204bSMichal Simek #define CONFIG_EXTRA_ENV_SETTINGS \ 9284c7204bSMichal Simek "kernel_addr=0x80000\0" \ 9384c7204bSMichal Simek "fdt_addr=0x7000000\0" \ 9484c7204bSMichal Simek "fdt_high=0x10000000\0" \ 9584c7204bSMichal Simek "sdboot=mmcinfo && fatload mmc 0:0 $fdt_addr system.dtb && " \ 9684c7204bSMichal Simek "fatload mmc 0:0 $kernel_addr Image && booti $kernel_addr - $fdt_addr\0" 9784c7204bSMichal Simek 9884c7204bSMichal Simek #define CONFIG_BOOTARGS "setenv bootargs console=ttyPS0,${baudrate} " \ 9984c7204bSMichal Simek "earlycon=cdns,mmio,0xff000000,${baudrate}n8" 10084c7204bSMichal Simek #define CONFIG_PREBOOT "run bootargs" 10184c7204bSMichal Simek #define CONFIG_BOOTCOMMAND "run $modeboot" 10284c7204bSMichal Simek #define CONFIG_BOOTDELAY 5 10384c7204bSMichal Simek 10484c7204bSMichal Simek #define CONFIG_BOARD_LATE_INIT 10584c7204bSMichal Simek 10684c7204bSMichal Simek /* Do not preserve environment */ 10784c7204bSMichal Simek #define CONFIG_ENV_IS_NOWHERE 1 10884c7204bSMichal Simek #define CONFIG_ENV_SIZE 0x1000 10984c7204bSMichal Simek 11084c7204bSMichal Simek /* Monitor Command Prompt */ 11184c7204bSMichal Simek /* Console I/O Buffer Size */ 11284c7204bSMichal Simek #define CONFIG_SYS_CBSIZE 2048 11384c7204bSMichal Simek #define CONFIG_SYS_PROMPT "ZynqMP> " 11484c7204bSMichal Simek #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \ 11584c7204bSMichal Simek sizeof(CONFIG_SYS_PROMPT) + 16) 11684c7204bSMichal Simek #define CONFIG_SYS_HUSH_PARSER 11784c7204bSMichal Simek #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE 11884c7204bSMichal Simek #define CONFIG_SYS_LONGHELP 11984c7204bSMichal Simek #define CONFIG_CMDLINE_EDITING 12084c7204bSMichal Simek #define CONFIG_SYS_MAXARGS 64 12184c7204bSMichal Simek 122*2594e03cSSiva Durga Prasad Paladugu #define CONFIG_ZYNQ_I2C0 123*2594e03cSSiva Durga Prasad Paladugu #define CONFIG_SYS_I2C_ZYNQ 124*2594e03cSSiva Durga Prasad Paladugu 125*2594e03cSSiva Durga Prasad Paladugu /* I2C */ 126*2594e03cSSiva Durga Prasad Paladugu #if defined(CONFIG_SYS_I2C_ZYNQ) 127*2594e03cSSiva Durga Prasad Paladugu # define CONFIG_CMD_I2C 128*2594e03cSSiva Durga Prasad Paladugu # define CONFIG_SYS_I2C 129*2594e03cSSiva Durga Prasad Paladugu # define CONFIG_SYS_I2C_ZYNQ_SPEED 100000 130*2594e03cSSiva Durga Prasad Paladugu # define CONFIG_SYS_I2C_ZYNQ_SLAVE 0 131*2594e03cSSiva Durga Prasad Paladugu #endif 132*2594e03cSSiva Durga Prasad Paladugu 133*2594e03cSSiva Durga Prasad Paladugu #define CONFIG_ZYNQMP_EEPROM 134*2594e03cSSiva Durga Prasad Paladugu 135*2594e03cSSiva Durga Prasad Paladugu /* EEPROM */ 136*2594e03cSSiva Durga Prasad Paladugu #ifdef CONFIG_ZYNQMP_EEPROM 137*2594e03cSSiva Durga Prasad Paladugu # define CONFIG_CMD_EEPROM 138*2594e03cSSiva Durga Prasad Paladugu # define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2 139*2594e03cSSiva Durga Prasad Paladugu # define CONFIG_SYS_I2C_EEPROM_ADDR 0x54 140*2594e03cSSiva Durga Prasad Paladugu # define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 4 141*2594e03cSSiva Durga Prasad Paladugu # define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 5 142*2594e03cSSiva Durga Prasad Paladugu # define CONFIG_SYS_EEPROM_SIZE (64 * 1024) 143*2594e03cSSiva Durga Prasad Paladugu #endif 144*2594e03cSSiva Durga Prasad Paladugu 14584c7204bSMichal Simek #define CONFIG_FIT 14684c7204bSMichal Simek #define CONFIG_FIT_VERBOSE /* enable fit_format_{error,warning}() */ 14784c7204bSMichal Simek 14884c7204bSMichal Simek #define CONFIG_SYS_BOOTM_LEN (60 * 1024 * 1024) 14984c7204bSMichal Simek 15084c7204bSMichal Simek #define CONFIG_CMD_BOOTI 15184c7204bSMichal Simek #define CONFIG_CMD_UNZIP 15284c7204bSMichal Simek 15384c7204bSMichal Simek #define CONFIG_BOARD_EARLY_INIT_R 15484c7204bSMichal Simek #define CONFIG_CLOCKS 15584c7204bSMichal Simek 15684c7204bSMichal Simek #endif /* __XILINX_ZYNQMP_H */ 157