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