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