[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 10/10] xen/arm: Handle different bootwrapper locations for Hip04 platform



Hi Frediano,

This could be merged in #1.

Regards,

On 11/03/2014 10:12 AM, Frediano Ziglio wrote:
> From: Zoltan Kiss <zoltan.kiss@xxxxxxxxxx>
> 
> Signed-off-by: Zoltan Kiss <zoltan.kiss@xxxxxxxxxx>
> ---
>  xen/arch/arm/platforms/hip04.c | 63 
> ++++++++++++++++++++++++++----------------
>  1 file changed, 39 insertions(+), 24 deletions(-)
> 
> diff --git a/xen/arch/arm/platforms/hip04.c b/xen/arch/arm/platforms/hip04.c
> index 024c8a0..dec4984 100644
> --- a/xen/arch/arm/platforms/hip04.c
> +++ b/xen/arch/arm/platforms/hip04.c
> @@ -136,7 +136,7 @@ static void hip04_cluster_up(unsigned int cluster)
>  
>  static int __init hip04_smp_init(void)
>  {
> -    struct dt_device_node *np, *np_fab;
> +    struct dt_device_node *np, *np_fab, *bw;
>      const char *msg;
>      u64 addr, size;
>  
> @@ -150,30 +150,45 @@ static int __init hip04_smp_init(void)
>      if ( !np_fab )
>          goto err;
>  
> -    msg = "failed to get bootwrapper-phys\n";
>      if ( !dt_property_read_u32(np, "bootwrapper-phys",
> -                               &hip04_boot.bootwrapper_phys) )
> -        goto err;
> -
> -    msg = "failed to get bootwrapper-size\n";
> -    if ( !dt_property_read_u32(np, "bootwrapper-size",
> -                               &hip04_boot.bootwrapper_size) )
> -        goto err;
> -
> -    msg = "failed to get bootwrapper-magic\n";
> -    if ( !dt_property_read_u32(np, "bootwrapper-magic",
> -                               &hip04_boot.bootwrapper_magic) )
> -        goto err;
> -
> -    msg = "failed to get relocation-entry\n";
> -    if ( !dt_property_read_u32(np, "relocation-entry",
> -                               &hip04_boot.relocation_entry) )
> -        goto err;
> -
> -    msg = "failed to get relocation-size\n";
> -    if ( !dt_property_read_u32(np, "relocation-size",
> -                 &hip04_boot.relocation_size) )
> -        goto err;
> +                               &hip04_boot.bootwrapper_phys) ) {
> +        u32 boot_method[4];
> +        bw = dt_find_compatible_node(NULL, NULL, 
> "hisilicon,hip04-bootwrapper");
> +        msg = "hisilicon,hip04-bootwrapper missing in DT\n";
> +        if ( !bw )
> +            goto err;
> +
> +        msg = "failed to get boot-method\n";
> +        if ( !dt_property_read_u32_array(bw, "boot-method", boot_method, 4) )
> +            goto err;
> +        hip04_boot.bootwrapper_phys = boot_method[0];
> +        hip04_boot.bootwrapper_size = boot_method[1];
> +        hip04_boot.bootwrapper_magic = 0xa5a5a5a5;
> +        hip04_boot.relocation_entry = boot_method[2];
> +        hip04_boot.relocation_size = boot_method[3];
> +    }
> +    else
> +    {
> +        msg = "failed to get bootwrapper-size\n";
> +        if ( !dt_property_read_u32(np, "bootwrapper-size",
> +                                   &hip04_boot.bootwrapper_size) )
> +            goto err;
> +
> +        msg = "failed to get bootwrapper-magic\n";
> +        if ( !dt_property_read_u32(np, "bootwrapper-magic",
> +                                   &hip04_boot.bootwrapper_magic) )
> +            goto err;
> +
> +        msg = "failed to get relocation-entry\n";
> +        if ( !dt_property_read_u32(np, "relocation-entry",
> +                                   &hip04_boot.relocation_entry) )
> +            goto err;
> +
> +        msg = "failed to get relocation-size\n";
> +        if ( !dt_property_read_u32(np, "relocation-size",
> +                                   &hip04_boot.relocation_size) )
> +            goto err;
> +    }
>  
>      relocation = ioremap_nocache(hip04_boot.relocation_entry,
>                                   hip04_boot.relocation_size);
> 


-- 
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.