1/* SPDX-License-Identifier: GPL-2.0+ */
2/*
3 * Copyright (C) 2015 Timesys Corporation
4 * Copyright (C) 2015 General Electric Company
5 * Copyright (C) 2014 Advantech
6 * Copyright (C) 2012 Freescale Semiconductor, Inc.
7 *
8 * Configuration settings for the GE MX6Q Bx50v3 boards.
9 */
10
11#ifndef __GE_BX50V3_CONFIG_H
12#define __GE_BX50V3_CONFIG_H
13
14#include <asm/arch/imx-regs.h>
15#include <asm/mach-imx/gpio.h>
16
17#include "mx6_common.h"
18#include <linux/sizes.h>
19
20#ifdef CONFIG_CMD_NFS
21#define NETWORKBOOT \
22        "setnetworkboot=" \
23                "setenv ipaddr 172.16.2.10; setenv serverip 172.16.2.20; " \
24                "setenv gatewayip 172.16.2.20; setenv nfsserver 172.16.2.20; " \
25                "setenv netmask 255.255.255.0; setenv ethaddr ca:fe:de:ca:f0:11; " \
26                "setenv bootargs root=/dev/nfs nfsroot=${nfsserver}:/srv/nfs/,v3,tcp rw rootwait" \
27                "setenv bootargs $bootargs ip=${ipaddr}:${nfsserver}:${gatewayip}:${netmask}::eth0:off " \
28                "setenv bootargs $bootargs cma=128M bootcause=${bootcause} ${videoargs} " \
29                "setenv bootargs $bootargs systemd.mask=helix-network-defaults.service " \
30                "setenv bootargs $bootargs watchdog.handle_boot_enabled=1\0" \
31        "networkboot=" \
32                "run setnetworkboot; " \
33                "nfs ${loadaddr} /srv/nfs/fitImage; " \
34                "bootm ${loadaddr}\0" \
35
36#define NETWORKBOOTCOMMAND \
37	"run networkboot; " \
38
39#else
40#define NETWORKBOOT \
41
42#endif
43
44#define CFG_EXTRA_ENV_SETTINGS \
45	NETWORKBOOT \
46	"image=/boot/fitImage\0" \
47	"dev=mmc\0" \
48	"devnum=2\0" \
49	"rootdev=mmcblk0p\0" \
50	"quiet=quiet loglevel=0\0" \
51	"setargs=setenv bootargs root=/dev/${rootdev}${partnum} " \
52		"ro rootwait cma=128M " \
53		"bootcause=${bootcause} " \
54		"${quiet} " \
55		"${videoargs}" "\0" \
56	"doquiet=" \
57		"if ext2load ${dev} ${devnum}:5 0x7000A000 /boot/console; " \
58			"then setenv quiet; fi\0" \
59	"hasfirstboot=" \
60		"test -e ${dev} ${devnum}:${partnum} /boot/bootcause/firstboot\0" \
61	"swappartitions=" \
62		"setexpr partnum 3 - ${partnum}\0" \
63	"failbootcmd=" \
64		"cls; " \
65		"setcurs 5 4; " \
66		"lcdputs \"Monitor failed to start. " \
67		"Try again, or contact GE Service for support.\"; " \
68		"bootcount reset; " \
69		"while true; do sleep 1; done; \0" \
70	"altbootcmd=" \
71		"run doquiet; " \
72		"setenv partnum 1; run hasfirstboot || setenv partnum 2; " \
73		"run hasfirstboot || setenv partnum 0; " \
74		"if test ${partnum} != 0; then " \
75			"run swappartitions loadimage doboot; " \
76		"fi; " \
77		"run failbootcmd\0" \
78	"loadimage=" \
79		"ext2load ${dev} ${devnum}:${partnum} ${loadaddr} ${image}\0" \
80	"doboot=" \
81		"echo Booting from ${dev}:${devnum}:${partnum} ...; " \
82		"run setargs; " \
83		"bootm ${loadaddr}\0" \
84	"tryboot=" \
85		"setenv partnum 1; run hasfirstboot || setenv partnum 2; " \
86		"run loadimage || run swappartitions && run loadimage || " \
87			"setenv partnum 0 && echo MISSING IMAGE;" \
88		"run doboot; " \
89		"run failbootcmd\0" \
90
91
92/* Physical Memory Map */
93#define PHYS_SDRAM                     MMDC0_ARB_BASE_ADDR
94
95#define CFG_SYS_BOOTMAPSZ (256 << 20)     /* 256M */
96
97#define CFG_SYS_SDRAM_BASE          PHYS_SDRAM
98#define CFG_SYS_INIT_RAM_ADDR       IRAM_BASE_ADDR
99#define CFG_SYS_INIT_RAM_SIZE       IRAM_SIZE
100
101/* environment organization */
102
103#define CFG_SYS_FSL_USDHC_NUM	3
104
105#endif	/* __GE_BX50V3_CONFIG_H */
106