1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * Configuration header file for K3 AM654 EVM 4 * 5 * Copyright (C) 2017-2018 Texas Instruments Incorporated - http://www.ti.com/ 6 * Lokesh Vutla <lokeshvutla@ti.com> 7 */ 8 9 #ifndef __CONFIG_AM654_EVM_H 10 #define __CONFIG_AM654_EVM_H 11 12 #include <linux/sizes.h> 13 #include <config_distro_bootcmd.h> 14 #include <environment/ti/mmc.h> 15 #include <environment/ti/k3_rproc.h> 16 #include <environment/ti/k3_dfu.h> 17 18 /* DDR Configuration */ 19 #define CONFIG_SYS_SDRAM_BASE1 0x880000000 20 21 /* SPL Loader Configuration */ 22 #ifdef CONFIG_TARGET_AM654_A53_EVM 23 #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SPL_TEXT_BASE + \ 24 CONFIG_SYS_K3_NON_SECURE_MSRAM_SIZE) 25 #define CONFIG_SYS_DFU_DATA_BUF_SIZE 0x20000 26 #else 27 /* 28 * Maximum size in memory allocated to the SPL BSS. Keep it as tight as 29 * possible (to allow the build to go through), as this directly affects 30 * our memory footprint. The less we use for BSS the more we have available 31 * for everything else. 32 */ 33 #define CONFIG_SPL_BSS_MAX_SIZE 0xc00 34 /* 35 * Link BSS to be within SPL in a dedicated region located near the top of 36 * the MCU SRAM, this way making it available also before relocation. Note 37 * that we are not using the actual top of the MCU SRAM as there is a memory 38 * location filled in by the boot ROM that we want to read out without any 39 * interference from the C context. 40 */ 41 #define CONFIG_SPL_BSS_START_ADDR (CONFIG_SYS_K3_BOOT_PARAM_TABLE_INDEX -\ 42 CONFIG_SPL_BSS_MAX_SIZE) 43 /* Set the stack right below the SPL BSS section */ 44 #define CONFIG_SYS_INIT_SP_ADDR CONFIG_SPL_BSS_START_ADDR 45 /* Configure R5 SPL post-relocation malloc pool in DDR */ 46 #define CONFIG_SYS_SPL_MALLOC_START 0x84000000 47 #define CONFIG_SYS_SPL_MALLOC_SIZE SZ_16M 48 #define CONFIG_SYS_DFU_DATA_BUF_SIZE 0x5000 49 #endif 50 51 #ifdef CONFIG_SYS_K3_SPL_ATF 52 #define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME "tispl.bin" 53 #endif 54 55 #ifndef CONFIG_CPU_V7R 56 #define CONFIG_SKIP_LOWLEVEL_INIT 57 #endif 58 59 /* 60 * If the maximum size is not declared then it is defined as 61 * CONFIG_SYS_DFU_DATA_BUF_SIZE. 62 */ 63 #define CONFIG_SYS_DFU_MAX_FILE_SIZE (1024 * 1024 * 8) /* 8 MiB */ 64 65 #define CONFIG_SPL_MAX_SIZE CONFIG_SYS_K3_MAX_DOWNLODABLE_IMAGE_SIZE 66 67 #define CONFIG_SYS_BOOTM_LEN SZ_64M 68 69 #define PARTS_DEFAULT \ 70 /* Linux partitions */ \ 71 "name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs}\0" 72 73 /* U-Boot general configuration */ 74 #define EXTRA_ENV_AM65X_BOARD_SETTINGS \ 75 "findfdt=" \ 76 "setenv name_fdt k3-am654-base-board.dtb;" \ 77 "setenv fdtfile ${name_fdt}\0" \ 78 "name_kern=Image\0" \ 79 "console=ttyS2,115200n8\0" \ 80 "stdin=serial,usbkbd\0" \ 81 "args_all=setenv optargs earlycon=ns16550a,mmio32,0x02800000 " \ 82 "${mtdparts}\0" \ 83 "run_kern=booti ${loadaddr} ${rd_spec} ${fdtaddr}\0" \ 84 85 /* U-Boot MMC-specific configuration */ 86 #define EXTRA_ENV_AM65X_BOARD_SETTINGS_MMC \ 87 "boot=mmc\0" \ 88 "mmcdev=1\0" \ 89 "bootpart=1:2\0" \ 90 "bootdir=/boot\0" \ 91 "rd_spec=-\0" \ 92 "init_mmc=run args_all args_mmc\0" \ 93 "get_fdt_mmc=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${name_fdt}\0" \ 94 "get_overlay_mmc=" \ 95 "fdt address ${fdtaddr};" \ 96 "fdt resize 0x100000;" \ 97 "for overlay in $name_overlays;" \ 98 "do;" \ 99 "load mmc ${bootpart} ${dtboaddr} ${bootdir}/${overlay};" \ 100 "fdt apply ${dtboaddr};" \ 101 "done;\0" \ 102 "get_kern_mmc=load mmc ${bootpart} ${loadaddr} " \ 103 "${bootdir}/${name_kern}\0" \ 104 "get_fit_mmc=load mmc ${bootpart} ${addr_fit} " \ 105 "${bootdir}/${name_fit}\0" \ 106 "partitions=" PARTS_DEFAULT 107 108 #ifdef DEFAULT_RPROCS 109 #undef DEFAULT_RPROCS 110 #endif 111 #define DEFAULT_RPROCS "" \ 112 "0 /lib/firmware/am65x-mcu-r5f0_0-fw " \ 113 "1 /lib/firmware/am65x-mcu-r5f0_1-fw " 114 115 #ifdef CONFIG_TARGET_AM654_A53_EVM 116 #define EXTRA_ENV_AM65X_BOARD_SETTINGS_MTD \ 117 "mtdids=" CONFIG_MTDIDS_DEFAULT "\0" \ 118 "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" 119 #else 120 #define EXTRA_ENV_AM65X_BOARD_SETTINGS_MTD 121 #endif 122 123 #define EXTRA_ENV_AM65X_BOARD_SETTINGS_UBI \ 124 "init_ubi=run args_all args_ubi; sf probe; " \ 125 "ubi part ospi.rootfs; ubifsmount ubi:rootfs;\0" \ 126 "get_kern_ubi=ubifsload ${loadaddr} ${bootdir}/${name_kern}\0" \ 127 "get_fdt_ubi=ubifsload ${fdtaddr} ${bootdir}/${name_fdt}\0" \ 128 "args_ubi=setenv bootargs console=${console} ${optargs} " \ 129 "rootfstype=ubifs root=ubi0:rootfs rw ubi.mtd=ospi.rootfs\0" 130 131 #define EXTRA_ENV_DFUARGS \ 132 DFU_ALT_INFO_MMC \ 133 DFU_ALT_INFO_RAM \ 134 DFU_ALT_INFO_EMMC \ 135 DFU_ALT_INFO_OSPI 136 137 /* Incorporate settings into the U-Boot environment */ 138 #define CONFIG_EXTRA_ENV_SETTINGS \ 139 DEFAULT_LINUX_BOOT_ENV \ 140 DEFAULT_MMC_TI_ARGS \ 141 DEFAULT_FIT_TI_ARGS \ 142 EXTRA_ENV_AM65X_BOARD_SETTINGS \ 143 EXTRA_ENV_AM65X_BOARD_SETTINGS_MMC \ 144 EXTRA_ENV_AM65X_BOARD_SETTINGS_MTD \ 145 EXTRA_ENV_AM65X_BOARD_SETTINGS_UBI \ 146 EXTRA_ENV_RPROC_SETTINGS \ 147 EXTRA_ENV_DFUARGS 148 149 #define CONFIG_SYS_USB_FAT_BOOT_PARTITION 1 150 151 /* Now for the remaining common defines */ 152 #include <configs/ti_armv7_common.h> 153 154 #endif /* __CONFIG_AM654_EVM_H */ 155