@ -16,22 +16,6 @@
# include <fdt_support.h>
# include <exports.h>
/*
* Get cells len in bytes
* if # NNNN - cells property is 2 then len is 8
* otherwise len is 4
*/
static int get_cells_len ( const void * fdt , const char * nr_cells_name )
{
const fdt32_t * cell ;
cell = fdt_getprop ( fdt , 0 , nr_cells_name , NULL ) ;
if ( cell & & fdt32_to_cpu ( * cell ) = = 2 )
return 8 ;
return 4 ;
}
/**
* fdt_getprop_u32_default_node - Return a node ' s property or a default
*
@ -246,7 +230,7 @@ int fdt_initrd(void *fdt, ulong initrd_start, ulong initrd_end)
return err ;
}
is_u64 = ( get_cells_len ( fdt , " #address-cells " ) = = 8 ) ;
is_u64 = ( fdt_address_cells ( fdt , 0 ) = = 2 ) ;
err = fdt_setprop_uxx ( fdt , nodeoffset , " linux,initrd-start " ,
( uint64_t ) initrd_start , is_u64 ) ;
@ -386,18 +370,18 @@ static int fdt_pack_reg(const void *fdt, void *buf, u64 *address, u64 *size,
int n )
{
int i ;
int address_len = get_cells_len ( fdt , " #address-cells " ) ;
int size_len = get_cells_len ( fdt , " #size-cells " ) ;
int address_len = fdt_address_cells ( fdt , 0 ) ;
int size_len = fdt_size_cells ( fdt , 0 ) ;
char * p = buf ;
for ( i = 0 ; i < n ; i + + ) {
if ( address_len = = 8 )
if ( address_len = = 2 )
* ( fdt64_t * ) p = cpu_to_fdt64 ( address [ i ] ) ;
else
* ( fdt32_t * ) p = cpu_to_fdt32 ( address [ i ] ) ;
p + = address_len ;
if ( size_len = = 8 )
if ( size_len = = 2 )
* ( fdt64_t * ) p = cpu_to_fdt64 ( size [ i ] ) ;
else
* ( fdt32_t * ) p = cpu_to_fdt32 ( size [ i ] ) ;
@ -968,13 +952,8 @@ void of_bus_default_count_cells(void *blob, int parentoffset,
{
const fdt32_t * prop ;
if ( addrc ) {
prop = fdt_getprop ( blob , parentoffset , " #address-cells " , NULL ) ;
if ( prop )
* addrc = be32_to_cpup ( prop ) ;
else
* addrc = 2 ;
}
if ( addrc )
* addrc = fdt_address_cells ( blob , parentoffset ) ;
if ( sizec ) {
prop = fdt_getprop ( blob , parentoffset , " #size-cells " , NULL ) ;
@ -1419,11 +1398,7 @@ u64 fdt_get_base_address(void *fdt, int node)
u32 naddr ;
const fdt32_t * prop ;
prop = fdt_getprop ( fdt , node , " #address-cells " , & size ) ;
if ( prop & & size = = 4 )
naddr = be32_to_cpup ( prop ) ;
else
naddr = 2 ;
naddr = fdt_address_cells ( fdt , node ) ;
prop = fdt_getprop ( fdt , node , " ranges " , & size ) ;