| // SPDX-License-Identifier: GPL-2.0+ |
| /* |
| * Copyright 2017 Texas Instruments, Inc. |
| */ |
| |
| #include <hang.h> |
| #include <linux/libfdt.h> |
| #include <fdt_support.h> |
| #include <malloc.h> |
| |
| #include <asm/omap_common.h> |
| #include <asm/arch-am33xx/sys_proto.h> |
| |
| #ifdef CONFIG_TI_SECURE_DEVICE |
| |
| static void ft_hs_fixups(void *fdt, struct bd_info *bd) |
| { |
| /* Check we are running on an HS/EMU device type */ |
| if (GP_DEVICE != get_device_type()) { |
| if ((ft_hs_disable_rng(fdt, bd) == 0) && |
| (ft_hs_fixup_dram(fdt, bd) == 0) && |
| (ft_hs_add_tee(fdt, bd) == 0)) |
| return; |
| } else { |
| printf("ERROR: Incorrect device type (GP) detected!"); |
| } |
| /* Fixup failed or wrong device type */ |
| hang(); |
| } |
| #else |
| static void ft_hs_fixups(void *fdt, struct bd_info *bd) { } |
| #endif /* #ifdef CONFIG_TI_SECURE_DEVICE */ |
| |
| /* |
| * Place for general cpu/SoC FDT fixups. Board specific |
| * fixups should remain in the board files which is where |
| * this function should be called from. |
| */ |
| void ft_cpu_setup(void *fdt, struct bd_info *bd) |
| { |
| ft_hs_fixups(fdt, bd); |
| } |