1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * Copyright (C) 2018 4 * Lukasz Majewski, DENX Software Engineering, lukma@denx.de 5 * 6 * Copyright 2016 3ADEV <http://3adev.com> 7 * Written-by: Albert ARIBAUD <albert.aribaud@3adev.fr> 8 * 9 * Configuration settings for BK4R1. 10 */ 11 12 #ifndef __CONFIG_H 13 #define __CONFIG_H 14 15 /* Define the BK4r1-specific env commands */ 16 #define BK4_EXTRA_ENV_SETTINGS \ 17 "bootlimit=3\0" \ 18 "eraseuserdata=false\0" \ 19 "set_gpio103=mw 0x400ff0c4 0x0080; mw 0x4004819C 0x000011bf\0" \ 20 "set_gpio102=mw 0x400ff0c4 0x40; mw 0x40048198 0x000011bf\0" \ 21 "set_gpio96=mw 0x40048180 0x282; mw 0x400ff0c4 0x1\0"\ 22 "set_gpio122=mw 0x400481e8 0x0282; mw 0x400ff0c4 0x04000000\0"\ 23 "set_gpio6=mw 0x40048018 0x282; mw 0x400ff008 0x40\0"\ 24 "manage_userdata=" MANAGE_USERDATA "\0"\ 25 "ncenable=true\0"\ 26 "ncserverip=192.168.0.77\0"\ 27 "if_netconsole=ping $ncserverip\0"\ 28 "start_netconsole=setenv ncip $serverip; setenv bootdelay 10;" \ 29 "setenv stdin nc; setenv stdout nc; setenv stderr nc; version;\0" \ 30 "preboot=" BK4_NET_INIT \ 31 "if ${ncenable}; then run if_netconsole start_netconsole; fi\0" 32 33 /* Enable PREBOOT variable */ 34 35 /* BK4r1 net init sets GPIO122/PTE17 to enable Ethernet */ 36 #define BK4_NET_INIT "run set_gpio122;" 37 38 /* Check if userdata volume shall be erased */ 39 #define MANAGE_USERDATA "if ${eraseuserdata}; " \ 40 "then ubi part system; " \ 41 "ubi remove userdata; " \ 42 "ubi create userdata; " \ 43 "ubi detach; " \ 44 "setenv eraseuserdata false; " \ 45 "saveenv; " \ 46 "fi; " 47 48 #include <asm/arch/imx-regs.h> 49 #include <linux/sizes.h> 50 51 /* NAND support */ 52 53 #define IMX_FEC1_BASE ENET1_BASE_ADDR 54 55 /* boot command, including the target-defined one if any */ 56 57 /* Extra env settings (including the target-defined ones if any) */ 58 #define CFG_EXTRA_ENV_SETTINGS \ 59 BK4_EXTRA_ENV_SETTINGS \ 60 "fdt_high=0xffffffff\0" \ 61 "initrd_high=0xffffffff\0" \ 62 "blimg_file=u-boot.vyb\0" \ 63 "blimg_addr=0x81000000\0" \ 64 "dtbkernel_file=fitImage\0" \ 65 "dtbkernel_addr=0x82000000\0" \ 66 "ram_file=uRamdisk\0" \ 67 "ram_addr=0x83000000\0" \ 68 "filesys=rootfs.ubifs\0" \ 69 "sys_addr=0x81000000\0" \ 70 "nfs_root=/path/to/nfs/root\0" \ 71 "tftptimeout=1000\0" \ 72 "tftptimeoutcountmax=1000000\0" \ 73 "ipaddr=192.168.0.60\0" \ 74 "serverip=192.168.0.1\0" \ 75 "bootargs_base=setenv bootargs rw " \ 76 "console=ttyLP1,115200n8\0" \ 77 "bootargs_sd=setenv bootargs ${bootargs} " \ 78 "root=/dev/mmcblk0p2 rootwait\0" \ 79 "bootargs_nand=setenv bootargs ${bootargs} " \ 80 "ubi.mtd=5 rootfstype=" \ 81 "ubifs root=ubi0:rootfs${active_workset}\0" \ 82 "bootargs_ram=setenv bootargs ${bootargs} " \ 83 "root=/dev/ram rw initrd=${ram_addr}\0" \ 84 "bootargs_mtd=setenv bootargs ${bootargs} ${mtdparts}\0" \ 85 "bootcmd_sd=run bootargs_base bootargs_sd bootargs_mtd; " \ 86 "fatload mmc 0:2 ${dtbkernel_addr} ${dtbkernel_file}; " \ 87 "bootm ${dtbkernel_addr}\0" \ 88 "bootcmd_nand=sf probe;run bootargs_base bootargs_nand bootargs_mtd; " \ 89 "ubi part dtbkernel; " \ 90 "ubi readvol ${dtbkernel_addr} dtbkernel${active_workset}; " \ 91 "led 0 on; " \ 92 "bootm ${dtbkernel_addr}\0" \ 93 "bootcmd_ram=run bootargs_base bootargs_ram bootargs_mtd; " \ 94 "nand read ${fdt_addr} dtb; " \ 95 "nand read ${kernel_addr} kernel; " \ 96 "nand read ${ram_addr} root; " \ 97 "bootz ${kernel_addr} ${ram_addr} ${fdt_addr}\0" \ 98 "update_bootloader_from_sd=if fatload mmc 0:2 ${blimg_addr} " \ 99 "${blimg_file}; " \ 100 "then sf probe; " \ 101 "mtdparts default; " \ 102 "nand erase.part bootloader; " \ 103 "nand write ${blimg_addr} bootloader ${filesize}; fi\0" \ 104 "update_bootloader_from_tftp=if tftp ${blimg_addr} "\ 105 "${tftpdir}${blimg_file}; "\ 106 "then sf probe; " \ 107 "mtdparts default; " \ 108 "nand erase.part bootloader; " \ 109 "nand write ${blimg_addr} bootloader ${filesize}; fi\0" \ 110 "update_dtbkernel_from_sd=if fatload mmc 0:2 ${dtbkernel_addr} " \ 111 "${dtbkernel_file}; " \ 112 "then sf probe; " \ 113 "ubi part dtbkernel; " \ 114 "ubi write ${dtbkernel_addr} dtbkernel${active_workset} " \ 115 "${filesize}; " \ 116 "ubi detach; fi\0" \ 117 "update_dtbkernel_from_tftp=if tftp ${dtbkernel_addr} " \ 118 "${tftpdir}${dtbkernel_file}; " \ 119 "then sf probe; " \ 120 "ubi part dtbkernel; " \ 121 "ubi write ${dtbkernel_addr} dtbkernel${active_workset} " \ 122 "${filesize}; " \ 123 "ubi detach; fi\0" \ 124 "update_ramdisk_from_sd=if fatload mmc 0:2 ${ram_addr} " \ 125 "${ram_file}; " \ 126 "then sf probe; " \ 127 "mtdparts default; " \ 128 "nand erase.part initrd; " \ 129 "nand write ${ram_addr} initrd ${filesize}; fi\0" \ 130 "update_ramdisk_from_tftp=if tftp ${ram_addr} ${tftpdir}${ram_file}; " \ 131 "then sf probe; " \ 132 "nand erase.part initrd; " \ 133 "nand write ${ram_addr} initrd ${filesize}; fi\0" \ 134 "update_rootfs_from_sd=if fatload mmc 0:2 ${sys_addr} " \ 135 "${filesys}; " \ 136 "then sf probe; " \ 137 "ubi part system; " \ 138 "ubi write ${sys_addr} rootfs${active_workset} ${filesize}; " \ 139 "ubi detach; fi\0" \ 140 "update_rootfs_from_tftp=if tftp ${sys_addr} ${tftpdir}${filesys}; " \ 141 "then sf probe; " \ 142 "ubi part system; " \ 143 "ubi write ${sys_addr} rootfs${active_workset} ${filesize}; " \ 144 "ubi detach; fi\0" \ 145 "setup_dtbkernel=nand erase.part dtbkernel; " \ 146 "ubi part dtbkernel; " \ 147 "ubi create dtbkernel1 972000 s; " \ 148 "ubi create dtbkernel2 972000 s; " \ 149 "ubi detach\0" \ 150 "setup_system=nand erase.part system; " \ 151 "ubi part system; " \ 152 "ubi create rootfs1 15E15000 d; " \ 153 "ubi create rootfs2 15E15000 d; " \ 154 "ubi create userdata; " \ 155 "ubi detach\0" \ 156 "setup_nor1=" BK4_NET_INIT \ 157 "if tftp ${sys_addr} ${tftpdir}ubinor1.img; " \ 158 "then sf probe 0:0; " \ 159 "sf erase 0 01000000; " \ 160 "mtdparts default; " \ 161 "ubi part nor; " \ 162 "ubi create nor1fs; " \ 163 "ubi write ${sys_addr} nor1fs ${filesize}; " \ 164 "ubi detach; fi\0" \ 165 "setup_nor2=" BK4_NET_INIT \ 166 "if tftp ${sys_addr} ${tftpdir}ubinor2.img; " \ 167 "then sf probe 0:1; " \ 168 "sf erase 0 01000000; " \ 169 "mtdparts default; " \ 170 "ubi part nor; " \ 171 "ubi create nor2fs; " \ 172 "ubi write ${sys_addr} nor2fs ${filesize}; " \ 173 "ubi detach; fi\0" \ 174 "prepare_install_bk4r1_envs=" \ 175 "echo 'Preparing envs for SD card recovery!';" \ 176 "setenv ipaddr 192.168.0.99;" \ 177 "setenv serverip 192.168.0.50;" \ 178 "\0" \ 179 "install_bk4r1rs="\ 180 "led 0 on; " \ 181 "nand erase.chip; mtdparts default; "\ 182 "led 1 on; "\ 183 "run setup_dtbkernel; " \ 184 "run setup_system; " \ 185 "led 2 on;" \ 186 "run update_bootloader_from_sd; "\ 187 "run update_dtbkernel_from_sd; "\ 188 "run update_rootfs_from_sd; "\ 189 "setenv bootcmd 'run bootcmd_nand'; "\ 190 "saveenv; " \ 191 "led 3 on; " \ 192 "echo Finished - Please Power off, REMOVE SDCARD and set boot" \ 193 "source to NAND\0" \ 194 "active_workset=1\0" 195 196 /* Physical memory map */ 197 #define PHYS_SDRAM (0x80000000) 198 #define PHYS_SDRAM_SIZE (SZ_512M) 199 200 #define CFG_SYS_SDRAM_BASE PHYS_SDRAM 201 #define CFG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR 202 #define CFG_SYS_INIT_RAM_SIZE IRAM_SIZE 203 204 #endif /* __CONFIG_H */ 205