@ -278,6 +278,40 @@ static int mc_fixup_dpl_mac_addr(void *blob, int dpmac_id,
MC_FIXUP_DPL ) ;
MC_FIXUP_DPL ) ;
}
}
void fdt_fsl_mc_fixup_iommu_map_entry ( void * blob )
{
u32 * prop ;
u32 iommu_map [ 4 ] ;
int offset ;
int lenp ;
/* find fsl-mc node */
offset = fdt_path_offset ( blob , " /soc/fsl-mc " ) ;
if ( offset < 0 )
offset = fdt_path_offset ( blob , " /fsl-mc " ) ;
if ( offset < 0 ) {
printf ( " %s: fsl-mc: ERR: fsl-mc node not found in DT, err %d \n " ,
__func__ , offset ) ;
return ;
}
prop = fdt_getprop_w ( blob , offset , " iommu-map " , & lenp ) ;
if ( ! prop ) {
debug ( " %s: fsl-mc: ERR: missing iommu-map in fsl-mc bus node \n " ,
__func__ ) ;
return ;
}
iommu_map [ 0 ] = cpu_to_fdt32 ( FSL_DPAA2_STREAM_ID_START ) ;
iommu_map [ 1 ] = * + + prop ;
iommu_map [ 2 ] = cpu_to_fdt32 ( FSL_DPAA2_STREAM_ID_START ) ;
iommu_map [ 3 ] = cpu_to_fdt32 ( FSL_DPAA2_STREAM_ID_END -
FSL_DPAA2_STREAM_ID_START + 1 ) ;
fdt_setprop_inplace ( blob , offset , " iommu-map " ,
iommu_map , sizeof ( iommu_map ) ) ;
}
static int mc_fixup_dpc_mac_addr ( void * blob , int dpmac_id ,
static int mc_fixup_dpc_mac_addr ( void * blob , int dpmac_id ,
struct eth_device * eth_dev )
struct eth_device * eth_dev )
{
{