@@ -1540,33 +1540,32 @@ static int dt_reserve_asc_firmware(const char *adt_path, const char *fdt_path)
15401540 bail ("FDT: couldn't set '%s.phandle' property: %d\n" , fdt_path , ret );
15411541 }
15421542
1543- const uint64_t * segments ;
1543+ const struct adt_segment_ranges * seg ;
15441544 u32 segments_len ;
15451545
1546- segments = adt_getprop (adt , node , "segment-ranges" , & segments_len );
1547- unsigned int num_maps = segments_len / 32 ;
1546+ seg = adt_getprop (adt , node , "segment-ranges" , & segments_len );
1547+ unsigned int num_maps = segments_len / sizeof ( * seg ) ;
15481548
15491549 for (unsigned i = 0 ; i < num_maps ; i ++ ) {
1550- u64 paddr = segments [0 ];
1551- u64 iova = segments [2 ];
1552- u32 size = segments [3 ];
1553- segments += 4 ;
1550+ u64 iova = seg -> iova ;
15541551
15551552 char node_name [64 ];
1556- snprintf (node_name , sizeof (node_name ), "asc-firmware@%lx" , paddr );
1553+ snprintf (node_name , sizeof (node_name ), "asc-firmware@%lx" , seg -> phys );
15571554
1558- int mem_node = dt_get_or_add_reserved_mem (node_name , "apple,asc-mem" , paddr , size );
1555+ int mem_node = dt_get_or_add_reserved_mem (node_name , "apple,asc-mem" , seg -> phys , seg -> size );
15591556 if (mem_node < 0 )
15601557 return ret ;
15611558 uint32_t mem_phandle = fdt_get_phandle (dt , mem_node );
15621559
1563- ret = dt_device_set_reserved_mem (mem_node , node_name , dev_phandle , iova , size );
1560+ ret = dt_device_set_reserved_mem (mem_node , node_name , dev_phandle , iova , seg -> size );
15641561 if (ret < 0 )
15651562 return ret ;
15661563
15671564 ret = dt_device_add_mem_region (fdt_path , mem_phandle , NULL );
15681565 if (ret < 0 )
15691566 return ret ;
1567+
1568+ seg ++ ;
15701569 }
15711570
15721571 return 0 ;
0 commit comments