env: Finish migration of common ENV options
[oweals/u-boot.git] / include / configs / pico-imx7d.h
index a81548cb001cfadc83326ad29790903b7079efbc..1d0df9dd447f585b9f937c64f36d8c83fd29075e 100644 (file)
@@ -1,9 +1,8 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
 /*
  * Copyright (C) 2017 NXP Semiconductors
  *
  * Configuration settings for the i.MX7D Pico board.
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #ifndef __PICO_IMX7D_CONFIG_H
 
 #include "mx7_common.h"
 
-#define PHYS_SDRAM_SIZE                SZ_1G
+#include "imx7_spl.h"
+
+#ifdef CONFIG_SPL_OS_BOOT
+/* Falcon Mode */
+#define CONFIG_SPL_FS_LOAD_ARGS_NAME   "args"
+#define CONFIG_SPL_FS_LOAD_KERNEL_NAME "uImage"
+#define CONFIG_SYS_SPL_ARGS_ADDR       0x88000000
+
+/* Falcon Mode - MMC support: args@1MB kernel@2MB */
+#define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR  0x800   /* 1MB */
+#define CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS (CONFIG_CMD_SPL_WRITE_SIZE / 512)
+#define CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR        0x1000  /* 2MB */
+#endif
 
 /* Size of malloc() pool */
 #define CONFIG_SYS_MALLOC_LEN          (32 * SZ_1M)
@@ -20,7 +31,6 @@
 
 /* Network */
 #define CONFIG_FEC_MXC
-#define CONFIG_MII
 #define CONFIG_FEC_XCV_TYPE            RGMII
 #define CONFIG_ETHPRIME                        "FEC"
 #define CONFIG_FEC_MXC_PHYADDR         1
 /* MMC Config */
 #define CONFIG_SYS_FSL_ESDHC_ADDR      0
 
-#define CONFIG_SUPPORT_EMMC_BOOT /* eMMC specific */
+#define CONFIG_DFU_ENV_SETTINGS \
+       "dfu_alt_info=" \
+               "spl raw 0x2 0x400;" \
+               "u-boot raw 0x8a 0x1000;" \
+               "/boot/zImage ext4 0 1;" \
+               "/boot/imx7d-pico-hobbit.dtb ext4 0 1;" \
+               "/boot/imx7d-pico-pi.dtb ext4 0 1;" \
+               "rootfs part 0 1\0" \
+
+/* When booting with FIT specify the node entry containing boot.scr */
+#if defined(CONFIG_FIT)
+#define PICO_BOOT_ENV \
+       BOOTENV                                                         \
+       "fdtovaddr=0x83100000\0"                                        \
+       "scriptaddr=0x83200000\0"                                       \
+       "mmcargs=setenv bootargs console=${console},${baudrate} "       \
+               "rootwait rw\0"                                         \
+       "boot_a_script="                                                \
+               "load ${devtype} ${devnum}:${distro_bootpart} "         \
+                       "${scriptaddr} ${prefix}${script}; "            \
+               "iminfo ${scriptaddr};"                                 \
+               "if test $? -eq 1; then hab_failsafe; fi;"              \
+               "source ${scriptaddr}:bootscr\0"
+#else
+#define PICO_BOOT_ENV \
+       "bootmenu_0=Boot using PICO-Hobbit baseboard=" \
+               "setenv fdtfile imx7d-pico-hobbit.dtb\0" \
+       "bootmenu_1=Boot using PICO-Dwarf baseboard=" \
+               "setenv fdtfile imx7d-pico-dwarf.dtb\0" \
+       "bootmenu_2=Boot using PICO-Nymph baseboard=" \
+               "setenv fdtfile imx7d-pico-nymph.dtb\0" \
+       "bootmenu_3=Boot using PICO-Pi baseboard=" \
+               "setenv fdtfile imx7d-pico-pi.dtb\0" \
+       BOOTENV
+#endif
+
+
 #define CONFIG_SYS_MMC_IMG_LOAD_PART   1
 
 #define CONFIG_EXTRA_ENV_SETTINGS \
-       "script=boot.scr\0" \
        "image=zImage\0" \
+       "splashpos=m,m\0" \
+       "splashimage=" __stringify(CONFIG_LOADADDR) "\0" \
        "console=ttymxc4\0" \
        "fdt_high=0xffffffff\0" \
        "initrd_high=0xffffffff\0" \
