xref: /OK3568_Linux_fs/u-boot/arch/arm/mach-omap2/am33xx/fdt.c (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Copyright 2017 Texas Instruments, Inc.
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * SPDX-License-Identifier: GPL-2.0+
5*4882a593Smuzhiyun  */
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #include <common.h>
8*4882a593Smuzhiyun #include <linux/libfdt.h>
9*4882a593Smuzhiyun #include <fdt_support.h>
10*4882a593Smuzhiyun #include <malloc.h>
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun #include <asm/omap_common.h>
13*4882a593Smuzhiyun #include <asm/arch-am33xx/sys_proto.h>
14*4882a593Smuzhiyun 
15*4882a593Smuzhiyun #ifdef CONFIG_TI_SECURE_DEVICE
16*4882a593Smuzhiyun 
ft_hs_fixups(void * fdt,bd_t * bd)17*4882a593Smuzhiyun static void ft_hs_fixups(void *fdt, bd_t *bd)
18*4882a593Smuzhiyun {
19*4882a593Smuzhiyun 	/* Check we are running on an HS/EMU device type */
20*4882a593Smuzhiyun 	if (GP_DEVICE != get_device_type()) {
21*4882a593Smuzhiyun 		if ((ft_hs_disable_rng(fdt, bd) == 0) &&
22*4882a593Smuzhiyun 		    (ft_hs_fixup_dram(fdt, bd) == 0) &&
23*4882a593Smuzhiyun 		    (ft_hs_add_tee(fdt, bd) == 0))
24*4882a593Smuzhiyun 			return;
25*4882a593Smuzhiyun 	} else {
26*4882a593Smuzhiyun 		printf("ERROR: Incorrect device type (GP) detected!");
27*4882a593Smuzhiyun 	}
28*4882a593Smuzhiyun 	/* Fixup failed or wrong device type */
29*4882a593Smuzhiyun 	hang();
30*4882a593Smuzhiyun }
31*4882a593Smuzhiyun #else
ft_hs_fixups(void * fdt,bd_t * bd)32*4882a593Smuzhiyun static void ft_hs_fixups(void *fdt, bd_t *bd) { }
33*4882a593Smuzhiyun #endif /* #ifdef CONFIG_TI_SECURE_DEVICE */
34*4882a593Smuzhiyun 
35*4882a593Smuzhiyun /*
36*4882a593Smuzhiyun  * Place for general cpu/SoC FDT fixups. Board specific
37*4882a593Smuzhiyun  * fixups should remain in the board files which is where
38*4882a593Smuzhiyun  * this function should be called from.
39*4882a593Smuzhiyun  */
ft_cpu_setup(void * fdt,bd_t * bd)40*4882a593Smuzhiyun void ft_cpu_setup(void *fdt, bd_t *bd)
41*4882a593Smuzhiyun {
42*4882a593Smuzhiyun 	ft_hs_fixups(fdt, bd);
43*4882a593Smuzhiyun }
44