1 /* 2 * (C) Copyright 2013 Atmel Corporation. 3 * Josh Wu <josh.wu@atmel.com> 4 * 5 * Configuation settings for the AT91SAM9N12-EK boards. 6 * 7 * See file CREDITS for list of people who contributed to this 8 * project. 9 * 10 * This program is free software; you can redistribute it and/or 11 * modify it under the terms of the GNU General Public License as 12 * published by the Free Software Foundation; either version 2 of 13 * the License, or (at your option) any later version. 14 * 15 * This program is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU General Public License for more details. 19 * 20 * You should have received a copy of the GNU General Public License 21 * along with this program; if not, write to the Free Software 22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 23 * MA 02111-1307 USA 24 */ 25 26 #ifndef __AT91SAM9N12_CONFIG_H_ 27 #define __AT91SAM9N12_CONFIG_H_ 28 29 /* 30 * SoC must be defined first, before hardware.h is included. 31 * In this case SoC is defined in boards.cfg. 32 */ 33 #include <asm/hardware.h> 34 35 #define CONFIG_SYS_TEXT_BASE 0x26f00000 36 37 #define CONFIG_ARM926EJS 38 #define CONFIG_AT91FAMILY 39 40 /* ARM asynchronous clock */ 41 #define CONFIG_SYS_AT91_SLOW_CLOCK 32768 /* slow clock xtal */ 42 #define CONFIG_SYS_AT91_MAIN_CLOCK 16000000 /* main clock xtal */ 43 #define CONFIG_SYS_HZ 1000 44 45 /* Misc CPU related */ 46 #define CONFIG_CMDLINE_TAG /* enable passing of ATAGs */ 47 #define CONFIG_SETUP_MEMORY_TAGS 48 #define CONFIG_INITRD_TAG 49 #define CONFIG_SKIP_LOWLEVEL_INIT 50 #define CONFIG_BOARD_EARLY_INIT_F 51 #define CONFIG_DISPLAY_CPUINFO 52 53 #define CONFIG_OF_LIBFDT 54 55 /* general purpose I/O */ 56 #define CONFIG_AT91_GPIO 57 58 /* serial console */ 59 #define CONFIG_ATMEL_USART 60 #define CONFIG_USART_BASE ATMEL_BASE_DBGU 61 #define CONFIG_USART_ID ATMEL_ID_SYS 62 #define CONFIG_BAUDRATE 115200 63 64 /* LCD */ 65 #define CONFIG_LCD 66 #define LCD_BPP LCD_COLOR16 67 #define LCD_OUTPUT_BPP 24 68 #define CONFIG_LCD_LOGO 69 #define CONFIG_LCD_INFO 70 #define CONFIG_LCD_INFO_BELOW_LOGO 71 #define CONFIG_SYS_WHITE_ON_BLACK 72 #define CONFIG_ATMEL_HLCD 73 #define CONFIG_ATMEL_LCD_RGB565 74 #define CONFIG_SYS_CONSOLE_IS_IN_ENV 75 76 #define CONFIG_BOOTDELAY 3 77 78 /* 79 * BOOTP options 80 */ 81 #define CONFIG_BOOTP_BOOTFILESIZE 82 #define CONFIG_BOOTP_BOOTPATH 83 #define CONFIG_BOOTP_GATEWAY 84 #define CONFIG_BOOTP_HOSTNAME 85 86 /* NOR flash - no real flash on this board */ 87 #define CONFIG_SYS_NO_FLASH 88 89 /* 90 * Command line configuration. 91 */ 92 #include <config_cmd_default.h> 93 #undef CONFIG_CMD_FPGA 94 95 #define CONFIG_CMD_BOOTZ 96 #define CONFIG_CMD_PING 97 #define CONFIG_CMD_DHCP 98 #define CONFIG_CMD_NAND 99 #define CONFIG_CMD_SF 100 #define CONFIG_CMD_MMC 101 #define CONFIG_CMD_FAT 102 103 #define CONFIG_NR_DRAM_BANKS 1 104 #define CONFIG_SYS_SDRAM_BASE 0x20000000 105 #define CONFIG_SYS_SDRAM_SIZE 0x08000000 106 107 /* 108 * Initial stack pointer: 4k - GENERATED_GBL_DATA_SIZE in internal SRAM, 109 * leaving the correct space for initial global data structure above 110 * that address while providing maximum stack area below. 111 */ 112 # define CONFIG_SYS_INIT_SP_ADDR \ 113 (ATMEL_BASE_SRAM + 0x1000 - GENERATED_GBL_DATA_SIZE) 114 115 /* DataFlash */ 116 #ifdef CONFIG_CMD_SF 117 #define CONFIG_ATMEL_SPI 118 #define CONFIG_SPI_FLASH 119 #define CONFIG_SPI_FLASH_ATMEL 120 #define CONFIG_SF_DEFAULT_SPEED 30000000 121 #define CONFIG_ENV_SPI_MODE SPI_MODE_3 122 #define CONFIG_SF_DEFAULT_MODE SPI_MODE_3 123 #endif 124 125 /* NAND flash */ 126 #ifdef CONFIG_CMD_NAND 127 #define CONFIG_NAND_ATMEL 128 #define CONFIG_SYS_MAX_NAND_DEVICE 1 129 #define CONFIG_SYS_NAND_BASE 0x40000000 130 #define CONFIG_SYS_NAND_MASK_ALE (1 << 21) 131 #define CONFIG_SYS_NAND_MASK_CLE (1 << 22) 132 #define CONFIG_SYS_NAND_ENABLE_PIN AT91_PIO_PORTD, 4 133 #define CONFIG_SYS_NAND_READY_PIN AT91_PIO_PORTD, 5 134 135 /* PMECC & PMERRLOC */ 136 #define CONFIG_ATMEL_NAND_HWECC 137 #define CONFIG_ATMEL_NAND_HW_PMECC 138 #define CONFIG_PMECC_CAP 2 139 #define CONFIG_PMECC_SECTOR_SIZE 512 140 #define CONFIG_PMECC_INDEX_TABLE_OFFSET 0x8000 141 #endif 142 143 #define CONFIG_MTD_PARTITIONS 144 #define CONFIG_MTD_DEVICE 145 #define CONFIG_CMD_MTDPARTS 146 #define MTDIDS_DEFAULT "nand0=atmel_nand" 147 #define MTDPARTS_DEFAULT \ 148 "mtdparts=atmel_nand:256k(bootstrap)ro,512k(uboot)ro," \ 149 "256k(env),256k(env_redundant),256k(spare)," \ 150 "512k(dtb),6M(kernel)ro,-(rootfs)" 151 152 #define CONFIG_EXTRA_ENV_SETTINGS \ 153 "console=console=ttyS0,115200\0" \ 154 "mtdparts="MTDPARTS_DEFAULT"\0" \ 155 "bootargs_nand=rootfstype=ubifs ubi.mtd=7 root=ubi0:rootfs rw\0"\ 156 "bootargs_mmc=root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait\0" 157 158 /* MMC */ 159 #ifdef CONFIG_CMD_MMC 160 #define CONFIG_MMC 161 #define CONFIG_GENERIC_MMC 162 #define CONFIG_GENERIC_ATMEL_MCI 163 #endif 164 165 /* FAT */ 166 #ifdef CONFIG_CMD_FAT 167 #define CONFIG_DOS_PARTITION 168 #endif 169 170 #define CONFIG_SYS_LOAD_ADDR 0x22000000 /* load address */ 171 172 #define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE 173 #define CONFIG_SYS_MEMTEST_END 0x26e00000 174 175 #ifdef CONFIG_SYS_USE_SPIFLASH 176 177 /* bootstrap + u-boot + env + linux in dataflash on CS0 */ 178 #define CONFIG_ENV_IS_IN_SPI_FLASH 179 #define CONFIG_ENV_OFFSET 0x5000 180 #define CONFIG_ENV_SIZE 0x3000 181 #define CONFIG_ENV_SECT_SIZE 0x1000 182 #define CONFIG_BOOTCOMMAND \ 183 "setenv bootargs ${console} ${mtdparts} ${bootargs_nand};" \ 184 "sf probe 0; sf read 0x22000000 0x100000 0x300000; " \ 185 "bootm 0x22000000" 186 187 #elif defined(CONFIG_SYS_USE_NANDFLASH) 188 189 /* bootstrap + u-boot + env + linux in nandflash */ 190 #define CONFIG_ENV_IS_IN_NAND 191 #define CONFIG_ENV_OFFSET 0xc0000 192 #define CONFIG_ENV_OFFSET_REDUND 0x100000 193 #define CONFIG_ENV_SIZE 0x20000 /* 1 sector = 128 kB */ 194 #define CONFIG_BOOTCOMMAND \ 195 "setenv bootargs ${console} ${mtdparts} ${bootargs_nand};" \ 196 "nand read 0x21000000 0x180000 0x080000;" \ 197 "nand read 0x22000000 0x200000 0x400000;" \ 198 "bootm 0x22000000 - 0x21000000" 199 200 #else /* CONFIG_SYS_USE_MMC */ 201 202 /* bootstrap + u-boot + env + linux in mmc */ 203 #define CONFIG_ENV_IS_IN_MMC 204 /* For FAT system, most cases it should be in the reserved sector */ 205 #define CONFIG_ENV_OFFSET 0x2000 206 #define CONFIG_ENV_SIZE 0x1000 207 #define CONFIG_SYS_MMC_ENV_DEV 0 208 #define CONFIG_BOOTCOMMAND \ 209 "setenv bootargs ${console} ${mtdparts} ${bootargs_mmc};" \ 210 "fatload mmc 0:1 0x21000000 dtb;" \ 211 "fatload mmc 0:1 0x22000000 uImage;" \ 212 "bootm 0x22000000 - 0x21000000" 213 214 #endif 215 216 #define CONFIG_SYS_PROMPT "U-Boot> " 217 #define CONFIG_SYS_CBSIZE 256 218 #define CONFIG_SYS_MAXARGS 16 219 #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) \ 220 + 16) 221 #define CONFIG_SYS_LONGHELP 222 #define CONFIG_CMDLINE_EDITING 223 #define CONFIG_AUTO_COMPLETE 224 #define CONFIG_SYS_HUSH_PARSER 225 226 /* 227 * Size of malloc() pool 228 */ 229 #define CONFIG_SYS_MALLOC_LEN (4 * 1024 * 1024) 230 #define CONFIG_STACKSIZE (32 * 1024) /* regular stack */ 231 232 #endif 233