Merge tag 'efi-2020-01-rc2' of https://gitlab.denx.de/u-boot/custodians/u-boot-efi
[oweals/u-boot.git] / include / configs / socfpga_vining_fpga.h
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright (C) 2015-2019 Marek Vasut <marex@denx.de>
4  */
5 #ifndef __CONFIG_SOFTING_VINING_FPGA_H__
6 #define __CONFIG_SOFTING_VINING_FPGA_H__
7
8 #include <asm/arch/base_addr_ac5.h>
9
10 /* Memory configurations */
11 #define PHYS_SDRAM_1_SIZE               0x40000000      /* 1GiB on VINING_FPGA */
12
13 /* Booting Linux */
14 #define CONFIG_BOOTFILE         "fitImage"
15 #define CONFIG_BOOTCOMMAND      "run selboot"
16 #define CONFIG_SYS_BOOTM_LEN    0x2000000       /* 32 MiB */
17 #define CONFIG_LOADADDR         0x01000000
18 #define CONFIG_SYS_LOAD_ADDR    CONFIG_LOADADDR
19
20 /* Ethernet on SoC (EMAC) */
21 #if defined(CONFIG_CMD_NET)
22 #define CONFIG_BOOTP_SEND_HOSTNAME
23 #endif
24
25 /* Extra Environment */
26 #define CONFIG_HOSTNAME                 "socfpga_vining_fpga"
27
28 /*
29  * Active LOW GPIO buttons:
30  * A: GPIO 77 ... the button between USB B and ethernet
31  * B: GPIO 78 ... the button between USB A ports
32  *
33  * The logic:
34  *  if button B is pressed, boot recovery system after 10 seconds
35  *  if force_boottype is set, boot system depending on the value in the
36  *                            $force_boottype variable after 1 second
37  *  if button B is not pressed and force_boottype is not set, boot normal
38  *                            Linux system after 5 seconds
39  */
40
41 #define CONFIG_EXTRA_ENV_SETTINGS \
42         "verify=n\0" \
43         "consdev=ttyS0\0"                                               \
44         "baudrate=115200\0"                                             \
45         "bootscript=boot.scr\0"                                         \
46         "ubimtdnr=5\0"                                                  \
47         "ubimtd=rootfs\0"                                               \
48         "ubipart=ubi0:vining-fpga-rootfs\0"                                             \
49         "ubisfcs=1\0"           /* Default is flash at CS#1 */          \
50         "netdev=eth0\0"                                                 \
51         "hostname=vining_fpga\0"                                        \
52         "kernel_addr_r=0x10000000\0"                                    \
53         "fdt_addr_r=0x20000000\0"                                       \
54         "fdt_high=0xffffffff\0"                                         \
55         "initrd_high=0xffffffff\0"                                      \
56         "dfu_alt_info=qspi0 sf 0:0;qspi1 sf 0:1\0"                      \
57         "mtdparts_0_16m=ff705000.spi.0:" /* 16MiB+128MiB SF config */   \
58                 "1m(u-boot),"                                           \
59                 "64k(env1),"                                            \
60                 "64k(env2),"                                            \
61                 "256k(softing1),"                                       \
62                 "256k(softing2),"                                       \
63                 "-(rcvrfs)\0"   /* Recovery */                          \
64         "mtdparts_0_256m=ff705000.spi.0:" /* 256MiB(+256MiB) config */  \
65                 "1m(u-boot),"                                           \
66                 "64k(env1),"                                            \
67                 "64k(env2),"                                            \
68                 "256k(softing1),"                                       \
69                 "256k(softing2),"                                       \
70                 "14720k(rcvrfs),"       /* Recovery */                  \
71                 "64m(rootfs),"          /* Root */                      \
72                 "-(userfs)\0"           /* User */                      \
73         "mtdparts_1_128m=ff705000.spi.1:" /* 16MiB+128MiB SF config */  \
74                 "64m(rootfs),"                                          \
75                 "-(userfs)\0"                                           \
76         "mtdparts_1_256m=ff705000.spi.1:" /* 256MiB+256MiB SF config */ \
77                 "-(userfs2)\0"                                          \
78         "update_filename=u-boot-with-spl-dtb.sfp\0"                     \
79         "update_qspi_offset=0x0\0"                                      \
80         "update_qspi="          /* Update the QSPI firmware */          \
81                 "if sf probe ; then "                                   \
82                 "if tftp ${update_filename} ; then "                    \
83                 "sf update ${loadaddr} ${update_qspi_offset} ${filesize} ; " \
84                 "fi ; "                                                 \
85                 "fi\0"                                                  \
86         "sf_identify="                                                  \
87                 "setenv sf_size_0 ; setenv sf_size_1 ; "                \
88                 "sf probe 0:0 && setenv sf_size_0 ${sf_size} ; "        \
89                 "sf probe 0:1 && setenv sf_size_1 ${sf_size} ; "        \
90                 "if test -z \"${sf_size_1}\" ; then "                   \
91                         /* 1x256MiB SF */                               \
92                         "setenv mtdparts_0 ${mtdparts_0_256m} ; "       \
93                         "setenv mtdparts_1 ; "                          \
94                 "elif test \"${sf_size_0}\" = \"1000000\" ; then "      \
95                         /* 16MiB+128MiB SF */                           \
96                         "setenv mtdparts_0 ${mtdparts_0_16m} ; "        \
97                         "setenv mtdparts_1 ${mtdparts_1_128m} ; "       \
98                 "else "                                                 \
99                         /* 256MiB+256MiB SF */                          \
100                         "setenv mtdparts_0 ${mtdparts_0_256m} ; "       \
101                         "setenv mtdparts_1 ${mtdparts_1_256m} ; "       \
102                 "fi\0"                                                  \
103         "fpga_filename=output_file.rbf\0"                               \
104         "load_fpga="            /* Load FPGA bitstream */               \
105                 "if tftp ${fpga_filename} ; then "                      \
106                 "fpga load 0 $loadaddr $filesize ; "                    \
107                 "bridge enable ; "                                      \
108                 "fi\0"                                                  \
109         "addcons="                                                      \
110                 "setenv bootargs ${bootargs} "                          \
111                 "console=${consdev},${baudrate}\0"                      \
112         "addip="                                                        \
113                 "setenv bootargs ${bootargs} "                          \
114                 "ip=${ipaddr}:${serverip}:${gatewayip}:"                \
115                         "${netmask}:${hostname}:${netdev}:off\0"        \
116         "addmisc="                                                      \
117                 "setenv bootargs ${bootargs} ${miscargs}\0"             \
118         "addmtd="                                                       \
119                 "if test -z \"${sf_size_1}\" ; then "                   \
120                         "setenv mtdparts \"${mtdparts_0}\" ; "          \
121                 "else "                                                 \
122                         "setenv mtdparts \"${mtdparts_0};${mtdparts_1}\" ; "    \
123                 "fi ; "                                                 \
124                 "setenv bootargs ${bootargs} mtdparts=${mtdparts}\0"    \
125         "addargs=run addcons addmtd addmisc\0"                          \
126         "ubiload="                                                      \
127                 "ubi part ${ubimtd} ; ubifsmount ${ubipart} ; "         \
128                 "ubifsload ${kernel_addr_r} /boot/${bootfile}\0"        \
129         "netload="                                                      \
130                 "tftp ${kernel_addr_r} ${hostname}/${bootfile}\0"       \
131         "miscargs=nohlt panic=1\0"                                      \
132         "ubiargs="                                                      \
133                 "setenv bootargs ubi.mtd=${ubimtdnr} "                  \
134                 "root=${ubipart} rootfstype=ubifs\0"                    \
135         "nfsargs="                                                      \
136                 "setenv bootargs root=/dev/nfs rw "                     \
137                         "nfsroot=${serverip}:${rootpath},v3,tcp\0"      \
138         "ubi_sfsel="                                                    \
139                 "if test \"${boottype}\" = \"rcvr\" ; then "            \
140                         "setenv ubisfcs 0 ; "                           \
141                         "setenv ubimtd rcvrfs ; "                       \
142                         "setenv ubimtdnr 5 ; "                          \
143                         "setenv mtdparts mtdparts=${mtdparts_0} ; "     \
144                         "setenv mtdids nor0=ff705000.spi.0 ; "          \
145                         "setenv ubipart ubi0:vining-fpga-rootfs ; "     \
146                 "else "                                                 \
147                         "if test \"${sf_size_0}\" = \"1000000\" ; then "\
148                                 /* 16MiB+128MiB SF */                   \
149                                 "setenv ubisfcs 1 ; "                   \
150                                 "setenv ubimtd rootfs ; "               \
151                                 "setenv ubimtdnr 6 ; "                  \
152                                 "setenv mtdparts mtdparts=${mtdparts_1} ; "     \
153                                 "setenv mtdids nor0=ff705000.spi.1 ; "  \
154                                 "setenv ubipart ubi0:vining-fpga-rootfs ; "     \
155                         "else "                                         \
156                                 /* 256MiB(+256MiB) SF */                \
157                                 "setenv ubisfcs 0 ; "                   \
158                                 "setenv ubimtd rootfs ; "               \
159                                 "setenv ubimtdnr 6 ; "                  \
160                                 "setenv mtdparts mtdparts=${mtdparts_0} ; "     \
161                                 "setenv mtdids nor0=ff705000.spi.0 ; "  \
162                                 "setenv ubipart ubi0:vining-fpga-rootfs ; "     \
163                         "fi ; "                                         \
164                 "fi ; "                                                 \
165                 "sf probe 0:${ubisfcs}\0"                               \
166         "boot_kernel="                                                  \
167                 "if test -z \"${sf_size_1}\" ; then " /* 1x256MiB SF */ \
168                         "imxtract ${kernel_addr_r} fdt@1 ${fdt_addr_r} && " \
169                         "fdt addr ${fdt_addr_r} && "                    \
170                         "fdt resize && "                                \
171                         "fdt set /soc/spi@ff705000/n25q00@1 status disabled && " \
172                         "bootm ${kernel_addr_r}:kernel@1 - ${fdt_addr_r} ; "    \
173                 "else "                                                 \
174                         "bootm ${kernel_addr_r} ; "                     \
175                 "fi\0"                                                  \
176         "ubi_ubi="                                                      \
177                 "run ubi_sfsel ubiload ubiargs addargs boot_kernel\0"   \
178         "ubi_nfs="                                                      \
179                 "run ubiload nfsargs addip addargs boot_kernel\0"       \
180         "net_ubi="                                                      \
181                 "run netload ubiargs addargs boot_kernel\0"             \
182         "net_nfs="                                                      \
183                 "run netload nfsargs addip addargs boot_kernel\0"       \
184         "selboot="      /* Select from where to boot. */                \
185                 "run sf_identify ; "                                    \
186                 "if test \"${bootmode}\" = \"qspi\" ; then "            \
187                         "led all off ; "                                \
188                         "if test \"${boottype}\" = \"rcvr\" ; then "    \
189                                 "echo \"Booting recovery system\" ; "   \
190                                 "led 3 on ; "   /* Bottom RED */        \
191                         "fi ; "                                         \
192                         "led 1 on ; "           /* Top RED */           \
193                         "run ubi_ubi ; "                                \
194                 "else echo \"Unsupported boot mode: \"${bootmode} ; "   \
195                 "fi\0"                                                  \
196                 "socfpga_legacy_reset_compat=1\0"
197
198 #define CONFIG_SYS_REDUNDAND_ENVIRONMENT
199 #define CONFIG_ENV_SIZE_REDUND          CONFIG_ENV_SIZE
200 #define CONFIG_ENV_SECT_SIZE            (64 * 1024)
201 #define CONFIG_ENV_OFFSET               0x100000
202 #define CONFIG_ENV_OFFSET_REDUND        \
203         (CONFIG_ENV_OFFSET + CONFIG_ENV_SECT_SIZE)
204
205 /* Support changing the prompt string */
206 #define CONFIG_CMDLINE_PS_SUPPORT
207
208 /* The rest of the configuration is shared */
209 #include <configs/socfpga_common.h>
210
211 #endif  /* __CONFIG_SOFTING_VINING_FPGA_H__ */