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