pico-imx7d.h 5.0 KB
Newer Older
1
/* SPDX-License-Identifier: GPL-2.0+ */
2 3 4 5 6 7 8 9 10 11 12
/*
 * Copyright (C) 2017 NXP Semiconductors
 *
 * Configuration settings for the i.MX7D Pico board.
 */

#ifndef __PICO_IMX7D_CONFIG_H
#define __PICO_IMX7D_CONFIG_H

#include "mx7_common.h"

F
Fabio Estevam 已提交
13
#include "imx7_spl.h"
14

15 16 17 18 19 20 21 22 23 24 25 26
#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

27 28 29 30 31 32 33 34
/* Size of malloc() pool */
#define CONFIG_SYS_MALLOC_LEN		(32 * SZ_1M)

#define CONFIG_MXC_UART_BASE		UART5_IPS_BASE_ADDR

/* MMC Config */
#define CONFIG_SYS_FSL_ESDHC_ADDR	0

35
#define CONFIG_DFU_ENV_SETTINGS \
36
	"dfu_alt_info=" \
37
		"spl raw 0x2 0x400;" \
38
		"u-boot raw 0x8a 0x1000;" \
39
		"/boot/zImage ext4 0 1;" \
40
		"/boot/imx7d-pico-hobbit.dtb ext4 0 1;" \
41 42 43
		"/boot/imx7d-pico-pi.dtb ext4 0 1;" \
		"rootfs part 0 1\0" \

44 45 46
/* When booting with FIT specify the node entry containing boot.scr */
#if defined(CONFIG_FIT)
#define PICO_BOOT_ENV \
47 48 49 50 51 52 53 54 55 56 57
	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"
58 59
#else
#define PICO_BOOT_ENV \
60 61
	"bootmenu_0=Boot using PICO-Hobbit baseboard=" \
		"setenv fdtfile imx7d-pico-hobbit.dtb\0" \
62 63
	"bootmenu_1=Boot using PICO-Dwarf baseboard=" \
		"setenv fdtfile imx7d-pico-dwarf.dtb\0" \
64 65 66
	"bootmenu_2=Boot using PICO-Nymph baseboard=" \
		"setenv fdtfile imx7d-pico-nymph.dtb\0" \
	"bootmenu_3=Boot using PICO-Pi baseboard=" \
67
		"setenv fdtfile imx7d-pico-pi.dtb\0" \
68 69 70
	BOOTENV
#endif

71

72 73 74 75
#define CONFIG_SYS_MMC_IMG_LOAD_PART	1

#define CONFIG_EXTRA_ENV_SETTINGS \
	"image=zImage\0" \
F
Fabio Estevam 已提交
76
	"splashpos=m,m\0" \
77
	"splashimage=" __stringify(CONFIG_LOADADDR) "\0" \
78 79 80
	"console=ttymxc4\0" \
	"fdt_high=0xffffffff\0" \
	"initrd_high=0xffffffff\0" \
81
	"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \
F
Fabio Estevam 已提交
82
	"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" \
83
	"fdt_addr=0x83000000\0" \
84 85 86 87 88 89
	"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" \
90
	CONFIG_DFU_ENV_SETTINGS \
91 92 93 94 95
	"findfdt=" \
		"if test $fdtfile = ask ; then " \
			"bootmenu -1; fi;" \
		"if test $fdtfile != ask ; then " \
			"saveenv; fi;\0" \
96
	"finduuid=part uuid mmc 0:1 uuid\0" \
97 98 99
	"partitions=" \
		"uuid_disk=${uuid_gpt_disk};" \
		"name=rootfs,size=0,uuid=${uuid_gpt_rootfs}\0" \
F
Fabio Estevam 已提交
100
	"fastboot_partition_alias_system=rootfs\0" \
101
	"setup_emmc=mmc dev 0; gpt write mmc 0 $partitions; reset;\0" \
102 103
	PICO_BOOT_ENV

104 105
#define BOOT_TARGET_DEVICES(func) \
	func(MMC, mmc, 0) \
106 107
	func(USB, usb, 0) \
	func(PXE, pxe, na) \
108 109 110
	func(DHCP, dhcp, na)

#include <config_distro_bootcmd.h>
111
#include <linux/stringify.h>
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142

#define CONFIG_SYS_LOAD_ADDR		CONFIG_LOADADDR
#define CONFIG_SYS_HZ			1000

/* Physical Memory Map */
#define PHYS_SDRAM			MMDC0_ARB_BASE_ADDR

#define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM
#define CONFIG_SYS_INIT_RAM_ADDR	IRAM_BASE_ADDR
#define CONFIG_SYS_INIT_RAM_SIZE	IRAM_SIZE

#define CONFIG_SYS_INIT_SP_OFFSET \
	(CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
#define CONFIG_SYS_INIT_SP_ADDR \
	(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)

/* I2C configs */
#define CONFIG_SYS_I2C
#define CONFIG_SYS_I2C_MXC
#define CONFIG_SYS_I2C_MXC_I2C1
#define CONFIG_SYS_I2C_MXC_I2C2
#define CONFIG_SYS_I2C_MXC_I2C3
#define CONFIG_SYS_I2C_MXC_I2C4
#define CONFIG_SYS_I2C_SPEED		100000

/* PMIC */
#define CONFIG_POWER
#define CONFIG_POWER_I2C
#define CONFIG_POWER_PFUZE3000
#define CONFIG_POWER_PFUZE3000_I2C_ADDR	0x08

143
#ifdef CONFIG_DM_VIDEO
F
Fabio Estevam 已提交
144 145 146 147 148 149
#define CONFIG_VIDEO_MXS
#define CONFIG_VIDEO_LOGO
#define CONFIG_BMP_16BPP
#define CONFIG_VIDEO_BMP_LOGO
#endif

150 151
/* FLASH and environment organization */

152 153 154 155 156 157 158 159 160 161 162 163
/* 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

164 165 166 167 168 169 170 171 172 173 174
#define CONFIG_SYS_FSL_USDHC_NUM		2

/* USB Configs */
#define CONFIG_EHCI_HCD_INIT_AFTER_RESET
#define CONFIG_MXC_USB_PORTSC			(PORT_PTS_UTMI | PORT_PTS_PTW)
#define CONFIG_MXC_USB_FLAGS			0
#define CONFIG_USB_MAX_CONTROLLER_COUNT	2

#define CONFIG_IMX_THERMAL

#endif