From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754199AbcKQK4D (ORCPT ); Thu, 17 Nov 2016 05:56:03 -0500 Received: from foss.arm.com ([217.140.101.70]:47778 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751640AbcKQKz6 (ORCPT ); Thu, 17 Nov 2016 05:55:58 -0500 Date: Thu, 17 Nov 2016 10:55:13 +0000 From: Mark Rutland To: Guenter Roeck Cc: Fabio Estevam , Fabio Estevam , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Subject: Re: Boot failures in -next due to 'ARM: dts: imx: Remove skeleton.dtsi' Message-ID: <20161117105513.GA12273@leverpostej> References: <20161116184649.GF11228@leverpostej> <20161116221002.GA19925@roeck-us.net> <20161116224024.GA11821@roeck-us.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20161116224024.GA11821@roeck-us.net> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Nov 16, 2016 at 02:40:24PM -0800, Guenter Roeck wrote: > On Wed, Nov 16, 2016 at 08:27:09PM -0200, Fabio Estevam wrote: > > Hi Guenter, > > > > On Wed, Nov 16, 2016 at 8:10 PM, Guenter Roeck wrote: > > > > > > Anyway, I guess the problem is that the "official" dtb files no longer provide > > > the skeleton /chosen and /memory nodes (and maybe others), and qemu seems to > > > expect that they are provided. Is that correct ? > > > > imx6qdl-sabrelite.dtsi provides chosen and memory nodes. > > Yes, but not the 'device_type' property, which the kernel seems to expect. Memory nodes require this property per ePAPR and the devicetree.org spec, so the bug is that we didn't add those when removing the skeleton.dtsi include. > The qemu patch below fixes the problem for sabrelite, I just don't know > if that is really the way to go. You tell me; I'll be happy to submit > the necessary patch(es) into qemu. As above, I don't think the below patch is necessary. The dt should have this property to begin with. > The same is true for 'chosen'. Right now qemu expects this node to exist. > It does exist for sabrelite, but apparently not for imx25-pdk. Having QEMU create a /chosen node if one does not exist already sounds sensible to me. Thanks, Mark. > Guenter > > --- > diff --git a/hw/arm/boot.c b/hw/arm/boot.c > index 1b913a4..080d1e5 100644 > --- a/hw/arm/boot.c > +++ b/hw/arm/boot.c > @@ -486,6 +486,12 @@ static int load_dtb(hwaddr addr, const struct arm_boot_info *binfo, > g_free(nodename); > } > } else { > + Error *err = NULL; > + > + if (!qemu_fdt_getprop(fdt, "/memory", "device_type", NULL, &err)) { > + qemu_fdt_setprop_string(fdt, "/memory", "device_type", "memory"); > + } > + > rc = qemu_fdt_setprop_sized_cells(fdt, "/memory", "reg", > acells, binfo->loader_start, > scells, binfo->ram_size); From mboxrd@z Thu Jan 1 00:00:00 1970 From: mark.rutland@arm.com (Mark Rutland) Date: Thu, 17 Nov 2016 10:55:13 +0000 Subject: Boot failures in -next due to 'ARM: dts: imx: Remove skeleton.dtsi' In-Reply-To: <20161116224024.GA11821@roeck-us.net> References: <20161116184649.GF11228@leverpostej> <20161116221002.GA19925@roeck-us.net> <20161116224024.GA11821@roeck-us.net> Message-ID: <20161117105513.GA12273@leverpostej> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Wed, Nov 16, 2016 at 02:40:24PM -0800, Guenter Roeck wrote: > On Wed, Nov 16, 2016 at 08:27:09PM -0200, Fabio Estevam wrote: > > Hi Guenter, > > > > On Wed, Nov 16, 2016 at 8:10 PM, Guenter Roeck wrote: > > > > > > Anyway, I guess the problem is that the "official" dtb files no longer provide > > > the skeleton /chosen and /memory nodes (and maybe others), and qemu seems to > > > expect that they are provided. Is that correct ? > > > > imx6qdl-sabrelite.dtsi provides chosen and memory nodes. > > Yes, but not the 'device_type' property, which the kernel seems to expect. Memory nodes require this property per ePAPR and the devicetree.org spec, so the bug is that we didn't add those when removing the skeleton.dtsi include. > The qemu patch below fixes the problem for sabrelite, I just don't know > if that is really the way to go. You tell me; I'll be happy to submit > the necessary patch(es) into qemu. As above, I don't think the below patch is necessary. The dt should have this property to begin with. > The same is true for 'chosen'. Right now qemu expects this node to exist. > It does exist for sabrelite, but apparently not for imx25-pdk. Having QEMU create a /chosen node if one does not exist already sounds sensible to me. Thanks, Mark. > Guenter > > --- > diff --git a/hw/arm/boot.c b/hw/arm/boot.c > index 1b913a4..080d1e5 100644 > --- a/hw/arm/boot.c > +++ b/hw/arm/boot.c > @@ -486,6 +486,12 @@ static int load_dtb(hwaddr addr, const struct arm_boot_info *binfo, > g_free(nodename); > } > } else { > + Error *err = NULL; > + > + if (!qemu_fdt_getprop(fdt, "/memory", "device_type", NULL, &err)) { > + qemu_fdt_setprop_string(fdt, "/memory", "device_type", "memory"); > + } > + > rc = qemu_fdt_setprop_sized_cells(fdt, "/memory", "reg", > acells, binfo->loader_start, > scells, binfo->ram_size);