xref: /rk3399_rockchip-uboot/board/imgtec/boston/dt.c (revision 22f3368e71321db1e0e15dfbf54b052367890ec7)
1*d2b12a57SPaul Burton /*
2*d2b12a57SPaul Burton  * Copyright (C) 2016 Imagination Technologies
3*d2b12a57SPaul Burton  *
4*d2b12a57SPaul Burton  * SPDX-License-Identifier:	GPL-2.0
5*d2b12a57SPaul Burton  */
6*d2b12a57SPaul Burton 
7*d2b12a57SPaul Burton #include <common.h>
8*d2b12a57SPaul Burton #include <fdt_support.h>
9*d2b12a57SPaul Burton 
ft_board_setup(void * blob,bd_t * bd)10*d2b12a57SPaul Burton int ft_board_setup(void *blob, bd_t *bd)
11*d2b12a57SPaul Burton {
12*d2b12a57SPaul Burton 	DECLARE_GLOBAL_DATA_PTR;
13*d2b12a57SPaul Burton 	u64 mem_start[2], mem_size[2];
14*d2b12a57SPaul Burton 	int mem_regions;
15*d2b12a57SPaul Burton 
16*d2b12a57SPaul Burton 	mem_start[0] = 0;
17*d2b12a57SPaul Burton 	mem_size[0] = min_t(u64, 256llu << 20, gd->ram_size);
18*d2b12a57SPaul Burton 	mem_regions = 1;
19*d2b12a57SPaul Burton 
20*d2b12a57SPaul Burton 	if (gd->ram_size > mem_size[0]) {
21*d2b12a57SPaul Burton 		mem_start[1] = 0x80000000 + mem_size[0];
22*d2b12a57SPaul Burton 		mem_size[1] = gd->ram_size - mem_size[0];
23*d2b12a57SPaul Burton 		mem_regions++;
24*d2b12a57SPaul Burton 	}
25*d2b12a57SPaul Burton 
26*d2b12a57SPaul Burton 	return fdt_fixup_memory_banks(blob, mem_start, mem_size, mem_regions);
27*d2b12a57SPaul Burton }
28