1 /*
2  * Copyright (C) 2014 Samsung Electronics
3  *
4  * Configuration settings for the SAMSUNG EXYNOS5 board.
5  *
6  * SPDX-License-Identifier:	GPL-2.0+
7  */
8 
9 #ifndef __CONFIG_EXYNOS4_COMMON_H
10 #define __CONFIG_EXYNOS4_COMMON_H
11 
12 #define CONFIG_EXYNOS4			/* Exynos4 Family */
13 
14 #include "exynos-common.h"
15 
16 #define CONFIG_BOARD_COMMON
17 
18 #define CONFIG_SYS_CACHELINE_SIZE	32
19 #define CONFIG_REVISION_TAG
20 
21 /* SD/MMC configuration */
22 #define CONFIG_MMC_SDMA
23 #define CONFIG_MMC_DEFAULT_DEV	0
24 
25 #undef CONFIG_CMD_FPGA
26 #undef CONFIG_CMD_MISC
27 #undef CONFIG_CMD_NET
28 #undef CONFIG_CMD_NFS
29 #undef CONFIG_CMD_XIMG
30 #undef CONFIG_CMD_ONENAND
31 #undef CONFIG_CMD_MTDPARTS
32 #define CONFIG_CMD_DFU
33 #define CONFIG_CMD_GPT
34 #define CONFIG_CMD_PMIC
35 #define CONFIG_CMD_SETEXPR
36 
37 /* USB Composite download gadget - g_dnl */
38 #define CONFIG_USBDOWNLOAD_GADGET
39 
40 /* TIZEN THOR downloader support */
41 #define CONFIG_CMD_THOR_DOWNLOAD
42 #define CONFIG_THOR_FUNCTION
43 
44 #define CONFIG_DFU_FUNCTION
45 #define CONFIG_DFU_MMC
46 #define CONFIG_SYS_DFU_DATA_BUF_SIZE SZ_32M
47 #define DFU_DEFAULT_POLL_TIMEOUT 300
48 
49 /* USB Samsung's IDs */
50 #define CONFIG_G_DNL_VENDOR_NUM 0x04E8
51 #define CONFIG_G_DNL_PRODUCT_NUM 0x6601
52 #define CONFIG_G_DNL_THOR_VENDOR_NUM CONFIG_G_DNL_VENDOR_NUM
53 #define CONFIG_G_DNL_THOR_PRODUCT_NUM 0x685D
54 #define CONFIG_G_DNL_UMS_VENDOR_NUM 0x0525
55 #define CONFIG_G_DNL_UMS_PRODUCT_NUM 0xA4A5
56 #define CONFIG_G_DNL_MANUFACTURER "Samsung"
57 
58 #define CONFIG_SYS_MONITOR_LEN		(256 << 10)	/* Reserve 2 sectors */
59 
60 #define CONFIG_USB_GADGET
61 #define CONFIG_USB_GADGET_S3C_UDC_OTG
62 #define CONFIG_USB_GADGET_S3C_UDC_OTG_PHY
63 #define CONFIG_USB_GADGET_DUALSPEED
64 #define CONFIG_USB_GADGET_VBUS_DRAW	2
65 
66 #define CONFIG_CMD_USB_MASS_STORAGE
67 #define CONFIG_USB_GADGET_MASS_STORAGE
68 
69 /* Common environment variables */
70 #define CONFIG_EXTRA_ENV_ITB \
71 	"loadkernel=load mmc ${mmcbootdev}:${mmcbootpart} ${kerneladdr} " \
72 		"${kernelname}\0" \
73 	"loadinitrd=load mmc ${mmcbootdev}:${mmcbootpart} ${initrdaddr} " \
74 		"${initrdname}\0" \
75 	"loaddtb=load mmc ${mmcbootdev}:${mmcbootpart} ${fdtaddr} " \
76 		"${fdtfile}\0" \
77 	"check_ramdisk=" \
78 		"if run loadinitrd; then " \
79 			"setenv initrd_addr ${initrdaddr};" \
80 		"else " \
81 			"setenv initrd_addr -;" \
82 		"fi;\0" \
83 	"check_dtb=" \
84 		"if run loaddtb; then " \
85 			"setenv fdt_addr ${fdtaddr};" \
86 		"else " \
87 			"setenv fdt_addr;" \
88 		"fi;\0" \
89 	"kernel_args=" \
90 		"setenv bootargs root=/dev/mmcblk${mmcdev}p${mmcrootpart}" \
91 		" ${lpj} rootwait ${console} ${meminfo} ${opts} ${lcdinfo};\0" \
92 	"boot_fit=" \
93 		"setenv kerneladdr 0x42000000;" \
94 		"setenv kernelname Image.itb;" \
95 		"run loadkernel;" \
96 		"run kernel_args;" \
97 		"bootm ${kerneladdr}#${board_name}\0" \
98 	"boot_uimg=" \
99 		"setenv kerneladdr 0x40007FC0;" \
100 		"setenv kernelname uImage;" \
101 		"run check_dtb;" \
102 		"run check_ramdisk;" \
103 		"run loadkernel;" \
104 		"run kernel_args;" \
105 		"bootm ${kerneladdr} ${initrd_addr} ${fdt_addr};\0" \
106 	"boot_zimg=" \
107 		"setenv kerneladdr 0x40007FC0;" \
108 		"setenv kernelname zImage;" \
109 		"run check_dtb;" \
110 		"run check_ramdisk;" \
111 		"run loadkernel;" \
112 		"run kernel_args;" \
113 		"bootz ${kerneladdr} ${initrd_addr} ${fdt_addr};\0" \
114 	"autoboot=" \
115 		"if test -e mmc ${mmcdev}:${mmcbootpart} Image.itb; then; " \
116 			"run boot_fit;" \
117 		"elif test -e mmc ${mmcdev}:${mmcbootpart} zImage; then; " \
118 			"run boot_zimg;" \
119 		"elif test -e mmc ${mmcdev}:${mmcbootpart} uImage; then; " \
120 			"run boot_uimg;" \
121 		"fi;\0"
122 
123 #endif	/* __CONFIG_EXYNOS4_COMMON_H */
124