// SPDX-License-Identifier: GPL-2.0 /* * Copyright (C) 2022 MediaTek Inc. * Author: Sam Shih */ #include #include #include #include #include #include DECLARE_GLOBAL_DATA_PTR; #define SZ_8G _AC(0x200000000, ULL) int dram_init(void) { int ret; ret = fdtdec_setup_mem_size_base(); if (ret) return ret; gd->ram_size = get_ram_size((void *)gd->ram_base, SZ_8G); return 0; } int dram_init_banksize(void) { gd->bd->bi_dram[0].start = gd->ram_base; gd->bd->bi_dram[0].size = gd->ram_size; return 0; } void reset_cpu(ulong addr) { psci_system_reset(); } static struct mm_region mt7988_mem_map[] = { { /* DDR */ .virt = 0x40000000UL, .phys = 0x40000000UL, .size = 0x200000000ULL, .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_OUTER_SHARE, }, { .virt = 0x00000000UL, .phys = 0x00000000UL, .size = 0x40000000UL, .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN }, { 0, } }; struct mm_region *mem_map = mt7988_mem_map;