From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Chan Kim" Subject: RE: A question about generated phandle during dtb=>dts conversion Date: Wed, 3 Nov 2021 18:06:47 +0900 Message-ID: <014201d7d092$21cb4050$6561c0f0$@etri.re.kr> References: <005e01d7cfc8$8034c5f0$809e51d0$@etri.re.kr> Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Return-path: DKIM-Signature: a=rsa-sha256; b=fkDb4I2/4tC8eYwvOELcBLBIiWMernQDUukxUeOvXgK5Na+aJTDXHQEaM1OSzt5ECxq54YLJb9 Apt2JCNDFna0HzYd+lkHOuKvS7MSJYej1h9aIGYJl7TLkX094y3cjPaxPgWMu05nqTewhcgrS8Ok jGvBNrpGQOSlb5GRr8MCtBk6iYeAI2/duTVbhrW7fN6pt4C2r32EB/5oAZMP1n+7u6QGEirL+Cic MpUoKOmeLWzS+ZHs/0+1NpVnVv38iAdZpEILPJQ4QLb2wlwz13orI9DdZpCIEMJmV9KYKJVaKCVG 0RT7iO06Ak3sDtRd9GjK4qb1Nhq+ZFIqkO/oszCA==; c=relaxed/relaxed; s=selector; d=dooray.com; v=1; bh=I0zIssLqIl5rH2EQrDWhjD2BpJB4T6Y5YVtsL4T9l+0=; h=From:To:Subject:Message-ID; In-Reply-To: Content-Language: ko List-ID: Content-Type: text/plain; charset="windows-1252" To: 'David Gibson' Cc: devicetree-compiler-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Hi, David Gibson, Thank you for the answer. I can understand it now. Best regards, Chan Kim > -----Original Message----- > From: David Gibson > Sent: Wednesday, November 3, 2021 11:34 AM > To: Chan Kim > Cc: devicetree-compiler-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > Subject: Re: A question about generated phandle during dtb=3D>dts = conversion >=20 > On Tue, Nov 02, 2021 at 06:03:27PM +0900, Chan Kim wrote: > > Hello, all > > I extracted a dtb file from qemu execution (arm virt machine) and > > converted the dtb file to dts file using dtc. > > But for some node that is referenced by other nodes, the phandle is > > generated like =93phandle =3D <0x8000>=94 as shown below. >=20 > Note that the value is generated by qemu and is in the dtb. It's not > generated by dtc during decompilation. >=20 > > apb-pclk { > > =A0=A0=A0=A0=A0=A0=A0 phandle =3D <0x8000>; > > =A0=A0=A0=A0=A0=A0=A0 clock-output-names =3D "clk24mhz"; > > =A0=A0=A0=A0=A0=A0=A0 clock-frequency =3D <0x16e3600>; > > =A0=A0=A0=A0=A0=A0=A0 #clock-cells =3D <0x00>; > > =A0=A0=A0=A0=A0=A0=A0 compatible =3D "fixed-clock"; > > =A0=A0=A0 }; > > > > And another node is using this phandle like this. (the clocks is the > > phandle for the apb-pclk above.) > > > > pl061@9030000 { > > =A0=A0=A0=A0=A0=A0=A0 phandle =3D <0x8003>; > > =A0=A0=A0=A0=A0=A0=A0 clock-names =3D "apb_pclk"; > > =A0=A0=A0=A0=A0=A0=A0 clocks =3D <0x8000>; > > =A0=A0=A0=A0=A0=A0=A0 interrupts =3D <0x00 0x07 0x04>; > > =A0=A0=A0=A0=A0=A0=A0 gpio-controller; > > =A0=A0=A0=A0=A0=A0=A0 #gpio-cells =3D <0x02>; > > =A0=A0=A0=A0=A0=A0=A0 compatible =3D "arm,pl061\0arm,primecell"; > > =A0=A0=A0=A0=A0=A0=A0 reg =3D <0x00 0x9030000 0x00 0x1000>; > > =A0=A0=A0 }; > > > > When I convert the dts back to the dtb, dtc doesn=92t understand the > > phandle and complains that it is not a phandle referenece. > > > > dts.dts:276.3-21: Warning (clocks_property): /pl061@9030000:clocks: > > cell 0 is not a phandle reference > > > > I=92ve checked event with this warning, the phandle reference is = being > > preserved through out the procedure. > > So, if I want to extract a dtb and convert it to dts, edit some and > > convert it back to dtb, how can I prevent this kind of phandle = warning? > > And why doesn't dtc add labels to the referenced nodes and let other > > nodes use that label as phandle? >=20 > The short answer is because dtc doesn't know it's a phandle. dtb is = not a > self-describing format - the properties are just bytestrings, and you = need > to know what you're expecting in there in order to decode them (that's > what dt bindings give you). >=20 > So the only way that dtc could know that those 4 bytes in the 'clocks' > property are actually a phandle is by specifically knowing about the > "clocks" property. dtc has *some* knowledge of specific properties in = the > checks, but it's far from complete (and complete knowledge of the = bindings > is pretty much out of scope for dtc). >=20 > But.. for the normal case of writing a dts file directly, it's useful = to > get a warning if you don't use a reference somewhere you probably = should > (anywhere that's a phandle), so dtc does check that. >=20 > So, I think basically in just the same way that you might expect = generated > or decompiled code to be rather messy and generate compiler warnings, = so a > decompiled dts might have messy things and generate warnings. You can > switch off the warnings explicitly if you need (-Wno-clocks_property = in > this case). >=20 > -- > David Gibson | I'll have my music baroque, and my code > david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ > _other_ > | _way_ _around_! > http://www.ozlabs.org/~dgibson