1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* 3 * Config file for Compulab CM-FX6 board 4 * 5 * Copyright (C) 2014, Compulab Ltd - http://compulab.co.il/ 6 * 7 * Author: Nikita Kiryanov <nikita@compulab.co.il> 8 */ 9 10#ifndef __CONFIG_CM_FX6_H 11#define __CONFIG_CM_FX6_H 12 13#include "mx6_common.h" 14 15/* Machine config */ 16 17/* MMC */ 18#define CFG_SYS_FSL_USDHC_NUM 3 19#define CFG_SYS_FSL_ESDHC_ADDR USDHC2_BASE_ADDR 20 21/* RAM */ 22#define PHYS_SDRAM_1 MMDC0_ARB_BASE_ADDR 23#define PHYS_SDRAM_2 MMDC1_ARB_BASE_ADDR 24#define CFG_SYS_SDRAM_BASE PHYS_SDRAM_1 25#define CFG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR 26#define CFG_SYS_INIT_RAM_SIZE IRAM_SIZE 27 28/* Serial console */ 29#define CFG_MXC_UART_BASE UART4_BASE 30 31/* Environment */ 32 33#define CFG_EXTRA_ENV_SETTINGS \ 34 "fdt_high=0xffffffff\0" \ 35 "initrd_high=0xffffffff\0" \ 36 "fdt_addr_r=0x18000000\0" \ 37 "ramdisk_addr_r=0x13000000\0" \ 38 "kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ 39 "pxefile_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ 40 "scriptaddr=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ 41 "fdtfile=undefined\0" \ 42 "stdin=serial,usbkbd\0" \ 43 "stdout=serial,vidconsole\0" \ 44 "stderr=serial,vidconsole\0" \ 45 "panel=HDMI\0" \ 46 "uImage=uImage-cm-fx6\0" \ 47 "zImage=zImage-cm-fx6\0" \ 48 "kernel=uImage-cm-fx6\0" \ 49 "dtb=cm-fx6.dtb\0" \ 50 "console=ttymxc3,115200\0" \ 51 "ethprime=FEC0\0" \ 52 "video_hdmi=mxcfb0:dev=hdmi,1920x1080M-32@50,if=RGB32\0" \ 53 "video_dvi=mxcfb0:dev=dvi,1280x800M-32@50,if=RGB32\0" \ 54 "doboot=bootm ${kernel_addr_r}\0" \ 55 "doloadfdt=false\0" \ 56 "setboottypez=setenv kernel ${zImage};" \ 57 "setenv doboot bootz ${kernel_addr_r} - ${fdt_addr_r};" \ 58 "setenv doloadfdt true;\0" \ 59 "setboottypem=setenv kernel ${uImage};" \ 60 "setenv doboot bootm ${kernel_addr_r};" \ 61 "setenv doloadfdt false;\0"\ 62 "mmcroot=/dev/mmcblk0p2 rw rootwait\0" \ 63 "sataroot=/dev/sda2 rw rootwait\0" \ 64 "nandroot=/dev/mtdblock4 rw\0" \ 65 "nandrootfstype=ubifs\0" \ 66 "mmcargs=setenv bootargs console=${console} root=${mmcroot} " \ 67 "${video} ${extrabootargs}\0" \ 68 "sataargs=setenv bootargs console=${console} root=${sataroot} " \ 69 "${video} ${extrabootargs}\0" \ 70 "nandargs=setenv bootargs console=${console} " \ 71 "root=${nandroot} " \ 72 "rootfstype=${nandrootfstype} " \ 73 "${video} ${extrabootargs}\0" \ 74 "nandboot=if run nandloadkernel; then " \ 75 "run nandloadfdt;" \ 76 "run setboottypem;" \ 77 "run storagebootcmd;" \ 78 "run setboottypez;" \ 79 "run storagebootcmd;" \ 80 "fi;\0" \ 81 "run_eboot=echo Starting EBOOT ...; "\ 82 "mmc dev 2 && " \ 83 "mmc rescan && mmc read 10042000 a 400 && go 10042000\0" \ 84 "loadkernel=load ${storagetype} ${storagedev} ${kernel_addr_r} ${kernel};\0"\ 85 "loadfdt=load ${storagetype} ${storagedev} ${fdt_addr_r} ${dtb};\0" \ 86 "nandloadkernel=nand read ${kernel_addr_r} 0 780000;\0" \ 87 "nandloadfdt=nand read ${fdt_addr_r} 780000 80000;\0" \ 88 "setupmmcboot=setenv storagetype mmc; setenv storagedev 2;\0" \ 89 "setupsataboot=setenv storagetype sata; setenv storagedev 0;\0" \ 90 "setupnandboot=setenv storagetype nand;\0" \ 91 "storagebootcmd=echo Booting from ${storagetype} ...;" \ 92 "run ${storagetype}args; run doboot;\0" \ 93 "trybootk=if run loadkernel; then " \ 94 "if ${doloadfdt}; then " \ 95 "run loadfdt;" \ 96 "fi;" \ 97 "run storagebootcmd;" \ 98 "fi;\0" \ 99 "trybootsmz=" \ 100 "run setboottypem;" \ 101 "run trybootk;" \ 102 "run setboottypez;" \ 103 "run trybootk;\0" \ 104 "legacy_bootcmd=" \ 105 "run setupmmcboot;" \ 106 "mmc dev ${storagedev};" \ 107 "if mmc rescan; then " \ 108 "run trybootsmz;" \ 109 "fi;" \ 110 "run setupsataboot;" \ 111 "if sata init; then " \ 112 "run trybootsmz;" \ 113 "fi;" \ 114 "run setupnandboot;" \ 115 "run nandboot;\0" \ 116 "findfdt="\ 117 "if test $board_name = Utilite && test $board_rev = MX6Q ; then " \ 118 "setenv fdtfile imx6q-utilite-pro.dtb; fi; " \ 119 "if test $fdtfile = undefined; then " \ 120 "echo WARNING: Could not determine dtb to use; fi; \0" \ 121 BOOTENV 122 123#define BOOT_TARGET_DEVICES(func) \ 124 func(USB, usb, 0) \ 125 func(MMC, mmc, 2) \ 126 func(SATA, sata, 0) 127 128#include <config_distro_bootcmd.h> 129 130/* NAND */ 131#define CFG_SYS_NAND_BASE 0x40000000 132/* APBH DMA is required for NAND support */ 133 134/* Ethernet */ 135#define CFG_FEC_MXC_PHYADDR 0 136 137/* USB */ 138#define CFG_MXC_USB_PORTSC (PORT_PTS_UTMI | PORT_PTS_PTW) 139#define CFG_MXC_USB_FLAGS 0 140 141/* Boot */ 142#define CFG_SYS_BOOTMAPSZ (8 << 20) 143 144/* misc */ 145 146/* EEPROM */ 147 148#endif /* __CONFIG_CM_FX6_H */ 149