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