init.c 1.1 KB

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