]>
Commit | Line | Data |
---|---|---|
83d290c5 | 1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
ae440ab0 | 2 | /* |
a62c6061 | 3 | * Copyright 2016-2018 Toradex AG |
ae440ab0 SA |
4 | * |
5 | * Configuration settings for the Colibri iMX7 module. | |
6 | * | |
7 | * based on mx7dsabresd.h: | |
8 | * Copyright (C) 2015 Freescale Semiconductor, Inc. | |
ae440ab0 SA |
9 | */ |
10 | ||
11 | #ifndef __COLIBRI_IMX7_CONFIG_H | |
12 | #define __COLIBRI_IMX7_CONFIG_H | |
13 | ||
14 | #include "mx7_common.h" | |
15 | ||
ae440ab0 | 16 | /* MMC Config*/ |
6cc04547 | 17 | #define CFG_SYS_FSL_ESDHC_ADDR 0 |
a62c6061 | 18 | #ifdef CONFIG_TARGET_COLIBRI_IMX7_NAND |
6cc04547 | 19 | #define CFG_SYS_FSL_USDHC_NUM 1 |
a62c6061 | 20 | #elif CONFIG_TARGET_COLIBRI_IMX7_EMMC |
6cc04547 | 21 | #define CFG_SYS_FSL_USDHC_NUM 2 |
a62c6061 | 22 | #endif |
ae440ab0 | 23 | |
9e286cb6 IO |
24 | #if defined(CONFIG_TARGET_COLIBRI_IMX7_EMMC) |
25 | #define UBOOT_UPDATE \ | |
26 | "uboot_hwpart=1\0" \ | |
27 | "uboot_blk=2\0" \ | |
28 | "set_blkcnt=setexpr blkcnt ${filesize} + 0x1ff && " \ | |
29 | "setexpr blkcnt ${blkcnt} / 0x200\0" \ | |
30 | "update_uboot=run set_blkcnt && mmc dev 0 ${uboot_hwpart} && " \ | |
31 | "mmc write ${loadaddr} ${uboot_blk} ${blkcnt}\0" | |
32 | #elif defined(CONFIG_TARGET_COLIBRI_IMX7_NAND) | |
33 | #define UBOOT_UPDATE \ | |
34 | "update_uboot=nand erase.part u-boot1 && " \ | |
35 | "nand write ${loadaddr} u-boot1 ${filesize} && " \ | |
36 | "nand erase.part u-boot2 && " \ | |
37 | "nand write ${loadaddr} u-boot2 ${filesize}\0" | |
38 | #endif | |
39 | ||
9358e5b3 IO |
40 | #ifndef PARTS_DEFAULT |
41 | /* Define the default GPT table for eMMC */ | |
42 | #define PARTS_DEFAULT \ | |
43 | /* Android partitions */ \ | |
44 | "partitions_android=" \ | |
45 | "uuid_disk=${uuid_gpt_disk};" \ | |
46 | "name=boot,start=1M,size=32M,uuid=${uuid_gpt_boot};" \ | |
47 | "name=environment,size=4M,uuid=${uuid_gpt_environment};" \ | |
48 | "name=recovery,size=16M,uuid=${uuid_gpt_recovery};" \ | |
49 | "name=system,size=1536M,uuid=${uuid_gpt_system};" \ | |
50 | "name=cache,size=512M,uuid=${uuid_gpt_cache};" \ | |
51 | "name=device,size=8M,uuid=${uuid_gpt_device};" \ | |
52 | "name=misc,size=4M,uuid=${uuid_gpt_misc};" \ | |
53 | "name=datafooter,size=2M,uuid=${uuid_gpt_datafooter};" \ | |
54 | "name=metadata,size=2M,uuid=${uuid_gpt_metadata};" \ | |
55 | "name=persistdata,size=2M,uuid=${uuid_gpt_persistdata};" \ | |
56 | "name=userdata,size=128M,uuid=${uuid_gpt_userdata};" \ | |
57 | "name=fbmisc,size=-,uuid=${uuid_gpt_fbmisc}\0" | |
58 | #endif /* PARTS_DEFAULT */ | |
59 | ||
60 | #define EMMC_ANDROID_BOOTCMD \ | |
61 | "android_args=androidboot.storage_type=emmc\0" \ | |
62 | PARTS_DEFAULT \ | |
63 | "android_fdt_addr=0x83700000\0" \ | |
64 | "android_mmc_dev=0\0" \ | |
65 | "m4binary=rpmsg_imu_freertos.elf\0" \ | |
66 | "androidboot=ext4load mmc 0:a ${loadaddr} media/0/${m4binary}; "\ | |
67 | "bootaux ${loadaddr}; " \ | |
68 | "setenv loadaddr 0x88000000; " \ | |
69 | "setenv bootm_boot_mode sec;" \ | |
70 | "setenv bootargs androidboot.serialno=${serial#} " \ | |
71 | "$android_args; " \ | |
72 | "part start mmc ${android_mmc_dev} boot boot_start; " \ | |
73 | "part size mmc ${android_mmc_dev} boot boot_size; " \ | |
74 | "mmc read ${loadaddr} ${boot_start} ${boot_size}; " \ | |
75 | "part start mmc ${android_mmc_dev} environment env_start; " \ | |
76 | "part size mmc ${android_mmc_dev} environment env_size; " \ | |
77 | "mmc read ${android_fdt_addr} ${env_start} ${env_size}; " \ | |
78 | "bootm ${loadaddr} ${loadaddr} ${android_fdt_addr}\0 " | |
79 | ||
ae440ab0 | 80 | #define MEM_LAYOUT_ENV_SETTINGS \ |
9af131e3 | 81 | "bootm_size=0x10000000\0" \ |
7fe2408b MZ |
82 | "fdt_addr_r=0x88200000\0" \ |
83 | "kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ | |
84 | "pxefile_addr_r=0x88300000\0" \ | |
85 | "ramdisk_addr_r=0x88400000\0" \ | |
86 | "scriptaddr=0x88280000\0" | |
ae440ab0 | 87 | |
ae440ab0 SA |
88 | #define UBI_BOOTCMD \ |
89 | "ubiargs=ubi.mtd=ubi root=ubi0:rootfs rootfstype=ubifs " \ | |
90 | "ubi.fm_autoconvert=1\0" \ | |
91 | "ubiboot=run setup; " \ | |
51aaaf5e FD |
92 | "setenv bootargs ${ubiargs} " \ |
93 | "${setupargs} ${tdxargs}; echo Booting from NAND...; " \ | |
ae440ab0 SA |
94 | "ubi part ubi && run m4boot && " \ |
95 | "ubi read ${kernel_addr_r} kernel && " \ | |
96 | "ubi read ${fdt_addr_r} dtb && " \ | |
8d0f2366 | 97 | "bootz ${kernel_addr_r} - ${fdt_addr_r}\0" \ |
ae440ab0 | 98 | |
a62c6061 | 99 | #if defined(CONFIG_TARGET_COLIBRI_IMX7_NAND) |
a62c6061 | 100 | #define MODULE_EXTRA_ENV_SETTINGS \ |
a62c6061 SA |
101 | UBI_BOOTCMD |
102 | #elif defined(CONFIG_TARGET_COLIBRI_IMX7_EMMC) | |
a62c6061 | 103 | #define MODULE_EXTRA_ENV_SETTINGS \ |
9358e5b3 | 104 | EMMC_ANDROID_BOOTCMD |
a62c6061 SA |
105 | #endif |
106 | ||
107 | #if defined(CONFIG_TARGET_COLIBRI_IMX7_NAND) | |
108 | #define BOOT_TARGET_DEVICES(func) \ | |
109 | func(MMC, mmc, 0) \ | |
110 | func(USB, usb, 0) \ | |
111 | func(DHCP, dhcp, na) | |
112 | #elif defined(CONFIG_TARGET_COLIBRI_IMX7_EMMC) | |
113 | #define BOOT_TARGET_DEVICES(func) \ | |
a62c6061 | 114 | func(MMC, mmc, 1) \ |
a17930a3 | 115 | func(MMC, mmc, 0) \ |
a62c6061 SA |
116 | func(USB, usb, 0) \ |
117 | func(DHCP, dhcp, na) | |
118 | #endif | |
119 | #include <config_distro_bootcmd.h> | |
ae440ab0 | 120 | |
0613c36a | 121 | #define CFG_EXTRA_ENV_SETTINGS \ |
a62c6061 | 122 | BOOTENV \ |
ae440ab0 | 123 | MEM_LAYOUT_ENV_SETTINGS \ |
a62c6061 | 124 | MODULE_EXTRA_ENV_SETTINGS \ |
9e286cb6 | 125 | UBOOT_UPDATE \ |
1377a776 | 126 | "boot_script_dhcp=boot.scr\0" \ |
ae440ab0 | 127 | "console=ttymxc0\0" \ |
ae440ab0 | 128 | "fdt_board=eval-v3\0" \ |
ae440ab0 | 129 | "m4boot=;\0" \ |
ae440ab0 SA |
130 | "setethupdate=if env exists ethaddr; then; else setenv ethaddr " \ |
131 | "00:14:2d:00:00:00; fi; tftpboot ${loadaddr} " \ | |
132 | "${board}/flash_eth.img && source ${loadaddr}\0" \ | |
133 | "setsdupdate=mmc rescan && setenv interface mmc && " \ | |
134 | "fatload ${interface} 0:1 ${loadaddr} " \ | |
135 | "${board}/flash_blk.img && source ${loadaddr}\0" \ | |
136 | "setup=setenv setupargs " \ | |
137 | "console=tty1 console=${console}" \ | |
51aaaf5e | 138 | ",${baudrate}n8 ${memargs} ${mtdparts}\0" \ |
ae440ab0 SA |
139 | "setupdate=run setsdupdate || run setusbupdate || run setethupdate\0" \ |
140 | "setusbupdate=usb start && setenv interface usb && " \ | |
141 | "fatload ${interface} 0:1 ${loadaddr} " \ | |
142 | "${board}/flash_blk.img && source ${loadaddr}\0" \ | |
143 | "splashpos=m,m\0" \ | |
72d81360 | 144 | "splashimage=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ |
ae440ab0 | 145 | "videomode=video=ctfb:x:640,y:480,depth:18,pclk:39722,le:48,ri:16,up:33,lo:10,hs:96,vs:2,sync:0,vmode:0\0" \ |
38045f54 | 146 | "updlevel=2\0" |
ae440ab0 SA |
147 | |
148 | /* Miscellaneous configurable options */ | |
ae440ab0 | 149 | |
ae440ab0 | 150 | /* Physical Memory Map */ |
ae440ab0 SA |
151 | #define PHYS_SDRAM MMDC0_ARB_BASE_ADDR |
152 | ||
aa6e94de | 153 | #define CFG_SYS_SDRAM_BASE PHYS_SDRAM |
65cc0e2a TR |
154 | #define CFG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR |
155 | #define CFG_SYS_INIT_RAM_SIZE IRAM_SIZE | |
ae440ab0 | 156 | |
a62c6061 | 157 | #ifdef CONFIG_TARGET_COLIBRI_IMX7_NAND |
ae440ab0 | 158 | /* NAND stuff */ |
4e590945 | 159 | #define CFG_SYS_NAND_BASE 0x40000000 |
a62c6061 | 160 | #endif |
ae440ab0 SA |
161 | |
162 | /* USB Configs */ | |
ae440ab0 | 163 | |
dd11fdc3 TR |
164 | #define CFG_MXC_USB_PORTSC (PORT_PTS_UTMI | PORT_PTS_PTW) |
165 | #define CFG_MXC_USB_FLAGS 0 | |
ae440ab0 | 166 | |
ae440ab0 | 167 | #endif |