xref: /OK3568_Linux_fs/u-boot/include/configs/vinco.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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