152a822edSMichal Simek /* 24aecfb16SMichal Simek * (C) Copyright 2007-2010 Michal Simek 352a822edSMichal Simek * 452a822edSMichal Simek * Michal SIMEK <monstr@monstr.eu> 552a822edSMichal Simek * 61a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 752a822edSMichal Simek */ 852a822edSMichal Simek 952a822edSMichal Simek #ifndef __CONFIG_H 1052a822edSMichal Simek #define __CONFIG_H 1152a822edSMichal Simek 1252a822edSMichal Simek #include "../board/xilinx/microblaze-generic/xparameters.h" 1352a822edSMichal Simek 144aecfb16SMichal Simek /* MicroBlaze CPU */ 1552a822edSMichal Simek #define MICROBLAZE_V5 1 1652a822edSMichal Simek 17bcec8f49SStephan Linz /* linear and spi flash memory */ 181fe7e8faSStephan Linz #ifdef XILINX_FLASH_START 191fe7e8faSStephan Linz #define FLASH 20bcec8f49SStephan Linz #undef SPIFLASH 21bcec8f49SStephan Linz #undef RAMENV /* hold environment in flash */ 22bcec8f49SStephan Linz #else 23bcec8f49SStephan Linz #ifdef XILINX_SPI_FLASH_BASEADDR 24bcec8f49SStephan Linz #undef FLASH 25bcec8f49SStephan Linz #define SPIFLASH 261fe7e8faSStephan Linz #undef RAMENV /* hold environment in flash */ 271fe7e8faSStephan Linz #else 281fe7e8faSStephan Linz #undef FLASH 29bcec8f49SStephan Linz #undef SPIFLASH 301fe7e8faSStephan Linz #define RAMENV /* hold environment in RAM */ 311fe7e8faSStephan Linz #endif 32bcec8f49SStephan Linz #endif 331fe7e8faSStephan Linz 3452a822edSMichal Simek /* uart */ 3567659e2eSMichal Simek /* The following table includes the supported baudrates */ 3667659e2eSMichal Simek # define CONFIG_SYS_BAUDRATE_TABLE \ 3767659e2eSMichal Simek {300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400} 3867659e2eSMichal Simek 3952a822edSMichal Simek /* setting reset address */ 4014d0a02aSWolfgang Denk /*#define CONFIG_SYS_RESET_ADDRESS CONFIG_SYS_TEXT_BASE*/ 4152a822edSMichal Simek 4252a822edSMichal Simek /* gpio */ 4352a822edSMichal Simek #ifdef XILINX_GPIO_BASEADDR 444e779ad2SMichal Simek # define CONFIG_XILINX_GPIO 4552a822edSMichal Simek # define CONFIG_SYS_GPIO_0_ADDR XILINX_GPIO_BASEADDR 4652a822edSMichal Simek #endif 4752a822edSMichal Simek 480f21f98dSMichal Simek /* watchdog */ 490f21f98dSMichal Simek #if defined(XILINX_WATCHDOG_BASEADDR) && defined(XILINX_WATCHDOG_IRQ) 500f21f98dSMichal Simek # define CONFIG_WATCHDOG_BASEADDR XILINX_WATCHDOG_BASEADDR 510f21f98dSMichal Simek # define CONFIG_WATCHDOG_IRQ XILINX_WATCHDOG_IRQ 52b5e9b9a9SMichal Simek # ifndef CONFIG_SPL_BUILD 530f21f98dSMichal Simek # define CONFIG_HW_WATCHDOG 540f21f98dSMichal Simek # define CONFIG_XILINX_TB_WATCHDOG 550f21f98dSMichal Simek # endif 56b5e9b9a9SMichal Simek #endif 570f21f98dSMichal Simek 58e945f6dcSMichal Simek #define CONFIG_SYS_MALLOC_LEN 0xC0000 5952a822edSMichal Simek 60e945f6dcSMichal Simek /* Stack location before relocation */ 614fcd0b33SMichal Simek #define CONFIG_SYS_INIT_SP_OFFSET (CONFIG_SYS_TEXT_BASE - \ 624fcd0b33SMichal Simek CONFIG_SYS_MALLOC_F_LEN) 6352a822edSMichal Simek 648f371b18SStephan Linz /* 658f371b18SStephan Linz * CFI flash memory layout - Example 668f371b18SStephan Linz * CONFIG_SYS_FLASH_BASE = 0x2200_0000; 678f371b18SStephan Linz * CONFIG_SYS_FLASH_SIZE = 0x0080_0000; 8MB 688f371b18SStephan Linz * 698f371b18SStephan Linz * SECT_SIZE = 0x20000; 128kB is one sector 708f371b18SStephan Linz * CONFIG_ENV_SIZE = SECT_SIZE; 128kB environment store 718f371b18SStephan Linz * 728f371b18SStephan Linz * 0x2200_0000 CONFIG_SYS_FLASH_BASE 738f371b18SStephan Linz * FREE 256kB 748f371b18SStephan Linz * 0x2204_0000 CONFIG_ENV_ADDR 758f371b18SStephan Linz * ENV_AREA 128kB 768f371b18SStephan Linz * 0x2206_0000 778f371b18SStephan Linz * FREE 788f371b18SStephan Linz * 0x2280_0000 CONFIG_SYS_FLASH_BASE + CONFIG_SYS_FLASH_SIZE 798f371b18SStephan Linz * 808f371b18SStephan Linz */ 818f371b18SStephan Linz 8252a822edSMichal Simek #ifdef FLASH 8352a822edSMichal Simek # define CONFIG_SYS_FLASH_BASE XILINX_FLASH_START 8452a822edSMichal Simek # define CONFIG_SYS_FLASH_SIZE XILINX_FLASH_SIZE 8552a822edSMichal Simek # define CONFIG_SYS_FLASH_CFI 1 8652a822edSMichal Simek # define CONFIG_FLASH_CFI_DRIVER 1 874aecfb16SMichal Simek /* ?empty sector */ 884aecfb16SMichal Simek # define CONFIG_SYS_FLASH_EMPTY_INFO 1 894aecfb16SMichal Simek /* max number of memory banks */ 904aecfb16SMichal Simek # define CONFIG_SYS_MAX_FLASH_BANKS 1 914aecfb16SMichal Simek /* max number of sectors on one chip */ 924aecfb16SMichal Simek # define CONFIG_SYS_MAX_FLASH_SECT 512 934aecfb16SMichal Simek /* hardware flash protection */ 944aecfb16SMichal Simek # define CONFIG_SYS_FLASH_PROTECTION 9522ff7f4dSMichal Simek /* use buffered writes (20x faster) */ 9622ff7f4dSMichal Simek # define CONFIG_SYS_FLASH_USE_BUFFER_WRITE 1 9752a822edSMichal Simek # ifdef RAMENV 9852a822edSMichal Simek # define CONFIG_ENV_SIZE 0x1000 9952a822edSMichal Simek # define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE) 10052a822edSMichal Simek 101bcec8f49SStephan Linz # else /* FLASH && !RAMENV */ 1024aecfb16SMichal Simek /* 128K(one sector) for env */ 1034aecfb16SMichal Simek # define CONFIG_ENV_SECT_SIZE 0x20000 1044aecfb16SMichal Simek # define CONFIG_ENV_ADDR \ 1054aecfb16SMichal Simek (CONFIG_SYS_FLASH_BASE + (2 * CONFIG_ENV_SECT_SIZE)) 106330e5545SMichal Simek # define CONFIG_ENV_SIZE 0x20000 107bcec8f49SStephan Linz # endif /* FLASH && !RAMBOOT */ 10852a822edSMichal Simek #else /* !FLASH */ 109bcec8f49SStephan Linz 110bcec8f49SStephan Linz #ifdef SPIFLASH 111bcec8f49SStephan Linz # define CONFIG_SYS_SPI_BASE XILINX_SPI_FLASH_BASEADDR 112bcec8f49SStephan Linz # define CONFIG_SF_DEFAULT_MODE SPI_MODE_3 113bcec8f49SStephan Linz # define CONFIG_SF_DEFAULT_SPEED XILINX_SPI_FLASH_MAX_FREQ 114bcec8f49SStephan Linz # define CONFIG_SF_DEFAULT_CS XILINX_SPI_FLASH_CS 115bcec8f49SStephan Linz 116bcec8f49SStephan Linz # ifdef RAMENV 117bcec8f49SStephan Linz # define CONFIG_ENV_SIZE 0x1000 118bcec8f49SStephan Linz # define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE) 119bcec8f49SStephan Linz 120bcec8f49SStephan Linz # else /* SPIFLASH && !RAMENV */ 121bcec8f49SStephan Linz # define CONFIG_ENV_SPI_MODE SPI_MODE_3 122bcec8f49SStephan Linz # define CONFIG_ENV_SPI_MAX_HZ CONFIG_SF_DEFAULT_SPEED 123bcec8f49SStephan Linz # define CONFIG_ENV_SPI_CS CONFIG_SF_DEFAULT_CS 124bcec8f49SStephan Linz /* 128K(two sectors) for env */ 125bcec8f49SStephan Linz # define CONFIG_ENV_SECT_SIZE 0x10000 126bcec8f49SStephan Linz # define CONFIG_ENV_SIZE (2 * CONFIG_ENV_SECT_SIZE) 127bcec8f49SStephan Linz /* Warning: adjust the offset in respect of other flash content and size */ 128bcec8f49SStephan Linz # define CONFIG_ENV_OFFSET (128 * CONFIG_ENV_SECT_SIZE) /* at 8MB */ 129bcec8f49SStephan Linz # endif /* SPIFLASH && !RAMBOOT */ 130bcec8f49SStephan Linz #else /* !SPIFLASH */ 131bcec8f49SStephan Linz 13252a822edSMichal Simek /* ENV in RAM */ 13352a822edSMichal Simek # define CONFIG_ENV_SIZE 0x1000 13452a822edSMichal Simek # define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE - CONFIG_ENV_SIZE) 135bcec8f49SStephan Linz #endif /* !SPIFLASH */ 13652a822edSMichal Simek #endif /* !FLASH */ 13752a822edSMichal Simek 138e9b737deSMichal Simek #if defined(XILINX_USE_ICACHE) 139e9b737deSMichal Simek # define CONFIG_ICACHE 140e9b737deSMichal Simek #else 141e9b737deSMichal Simek # undef CONFIG_ICACHE 142e9b737deSMichal Simek #endif 143e9b737deSMichal Simek 144e9b737deSMichal Simek #if defined(XILINX_USE_DCACHE) 145e9b737deSMichal Simek # define CONFIG_DCACHE 146e9b737deSMichal Simek #else 147e9b737deSMichal Simek # undef CONFIG_DCACHE 148e9b737deSMichal Simek #endif 149e9b737deSMichal Simek 1505811830fSMichal Simek #ifndef XILINX_DCACHE_BYTE_SIZE 1515811830fSMichal Simek #define XILINX_DCACHE_BYTE_SIZE 32768 1525811830fSMichal Simek #endif 1535811830fSMichal Simek 15452a822edSMichal Simek /* 15552a822edSMichal Simek * BOOTP options 15652a822edSMichal Simek */ 15752a822edSMichal Simek #define CONFIG_BOOTP_BOOTFILESIZE 15852a822edSMichal Simek #define CONFIG_BOOTP_BOOTPATH 15952a822edSMichal Simek #define CONFIG_BOOTP_GATEWAY 16052a822edSMichal Simek #define CONFIG_BOOTP_HOSTNAME 16152a822edSMichal Simek 1627cfb13a7SStephan Linz #if defined(CONFIG_MTD_PARTITIONS) 1637cfb13a7SStephan Linz /* MTD partitions */ 164942556a9SStefan Roese #define CONFIG_FLASH_CFI_MTD 165c82a541dSStephan Linz #define MTDIDS_DEFAULT "nor0=flash-0" 16652a822edSMichal Simek 16752a822edSMichal Simek /* default mtd partition table */ 168c82a541dSStephan Linz #define MTDPARTS_DEFAULT "mtdparts=flash-0:256k(u-boot),"\ 16952a822edSMichal Simek "256k(env),3m(kernel),1m(romfs),"\ 17052a822edSMichal Simek "1m(cramfs),-(jffs2)" 17152a822edSMichal Simek #endif 17252a822edSMichal Simek 1734aecfb16SMichal Simek /* size of console buffer */ 1744aecfb16SMichal Simek #define CONFIG_SYS_CBSIZE 512 1754aecfb16SMichal Simek /* max number of command args */ 1764aecfb16SMichal Simek #define CONFIG_SYS_MAXARGS 15 17752a822edSMichal Simek #define CONFIG_SYS_LONGHELP 1784aecfb16SMichal Simek /* default load address */ 17944a3a91cSMichal Simek #define CONFIG_SYS_LOAD_ADDR 0 18052a822edSMichal Simek 181330e5545SMichal Simek #define CONFIG_HOSTNAME XILINX_BOARD_NAME 18252a822edSMichal Simek #define CONFIG_BOOTCOMMAND "base 0;tftp 11000000 image.img;bootm" 18352a822edSMichal Simek 18452a822edSMichal Simek /* architecture dependent code */ 18552a822edSMichal Simek #define CONFIG_SYS_USR_EXCEP /* user exception */ 18652a822edSMichal Simek 1870900bee9SMichal Simek #define CONFIG_PREBOOT "echo U-BOOT for ${hostname};setenv preboot;echo" 18852a822edSMichal Simek 189*2902a9b7SMichal Simek #ifndef CONFIG_EXTRA_ENV_SETTINGS 1904aecfb16SMichal Simek #define CONFIG_EXTRA_ENV_SETTINGS "unlock=yes\0" \ 191c82a541dSStephan Linz "nor0=flash-0\0"\ 192c82a541dSStephan Linz "mtdparts=mtdparts=flash-0:"\ 19352a822edSMichal Simek "256k(u-boot),256k(env),3m(kernel),"\ 19478376452SMichal Simek "1m(romfs),1m(cramfs),-(jffs2)\0"\ 19578376452SMichal Simek "nc=setenv stdout nc;"\ 19678376452SMichal Simek "setenv stdin nc\0" \ 19778376452SMichal Simek "serial=setenv stdout serial;"\ 19878376452SMichal Simek "setenv stdin serial\0" 199*2902a9b7SMichal Simek #endif 20052a822edSMichal Simek 20152a822edSMichal Simek #define CONFIG_CMDLINE_EDITING 20252a822edSMichal Simek 20337e892d9SMichal Simek /* Enable flat device tree support */ 20437e892d9SMichal Simek #define CONFIG_LMB 1 20537e892d9SMichal Simek 2064632b1eaSMichal Simek #if defined(CONFIG_XILINX_AXIEMAC) 207f5e5e1ffSStephan Linz # define CONFIG_MII 1 208f5e5e1ffSStephan Linz # define CONFIG_SYS_FAULT_ECHO_LINK_DOWN 1 209f5e5e1ffSStephan Linz # define CONFIG_PHY_ATHEROS 1 210f5e5e1ffSStephan Linz # define CONFIG_PHY_BROADCOM 1 211f5e5e1ffSStephan Linz # define CONFIG_PHY_DAVICOM 1 212f5e5e1ffSStephan Linz # define CONFIG_PHY_LXT 1 213f5e5e1ffSStephan Linz # define CONFIG_PHY_MARVELL 1 214f5e5e1ffSStephan Linz # define CONFIG_PHY_NATSEMI 1 215f5e5e1ffSStephan Linz # define CONFIG_PHY_REALTEK 1 216f5e5e1ffSStephan Linz # define CONFIG_PHY_VITESSE 1 217f5e5e1ffSStephan Linz #else 218f5e5e1ffSStephan Linz # undef CONFIG_MII 219f5e5e1ffSStephan Linz #endif 220f5e5e1ffSStephan Linz 2219d242745SMichal Simek /* SPL part */ 2229d242745SMichal Simek #define CONFIG_SPL_FRAMEWORK 2239d242745SMichal Simek 2244dd09742SMichal Simek #ifdef CONFIG_SYS_FLASH_BASE 2254dd09742SMichal Simek # define CONFIG_SYS_UBOOT_BASE CONFIG_SYS_FLASH_BASE 2264dd09742SMichal Simek #endif 2279d242745SMichal Simek 2289d242745SMichal Simek /* for booting directly linux */ 2299d242745SMichal Simek 2309d242745SMichal Simek #define CONFIG_SYS_FDT_BASE (CONFIG_SYS_FLASH_BASE + \ 2319d242745SMichal Simek 0x40000) 2325aa79f26SMike Looijmans #define CONFIG_SYS_FDT_SIZE (16<<10) 2339d242745SMichal Simek #define CONFIG_SYS_SPL_ARGS_ADDR (CONFIG_SYS_TEXT_BASE + \ 2349d242745SMichal Simek 0x1000000) 2359d242745SMichal Simek 2369d242745SMichal Simek /* SP location before relocation, must use scratch RAM */ 2379d242745SMichal Simek /* BRAM start */ 2389d242745SMichal Simek #define CONFIG_SYS_INIT_RAM_ADDR 0x0 2399d242745SMichal Simek /* BRAM size - will be generated */ 240ca7d2266SMichal Simek #define CONFIG_SYS_INIT_RAM_SIZE 0x100000 241ca7d2266SMichal Simek 242ca7d2266SMichal Simek # define CONFIG_SPL_STACK_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \ 2439d242745SMichal Simek CONFIG_SYS_INIT_RAM_SIZE - \ 244ca7d2266SMichal Simek CONFIG_SYS_MALLOC_F_LEN) 2459d242745SMichal Simek 2469d242745SMichal Simek /* Just for sure that there is a space for stack */ 2479d242745SMichal Simek #define CONFIG_SPL_STACK_SIZE 0x100 2489d242745SMichal Simek 2499d242745SMichal Simek #define CONFIG_SYS_UBOOT_START CONFIG_SYS_TEXT_BASE 2509d242745SMichal Simek 2519d242745SMichal Simek #define CONFIG_SPL_MAX_FOOTPRINT (CONFIG_SYS_INIT_RAM_SIZE - \ 2529d242745SMichal Simek CONFIG_SYS_INIT_RAM_ADDR - \ 253ca7d2266SMichal Simek CONFIG_SYS_MALLOC_F_LEN - \ 2549d242745SMichal Simek CONFIG_SPL_STACK_SIZE) 2559d242745SMichal Simek 25652a822edSMichal Simek #endif /* __CONFIG_H */ 257