1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * Copyright 2013 Freescale Semiconductor, Inc. 4 * 5 * Configuration settings for the Freescale Vybrid vf610twr board. 6 */ 7 8 #ifndef __CONFIG_H 9 #define __CONFIG_H 10 11 #include <asm/arch/imx-regs.h> 12 #include <linux/stringify.h> 13 14 /* NAND support */ 15 16 #ifdef CONFIG_CMD_NAND 17 #define CFG_SYS_NAND_BASE NFC_BASE_ADDR 18 19 /* Dynamic MTD partition support */ 20 #endif 21 22 #define CFG_SYS_FSL_ESDHC_ADDR 0 23 24 #define CFG_FEC_MXC_PHYADDR 0 25 26 /* I2C Configs */ 27 28 /* 29 * We do have 128MB of memory on the Vybrid Tower board. Leave the last 30 * 16MB alone to avoid conflicts with Cortex-M4 firmwares running from 31 * DDR3. Hence, limit the memory range for image processing to 112MB 32 * using bootm_size. All of the following must be within this range. 33 * We have the default load at 32MB into DDR (for the kernel), FDT at 34 * 64MB and the ramdisk 512KB above that (allowing for hopefully never 35 * seen large trees). This allows a reasonable split between ramdisk 36 * and kernel size, where the ram disk can be a bit larger. 37 */ 38 #define MEM_LAYOUT_ENV_SETTINGS \ 39 "bootm_size=0x07000000\0" \ 40 "loadaddr=0x82000000\0" \ 41 "kernel_addr_r=0x82000000\0" \ 42 "fdt_addr=0x84000000\0" \ 43 "fdt_addr_r=0x84000000\0" \ 44 "rdaddr=0x84080000\0" \ 45 "ramdisk_addr_r=0x84080000\0" 46 47 #define CFG_EXTRA_ENV_SETTINGS \ 48 MEM_LAYOUT_ENV_SETTINGS \ 49 "script=boot.scr\0" \ 50 "image=zImage\0" \ 51 "console=ttyLP1\0" \ 52 "fdt_file=vf610-twr.dtb\0" \ 53 "boot_fdt=try\0" \ 54 "ip_dyn=yes\0" \ 55 "mmcdev=" __stringify(CONFIG_ENV_MMC_DEVICE_INDEX) "\0" \ 56 "mmcpart=1\0" \ 57 "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \ 58 "update_sd_firmware_filename=u-boot.imx\0" \ 59 "update_sd_firmware=" \ 60 "if test ${ip_dyn} = yes; then " \ 61 "setenv get_cmd dhcp; " \ 62 "else " \ 63 "setenv get_cmd tftp; " \ 64 "fi; " \ 65 "if mmc dev ${mmcdev}; then " \ 66 "if ${get_cmd} ${update_sd_firmware_filename}; then " \ 67 "setexpr fw_sz ${filesize} / 0x200; " \ 68 "setexpr fw_sz ${fw_sz} + 1; " \ 69 "mmc write ${loadaddr} 0x2 ${fw_sz}; " \ 70 "fi; " \ 71 "fi\0" \ 72 "mmcargs=setenv bootargs console=${console},${baudrate} " \ 73 "root=${mmcroot}\0" \ 74 "loadbootscript=" \ 75 "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ 76 "bootscript=echo Running bootscript from mmc ...; " \ 77 "source\0" \ 78 "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \ 79 "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ 80 "mmcboot=echo Booting from mmc ...; " \ 81 "run mmcargs; " \ 82 "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ 83 "if run loadfdt; then " \ 84 "bootz ${loadaddr} - ${fdt_addr}; " \ 85 "else " \ 86 "if test ${boot_fdt} = try; then " \ 87 "bootz; " \ 88 "else " \ 89 "echo WARN: Cannot load the DT; " \ 90 "fi; " \ 91 "fi; " \ 92 "else " \ 93 "bootz; " \ 94 "fi;\0" \ 95 "netargs=setenv bootargs console=${console},${baudrate} " \ 96 "root=/dev/nfs " \ 97 "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ 98 "netboot=echo Booting from net ...; " \ 99 "run netargs; " \ 100 "if test ${ip_dyn} = yes; then " \ 101 "setenv get_cmd dhcp; " \ 102 "else " \ 103 "setenv get_cmd tftp; " \ 104 "fi; " \ 105 "${get_cmd} ${image}; " \ 106 "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ 107 "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \ 108 "bootz ${loadaddr} - ${fdt_addr}; " \ 109 "else " \ 110 "if test ${boot_fdt} = try; then " \ 111 "bootz; " \ 112 "else " \ 113 "echo WARN: Cannot load the DT; " \ 114 "fi; " \ 115 "fi; " \ 116 "else " \ 117 "bootz; " \ 118 "fi;\0" 119 120 /* Miscellaneous configurable options */ 121 122 /* Physical memory map */ 123 #define PHYS_SDRAM (0x80000000) 124 #define PHYS_SDRAM_SIZE (128 * 1024 * 1024) 125 126 #define CFG_SYS_SDRAM_BASE PHYS_SDRAM 127 #define CFG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR 128 #define CFG_SYS_INIT_RAM_SIZE IRAM_SIZE 129 130 #endif 131