@ -22,6 +22,9 @@
# endif
# include <fsl_sec.h>
# include <asm/arch-fsl-layerscape/soc.h>
# ifdef CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT
# include <asm/armv8/sec_firmware.h>
# endif
int fdt_fixup_phy_connection ( void * blob , int offset , phy_interface_t phyc )
{
@ -38,7 +41,37 @@ void ft_fixup_cpu(void *blob)
int addr_cells ;
u64 val , core_id ;
size_t * boot_code_size = & ( __secondary_boot_code_size ) ;
# if defined(CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT) && defined(CONFIG_ARMV8_PSCI)
int node ;
u32 psci_ver ;
/* Check the psci version to determine if the psci is supported */
psci_ver = sec_firmware_support_psci_version ( ) ;
if ( psci_ver = = 0xffffffff ) {
/* remove psci DT node */
node = fdt_path_offset ( blob , " /psci " ) ;
if ( node > = 0 )
goto remove_psci_node ;
node = fdt_node_offset_by_compatible ( blob , - 1 , " arm,psci " ) ;
if ( node > = 0 )
goto remove_psci_node ;
node = fdt_node_offset_by_compatible ( blob , - 1 , " arm,psci-0.2 " ) ;
if ( node > = 0 )
goto remove_psci_node ;
node = fdt_node_offset_by_compatible ( blob , - 1 , " arm,psci-1.0 " ) ;
if ( node > = 0 )
goto remove_psci_node ;
remove_psci_node :
if ( node > = 0 )
fdt_del_node ( blob , node ) ;
} else {
return ;
}
# endif
off = fdt_path_offset ( blob , " /cpus " ) ;
if ( off < 0 ) {
puts ( " couldn't find /cpus node \n " ) ;