1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * Copyright (C) 2018 MediaTek Inc. 4 */ 5 6 #include <common.h> 7 #include <linux/io.h> 8 #include <linux/sizes.h> 9 #include <asm/arch/misc.h> 10 11 #include "preloader.h" 12 13 DECLARE_GLOBAL_DATA_PTR; 14 15 struct boot_argument *preloader_param; 16 17 int mtk_soc_early_init(void) 18 { 19 return 0; 20 } 21 22 int dram_init(void) 23 { 24 u32 i; 25 26 if (((size_t)preloader_param >= CONFIG_SYS_SDRAM_BASE) && 27 ((size_t)preloader_param % sizeof(size_t) == 0) && 28 preloader_param->magic == BOOT_ARGUMENT_MAGIC && 29 preloader_param->dram_rank_num <= 30 ARRAY_SIZE(preloader_param->dram_rank_size)) { 31 gd->ram_size = 0; 32 33 for (i = 0; i < preloader_param->dram_rank_num; i++) 34 gd->ram_size += preloader_param->dram_rank_size[i]; 35 } else { 36 gd->ram_size = get_ram_size((long *)CONFIG_SYS_SDRAM_BASE, 37 SZ_2G); 38 } 39 40 return 0; 41 } 42 43 int print_cpuinfo(void) 44 { 45 void __iomem *chipid; 46 u32 swver; 47 48 chipid = ioremap(VER_BASE, VER_SIZE); 49 swver = readl(chipid + APSW_VER); 50 51 printf("CPU: MediaTek MT7623 E%d\n", (swver & 0xf) + 1); 52 53 return 0; 54 } 55