From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [RFC 17/24] xen/arm: Mark each device used by Xen as disabled in DOM0 FDT Date: Thu, 22 Aug 2013 15:15:20 +0100 Message-ID: <52161CF8.5020508@linaro.org> References: <1376687156-6737-1-git-send-email-julien.grall@linaro.org> <1376687156-6737-18-git-send-email-julien.grall@linaro.org> <1377179443.2825.33.camel@kazak.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1377179443.2825.33.camel@kazak.uk.xensource.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: Ian Campbell Cc: patches@linaro.org, xen-devel@lists.xen.org, andre.przywara@linaro.org, stefano.stabellini@eu.citrix.com List-Id: xen-devel@lists.xenproject.org On 08/22/2013 02:50 PM, Ian Campbell wrote: > On Fri, 2013-08-16 at 22:05 +0100, Julien Grall wrote: >> When a device has a property status with disabled inside, Linux will not use >> the device. > > Is Linux consistent about that? For general device (ie: not GIC, timer, and malformed driver), yes. I choose this solution because, I'm not sure how Linux react if, for example, on a board with 3 UARTs, the second UART is removed. Set status property to "disabled" works fine for me. > I must admit I thought we omitted things in use by Xen from the DT > altogether. Is that no longer true. > >> >> Signed-off-by: Julien Grall >> --- >> xen/arch/arm/domain_build.c | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c >> index c8f24ed..8377610 100644 >> --- a/xen/arch/arm/domain_build.c >> +++ b/xen/arch/arm/domain_build.c >> @@ -208,6 +208,14 @@ static int write_properties(struct domain *d, struct kernel_info *kinfo, >> return res; >> } >> >> + /* Disable all devices used by Xen */ >> + if ( dt_device_used_by(np) == DOMID_XEN ) >> + { >> + res = fdt_property(kinfo->fdt, "status", "disabled", 8 + 1); >> + if ( res ) >> + return res; >> + } >> + >> /* >> * XXX should populate /chosen/linux,initrd-{start,end} here if we >> * have module[2] > > -- Julien Grall