1*914a84e6SLey Foon Tan // SPDX-License-Identifier: GPL-2.0 2*914a84e6SLey Foon Tan /* 3*914a84e6SLey Foon Tan * Copyright (C) 2016-2018 Intel Corporation <www.intel.com> 4*914a84e6SLey Foon Tan * 5*914a84e6SLey Foon Tan */ 6*914a84e6SLey Foon Tan 7*914a84e6SLey Foon Tan #include <common.h> 8*914a84e6SLey Foon Tan #include <asm/armv8/mmu.h> 9*914a84e6SLey Foon Tan 10*914a84e6SLey Foon Tan DECLARE_GLOBAL_DATA_PTR; 11*914a84e6SLey Foon Tan 12*914a84e6SLey Foon Tan static struct mm_region socfpga_stratix10_mem_map[] = { 13*914a84e6SLey Foon Tan { 14*914a84e6SLey Foon Tan /* MEM 2GB*/ 15*914a84e6SLey Foon Tan .virt = 0x0UL, 16*914a84e6SLey Foon Tan .phys = 0x0UL, 17*914a84e6SLey Foon Tan .size = 0x80000000UL, 18*914a84e6SLey Foon Tan .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | 19*914a84e6SLey Foon Tan PTE_BLOCK_INNER_SHARE, 20*914a84e6SLey Foon Tan }, { 21*914a84e6SLey Foon Tan /* FPGA 1.5GB */ 22*914a84e6SLey Foon Tan .virt = 0x80000000UL, 23*914a84e6SLey Foon Tan .phys = 0x80000000UL, 24*914a84e6SLey Foon Tan .size = 0x60000000UL, 25*914a84e6SLey Foon Tan .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | 26*914a84e6SLey Foon Tan PTE_BLOCK_NON_SHARE | 27*914a84e6SLey Foon Tan PTE_BLOCK_PXN | PTE_BLOCK_UXN, 28*914a84e6SLey Foon Tan }, { 29*914a84e6SLey Foon Tan /* DEVICE 142MB */ 30*914a84e6SLey Foon Tan .virt = 0xF7000000UL, 31*914a84e6SLey Foon Tan .phys = 0xF7000000UL, 32*914a84e6SLey Foon Tan .size = 0x08E00000UL, 33*914a84e6SLey Foon Tan .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | 34*914a84e6SLey Foon Tan PTE_BLOCK_NON_SHARE | 35*914a84e6SLey Foon Tan PTE_BLOCK_PXN | PTE_BLOCK_UXN, 36*914a84e6SLey Foon Tan }, { 37*914a84e6SLey Foon Tan /* OCRAM 1MB but available 256KB */ 38*914a84e6SLey Foon Tan .virt = 0xFFE00000UL, 39*914a84e6SLey Foon Tan .phys = 0xFFE00000UL, 40*914a84e6SLey Foon Tan .size = 0x00100000UL, 41*914a84e6SLey Foon Tan .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | 42*914a84e6SLey Foon Tan PTE_BLOCK_INNER_SHARE, 43*914a84e6SLey Foon Tan }, { 44*914a84e6SLey Foon Tan /* DEVICE 32KB */ 45*914a84e6SLey Foon Tan .virt = 0xFFFC0000UL, 46*914a84e6SLey Foon Tan .phys = 0xFFFC0000UL, 47*914a84e6SLey Foon Tan .size = 0x00008000UL, 48*914a84e6SLey Foon Tan .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | 49*914a84e6SLey Foon Tan PTE_BLOCK_NON_SHARE | 50*914a84e6SLey Foon Tan PTE_BLOCK_PXN | PTE_BLOCK_UXN, 51*914a84e6SLey Foon Tan }, { 52*914a84e6SLey Foon Tan /* MEM 124GB */ 53*914a84e6SLey Foon Tan .virt = 0x0100000000UL, 54*914a84e6SLey Foon Tan .phys = 0x0100000000UL, 55*914a84e6SLey Foon Tan .size = 0x1F00000000UL, 56*914a84e6SLey Foon Tan .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | 57*914a84e6SLey Foon Tan PTE_BLOCK_INNER_SHARE, 58*914a84e6SLey Foon Tan }, { 59*914a84e6SLey Foon Tan /* DEVICE 4GB */ 60*914a84e6SLey Foon Tan .virt = 0x2000000000UL, 61*914a84e6SLey Foon Tan .phys = 0x2000000000UL, 62*914a84e6SLey Foon Tan .size = 0x0100000000UL, 63*914a84e6SLey Foon Tan .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | 64*914a84e6SLey Foon Tan PTE_BLOCK_NON_SHARE | 65*914a84e6SLey Foon Tan PTE_BLOCK_PXN | PTE_BLOCK_UXN, 66*914a84e6SLey Foon Tan }, { 67*914a84e6SLey Foon Tan /* List terminator */ 68*914a84e6SLey Foon Tan }, 69*914a84e6SLey Foon Tan }; 70*914a84e6SLey Foon Tan 71*914a84e6SLey Foon Tan struct mm_region *mem_map = socfpga_stratix10_mem_map; 72