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