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

Re: [Xen-devel] [PATCH v3 7/7] xen/arm: Handle translated addresses for hardware domains in GICv2



Hi,
  I just realized that this patch:
- was not applied;
- patch at 
http://xenbits.xen.org/gitweb/?p=people/julieng/xen-unstable.git;a=shortlog;h=refs/heads/hisilicon-d01-v3
is completely different;
- is not directly connected to our board so should be considered standalone.

Should I sent patch again on another thread?

Frediano


2014-11-06 10:12 GMT+00:00 Frediano Ziglio <frediano.ziglio@xxxxxxxxxx>:
> Translated address could have an offset applied to them.
> Replicate same value for device node to avoid improper address
> computation in the OS.
>
> Signed-off-by: Frediano Ziglio <frediano.ziglio@xxxxxxxxxx>
> ---
>  xen/arch/arm/gic-v2.c | 20 ++++++++++----------
>  1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
> index 2f6bbd5..c2666df 100644
> --- a/xen/arch/arm/gic-v2.c
> +++ b/xen/arch/arm/gic-v2.c
> @@ -631,7 +631,7 @@ static int gicv2_make_dt_node(const struct domain *d,
>      const struct dt_device_node *gic = dt_interrupt_controller;
>      const void *compatible = NULL;
>      u32 len;
> -    __be32 *new_cells, *tmp;
> +    const __be32 *regs;
>      int res = 0;
>
>      compatible = dt_get_property(gic, "compatible", &len);
> @@ -664,18 +664,18 @@ static int gicv2_make_dt_node(const struct domain *d,
>      if ( res )
>          return res;
>
> +    /* copy GICC and GICD regions */
> +    regs = dt_get_property(gic, "reg", &len);
> +    if ( !regs )
> +    {
> +        dprintk(XENLOG_ERR, "Can't find reg property for the gic node\n");
> +        return -FDT_ERR_XEN(ENOENT);
> +    }
> +
>      len = dt_cells_to_size(dt_n_addr_cells(node) + dt_n_size_cells(node));
>      len *= 2; /* GIC has two memory regions: Distributor + CPU interface */
> -    new_cells = xzalloc_bytes(len);
> -    if ( new_cells == NULL )
> -        return -FDT_ERR_XEN(ENOMEM);
> -
> -    tmp = new_cells;
> -    dt_set_range(&tmp, node, d->arch.vgic.dbase, PAGE_SIZE);
> -    dt_set_range(&tmp, node, d->arch.vgic.cbase, PAGE_SIZE * 2);
>
> -    res = fdt_property(fdt, "reg", new_cells, len);
> -    xfree(new_cells);
> +    res = fdt_property(fdt, "reg", regs, len);
>
>      return res;
>  }
> --
> 1.9.1
>
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel

_______________________________________________
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®.