From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH v3 8/8] xen/arm: Handle translated addresses for hardware domains Date: Wed, 05 Nov 2014 14:18:47 +0000 Message-ID: <545A31C7.3070202@linaro.org> References: <1415180475-8339-1-git-send-email-frediano.ziglio@huawei.com> <1415180475-8339-9-git-send-email-frediano.ziglio@huawei.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1415180475-8339-9-git-send-email-frediano.ziglio@huawei.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Frediano Ziglio , Ian Campbell , Stefano Stabellini , Tim Deegan Cc: zoltan.kiss@huawei.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org Hi Frediano, On 11/05/2014 09:41 AM, Frediano Ziglio wrote: > 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 > --- > xen/arch/arm/gic-v2.c | 23 +++++++++++++++++++++-- > 1 file changed, 21 insertions(+), 2 deletions(-) > > diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c > index 2f6bbd5..271074d 100644 > --- a/xen/arch/arm/gic-v2.c > +++ b/xen/arch/arm/gic-v2.c > @@ -67,8 +67,10 @@ > /* Global state */ > static struct { > paddr_t dbase; /* Address of distributor registers */ > + paddr_t dbase_raw; /* Untranslated address of distributor registers */ > void __iomem * map_dbase; /* IO mapped Address of distributor registers */ > paddr_t cbase; /* Address of CPU interface registers */ > + paddr_t cbase_raw; /* Untranslated address of CPU interface registers */ > void __iomem * map_cbase[2]; /* IO mapped Address of CPU interface registers */ > paddr_t hbase; /* Address of virtual interface registers */ > void __iomem * map_hbase; /* IO Address of virtual interface registers */ > @@ -671,8 +673,17 @@ static int gicv2_make_dt_node(const struct domain *d, > 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); > + > + if ( is_hardware_domain(d) ) > + { This check is pointless, as said on an earlier version of this series, gicv2_make_dt_node is only used to create DOM0 (hardware domain) device tree. Regards, -- Julien Grall