-       "fdt_file=imx7d-pico.dtb\0" \
+       "fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \
+       "videomode=video=ctfb:x:800,y:480,depth:24,mode:0,pclk:30000,le:46,ri:210,up:22,lo:23,hs:20,vs:10,sync:0,vmode:0\0" \
        "fdt_addr=0x83000000\0" \
-       "ip_dyn=yes\0" \
-       "mmcdev="__stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \
-       "mmcpart=" __stringify(CONFIG_SYS_MMC_IMG_LOAD_PART) "\0" \
-       "finduuid=part uuid mmc 0:2 uuid\0" \
-       "mmcargs=setenv bootargs console=${console},${baudrate} " \
-               "root=PARTUUID=${uuid} rootwait rw\0" \
-       "loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
-       "loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
-       "mmcboot=echo Booting from mmc ...; " \
-               "run finduuid; " \
-               "run mmcargs; " \
-               "if run loadfdt; then " \
-                       "bootz ${loadaddr} - ${fdt_addr}; " \
-               "else " \
-                       "echo WARN: Cannot load the DT; " \
-               "fi;\0" \
-       "netargs=setenv bootargs console=${console},${baudrate} " \
-               "root=/dev/nfs " \
-       "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
-               "netboot=echo Booting from net ...; " \
-               "run netargs; " \
-               "if test ${ip_dyn} = yes; then " \
-                       "setenv get_cmd dhcp; " \
-               "else " \
-                       "setenv get_cmd tftp; " \
-               "fi; " \
-               "${get_cmd} ${image}; " \
-               "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
-                       "bootz ${loadaddr} - ${fdt_addr}; " \
-               "else " \
-                       "echo WARN: Cannot load the DT; " \
-               "fi;\0"
-
-#define CONFIG_BOOTCOMMAND \
-       "if mmc rescan; then " \
-               "if run loadimage; then " \
-                       "run mmcboot; " \
-               "else run netboot; " \
-               "fi; " \
-       "else run netboot; fi"
+       "fdt_addr_r=0x83000000\0" \
+       "kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
+       "pxefile_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
+       "ramdisk_addr_r=0x83000000\0" \
+       "ramdiskaddr=0x83000000\0" \
+       "scriptaddr=" __stringify(CONFIG_LOADADDR) "\0" \
+       CONFIG_DFU_ENV_SETTINGS \
+       "findfdt=" \
+               "if test $fdtfile = ask ; then " \
+                       "bootmenu -1; fi;" \
+               "if test $fdtfile != ask ; then " \
+                       "saveenv; fi;\0" \
+       "finduuid=part uuid mmc 0:1 uuid\0" \
+       "partitions=" \
+               "uuid_disk=${uuid_gpt_disk};" \
+               "name=rootfs,size=0,uuid=${uuid_gpt_rootfs}\0" \
+       "fastboot_partition_alias_system=rootfs\0" \
+       "setup_emmc=mmc dev 0; gpt write mmc 0 $partitions; reset;\0" \
+       PICO_BOOT_ENV
+
+#define BOOT_TARGET_DEVICES(func) \
+       func(MMC, mmc, 0) \
+       func(USB, usb, 0) \
+       func(PXE, pxe, na) \
+       func(DHCP, dhcp, na)
+
+#include <config_distro_bootcmd.h>
 
 #define CONFIG_SYS_MEMTEST_START       0x80000000
 #define CONFIG_SYS_MEMTEST_END         (CONFIG_SYS_MEMTEST_START + 0x20000000)
 #define CONFIG_SYS_HZ                  1000
 
 /* Physical Memory Map */
-#define CONFIG_NR_DRAM_BANKS           1
 #define PHYS_SDRAM                     MMDC0_ARB_BASE_ADDR
 
 #define CONFIG_SYS_SDRAM_BASE          PHYS_SDRAM
 #define CONFIG_POWER_PFUZE3000
 #define CONFIG_POWER_PFUZE3000_I2C_ADDR        0x08
 
+#ifdef CONFIG_DM_VIDEO
+#define CONFIG_VIDEO_MXS
+#define CONFIG_VIDEO_LOGO
+#define CONFIG_SPLASH_SCREEN
+#define CONFIG_SPLASH_SCREEN_ALIGN
+#define CONFIG_BMP_16BPP
+#define CONFIG_VIDEO_BMP_RLE8
+#define CONFIG_VIDEO_BMP_LOGO
+#endif
+
 /* FLASH and environment organization */
-#define CONFIG_ENV_SIZE                        SZ_8K
 
-#define CONFIG_ENV_OFFSET                      (8 * SZ_64K)
+/* Environment starts at 768k = 768 * 1024 = 786432 */
+/*
+ * Detect overlap between U-Boot image and environment area in build-time
+ *
+ * CONFIG_BOARD_SIZE_LIMIT = CONFIG_ENV_OFFSET - u-boot.img offset
+ * CONFIG_BOARD_SIZE_LIMIT = 768k - 69k = 699k = 715776
+ *
+ * Currently CONFIG_BOARD_SIZE_LIMIT does not handle expressions, so
+ * write the direct value here
+ */
+#define CONFIG_BOARD_SIZE_LIMIT                715776
+
 #define CONFIG_SYS_FSL_USDHC_NUM               2
 
 #define CONFIG_SYS_MMC_ENV_DEV                 0