1 /* 2 * Copyright (C) 2018, STMicroelectronics - All Rights Reserved 3 * Author(s): Patrice Chotard, <patrice.chotard@st.com> for STMicroelectronics. 4 * 5 * SPDX-License-Identifier: GPL-2.0+ 6 */ 7 8 #include <common.h> 9 #include <dm.h> 10 11 #include <asm/io.h> 12 #include <asm/arch/stm32.h> 13 14 DECLARE_GLOBAL_DATA_PTR; 15 16 int dram_init(void) 17 { 18 int rv; 19 struct udevice *dev; 20 21 rv = uclass_get_device(UCLASS_RAM, 0, &dev); 22 if (rv) { 23 debug("DRAM init failed: %d\n", rv); 24 return rv; 25 } 26 27 if (fdtdec_setup_memory_size() != 0) 28 rv = -EINVAL; 29 30 return rv; 31 } 32 33 int dram_init_banksize(void) 34 { 35 fdtdec_setup_memory_banksize(); 36 37 return 0; 38 } 39 40 u32 get_board_rev(void) 41 { 42 return 0; 43 } 44 45 int board_early_init_f(void) 46 { 47 return 0; 48 } 49 50 int board_init(void) 51 { 52 gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100; 53 54 return 0; 55 } 56 57 #ifdef CONFIG_MISC_INIT_R 58 int misc_init_r(void) 59 { 60 char serialno[25]; 61 u32 u_id_low, u_id_mid, u_id_high; 62 63 if (!env_get("serial#")) { 64 u_id_low = readl(&STM32_U_ID->u_id_low); 65 u_id_mid = readl(&STM32_U_ID->u_id_mid); 66 u_id_high = readl(&STM32_U_ID->u_id_high); 67 sprintf(serialno, "%08x%08x%08x", 68 u_id_high, u_id_mid, u_id_low); 69 env_set("serial#", serialno); 70 } 71 72 return 0; 73 } 74 #endif 75