@@ -1596,33 +1596,32 @@ static int dt_reserve_asc_firmware(const char *adt_path, const char *fdt_path)
15961596 bail ("FDT: couldn't set '%s.phandle' property: %d\n" , fdt_path , ret );
15971597 }
15981598
1599- const uint64_t * segments ;
1599+ const struct adt_segment_ranges * seg ;
16001600 u32 segments_len ;
16011601
1602- segments = adt_getprop (adt , node , "segment-ranges" , & segments_len );
1603- unsigned int num_maps = segments_len / 32 ;
1602+ seg = adt_getprop (adt , node , "segment-ranges" , & segments_len );
1603+ unsigned int num_maps = segments_len / sizeof ( * seg ) ;
16041604
16051605 for (unsigned i = 0 ; i < num_maps ; i ++ ) {
1606- u64 paddr = segments [0 ];
1607- u64 iova = segments [2 ];
1608- u32 size = segments [3 ];
1609- segments += 4 ;
1606+ u64 iova = seg -> iova ;
16101607
16111608 char node_name [64 ];
1612- snprintf (node_name , sizeof (node_name ), "asc-firmware@%lx" , paddr );
1609+ snprintf (node_name , sizeof (node_name ), "asc-firmware@%lx" , seg -> phys );
16131610
1614- int mem_node = dt_get_or_add_reserved_mem (node_name , "apple,asc-mem" , paddr , size );
1611+ int mem_node = dt_get_or_add_reserved_mem (node_name , "apple,asc-mem" , seg -> phys , seg -> size );
16151612 if (mem_node < 0 )
16161613 return ret ;
16171614 uint32_t mem_phandle = fdt_get_phandle (dt , mem_node );
16181615
1619- ret = dt_device_set_reserved_mem (mem_node , node_name , dev_phandle , iova , size );
1616+ ret = dt_device_set_reserved_mem (mem_node , node_name , dev_phandle , iova , seg -> size );
16201617 if (ret < 0 )
16211618 return ret ;
16221619
16231620 ret = dt_device_add_mem_region (fdt_path , mem_phandle , NULL );
16241621 if (ret < 0 )
16251622 return ret ;
1623+
1624+ seg ++ ;
16261625 }
16271626
16281627 return 0 ;
0 commit comments