1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * Copyright (C) 2020 4 * Author(s): Giulio Benetti <giulio.benetti@benettiengineering.com> 5 */ 6 7 #include <common.h> 8 #include <dm.h> 9 #include <init.h> 10 #include <log.h> 11 #include <ram.h> 12 #include <spl.h> 13 #include <asm/global_data.h> 14 #include <asm/io.h> 15 #include <asm/armv7m.h> 16 17 DECLARE_GLOBAL_DATA_PTR; 18 dram_init(void)19int dram_init(void) 20 { 21 #ifndef CONFIG_SUPPORT_SPL 22 int rv; 23 struct udevice *dev; 24 25 rv = uclass_get_device(UCLASS_RAM, 0, &dev); 26 if (rv) { 27 debug("DRAM init failed: %d\n", rv); 28 return rv; 29 } 30 31 #endif 32 return fdtdec_setup_mem_size_base(); 33 } 34 dram_init_banksize(void)35int dram_init_banksize(void) 36 { 37 return fdtdec_setup_memory_banksize(); 38 } 39 40 #ifdef CONFIG_SPL_BUILD 41 #ifdef CONFIG_SPL_OS_BOOT spl_start_uboot(void)42int spl_start_uboot(void) 43 { 44 debug("SPL: booting kernel\n"); 45 /* break into full u-boot on 'c' */ 46 return serial_tstc() && serial_getc() == 'c'; 47 } 48 #endif 49 spl_dram_init(void)50int spl_dram_init(void) 51 { 52 struct udevice *dev; 53 int rv; 54 55 rv = uclass_get_device(UCLASS_RAM, 0, &dev); 56 if (rv) 57 debug("DRAM init failed: %d\n", rv); 58 return rv; 59 } 60 spl_board_init(void)61void spl_board_init(void) 62 { 63 spl_dram_init(); 64 preloader_console_init(); 65 arch_cpu_init(); /* to configure mpu for sdram rw permissions */ 66 } 67 spl_boot_device(void)68u32 spl_boot_device(void) 69 { 70 return BOOT_DEVICE_MMC1; 71 } 72 #endif 73 get_board_rev(void)74u32 get_board_rev(void) 75 { 76 return 0; 77 } 78 board_init(void)79int board_init(void) 80 { 81 gd->bd->bi_boot_params = gd->bd->bi_dram[0].start + 0x100; 82 83 return 0; 84 } 85