Tom Rini | 10e4779 | 2018-05-06 17:58:06 -0400 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 2 | /* |
| 3 | * Common configuration header file for all Keystone II EVM platforms |
| 4 | * |
| 5 | * (C) Copyright 2012-2014 |
| 6 | * Texas Instruments Incorporated, <www.ti.com> |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 7 | */ |
| 8 | |
| 9 | #ifndef __CONFIG_KS2_EVM_H |
| 10 | #define __CONFIG_KS2_EVM_H |
| 11 | |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 12 | /* U-Boot Build Configuration */ |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 13 | |
| 14 | /* SoC Configuration */ |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 15 | |
| 16 | /* Memory Configuration */ |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 17 | #define CFG_SYS_LPAE_SDRAM_BASE 0x800000000 |
Tom Rini | db9c39e | 2022-12-04 10:04:51 -0500 | [diff] [blame] | 18 | #define CFG_MAX_RAM_BANK_SIZE (2 << 30) /* 2GB */ |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 19 | |
Lokesh Vutla | e020861 | 2015-09-19 15:00:17 +0530 | [diff] [blame] | 20 | #ifdef CONFIG_SYS_MALLOC_F_LEN |
| 21 | #define SPL_MALLOC_F_SIZE CONFIG_SYS_MALLOC_F_LEN |
| 22 | #else |
| 23 | #define SPL_MALLOC_F_SIZE 0 |
| 24 | #endif |
| 25 | |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 26 | /* SPL SPI Loader Configuration */ |
Phil Edworthy | 4f91f36 | 2017-02-03 12:31:46 +0000 | [diff] [blame] | 27 | #define KEYSTONE_SPL_STACK_SIZE (8 * 1024) |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 28 | |
Franklin S Cooper Jr | 29f7313 | 2017-03-13 15:04:26 +0200 | [diff] [blame] | 29 | /* SRAM scratch space entries */ |
Tom Rini | 0cb89e7 | 2022-05-19 15:09:22 -0400 | [diff] [blame] | 30 | #define SRAM_SCRATCH_SPACE_ADDR 0xc0c23fc |
Franklin S Cooper Jr | 29f7313 | 2017-03-13 15:04:26 +0200 | [diff] [blame] | 31 | |
| 32 | #define TI_SRAM_SCRATCH_BOARD_EEPROM_START (SRAM_SCRATCH_SPACE_ADDR) |
| 33 | #define TI_SRAM_SCRATCH_BOARD_EEPROM_END (SRAM_SCRATCH_SPACE_ADDR + 0x200) |
| 34 | #define KEYSTONE_SRAM_SCRATCH_SPACE_END (TI_SRAM_SCRATCH_BOARD_EEPROM_END) |
| 35 | |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 36 | /* UART Configuration */ |
Tom Rini | df6a215 | 2022-11-16 13:10:28 -0500 | [diff] [blame] | 37 | #define CFG_SYS_NS16550_COM1 KS2_UART0_BASE |
| 38 | #define CFG_SYS_NS16550_COM2 KS2_UART1_BASE |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 39 | |
Vitaly Andrianov | 7fd5b64 | 2015-09-19 16:26:41 +0530 | [diff] [blame] | 40 | #ifndef CONFIG_SOC_K2G |
Tom Rini | df6a215 | 2022-11-16 13:10:28 -0500 | [diff] [blame] | 41 | #define CFG_SYS_NS16550_CLK ks_clk_get_rate(KS2_CLK1_6) |
Vitaly Andrianov | 7fd5b64 | 2015-09-19 16:26:41 +0530 | [diff] [blame] | 42 | #else |
Tom Rini | df6a215 | 2022-11-16 13:10:28 -0500 | [diff] [blame] | 43 | #define CFG_SYS_NS16550_CLK ks_clk_get_rate(uart_pll_clk) / 2 |
Vitaly Andrianov | 7fd5b64 | 2015-09-19 16:26:41 +0530 | [diff] [blame] | 44 | #endif |
| 45 | |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 46 | /* SPI Configuration */ |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 47 | #define CFG_SYS_SPI_CLK ks_clk_get_rate(KS2_CLK1_6) |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 48 | |
Khoronzhuk, Ivan | f2c13ba | 2014-09-29 22:17:22 +0300 | [diff] [blame] | 49 | /* Keystone net */ |
Tom Rini | 5e22334 | 2022-12-04 10:04:26 -0500 | [diff] [blame] | 50 | #define CFG_KSNET_MAC_ID_BASE KS2_MAC_ID_BASE_ADDR |
Tom Rini | cdc9e0f | 2022-12-04 10:04:27 -0500 | [diff] [blame] | 51 | #define CFG_KSNET_NETCP_BASE KS2_NETCP_BASE |
Tom Rini | c71cb12 | 2022-12-04 10:04:30 -0500 | [diff] [blame] | 52 | #define CFG_KSNET_SERDES_SGMII_BASE KS2_SGMII_SERDES_BASE |
Tom Rini | c2e481e | 2022-12-04 10:04:29 -0500 | [diff] [blame] | 53 | #define CFG_KSNET_SERDES_SGMII2_BASE KS2_SGMII_SERDES2_BASE |
Tom Rini | fd130b8 | 2022-12-04 10:04:28 -0500 | [diff] [blame] | 54 | #define CFG_KSNET_SERDES_LANES_PER_SGMII KS2_LANES_PER_SGMII_SERDES |
Khoronzhuk, Ivan | f2c13ba | 2014-09-29 22:17:22 +0300 | [diff] [blame] | 55 | |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 56 | /* EEPROM definitions */ |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 57 | |
| 58 | /* NAND Configuration */ |
Tom Rini | b421349 | 2022-11-12 17:36:51 -0500 | [diff] [blame] | 59 | #define CFG_SYS_NAND_MASK_CLE 0x4000 |
| 60 | #define CFG_SYS_NAND_MASK_ALE 0x2000 |
| 61 | #define CFG_SYS_NAND_CS 2 |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 62 | |
Tom Rini | b421349 | 2022-11-12 17:36:51 -0500 | [diff] [blame] | 63 | #define CFG_SYS_NAND_LARGEPAGE |
| 64 | #define CFG_SYS_NAND_BASE_LIST { 0x30000000, } |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 65 | |
Jean-Jacques Hiblot | 97603e6 | 2018-12-04 11:13:01 +0100 | [diff] [blame] | 66 | #define DFU_ALT_INFO_MMC \ |
| 67 | "dfu_alt_info_mmc=" \ |
| 68 | "MLO fat 0 1;" \ |
| 69 | "u-boot.img fat 0 1;" \ |
| 70 | "uEnv.txt fat 0 1\0" |
| 71 | |
| 72 | /* DFU settings */ |
| 73 | #define DFUARGS \ |
| 74 | "dfu_bufsiz=0x10000\0" \ |
| 75 | DFU_ALT_INFO_MMC \ |
| 76 | |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 77 | /* U-Boot general configuration */ |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 78 | |
| 79 | /* EDMA3 */ |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 80 | |
Vignesh R | 194c993 | 2017-03-08 13:58:17 +0530 | [diff] [blame] | 81 | #define KERNEL_MTD_PARTS \ |
| 82 | "mtdparts=" \ |
| 83 | SPI_MTD_PARTS |
| 84 | |
Murali Karicheri | cead0b2 | 2016-03-09 15:39:38 +0530 | [diff] [blame] | 85 | #define DEFAULT_FW_INITRAMFS_BOOT_ENV \ |
| 86 | "name_fw_rd=k2-fw-initrd.cpio.gz\0" \ |
| 87 | "set_rd_spec=setenv rd_spec ${rdaddr}:${filesize}\0" \ |
| 88 | "init_fw_rd_net=dhcp ${rdaddr} ${tftp_root}/${name_fw_rd}; " \ |
| 89 | "run set_rd_spec\0" \ |
Andrew F. Davis | 8593ed9 | 2016-11-18 11:56:16 -0600 | [diff] [blame] | 90 | "init_fw_rd_nfs=nfs ${rdaddr} ${nfs_root}/boot/${name_fw_rd}; " \ |
| 91 | "run set_rd_spec\0" \ |
Murali Karicheri | cead0b2 | 2016-03-09 15:39:38 +0530 | [diff] [blame] | 92 | "init_fw_rd_ramfs=setenv rd_spec -\0" \ |
| 93 | "init_fw_rd_ubi=ubifsload ${rdaddr} ${bootdir}/${name_fw_rd}; " \ |
| 94 | "run set_rd_spec\0" \ |
| 95 | |
Nishanth Menon | 0ce0a25 | 2016-02-25 12:53:47 -0600 | [diff] [blame] | 96 | #define DEFAULT_PMMC_BOOT_ENV \ |
| 97 | "set_name_pmmc=setenv name_pmmc ti-sci-firmware-${soc_variant}.bin\0" \ |
| 98 | "dev_pmmc=0\0" \ |
| 99 | "get_pmmc_net=dhcp ${loadaddr} ${tftp_root}/${name_pmmc}\0" \ |
Andrew F. Davis | 8593ed9 | 2016-11-18 11:56:16 -0600 | [diff] [blame] | 100 | "get_pmmc_nfs=nfs ${loadaddr} ${nfs_root}/boot/${name_pmmc}\0" \ |
Nishanth Menon | 0ce0a25 | 2016-02-25 12:53:47 -0600 | [diff] [blame] | 101 | "get_pmmc_ramfs=run get_pmmc_net\0" \ |
| 102 | "get_pmmc_mmc=load mmc ${bootpart} ${loadaddr} " \ |
| 103 | "${bootdir}/${name_pmmc}\0" \ |
| 104 | "get_pmmc_ubi=ubifsload ${loadaddr} ${bootdir}/${name_pmmc}\0" \ |
| 105 | "run_pmmc=rproc init; rproc list; " \ |
| 106 | "rproc load ${dev_pmmc} ${loadaddr} 0x${filesize}; " \ |
| 107 | "rproc start ${dev_pmmc}\0" \ |
| 108 | |
Tom Rini | c9edebe | 2022-12-04 10:03:50 -0500 | [diff] [blame] | 109 | #define CFG_EXTRA_ENV_SETTINGS \ |
Nishanth Menon | a121896 | 2015-07-22 18:05:46 -0500 | [diff] [blame] | 110 | DEFAULT_LINUX_BOOT_ENV \ |
Tom Rini | 5a23a65 | 2021-08-10 17:34:21 -0400 | [diff] [blame] | 111 | ENV_KS2_BOARD_SETTINGS \ |
Jean-Jacques Hiblot | 97603e6 | 2018-12-04 11:13:01 +0100 | [diff] [blame] | 112 | DFUARGS \ |
Carlos Hernandez | 060a398 | 2016-03-09 15:39:31 +0530 | [diff] [blame] | 113 | "bootdir=/boot\0" \ |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 114 | "tftp_root=/\0" \ |
| 115 | "nfs_root=/export\0" \ |
| 116 | "mem_lpae=1\0" \ |
Tero Kristo | 186cde8 | 2020-02-11 09:25:52 +0530 | [diff] [blame] | 117 | "uinitrd_fixup=1\0" \ |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 118 | "addr_ubi=0x82000000\0" \ |
| 119 | "addr_secdb_key=0xc000000\0" \ |
Nishanth Menon | fdbfb19 | 2015-07-22 18:05:47 -0500 | [diff] [blame] | 120 | "name_kern=zImage\0" \ |
Lokesh Vutla | e89428b | 2016-09-16 10:17:53 +0530 | [diff] [blame] | 121 | "addr_mon=0x87000000\0" \ |
Jean-Jacques Hiblot | 22bbed7 | 2019-09-17 17:18:25 -0400 | [diff] [blame] | 122 | "addr_non_sec_mon=0x0c097fc0\0" \ |
| 123 | "addr_load_sec_bm=0x0c09c000\0" \ |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 124 | "run_mon=mon_install ${addr_mon}\0" \ |
Madan Srinivas | 5a32f7c | 2017-07-17 12:59:13 -0500 | [diff] [blame] | 125 | "run_mon_hs=mon_install ${addr_non_sec_mon} " \ |
| 126 | "${addr_load_sec_bm}\0" \ |
Murali Karicheri | cead0b2 | 2016-03-09 15:39:38 +0530 | [diff] [blame] | 127 | "run_kern=bootz ${loadaddr} ${rd_spec} ${fdtaddr}\0" \ |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 128 | "init_net=run args_all args_net\0" \ |
Andrew F. Davis | 25fd727 | 2016-03-11 15:04:03 -0600 | [diff] [blame] | 129 | "init_nfs=setenv autoload no; dhcp; run args_all args_net\0" \ |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 130 | "init_ubi=run args_all args_ubi; " \ |
Carlos Hernandez | d45e760 | 2016-03-09 15:39:32 +0530 | [diff] [blame] | 131 | "ubi part ubifs; ubifsmount ubi:rootfs;\0" \ |
Nishanth Menon | a121896 | 2015-07-22 18:05:46 -0500 | [diff] [blame] | 132 | "get_fdt_net=dhcp ${fdtaddr} ${tftp_root}/${name_fdt}\0" \ |
Andrew F. Davis | 25fd727 | 2016-03-11 15:04:03 -0600 | [diff] [blame] | 133 | "get_fdt_nfs=nfs ${fdtaddr} ${nfs_root}/boot/${name_fdt}\0" \ |
Carlos Hernandez | 060a398 | 2016-03-09 15:39:31 +0530 | [diff] [blame] | 134 | "get_fdt_ubi=ubifsload ${fdtaddr} ${bootdir}/${name_fdt}\0" \ |
Nishanth Menon | a121896 | 2015-07-22 18:05:46 -0500 | [diff] [blame] | 135 | "get_kern_net=dhcp ${loadaddr} ${tftp_root}/${name_kern}\0" \ |
Andrew F. Davis | 25fd727 | 2016-03-11 15:04:03 -0600 | [diff] [blame] | 136 | "get_kern_nfs=nfs ${loadaddr} ${nfs_root}/boot/${name_kern}\0" \ |
Carlos Hernandez | 060a398 | 2016-03-09 15:39:31 +0530 | [diff] [blame] | 137 | "get_kern_ubi=ubifsload ${loadaddr} ${bootdir}/${name_kern}\0" \ |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 138 | "get_mon_net=dhcp ${addr_mon} ${tftp_root}/${name_mon}\0" \ |
Andrew F. Davis | 25fd727 | 2016-03-11 15:04:03 -0600 | [diff] [blame] | 139 | "get_mon_nfs=nfs ${addr_mon} ${nfs_root}/boot/${name_mon}\0" \ |
Andrew F. Davis | dd94071 | 2017-07-17 12:59:12 -0500 | [diff] [blame] | 140 | "get_mon_ubi=ubifsload ${addr_mon} ${bootdir}/${name_mon}\0" \ |
Andrew F. Davis | 77c875c | 2019-08-12 15:59:55 -0400 | [diff] [blame] | 141 | "get_fit_net=dhcp ${addr_fit} ${tftp_root}/${name_fit}\0" \ |
| 142 | "get_fit_nfs=nfs ${addr_fit} ${nfs_root}/boot/${name_fit}\0" \ |
| 143 | "get_fit_ubi=ubifsload ${addr_fit} ${bootdir}/${name_fit}\0" \ |
| 144 | "get_fit_mmc=load mmc ${bootpart} ${addr_fit} ${bootdir}/${name_fit}\0" \ |
Vitaly Andrianov | 200eecd | 2015-08-03 15:54:32 -0400 | [diff] [blame] | 145 | "get_uboot_net=dhcp ${loadaddr} ${tftp_root}/${name_uboot}\0" \ |
Andrew F. Davis | 25fd727 | 2016-03-11 15:04:03 -0600 | [diff] [blame] | 146 | "get_uboot_nfs=nfs ${loadaddr} ${nfs_root}/boot/${name_uboot}\0" \ |
Faiz Abbas | 5ce3f13 | 2018-01-16 13:43:40 +0530 | [diff] [blame] | 147 | "burn_uboot_spi=sf probe; sf erase 0 0x100000; " \ |
Vitaly Andrianov | 200eecd | 2015-08-03 15:54:32 -0400 | [diff] [blame] | 148 | "sf write ${loadaddr} 0 ${filesize}\0" \ |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 149 | "burn_uboot_nand=nand erase 0 0x100000; " \ |
Vitaly Andrianov | 200eecd | 2015-08-03 15:54:32 -0400 | [diff] [blame] | 150 | "nand write ${loadaddr} 0 ${filesize}\0" \ |
Michael Trimarchi | 034d8ff | 2022-05-22 15:22:08 +0200 | [diff] [blame] | 151 | "args_all=setenv bootargs console=ttyS0,115200n8 rootwait " \ |
Vignesh R | 194c993 | 2017-03-08 13:58:17 +0530 | [diff] [blame] | 152 | KERNEL_MTD_PARTS \ |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 153 | "args_net=setenv bootargs ${bootargs} rootfstype=nfs " \ |
| 154 | "root=/dev/nfs rw nfsroot=${serverip}:${nfs_root}," \ |
| 155 | "${nfs_options} ip=dhcp\0" \ |
| 156 | "nfs_options=v3,tcp,rsize=4096,wsize=4096\0" \ |
Nishanth Menon | a121896 | 2015-07-22 18:05:46 -0500 | [diff] [blame] | 157 | "get_fdt_ramfs=dhcp ${fdtaddr} ${tftp_root}/${name_fdt}\0" \ |
| 158 | "get_kern_ramfs=dhcp ${loadaddr} ${tftp_root}/${name_kern}\0" \ |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 159 | "get_mon_ramfs=dhcp ${addr_mon} ${tftp_root}/${name_mon}\0" \ |
Andrew F. Davis | 77c875c | 2019-08-12 15:59:55 -0400 | [diff] [blame] | 160 | "get_fit_ramfs=dhcp ${addr_fit} ${tftp_root}/${name_fit}\0" \ |
Nishanth Menon | a121896 | 2015-07-22 18:05:46 -0500 | [diff] [blame] | 161 | "get_fs_ramfs=dhcp ${rdaddr} ${tftp_root}/${name_fs}\0" \ |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 162 | "get_ubi_net=dhcp ${addr_ubi} ${tftp_root}/${name_ubi}\0" \ |
Andrew F. Davis | 25fd727 | 2016-03-11 15:04:03 -0600 | [diff] [blame] | 163 | "get_ubi_nfs=nfs ${addr_ubi} ${nfs_root}/boot/${name_ubi}\0" \ |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 164 | "burn_ubi=nand erase.part ubifs; " \ |
| 165 | "nand write ${addr_ubi} ubifs ${filesize}\0" \ |
| 166 | "init_ramfs=run args_all args_ramfs get_fs_ramfs\0" \ |
| 167 | "args_ramfs=setenv bootargs ${bootargs} " \ |
| 168 | "rdinit=/sbin/init rw root=/dev/ram0 " \ |
Vitaly Andrianov | ef010d7 | 2015-08-04 11:16:16 -0400 | [diff] [blame] | 169 | "initrd=0x808080000,80M\0" \ |
Tom Rini | c997d52 | 2022-06-13 22:57:36 -0400 | [diff] [blame] | 170 | "no_post=1\0" |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 171 | |
Nishanth Menon | b447151 | 2015-07-22 18:05:45 -0500 | [diff] [blame] | 172 | /* Now for the remaining common defines */ |
| 173 | #include <configs/ti_armv7_common.h> |
| 174 | |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 175 | /* we may include files below only after all above definitions */ |
| 176 | #include <asm/arch/hardware.h> |
| 177 | #include <asm/arch/clock.h> |
Vitaly Andrianov | 7fd5b64 | 2015-09-19 16:26:41 +0530 | [diff] [blame] | 178 | #ifndef CONFIG_SOC_K2G |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 179 | #define CFG_SYS_HZ_CLOCK ks_clk_get_rate(KS2_CLK1_6) |
Vitaly Andrianov | 7fd5b64 | 2015-09-19 16:26:41 +0530 | [diff] [blame] | 180 | #else |
Tom Rini | 6a5dccc | 2022-11-16 13:10:41 -0500 | [diff] [blame] | 181 | #define CFG_SYS_HZ_CLOCK get_external_clk(sys_clk) |
Vitaly Andrianov | 7fd5b64 | 2015-09-19 16:26:41 +0530 | [diff] [blame] | 182 | #endif |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 183 | |
Hao Zhang | eb01de2 | 2014-07-09 23:44:48 +0300 | [diff] [blame] | 184 | #endif /* __CONFIG_KS2_EVM_H */ |