19d79e575SWolfgang Wegner /* 29d79e575SWolfgang Wegner * Configuration settings for the Sentec Cobra Board. 39d79e575SWolfgang Wegner * 49d79e575SWolfgang Wegner * (C) Copyright 2003 Josef Baumgartner <josef.baumgartner@telex.de> 59d79e575SWolfgang Wegner * 61a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 79d79e575SWolfgang Wegner */ 89d79e575SWolfgang Wegner 99d79e575SWolfgang Wegner /* 109d79e575SWolfgang Wegner * configuration for ASTRO "Urmel" board. 119d79e575SWolfgang Wegner * Originating from Cobra5272 configuration, messed up by 129d79e575SWolfgang Wegner * Wolfgang Wegner <w.wegner@astro-kom.de> 139d79e575SWolfgang Wegner * Please do not bother the original author with bug reports 149d79e575SWolfgang Wegner * concerning this file. 159d79e575SWolfgang Wegner */ 169d79e575SWolfgang Wegner 179d79e575SWolfgang Wegner #ifndef _CONFIG_ASTRO_MCF5373L_H 189d79e575SWolfgang Wegner #define _CONFIG_ASTRO_MCF5373L_H 199d79e575SWolfgang Wegner 2051926d5eSMarek Vasut #include <linux/stringify.h> 2151926d5eSMarek Vasut 229d79e575SWolfgang Wegner /* 239d79e575SWolfgang Wegner * set the card type to actually compile for; either of 249d79e575SWolfgang Wegner * the possibilities listed below has to be used! 259d79e575SWolfgang Wegner */ 269d79e575SWolfgang Wegner #define CONFIG_ASTRO_V532 1 279d79e575SWolfgang Wegner 289d79e575SWolfgang Wegner #if CONFIG_ASTRO_V532 299d79e575SWolfgang Wegner #define ASTRO_ID 0xF8 309d79e575SWolfgang Wegner #elif CONFIG_ASTRO_V512 319d79e575SWolfgang Wegner #define ASTRO_ID 0xFA 329d79e575SWolfgang Wegner #elif CONFIG_ASTRO_TWIN7S2 339d79e575SWolfgang Wegner #define ASTRO_ID 0xF9 349d79e575SWolfgang Wegner #elif CONFIG_ASTRO_V912 359d79e575SWolfgang Wegner #define ASTRO_ID 0xFC 369d79e575SWolfgang Wegner #elif CONFIG_ASTRO_COFDMDUOS2 379d79e575SWolfgang Wegner #define ASTRO_ID 0xFB 389d79e575SWolfgang Wegner #else 399d79e575SWolfgang Wegner #error No card type defined! 409d79e575SWolfgang Wegner #endif 419d79e575SWolfgang Wegner 429d79e575SWolfgang Wegner #define CONFIG_ASTRO5373L /* define board type */ 439d79e575SWolfgang Wegner 449d79e575SWolfgang Wegner /* Command line configuration */ 459d79e575SWolfgang Wegner /* 46d24f2d32SWolfgang Denk * CONFIG_RAM defines if u-boot is loaded via BDM (or started from 479d79e575SWolfgang Wegner * a different bootloader that has already performed RAM setup) or 489d79e575SWolfgang Wegner * started directly from flash, which is the regular case for production 499d79e575SWolfgang Wegner * boards. 509d79e575SWolfgang Wegner */ 51d24f2d32SWolfgang Denk #ifdef CONFIG_RAM 529d79e575SWolfgang Wegner #define CONFIG_MONITOR_IS_IN_RAM 5314d0a02aSWolfgang Denk #define CONFIG_SYS_TEXT_BASE 0x40020000 549d79e575SWolfgang Wegner #define ENABLE_JFFS 0 559d79e575SWolfgang Wegner #else 5614d0a02aSWolfgang Denk #define CONFIG_SYS_TEXT_BASE 0x00000000 579d79e575SWolfgang Wegner #define ENABLE_JFFS 1 589d79e575SWolfgang Wegner #endif 599d79e575SWolfgang Wegner 609d79e575SWolfgang Wegner #define CONFIG_CMDLINE_EDITING 619d79e575SWolfgang Wegner 629d79e575SWolfgang Wegner #define CONFIG_MCFRTC 639d79e575SWolfgang Wegner #undef RTC_DEBUG 649d79e575SWolfgang Wegner 659d79e575SWolfgang Wegner /* Timer */ 669d79e575SWolfgang Wegner #define CONFIG_MCFTMR 679d79e575SWolfgang Wegner #undef CONFIG_MCFPIT 689d79e575SWolfgang Wegner 699d79e575SWolfgang Wegner /* I2C */ 7000f792e0SHeiko Schocher #define CONFIG_SYS_I2C 7100f792e0SHeiko Schocher #define CONFIG_SYS_I2C_FSL 7200f792e0SHeiko Schocher #define CONFIG_SYS_FSL_I2C_SPEED 80000 7300f792e0SHeiko Schocher #define CONFIG_SYS_FSL_I2C_SLAVE 0x7F 7400f792e0SHeiko Schocher #define CONFIG_SYS_FSL_I2C_OFFSET 0x58000 759d79e575SWolfgang Wegner #define CONFIG_SYS_IMMR CONFIG_SYS_MBAR 769d79e575SWolfgang Wegner 779d79e575SWolfgang Wegner /* 789d79e575SWolfgang Wegner * Defines processor clock - important for correct timings concerning serial 799d79e575SWolfgang Wegner * interface etc. 809d79e575SWolfgang Wegner */ 819d79e575SWolfgang Wegner 829d79e575SWolfgang Wegner #define CONFIG_SYS_CLK 80000000 839d79e575SWolfgang Wegner #define CONFIG_SYS_CPU_CLK (CONFIG_SYS_CLK * 3) 849d79e575SWolfgang Wegner #define CONFIG_SYS_SDRAM_SIZE 32 /* SDRAM size in MB */ 859d79e575SWolfgang Wegner 869d79e575SWolfgang Wegner #define CONFIG_SYS_CORE_SRAM_SIZE 0x8000 879d79e575SWolfgang Wegner #define CONFIG_SYS_CORE_SRAM 0x80000000 889d79e575SWolfgang Wegner 899d79e575SWolfgang Wegner #define CONFIG_SYS_UNIFY_CACHE 909d79e575SWolfgang Wegner 919d79e575SWolfgang Wegner /* 929d79e575SWolfgang Wegner * Define baudrate for UART1 (console output, tftp, ...) 939d79e575SWolfgang Wegner * default value of CONFIG_BAUDRATE for Sentec board: 19200 baud 949d79e575SWolfgang Wegner * CONFIG_SYS_BAUDRATE_TABLE defines values that can be selected 959d79e575SWolfgang Wegner * in u-boot command interface 969d79e575SWolfgang Wegner */ 979d79e575SWolfgang Wegner 989d79e575SWolfgang Wegner #define CONFIG_MCFUART 999d79e575SWolfgang Wegner #define CONFIG_SYS_UART_PORT (2) 1009d79e575SWolfgang Wegner #define CONFIG_SYS_UART2_ALT3_GPIO 1019d79e575SWolfgang Wegner 1029d79e575SWolfgang Wegner /* 1039d79e575SWolfgang Wegner * Watchdog configuration; Watchdog is disabled for running from RAM 1049d79e575SWolfgang Wegner * and set to highest possible value else. Beware there is no check 1059d79e575SWolfgang Wegner * in the watchdog code to validate the timeout value set here! 1069d79e575SWolfgang Wegner */ 1079d79e575SWolfgang Wegner 1089d79e575SWolfgang Wegner #ifndef CONFIG_MONITOR_IS_IN_RAM 1099d79e575SWolfgang Wegner #define CONFIG_WATCHDOG 1109d79e575SWolfgang Wegner #define CONFIG_WATCHDOG_TIMEOUT 3355 /* timeout in milliseconds */ 1119d79e575SWolfgang Wegner #endif 1129d79e575SWolfgang Wegner 1139d79e575SWolfgang Wegner /* 1149d79e575SWolfgang Wegner * Configuration for environment 1159d79e575SWolfgang Wegner * Environment is located in the last sector of the flash 1169d79e575SWolfgang Wegner */ 1179d79e575SWolfgang Wegner 1189d79e575SWolfgang Wegner #ifndef CONFIG_MONITOR_IS_IN_RAM 1199d79e575SWolfgang Wegner #define CONFIG_ENV_OFFSET 0x1FF8000 1209d79e575SWolfgang Wegner #define CONFIG_ENV_SECT_SIZE 0x8000 1219d79e575SWolfgang Wegner #else 1229d79e575SWolfgang Wegner /* 1239d79e575SWolfgang Wegner * environment in RAM - This is used to use a single PC-based application 1249d79e575SWolfgang Wegner * to load an image, load U-Boot, load an environment and then start U-Boot 1259d79e575SWolfgang Wegner * to execute the commands from the environment. Feedback is done via setting 1269d79e575SWolfgang Wegner * and reading memory locations. 1279d79e575SWolfgang Wegner */ 1289d79e575SWolfgang Wegner #define CONFIG_ENV_ADDR 0x40060000 1299d79e575SWolfgang Wegner #define CONFIG_ENV_SECT_SIZE 0x8000 1309d79e575SWolfgang Wegner #endif 1319d79e575SWolfgang Wegner 1329d79e575SWolfgang Wegner /* here we put our FPGA configuration... */ 1339d79e575SWolfgang Wegner #define CONFIG_MISC_INIT_R 1 1349d79e575SWolfgang Wegner 1359d79e575SWolfgang Wegner /* Define user parameters that have to be customized most likely */ 1369d79e575SWolfgang Wegner 1379d79e575SWolfgang Wegner /* AUTOBOOT settings - booting images automatically by u-boot after power on */ 1389d79e575SWolfgang Wegner 1399d79e575SWolfgang Wegner /* 1409d79e575SWolfgang Wegner * The following settings will be contained in the environment block ; if you 1419d79e575SWolfgang Wegner * want to use a neutral environment all those settings can be manually set in 1429d79e575SWolfgang Wegner * u-boot: 'set' command 1439d79e575SWolfgang Wegner */ 1449d79e575SWolfgang Wegner 1459d79e575SWolfgang Wegner #define CONFIG_EXTRA_ENV_SETTINGS \ 1469d79e575SWolfgang Wegner "loaderversion=11\0" \ 14751926d5eSMarek Vasut "card_id="__stringify(ASTRO_ID)"\0" \ 1489d79e575SWolfgang Wegner "alterafile=0\0" \ 1499d79e575SWolfgang Wegner "xilinxfile=0\0" \ 1509d79e575SWolfgang Wegner "xilinxload=imxtract 0x540000 $xilinxfile 0x41000000&&"\ 1519d79e575SWolfgang Wegner "fpga load 0 0x41000000 $filesize\0" \ 1529d79e575SWolfgang Wegner "alteraload=imxtract 0x6c0000 $alterafile 0x41000000&&"\ 1539d79e575SWolfgang Wegner "fpga load 1 0x41000000 $filesize\0" \ 1549d79e575SWolfgang Wegner "env_default=1\0" \ 1559d79e575SWolfgang Wegner "env_check=if test $env_default -eq 1;"\ 1569d79e575SWolfgang Wegner " then setenv env_default 0;saveenv;fi\0" 1579d79e575SWolfgang Wegner 1589d79e575SWolfgang Wegner /* 1599d79e575SWolfgang Wegner * "update" is a non-standard command that has to be supplied 1609d79e575SWolfgang Wegner * by external update.c; This is not included in mainline because 1619d79e575SWolfgang Wegner * it needs non-blocking CFI routines. 1629d79e575SWolfgang Wegner */ 1639d79e575SWolfgang Wegner #ifdef CONFIG_MONITOR_IS_IN_RAM 1649d79e575SWolfgang Wegner #define CONFIG_BOOTCOMMAND "" /* no autoboot in this case */ 1659d79e575SWolfgang Wegner #else 1669d79e575SWolfgang Wegner #if CONFIG_ASTRO_V532 1679d79e575SWolfgang Wegner #define CONFIG_BOOTCOMMAND "protect off 0x80000 0x1ffffff;run env_check;"\ 1689d79e575SWolfgang Wegner "run xilinxload&&run alteraload&&bootm 0x80000;"\ 1699d79e575SWolfgang Wegner "update;reset" 1709d79e575SWolfgang Wegner #else 1719d79e575SWolfgang Wegner #define CONFIG_BOOTCOMMAND "protect off 0x80000 0x1ffffff;run env_check;"\ 1729d79e575SWolfgang Wegner "run xilinxload&&bootm 0x80000;update;reset" 1739d79e575SWolfgang Wegner #endif 1749d79e575SWolfgang Wegner #endif 1759d79e575SWolfgang Wegner 1769d79e575SWolfgang Wegner /* default RAM address for user programs */ 1779d79e575SWolfgang Wegner #define CONFIG_SYS_LOAD_ADDR 0x20000 1789d79e575SWolfgang Wegner 1799d79e575SWolfgang Wegner #define CONFIG_SYS_LONGHELP 1809d79e575SWolfgang Wegner 1819d79e575SWolfgang Wegner #define CONFIG_FPGA_COUNT 1 1829d79e575SWolfgang Wegner #define CONFIG_FPGA_XILINX 1839d79e575SWolfgang Wegner #define CONFIG_FPGA_SPARTAN3 1849d79e575SWolfgang Wegner #define CONFIG_FPGA_CYCLON2 1859d79e575SWolfgang Wegner #define CONFIG_SYS_FPGA_PROG_FEEDBACK 1869d79e575SWolfgang Wegner #define CONFIG_SYS_FPGA_WAIT 1000 1879d79e575SWolfgang Wegner 1889d79e575SWolfgang Wegner /* End of user parameters to be customized */ 1899d79e575SWolfgang Wegner 1909d79e575SWolfgang Wegner /* Defines memory range for test */ 1919d79e575SWolfgang Wegner 1929d79e575SWolfgang Wegner #define CONFIG_SYS_MEMTEST_START 0x40020000 1939d79e575SWolfgang Wegner #define CONFIG_SYS_MEMTEST_END 0x41ffffff 1949d79e575SWolfgang Wegner 1959d79e575SWolfgang Wegner /* 1969d79e575SWolfgang Wegner * Low Level Configuration Settings 1979d79e575SWolfgang Wegner * (address mappings, register initial values, etc.) 1989d79e575SWolfgang Wegner * You should know what you are doing if you make changes here. 1999d79e575SWolfgang Wegner */ 2009d79e575SWolfgang Wegner 2019d79e575SWolfgang Wegner /* Base register address */ 2029d79e575SWolfgang Wegner 2039d79e575SWolfgang Wegner #define CONFIG_SYS_MBAR 0xFC000000 /* Register Base Addrs */ 2049d79e575SWolfgang Wegner 2059d79e575SWolfgang Wegner /* System Conf. Reg. & System Protection Reg. */ 2069d79e575SWolfgang Wegner 2079d79e575SWolfgang Wegner #define CONFIG_SYS_SCR 0x0003; 2089d79e575SWolfgang Wegner #define CONFIG_SYS_SPR 0xffff; 2099d79e575SWolfgang Wegner 2109d79e575SWolfgang Wegner /* 2119d79e575SWolfgang Wegner * Definitions for initial stack pointer and data area (in internal SRAM) 2129d79e575SWolfgang Wegner */ 2139d79e575SWolfgang Wegner #define CONFIG_SYS_INIT_RAM_ADDR 0x80000000 214553f0982SWolfgang Denk #define CONFIG_SYS_INIT_RAM_SIZE 0x8000 2159d79e575SWolfgang Wegner #define CONFIG_SYS_INIT_RAM_CTRL 0x221 216553f0982SWolfgang Denk #define CONFIG_SYS_GBL_DATA_OFFSET (CONFIG_SYS_INIT_RAM_SIZE - \ 21725ddd1fbSWolfgang Denk GENERATED_GBL_DATA_SIZE) 2189d79e575SWolfgang Wegner #define CONFIG_SYS_INIT_SP_OFFSET CONFIG_SYS_GBL_DATA_OFFSET 2199d79e575SWolfgang Wegner 2209d79e575SWolfgang Wegner /* 2219d79e575SWolfgang Wegner * Start addresses for the final memory configuration 2229d79e575SWolfgang Wegner * (Set up by the startup code) 2239d79e575SWolfgang Wegner * for MCF5373, the allowable range is 0x40000000 to 0x7FF00000 2249d79e575SWolfgang Wegner */ 2259d79e575SWolfgang Wegner #define CONFIG_SYS_SDRAM_BASE 0x40000000 2269d79e575SWolfgang Wegner 2279d79e575SWolfgang Wegner /* 2289d79e575SWolfgang Wegner * Chipselect bank definitions 2299d79e575SWolfgang Wegner * 2309d79e575SWolfgang Wegner * CS0 - Flash 32MB (first 16MB) 2319d79e575SWolfgang Wegner * CS1 - Flash 32MB (second half) 2329d79e575SWolfgang Wegner * CS2 - FPGA 2339d79e575SWolfgang Wegner * CS3 - FPGA 2349d79e575SWolfgang Wegner * CS4 - unused 2359d79e575SWolfgang Wegner * CS5 - unused 2369d79e575SWolfgang Wegner */ 2379d79e575SWolfgang Wegner #define CONFIG_SYS_CS0_BASE 0 2389d79e575SWolfgang Wegner #define CONFIG_SYS_CS0_MASK 0x00ff0001 2399d79e575SWolfgang Wegner #define CONFIG_SYS_CS0_CTRL 0x00001fc0 2409d79e575SWolfgang Wegner 2419d79e575SWolfgang Wegner #define CONFIG_SYS_CS1_BASE 0x01000000 2429d79e575SWolfgang Wegner #define CONFIG_SYS_CS1_MASK 0x00ff0001 2439d79e575SWolfgang Wegner #define CONFIG_SYS_CS1_CTRL 0x00001fc0 2449d79e575SWolfgang Wegner 2459d79e575SWolfgang Wegner #define CONFIG_SYS_CS2_BASE 0x20000000 2469d79e575SWolfgang Wegner #define CONFIG_SYS_CS2_MASK 0x00ff0001 2479d79e575SWolfgang Wegner #define CONFIG_SYS_CS2_CTRL 0x0000fec0 2489d79e575SWolfgang Wegner 2499d79e575SWolfgang Wegner #define CONFIG_SYS_CS3_BASE 0x21000000 2509d79e575SWolfgang Wegner #define CONFIG_SYS_CS3_MASK 0x00ff0001 2519d79e575SWolfgang Wegner #define CONFIG_SYS_CS3_CTRL 0x0000fec0 2529d79e575SWolfgang Wegner 2539d79e575SWolfgang Wegner #define CONFIG_SYS_FLASH_BASE 0x00000000 2549d79e575SWolfgang Wegner 2559d79e575SWolfgang Wegner #ifdef CONFIG_MONITOR_IS_IN_RAM 25614d0a02aSWolfgang Denk #define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE 2579d79e575SWolfgang Wegner #else 2589d79e575SWolfgang Wegner /* This is mainly used during relocation in start.S */ 2599d79e575SWolfgang Wegner #define CONFIG_SYS_MONITOR_BASE (CONFIG_SYS_FLASH_BASE + 0x400) 2609d79e575SWolfgang Wegner #endif 2619d79e575SWolfgang Wegner /* Reserve 256 kB for Monitor */ 2629d79e575SWolfgang Wegner #define CONFIG_SYS_MONITOR_LEN (256 << 10) 2639d79e575SWolfgang Wegner 2649d79e575SWolfgang Wegner #define CONFIG_SYS_BOOTPARAMS_LEN (64 * 1024) 2659d79e575SWolfgang Wegner /* Reserve 128 kB for malloc() */ 2669d79e575SWolfgang Wegner #define CONFIG_SYS_MALLOC_LEN (128 << 10) 2679d79e575SWolfgang Wegner 2689d79e575SWolfgang Wegner /* 2699d79e575SWolfgang Wegner * For booting Linux, the board info and command line data 2709d79e575SWolfgang Wegner * have to be in the first 8 MB of memory, since this is 2719d79e575SWolfgang Wegner * the maximum mapped by the Linux kernel during initialization ?? 2729d79e575SWolfgang Wegner */ 2739d79e575SWolfgang Wegner #define CONFIG_SYS_BOOTMAPSZ (CONFIG_SYS_SDRAM_BASE + \ 2749d79e575SWolfgang Wegner (CONFIG_SYS_SDRAM_SIZE << 20)) 2759d79e575SWolfgang Wegner 2769d79e575SWolfgang Wegner /* FLASH organization */ 2779d79e575SWolfgang Wegner #define CONFIG_SYS_MAX_FLASH_BANKS 1 2789d79e575SWolfgang Wegner #define CONFIG_SYS_MAX_FLASH_SECT 259 2799d79e575SWolfgang Wegner #define CONFIG_SYS_FLASH_ERASE_TOUT 1000 2809d79e575SWolfgang Wegner 2819d79e575SWolfgang Wegner #define CONFIG_SYS_FLASH_CFI 1 2829d79e575SWolfgang Wegner #define CONFIG_FLASH_CFI_DRIVER 1 2839d79e575SWolfgang Wegner #define CONFIG_SYS_FLASH_SIZE 0x2000000 2849d79e575SWolfgang Wegner #define CONFIG_SYS_FLASH_PROTECTION 1 2859d79e575SWolfgang Wegner #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE 1 2869d79e575SWolfgang Wegner #define CONFIG_SYS_FLASH_CFI_NONBLOCK 1 2879d79e575SWolfgang Wegner 2885296cb1dSangelo@sysam.it #define LDS_BOARD_TEXT \ 2895296cb1dSangelo@sysam.it . = DEFINED(env_offset) ? env_offset : .; \ 290*0649cd0dSSimon Glass env/embedded.o(.text*) 2915296cb1dSangelo@sysam.it 2929d79e575SWolfgang Wegner #if ENABLE_JFFS 2939d79e575SWolfgang Wegner /* JFFS Partition offset set */ 2949d79e575SWolfgang Wegner #define CONFIG_SYS_JFFS2_FIRST_BANK 0 2959d79e575SWolfgang Wegner #define CONFIG_SYS_JFFS2_NUM_BANKS 1 2969d79e575SWolfgang Wegner /* 512k reserved for u-boot */ 2979d79e575SWolfgang Wegner #define CONFIG_SYS_JFFS2_FIRST_SECTOR 0x40 2989d79e575SWolfgang Wegner #endif 2999d79e575SWolfgang Wegner 3009d79e575SWolfgang Wegner /* Cache Configuration */ 3019d79e575SWolfgang Wegner #define CONFIG_SYS_CACHELINE_SIZE 16 3029d79e575SWolfgang Wegner 303dd9f054eSTsiChung Liew #define ICACHE_STATUS (CONFIG_SYS_INIT_RAM_ADDR + \ 304553f0982SWolfgang Denk CONFIG_SYS_INIT_RAM_SIZE - 8) 305dd9f054eSTsiChung Liew #define DCACHE_STATUS (CONFIG_SYS_INIT_RAM_ADDR + \ 306553f0982SWolfgang Denk CONFIG_SYS_INIT_RAM_SIZE - 4) 307dd9f054eSTsiChung Liew #define CONFIG_SYS_ICACHE_INV (CF_CACR_CINVA) 308dd9f054eSTsiChung Liew #define CONFIG_SYS_CACHE_ACR0 (CONFIG_SYS_SDRAM_BASE | \ 309dd9f054eSTsiChung Liew CF_ADDRMASK(CONFIG_SYS_SDRAM_SIZE) | \ 310dd9f054eSTsiChung Liew CF_ACR_EN | CF_ACR_SM_ALL) 311dd9f054eSTsiChung Liew #define CONFIG_SYS_CACHE_ICACR (CF_CACR_EC | CF_CACR_CINVA | \ 312dd9f054eSTsiChung Liew CF_CACR_DCM_P) 313dd9f054eSTsiChung Liew 3149d79e575SWolfgang Wegner #endif /* _CONFIG_ASTRO_MCF5373L_H */ 315