1*83d290c5STom Rini // SPDX-License-Identifier: GPL-2.0+ 28b0044ffSOleksandr G Zhadan /* 38b0044ffSOleksandr G Zhadan * Copyright 2013-2015 Arcturus Networks, Inc 48b0044ffSOleksandr G Zhadan * http://www.arcturusnetworks.com/products/ucp1020/ 58b0044ffSOleksandr G Zhadan * based on board/freescale/p1_p2_rdb_pc/tlb.c 68b0044ffSOleksandr G Zhadan * original copyright follows: 78b0044ffSOleksandr G Zhadan * Copyright 2010-2011 Freescale Semiconductor, Inc. 88b0044ffSOleksandr G Zhadan */ 98b0044ffSOleksandr G Zhadan 108b0044ffSOleksandr G Zhadan #include <common.h> 118b0044ffSOleksandr G Zhadan #include <asm/mmu.h> 128b0044ffSOleksandr G Zhadan 138b0044ffSOleksandr G Zhadan struct fsl_e_tlb_entry tlb_table[] = { 148b0044ffSOleksandr G Zhadan /* TLB 0 - for temp stack in cache */ 158b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(0, CONFIG_SYS_INIT_RAM_ADDR, 168b0044ffSOleksandr G Zhadan CONFIG_SYS_INIT_RAM_ADDR_PHYS, 178b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, 0, 188b0044ffSOleksandr G Zhadan 0, 0, BOOKE_PAGESZ_4K, 0), 198b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(0, CONFIG_SYS_INIT_RAM_ADDR + 4 * 1024, 208b0044ffSOleksandr G Zhadan CONFIG_SYS_INIT_RAM_ADDR_PHYS + 4 * 1024, 218b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, 0, 228b0044ffSOleksandr G Zhadan 0, 0, BOOKE_PAGESZ_4K, 0), 238b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(0, CONFIG_SYS_INIT_RAM_ADDR + 8 * 1024, 248b0044ffSOleksandr G Zhadan CONFIG_SYS_INIT_RAM_ADDR_PHYS + 8 * 1024, 258b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, 0, 268b0044ffSOleksandr G Zhadan 0, 0, BOOKE_PAGESZ_4K, 0), 278b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(0, CONFIG_SYS_INIT_RAM_ADDR + 12 * 1024, 288b0044ffSOleksandr G Zhadan CONFIG_SYS_INIT_RAM_ADDR_PHYS + 12 * 1024, 298b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, 0, 308b0044ffSOleksandr G Zhadan 0, 0, BOOKE_PAGESZ_4K, 0), 318b0044ffSOleksandr G Zhadan 328b0044ffSOleksandr G Zhadan /* TLB 1 */ 338b0044ffSOleksandr G Zhadan /* *I*** - Covers boot page */ 348b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, 0xfffff000, 0xfffff000, 358b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, MAS2_I, 368b0044ffSOleksandr G Zhadan 0, 0, BOOKE_PAGESZ_4K, 1), 378b0044ffSOleksandr G Zhadan 388b0044ffSOleksandr G Zhadan /* *I*G* - CCSRBAR */ 398b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, CONFIG_SYS_CCSRBAR, CONFIG_SYS_CCSRBAR_PHYS, 408b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, MAS2_I | MAS2_G, 418b0044ffSOleksandr G Zhadan 0, 1, BOOKE_PAGESZ_1M, 1), 428b0044ffSOleksandr G Zhadan 438b0044ffSOleksandr G Zhadan #ifndef CONFIG_SPL_BUILD 448b0044ffSOleksandr G Zhadan /* W**G* - Flash/promjet, localbus */ 458b0044ffSOleksandr G Zhadan /* This will be changed to *I*G* after relocation to RAM. */ 468b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, CONFIG_SYS_FLASH_BASE, CONFIG_SYS_FLASH_BASE_PHYS, 478b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SR, MAS2_W | MAS2_G, 488b0044ffSOleksandr G Zhadan 0, 2, BOOKE_PAGESZ_64M, 1), 498b0044ffSOleksandr G Zhadan 508b0044ffSOleksandr G Zhadan #ifdef CONFIG_PCI 518b0044ffSOleksandr G Zhadan /* *I*G* - PCI memory 1.5G */ 528b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, CONFIG_SYS_PCIE1_MEM_VIRT, CONFIG_SYS_PCIE1_MEM_PHYS, 538b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, MAS2_I | MAS2_G, 548b0044ffSOleksandr G Zhadan 0, 3, BOOKE_PAGESZ_1G, 1), 558b0044ffSOleksandr G Zhadan 568b0044ffSOleksandr G Zhadan /* *I*G* - PCI I/O effective: 192K */ 578b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, CONFIG_SYS_PCIE1_IO_VIRT, CONFIG_SYS_PCIE1_IO_PHYS, 588b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, MAS2_I | MAS2_G, 598b0044ffSOleksandr G Zhadan 0, 4, BOOKE_PAGESZ_256K, 1), 608b0044ffSOleksandr G Zhadan #endif 618b0044ffSOleksandr G Zhadan 628b0044ffSOleksandr G Zhadan #ifdef CONFIG_VSC7385_ENET 638b0044ffSOleksandr G Zhadan /* *I*G - VSC7385 Switch */ 648b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, CONFIG_SYS_VSC7385_BASE, CONFIG_SYS_VSC7385_BASE_PHYS, 658b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, MAS2_I | MAS2_G, 668b0044ffSOleksandr G Zhadan 0, 5, BOOKE_PAGESZ_1M, 1), 678b0044ffSOleksandr G Zhadan #endif 688b0044ffSOleksandr G Zhadan #endif /* not SPL */ 698b0044ffSOleksandr G Zhadan 708b0044ffSOleksandr G Zhadan #ifdef CONFIG_SYS_NAND_BASE 718b0044ffSOleksandr G Zhadan /* *I*G - NAND */ 728b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, CONFIG_SYS_NAND_BASE, CONFIG_SYS_NAND_BASE_PHYS, 738b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, MAS2_I | MAS2_G, 748b0044ffSOleksandr G Zhadan 0, 7, BOOKE_PAGESZ_1M, 1), 758b0044ffSOleksandr G Zhadan #endif 768b0044ffSOleksandr G Zhadan 778b0044ffSOleksandr G Zhadan #if defined(CONFIG_SYS_RAMBOOT) || \ 788b0044ffSOleksandr G Zhadan (defined(CONFIG_SPL) && !defined(CONFIG_SPL_COMMON_INIT_DDR)) 798b0044ffSOleksandr G Zhadan /* *I*G - eSDHC/eSPI/NAND boot */ 808b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, CONFIG_SYS_DDR_SDRAM_BASE, CONFIG_SYS_DDR_SDRAM_BASE, 81316f0d0fSYork Sun MAS3_SX | MAS3_SW | MAS3_SR, MAS2_M, 828b0044ffSOleksandr G Zhadan 0, 8, BOOKE_PAGESZ_1G, 1), 838b0044ffSOleksandr G Zhadan 848b0044ffSOleksandr G Zhadan #endif /* RAMBOOT/SPL */ 858b0044ffSOleksandr G Zhadan 868b0044ffSOleksandr G Zhadan #ifdef CONFIG_SYS_INIT_L2_ADDR 878b0044ffSOleksandr G Zhadan /* *I*G - L2SRAM */ 888b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, CONFIG_SYS_INIT_L2_ADDR, CONFIG_SYS_INIT_L2_ADDR_PHYS, 898b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, MAS2_G, 908b0044ffSOleksandr G Zhadan 0, 11, BOOKE_PAGESZ_256K, 1), 918b0044ffSOleksandr G Zhadan #if CONFIG_SYS_L2_SIZE >= (256 << 10) 928b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, CONFIG_SYS_INIT_L2_ADDR + 0x40000, 938b0044ffSOleksandr G Zhadan CONFIG_SYS_INIT_L2_ADDR_PHYS + 0x40000, 948b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, MAS2_I | MAS2_G, 958b0044ffSOleksandr G Zhadan 0, 12, BOOKE_PAGESZ_256K, 1) 968b0044ffSOleksandr G Zhadan #endif 978b0044ffSOleksandr G Zhadan #endif 988b0044ffSOleksandr G Zhadan }; 998b0044ffSOleksandr G Zhadan 1008b0044ffSOleksandr G Zhadan int num_tlb_entries = ARRAY_SIZE(tlb_table); 101