// SPDX-License-Identifier: GPL-2.0+ /* * Copyright (c) 2017 Tuomas Tynkkynen */ #include #include #ifdef CONFIG_ARM64 #include static struct mm_region qemu_arm64_mem_map[] = { { /* Flash */ .virt = 0x00000000UL, .phys = 0x00000000UL, .size = 0x08000000UL, .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_INNER_SHARE }, { /* Peripherals */ .virt = 0x08000000UL, .phys = 0x08000000UL, .size = 0x38000000, .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN }, { /* RAM */ .virt = 0x40000000UL, .phys = 0x40000000UL, .size = 255UL * SZ_1G, .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_INNER_SHARE }, { /* List terminator */ 0, } }; struct mm_region *mem_map = qemu_arm64_mem_map; #endif int board_init(void) { return 0; } int dram_init(void) { if (fdtdec_setup_mem_size_base() != 0) return -EINVAL; return 0; } int dram_init_banksize(void) { fdtdec_setup_memory_banksize(); return 0; } void *board_fdt_blob_setup(void) { /* QEMU loads a generated DTB for us at the start of RAM. */ return (void *)CONFIG_SYS_SDRAM_BASE; }