1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Configuration settings for the VInCo platform. 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Based on the settings for the SAMA5-EK board 5*4882a593Smuzhiyun * Copyright (C) 2014 Atmel 6*4882a593Smuzhiyun * Bo Shen <voice.shen@atmel.com> 7*4882a593Smuzhiyun * Copyright (C) 2015 Free Electrons 8*4882a593Smuzhiyun * Gregory CLEMENT gregory.clement@free-electrons.com 9*4882a593Smuzhiyun * 10*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 11*4882a593Smuzhiyun */ 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun #ifndef __CONFIG_H 14*4882a593Smuzhiyun #define __CONFIG_H 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun #include "at91-sama5_common.h" 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun /* The value in the common file is too far away for the VInCo platform */ 19*4882a593Smuzhiyun #ifdef CONFIG_SYS_TEXT_BASE 20*4882a593Smuzhiyun #undef CONFIG_SYS_TEXT_BASE 21*4882a593Smuzhiyun #endif 22*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE 0x20f00000 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun /* serial console */ 25*4882a593Smuzhiyun #define CONFIG_ATMEL_USART 26*4882a593Smuzhiyun #define CONFIG_USART_BASE ATMEL_BASE_USART3 27*4882a593Smuzhiyun #define CONFIG_USART_ID ATMEL_ID_USART3 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun /* SDRAM */ 30*4882a593Smuzhiyun #define CONFIG_NR_DRAM_BANKS 1 31*4882a593Smuzhiyun #define CONFIG_SYS_SDRAM_BASE ATMEL_BASE_DDRCS 32*4882a593Smuzhiyun #define CONFIG_SYS_SDRAM_SIZE 0x4000000 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun #define CONFIG_SYS_INIT_SP_ADDR \ 35*4882a593Smuzhiyun (CONFIG_SYS_SDRAM_BASE + 4 * 1024 - GENERATED_GBL_DATA_SIZE) 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun #define CONFIG_SYS_LOAD_ADDR 0x22000000 /* load address */ 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun /* SerialFlash */ 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun #ifdef CONFIG_CMD_SF 42*4882a593Smuzhiyun #define CONFIG_ATMEL_SPI 43*4882a593Smuzhiyun #define CONFIG_ATMEL_SPI0 44*4882a593Smuzhiyun #define CONFIG_SPI_FLASH_STMICRO 45*4882a593Smuzhiyun #define CONFIG_SF_DEFAULT_BUS 0 46*4882a593Smuzhiyun #define CONFIG_SF_DEFAULT_CS 0 47*4882a593Smuzhiyun #define CONFIG_SF_DEFAULT_SPEED 50000000 48*4882a593Smuzhiyun #define CONFIG_ENV_SPI_MAX_HZ 50000000 49*4882a593Smuzhiyun #define CONFIG_SF_DEFAULT_MODE (SPI_MODE_0) 50*4882a593Smuzhiyun #define CONFIG_ENV_SPI_MODE (SPI_MODE_0) 51*4882a593Smuzhiyun #endif 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun /* MMC */ 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun #ifdef CONFIG_CMD_MMC 56*4882a593Smuzhiyun #define CONFIG_SUPPORT_EMMC_BOOT 57*4882a593Smuzhiyun #define CONFIG_GENERIC_ATMEL_MCI 58*4882a593Smuzhiyun #define ATMEL_BASE_MMCI ATMEL_BASE_MCI1 59*4882a593Smuzhiyun #define CONFIG_SYS_MMC_CLK_OD 500000 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun /* For generating MMC partitions */ 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun #endif 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun /* USB device */ 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun /* Ethernet Hardware */ 68*4882a593Smuzhiyun #define CONFIG_PHY_SMSC 69*4882a593Smuzhiyun #define CONFIG_MACB 70*4882a593Smuzhiyun #define CONFIG_RMII 71*4882a593Smuzhiyun #define CONFIG_NET_RETRY_COUNT 20 72*4882a593Smuzhiyun #define CONFIG_MACB_SEARCH_PHY 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun #ifdef CONFIG_SYS_USE_SERIALFLASH 75*4882a593Smuzhiyun /* bootstrap + u-boot + env + linux in serial flash */ 76*4882a593Smuzhiyun #define CONFIG_ENV_SPI_BUS CONFIG_SF_DEFAULT_BUS 77*4882a593Smuzhiyun #define CONFIG_ENV_SPI_CS CONFIG_SF_DEFAULT_CS 78*4882a593Smuzhiyun /* Use our own mapping for the VInCo platform */ 79*4882a593Smuzhiyun #undef CONFIG_ENV_OFFSET 80*4882a593Smuzhiyun #undef CONFIG_ENV_SIZE 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun #define CONFIG_ENV_OFFSET 0x10000 83*4882a593Smuzhiyun #define CONFIG_ENV_SIZE 0x10000 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun /* Update the bootcommand according to our mapping for the VInCo platform */ 86*4882a593Smuzhiyun #undef CONFIG_BOOTCOMMAND 87*4882a593Smuzhiyun #define CONFIG_BOOTCOMMAND "mmc dev 0 0;" \ 88*4882a593Smuzhiyun "mmc read ${loadaddr} ${k_offset} ${k_blksize};" \ 89*4882a593Smuzhiyun "mmc read ${oftaddr} ${dtb_offset} ${dtb_blksize};" \ 90*4882a593Smuzhiyun "bootz ${loadaddr} - ${oftaddr}" 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun #define CONFIG_EXTRA_ENV_SETTINGS \ 93*4882a593Smuzhiyun "kernel_start=0x20000\0" \ 94*4882a593Smuzhiyun "kernel_size=0x800000\0" \ 95*4882a593Smuzhiyun "mmcblksize=0x200\0" \ 96*4882a593Smuzhiyun "oftaddr=0x21000000\0" \ 97*4882a593Smuzhiyun "loadaddr=0x22000000\0" \ 98*4882a593Smuzhiyun "update_uboot=tftp ${loadaddr} u-boot.bin;sf probe 0;" \ 99*4882a593Smuzhiyun "sf erase 0x20000 0x4B000; sf write ${loadaddr} 0x20000 0x4B000\0" \ 100*4882a593Smuzhiyun "create_partition=setexpr dtb_start ${kernel_start} + 0x400000;" \ 101*4882a593Smuzhiyun "setexpr rootfs_start ${kernel_start} + ${kernel_size};" \ 102*4882a593Smuzhiyun "setenv partitions 'name=kernel,size=${kernel_size}," \ 103*4882a593Smuzhiyun "start=${kernel_start};name=rootfs,size=-';" \ 104*4882a593Smuzhiyun "gpt write mmc 0 ${partitions} \0"\ 105*4882a593Smuzhiyun "f2blk_size=setexpr fileblksize ${filesize} / ${mmcblksize};" \ 106*4882a593Smuzhiyun "setexpr fileblksize ${fileblksize} + 1\0" \ 107*4882a593Smuzhiyun "store_kernel=tftp ${loadaddr} zImage; run f2blk_size;" \ 108*4882a593Smuzhiyun "setexpr k_blksize ${fileblksize};" \ 109*4882a593Smuzhiyun "setexpr k_offset ${kernel_start} / ${mmcblksize};" \ 110*4882a593Smuzhiyun "mmc write ${fileaddr} ${k_offset} ${fileblksize}\0" \ 111*4882a593Smuzhiyun "store_dtb=tftp ${loadaddr} at91-vinco.dtb; run f2blk_size;" \ 112*4882a593Smuzhiyun "setexpr dtb_blksize ${fileblksize};" \ 113*4882a593Smuzhiyun "setexpr dtb_offset ${dtb_start} / ${mmcblksize};" \ 114*4882a593Smuzhiyun "mmc write ${fileaddr} ${dtb_offset} ${fileblksize}\0" \ 115*4882a593Smuzhiyun "store_rootfs=tftp ${loadaddr} vinco-gateway-image-vinco.ext4;" \ 116*4882a593Smuzhiyun "setexpr rootfs_offset ${rootfs_start} / ${mmcblksize};" \ 117*4882a593Smuzhiyun "mmc write ${fileaddr} ${rootfs_offset} ${fileblksize}\0" \ 118*4882a593Smuzhiyun "bootdelay=0\0" 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun #endif 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun #endif 123