1*8b0044ffSOleksandr G Zhadan /* 2*8b0044ffSOleksandr G Zhadan * Copyright 2013-2015 Arcturus Networks, Inc 3*8b0044ffSOleksandr G Zhadan * http://www.arcturusnetworks.com/products/ucp1020/ 4*8b0044ffSOleksandr G Zhadan * based on board/freescale/p1_p2_rdb_pc/tlb.c 5*8b0044ffSOleksandr G Zhadan * original copyright follows: 6*8b0044ffSOleksandr G Zhadan * Copyright 2010-2011 Freescale Semiconductor, Inc. 7*8b0044ffSOleksandr G Zhadan * 8*8b0044ffSOleksandr G Zhadan * SPDX-License-Identifier: GPL-2.0+ 9*8b0044ffSOleksandr G Zhadan */ 10*8b0044ffSOleksandr G Zhadan 11*8b0044ffSOleksandr G Zhadan #include <common.h> 12*8b0044ffSOleksandr G Zhadan #include <asm/mmu.h> 13*8b0044ffSOleksandr G Zhadan 14*8b0044ffSOleksandr G Zhadan struct fsl_e_tlb_entry tlb_table[] = { 15*8b0044ffSOleksandr G Zhadan /* TLB 0 - for temp stack in cache */ 16*8b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(0, CONFIG_SYS_INIT_RAM_ADDR, 17*8b0044ffSOleksandr G Zhadan CONFIG_SYS_INIT_RAM_ADDR_PHYS, 18*8b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, 0, 19*8b0044ffSOleksandr G Zhadan 0, 0, BOOKE_PAGESZ_4K, 0), 20*8b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(0, CONFIG_SYS_INIT_RAM_ADDR + 4 * 1024, 21*8b0044ffSOleksandr G Zhadan CONFIG_SYS_INIT_RAM_ADDR_PHYS + 4 * 1024, 22*8b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, 0, 23*8b0044ffSOleksandr G Zhadan 0, 0, BOOKE_PAGESZ_4K, 0), 24*8b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(0, CONFIG_SYS_INIT_RAM_ADDR + 8 * 1024, 25*8b0044ffSOleksandr G Zhadan CONFIG_SYS_INIT_RAM_ADDR_PHYS + 8 * 1024, 26*8b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, 0, 27*8b0044ffSOleksandr G Zhadan 0, 0, BOOKE_PAGESZ_4K, 0), 28*8b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(0, CONFIG_SYS_INIT_RAM_ADDR + 12 * 1024, 29*8b0044ffSOleksandr G Zhadan CONFIG_SYS_INIT_RAM_ADDR_PHYS + 12 * 1024, 30*8b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, 0, 31*8b0044ffSOleksandr G Zhadan 0, 0, BOOKE_PAGESZ_4K, 0), 32*8b0044ffSOleksandr G Zhadan 33*8b0044ffSOleksandr G Zhadan /* TLB 1 */ 34*8b0044ffSOleksandr G Zhadan /* *I*** - Covers boot page */ 35*8b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, 0xfffff000, 0xfffff000, 36*8b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, MAS2_I, 37*8b0044ffSOleksandr G Zhadan 0, 0, BOOKE_PAGESZ_4K, 1), 38*8b0044ffSOleksandr G Zhadan 39*8b0044ffSOleksandr G Zhadan /* *I*G* - CCSRBAR */ 40*8b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, CONFIG_SYS_CCSRBAR, CONFIG_SYS_CCSRBAR_PHYS, 41*8b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, MAS2_I | MAS2_G, 42*8b0044ffSOleksandr G Zhadan 0, 1, BOOKE_PAGESZ_1M, 1), 43*8b0044ffSOleksandr G Zhadan 44*8b0044ffSOleksandr G Zhadan #ifndef CONFIG_SPL_BUILD 45*8b0044ffSOleksandr G Zhadan /* W**G* - Flash/promjet, localbus */ 46*8b0044ffSOleksandr G Zhadan /* This will be changed to *I*G* after relocation to RAM. */ 47*8b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, CONFIG_SYS_FLASH_BASE, CONFIG_SYS_FLASH_BASE_PHYS, 48*8b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SR, MAS2_W | MAS2_G, 49*8b0044ffSOleksandr G Zhadan 0, 2, BOOKE_PAGESZ_64M, 1), 50*8b0044ffSOleksandr G Zhadan 51*8b0044ffSOleksandr G Zhadan #ifdef CONFIG_PCI 52*8b0044ffSOleksandr G Zhadan /* *I*G* - PCI memory 1.5G */ 53*8b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, CONFIG_SYS_PCIE1_MEM_VIRT, CONFIG_SYS_PCIE1_MEM_PHYS, 54*8b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, MAS2_I | MAS2_G, 55*8b0044ffSOleksandr G Zhadan 0, 3, BOOKE_PAGESZ_1G, 1), 56*8b0044ffSOleksandr G Zhadan 57*8b0044ffSOleksandr G Zhadan /* *I*G* - PCI I/O effective: 192K */ 58*8b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, CONFIG_SYS_PCIE1_IO_VIRT, CONFIG_SYS_PCIE1_IO_PHYS, 59*8b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, MAS2_I | MAS2_G, 60*8b0044ffSOleksandr G Zhadan 0, 4, BOOKE_PAGESZ_256K, 1), 61*8b0044ffSOleksandr G Zhadan #endif 62*8b0044ffSOleksandr G Zhadan 63*8b0044ffSOleksandr G Zhadan #ifdef CONFIG_VSC7385_ENET 64*8b0044ffSOleksandr G Zhadan /* *I*G - VSC7385 Switch */ 65*8b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, CONFIG_SYS_VSC7385_BASE, CONFIG_SYS_VSC7385_BASE_PHYS, 66*8b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, MAS2_I | MAS2_G, 67*8b0044ffSOleksandr G Zhadan 0, 5, BOOKE_PAGESZ_1M, 1), 68*8b0044ffSOleksandr G Zhadan #endif 69*8b0044ffSOleksandr G Zhadan #endif /* not SPL */ 70*8b0044ffSOleksandr G Zhadan 71*8b0044ffSOleksandr G Zhadan #ifdef CONFIG_SYS_NAND_BASE 72*8b0044ffSOleksandr G Zhadan /* *I*G - NAND */ 73*8b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, CONFIG_SYS_NAND_BASE, CONFIG_SYS_NAND_BASE_PHYS, 74*8b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, MAS2_I | MAS2_G, 75*8b0044ffSOleksandr G Zhadan 0, 7, BOOKE_PAGESZ_1M, 1), 76*8b0044ffSOleksandr G Zhadan #endif 77*8b0044ffSOleksandr G Zhadan 78*8b0044ffSOleksandr G Zhadan #if defined(CONFIG_SYS_RAMBOOT) || \ 79*8b0044ffSOleksandr G Zhadan (defined(CONFIG_SPL) && !defined(CONFIG_SPL_COMMON_INIT_DDR)) 80*8b0044ffSOleksandr G Zhadan /* *I*G - eSDHC/eSPI/NAND boot */ 81*8b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, CONFIG_SYS_DDR_SDRAM_BASE, CONFIG_SYS_DDR_SDRAM_BASE, 82*8b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, 0, 83*8b0044ffSOleksandr G Zhadan 0, 8, BOOKE_PAGESZ_1G, 1), 84*8b0044ffSOleksandr G Zhadan 85*8b0044ffSOleksandr G Zhadan #endif /* RAMBOOT/SPL */ 86*8b0044ffSOleksandr G Zhadan 87*8b0044ffSOleksandr G Zhadan #ifdef CONFIG_SYS_INIT_L2_ADDR 88*8b0044ffSOleksandr G Zhadan /* *I*G - L2SRAM */ 89*8b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, CONFIG_SYS_INIT_L2_ADDR, CONFIG_SYS_INIT_L2_ADDR_PHYS, 90*8b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, MAS2_G, 91*8b0044ffSOleksandr G Zhadan 0, 11, BOOKE_PAGESZ_256K, 1), 92*8b0044ffSOleksandr G Zhadan #if CONFIG_SYS_L2_SIZE >= (256 << 10) 93*8b0044ffSOleksandr G Zhadan SET_TLB_ENTRY(1, CONFIG_SYS_INIT_L2_ADDR + 0x40000, 94*8b0044ffSOleksandr G Zhadan CONFIG_SYS_INIT_L2_ADDR_PHYS + 0x40000, 95*8b0044ffSOleksandr G Zhadan MAS3_SX | MAS3_SW | MAS3_SR, MAS2_I | MAS2_G, 96*8b0044ffSOleksandr G Zhadan 0, 12, BOOKE_PAGESZ_256K, 1) 97*8b0044ffSOleksandr G Zhadan #endif 98*8b0044ffSOleksandr G Zhadan #endif 99*8b0044ffSOleksandr G Zhadan }; 100*8b0044ffSOleksandr G Zhadan 101*8b0044ffSOleksandr G Zhadan int num_tlb_entries = ARRAY_SIZE(tlb_table); 102