1*927b901bSBo Shen /* 2*927b901bSBo Shen * Configuration settings for the SAMA5D4EK board. 3*927b901bSBo Shen * 4*927b901bSBo Shen * Copyright (C) 2014 Atmel 5*927b901bSBo Shen * Bo Shen <voice.shen@atmel.com> 6*927b901bSBo Shen * 7*927b901bSBo Shen * SPDX-License-Identifier: GPL-2.0+ 8*927b901bSBo Shen */ 9*927b901bSBo Shen 10*927b901bSBo Shen #ifndef __CONFIG_H 11*927b901bSBo Shen #define __CONFIG_H 12*927b901bSBo Shen 13*927b901bSBo Shen #include <asm/hardware.h> 14*927b901bSBo Shen 15*927b901bSBo Shen #define CONFIG_SYS_TEXT_BASE 0x26f00000 16*927b901bSBo Shen 17*927b901bSBo Shen /* ARM asynchronous clock */ 18*927b901bSBo Shen #define CONFIG_SYS_AT91_SLOW_CLOCK 32768 19*927b901bSBo Shen #define CONFIG_SYS_AT91_MAIN_CLOCK 12000000 /* from 12 MHz crystal */ 20*927b901bSBo Shen 21*927b901bSBo Shen #define CONFIG_ARCH_CPU_INIT 22*927b901bSBo Shen 23*927b901bSBo Shen #define CONFIG_SKIP_LOWLEVEL_INIT 24*927b901bSBo Shen #define CONFIG_BOARD_EARLY_INIT_F 25*927b901bSBo Shen #define CONFIG_DISPLAY_CPUINFO 26*927b901bSBo Shen 27*927b901bSBo Shen #define CONFIG_CMD_BOOTZ 28*927b901bSBo Shen #define CONFIG_OF_LIBFDT /* Device Tree support */ 29*927b901bSBo Shen 30*927b901bSBo Shen #define CONFIG_SYS_GENERIC_BOARD 31*927b901bSBo Shen 32*927b901bSBo Shen /* general purpose I/O */ 33*927b901bSBo Shen #define CONFIG_AT91_GPIO 34*927b901bSBo Shen 35*927b901bSBo Shen /* serial console */ 36*927b901bSBo Shen #define CONFIG_ATMEL_USART 37*927b901bSBo Shen #define CONFIG_USART_BASE ATMEL_BASE_USART3 38*927b901bSBo Shen #define CONFIG_USART_ID ATMEL_ID_USART3 39*927b901bSBo Shen 40*927b901bSBo Shen #define CONFIG_BOOTDELAY 3 41*927b901bSBo Shen 42*927b901bSBo Shen /* 43*927b901bSBo Shen * BOOTP options 44*927b901bSBo Shen */ 45*927b901bSBo Shen #define CONFIG_BOOTP_BOOTFILESIZE 46*927b901bSBo Shen #define CONFIG_BOOTP_BOOTPATH 47*927b901bSBo Shen #define CONFIG_BOOTP_GATEWAY 48*927b901bSBo Shen #define CONFIG_BOOTP_HOSTNAME 49*927b901bSBo Shen 50*927b901bSBo Shen /* No NOR flash */ 51*927b901bSBo Shen #define CONFIG_SYS_NO_FLASH 52*927b901bSBo Shen 53*927b901bSBo Shen /* 54*927b901bSBo Shen * Command line configuration. 55*927b901bSBo Shen */ 56*927b901bSBo Shen #include <config_cmd_default.h> 57*927b901bSBo Shen #undef CONFIG_CMD_FPGA 58*927b901bSBo Shen #undef CONFIG_CMD_IMI 59*927b901bSBo Shen #undef CONFIG_CMD_LOADS 60*927b901bSBo Shen #define CONFIG_CMD_PING 61*927b901bSBo Shen #define CONFIG_CMD_DHCP 62*927b901bSBo Shen #define CONFIG_CMD_SETEXPR 63*927b901bSBo Shen 64*927b901bSBo Shen /* SDRAM */ 65*927b901bSBo Shen #define CONFIG_NR_DRAM_BANKS 1 66*927b901bSBo Shen #define CONFIG_SYS_SDRAM_BASE ATMEL_BASE_DDRCS 67*927b901bSBo Shen #define CONFIG_SYS_SDRAM_SIZE 0x20000000 68*927b901bSBo Shen 69*927b901bSBo Shen #define CONFIG_SYS_INIT_SP_ADDR \ 70*927b901bSBo Shen (CONFIG_SYS_SDRAM_BASE + 4 * 1024 - GENERATED_GBL_DATA_SIZE) 71*927b901bSBo Shen 72*927b901bSBo Shen #define CONFIG_SYS_LOAD_ADDR 0x22000000 /* load address */ 73*927b901bSBo Shen 74*927b901bSBo Shen /* SerialFlash */ 75*927b901bSBo Shen #define CONFIG_CMD_SF 76*927b901bSBo Shen 77*927b901bSBo Shen #ifdef CONFIG_CMD_SF 78*927b901bSBo Shen #define CONFIG_ATMEL_SPI 79*927b901bSBo Shen #define CONFIG_ATMEL_SPI0 80*927b901bSBo Shen #define CONFIG_SPI_FLASH 81*927b901bSBo Shen #define CONFIG_SPI_FLASH_ATMEL 82*927b901bSBo Shen #define CONFIG_SF_DEFAULT_BUS 0 83*927b901bSBo Shen #define CONFIG_SF_DEFAULT_CS 0 84*927b901bSBo Shen #define CONFIG_SF_DEFAULT_SPEED 30000000 85*927b901bSBo Shen #endif 86*927b901bSBo Shen 87*927b901bSBo Shen /* NAND flash */ 88*927b901bSBo Shen #define CONFIG_CMD_NAND 89*927b901bSBo Shen 90*927b901bSBo Shen #ifdef CONFIG_CMD_NAND 91*927b901bSBo Shen #define CONFIG_NAND_ATMEL 92*927b901bSBo Shen #define CONFIG_SYS_MAX_NAND_DEVICE 1 93*927b901bSBo Shen #define CONFIG_SYS_NAND_BASE ATMEL_BASE_CS3 94*927b901bSBo Shen /* our ALE is AD21 */ 95*927b901bSBo Shen #define CONFIG_SYS_NAND_MASK_ALE (1 << 21) 96*927b901bSBo Shen /* our CLE is AD22 */ 97*927b901bSBo Shen #define CONFIG_SYS_NAND_MASK_CLE (1 << 22) 98*927b901bSBo Shen #define CONFIG_SYS_NAND_ONFI_DETECTION 99*927b901bSBo Shen /* PMECC & PMERRLOC */ 100*927b901bSBo Shen #define CONFIG_ATMEL_NAND_HWECC 101*927b901bSBo Shen #define CONFIG_ATMEL_NAND_HW_PMECC 102*927b901bSBo Shen #endif 103*927b901bSBo Shen 104*927b901bSBo Shen /* MMC */ 105*927b901bSBo Shen #define CONFIG_CMD_MMC 106*927b901bSBo Shen 107*927b901bSBo Shen #ifdef CONFIG_CMD_MMC 108*927b901bSBo Shen #define CONFIG_MMC 109*927b901bSBo Shen #define CONFIG_GENERIC_MMC 110*927b901bSBo Shen #define CONFIG_GENERIC_ATMEL_MCI 111*927b901bSBo Shen #define ATMEL_BASE_MMCI ATMEL_BASE_MCI1 112*927b901bSBo Shen #endif 113*927b901bSBo Shen 114*927b901bSBo Shen /* USB */ 115*927b901bSBo Shen #define CONFIG_CMD_USB 116*927b901bSBo Shen 117*927b901bSBo Shen #ifdef CONFIG_CMD_USB 118*927b901bSBo Shen #define CONFIG_USB_EHCI 119*927b901bSBo Shen #define CONFIG_USB_EHCI_ATMEL 120*927b901bSBo Shen #define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 3 121*927b901bSBo Shen #define CONFIG_USB_STORAGE 122*927b901bSBo Shen #endif 123*927b901bSBo Shen 124*927b901bSBo Shen #if defined(CONFIG_CMD_USB) || defined(CONFIG_CMD_MMC) 125*927b901bSBo Shen #define CONFIG_CMD_FAT 126*927b901bSBo Shen #define CONFIG_DOS_PARTITION 127*927b901bSBo Shen #endif 128*927b901bSBo Shen 129*927b901bSBo Shen /* Ethernet Hardware */ 130*927b901bSBo Shen #define CONFIG_MACB 131*927b901bSBo Shen #define CONFIG_RMII 132*927b901bSBo Shen #define CONFIG_NET_RETRY_COUNT 20 133*927b901bSBo Shen #define CONFIG_MACB_SEARCH_PHY 134*927b901bSBo Shen 135*927b901bSBo Shen /* LCD */ 136*927b901bSBo Shen #define CONFIG_LCD 137*927b901bSBo Shen #define LCD_BPP LCD_COLOR16 138*927b901bSBo Shen #define LCD_OUTPUT_BPP 18 139*927b901bSBo Shen #define CONFIG_LCD_LOGO 140*927b901bSBo Shen #define CONFIG_LCD_INFO 141*927b901bSBo Shen #define CONFIG_LCD_INFO_BELOW_LOGO 142*927b901bSBo Shen #define CONFIG_SYS_WHITE_ON_BLACK 143*927b901bSBo Shen #define CONFIG_ATMEL_HLCD 144*927b901bSBo Shen #define CONFIG_ATMEL_LCD_RGB565 145*927b901bSBo Shen #define CONFIG_SYS_CONSOLE_IS_IN_ENV 146*927b901bSBo Shen 147*927b901bSBo Shen #ifdef CONFIG_SYS_USE_SERIALFLASH 148*927b901bSBo Shen /* bootstrap + u-boot + env + linux in serial flash */ 149*927b901bSBo Shen #define CONFIG_ENV_IS_IN_SPI_FLASH 150*927b901bSBo Shen #define CONFIG_ENV_SPI_BUS CONFIG_SF_DEFAULT_BUS 151*927b901bSBo Shen #define CONFIG_ENV_SPI_CS CONFIG_SF_DEFAULT_CS 152*927b901bSBo Shen #define CONFIG_ENV_OFFSET 0x10000 153*927b901bSBo Shen #define CONFIG_ENV_SIZE 0x10000 154*927b901bSBo Shen #define CONFIG_ENV_SECT_SIZE 0x1000 155*927b901bSBo Shen #define CONFIG_BOOTCOMMAND "sf probe 0; " \ 156*927b901bSBo Shen "sf read 0x21000000 0xa0000 0x60000; " \ 157*927b901bSBo Shen "sf read 0x22000000 0x100000 0x300000; " \ 158*927b901bSBo Shen "bootz 0x22000000 - 0x21000000" 159*927b901bSBo Shen #elif CONFIG_SYS_USE_NANDFLASH 160*927b901bSBo Shen /* bootstrap + u-boot + env in nandflash */ 161*927b901bSBo Shen #define CONFIG_ENV_IS_IN_NAND 162*927b901bSBo Shen #define CONFIG_ENV_OFFSET 0xc0000 163*927b901bSBo Shen #define CONFIG_ENV_OFFSET_REDUND 0x100000 164*927b901bSBo Shen #define CONFIG_ENV_SIZE 0x20000 165*927b901bSBo Shen #define CONFIG_BOOTCOMMAND "nand read 0x21000000 0x180000 0x80000;" \ 166*927b901bSBo Shen "nand read 0x22000000 0x200000 0x600000;" \ 167*927b901bSBo Shen "bootz 0x22000000 - 0x21000000" 168*927b901bSBo Shen #elif CONFIG_SYS_USE_MMC 169*927b901bSBo Shen /* bootstrap + u-boot + env in sd card */ 170*927b901bSBo Shen #define CONFIG_ENV_IS_IN_FAT 171*927b901bSBo Shen #define CONFIG_FAT_WRITE 172*927b901bSBo Shen #define FAT_ENV_INTERFACE "mmc" 173*927b901bSBo Shen /* 174*927b901bSBo Shen * We don't specify the part number, if device 0 has partition table, it means 175*927b901bSBo Shen * the first partition; it no partition table, then take whole device as a 176*927b901bSBo Shen * FAT file system. 177*927b901bSBo Shen */ 178*927b901bSBo Shen #define FAT_ENV_DEVICE_AND_PART "0" 179*927b901bSBo Shen #define FAT_ENV_FILE "uboot.env" 180*927b901bSBo Shen #define CONFIG_ENV_SIZE 0x4000 181*927b901bSBo Shen #define CONFIG_BOOTCOMMAND "fatload mmc 0:1 0x21000000 sama5d4ek.dtb; " \ 182*927b901bSBo Shen "fatload mmc 0:1 0x22000000 zImage; " \ 183*927b901bSBo Shen "bootz 0x22000000 - 0x21000000" 184*927b901bSBo Shen #endif 185*927b901bSBo Shen 186*927b901bSBo Shen #ifdef CONFIG_SYS_USE_MMC 187*927b901bSBo Shen #define CONFIG_BOOTARGS \ 188*927b901bSBo Shen "console=ttyS0,115200 earlyprintk " \ 189*927b901bSBo Shen "root=/dev/mmcblk0p2 rw rootwait" 190*927b901bSBo Shen #else 191*927b901bSBo Shen #define CONFIG_BOOTARGS \ 192*927b901bSBo Shen "console=ttyS0,115200 earlyprintk " \ 193*927b901bSBo Shen "mtdparts=atmel_nand:256k(bootstrap)ro,512k(uboot)ro," \ 194*927b901bSBo Shen "256K(env),256k(evn_redundent),256k(spare)," \ 195*927b901bSBo Shen "512k(dtb),6M(kernel)ro,-(rootfs) " \ 196*927b901bSBo Shen "rootfstype=ubifs ubi.mtd=7 root=ubi0:rootfs" 197*927b901bSBo Shen #endif 198*927b901bSBo Shen 199*927b901bSBo Shen #define CONFIG_BAUDRATE 115200 200*927b901bSBo Shen 201*927b901bSBo Shen #define CONFIG_SYS_PROMPT "U-Boot> " 202*927b901bSBo Shen #define CONFIG_SYS_CBSIZE 256 203*927b901bSBo Shen #define CONFIG_SYS_MAXARGS 16 204*927b901bSBo Shen #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \ 205*927b901bSBo Shen sizeof(CONFIG_SYS_PROMPT) + 16) 206*927b901bSBo Shen #define CONFIG_SYS_LONGHELP 207*927b901bSBo Shen #define CONFIG_CMDLINE_EDITING 208*927b901bSBo Shen #define CONFIG_AUTO_COMPLETE 209*927b901bSBo Shen #define CONFIG_SYS_HUSH_PARSER 210*927b901bSBo Shen 211*927b901bSBo Shen /* Size of malloc() pool */ 212*927b901bSBo Shen #define CONFIG_SYS_MALLOC_LEN (4 * 1024 * 1024) 213*927b901bSBo Shen 214*927b901bSBo Shen #endif 215