dtc: "syntax error" linked to &{label/subnode} syntax

Tom Rini trini at konsulko.com
Tue Jan 28 15:04:56 CET 2025


On Tue, Jan 28, 2025 at 08:47:37AM +0100, Patrice CHOTARD wrote:
> 
> 
> On 1/15/25 15:44, Tom Rini wrote:
> > On Wed, Jan 15, 2025 at 03:39:20PM +0100, Patrice CHOTARD wrote:
> >>
> >>
> >> On 1/15/25 15:24, Patrice CHOTARD wrote:
> >>>
> >>>
> >>> On 1/15/25 14:19, Simon Glass wrote:
> >>>> Hi Patrice,
> >>>>
> >>>> On Wed, 15 Jan 2025 at 03:19, Patrice CHOTARD
> >>>> <patrice.chotard at foss.st.com> wrote:
> >>>>>
> >>>>> Hi
> >>>>>
> >>>>> I am currently converting STM32MP platforms to OF_UPSTREAM.
> >>>>> As we use same binary for several boards, flags CONFIG_OF_UPSTREAM_BUILD_VENDOR=y
> >>>>> and CONFIG_OF_UPSTREAM_VENDOR="st" are set.
> >>>>>
> >>>>> So all dts/upstream/src/arm/st/* dts files are compiled.
> >>>>>
> >>>>> I am facing an issue with dts/upstream/src/arm/st/stm32mp151a-prtt1* and
> >>>>> dts/upstream/src/arm/st/stm32mp15*-mec*.* files.
> >>>>>
> >>>>> To be more precise, these files are using a syntax which follows this
> >>>>> format &{label/subnode} to override some nodes.
> >>>>>
> >>>>> This leads to DTC error:
> >>>>>
> >>>>>  AR      drivers/usb/gadget/built-in.o
> >>>>>   LD      u-boot
> >>>>>   OBJCOPY u-boot.srec
> >>>>>   OBJCOPY u-boot-nodtb.bin
> >>>>>   SYM     u-boot.sym
> >>>>>   DTC     dts/upstream/src/arm/st/stm32mp157c-dhcom-picoitx.dtb
> >>>>>   DTC     dts/upstream/src/arm/st/stm32h750i-art-pi.dtb
> >>>>>   DTC     dts/upstream/src/arm/st/stm32mp157a-microgea-stm32mp1-microdev2.0-of7.dtb
> >>>>>   DTC     dts/upstream/src/arm/st/stm32mp157a-iot-box.dtb
> >>>>>   DTC     dts/upstream/src/arm/st/stm32746g-eval.dtb
> >>>>>   DTC     dts/upstream/src/arm/st/stm32mp151c-mecio1r0.dtb
> >>>>>   DTC     dts/upstream/src/arm/st/stm32mp157a-dhcor-avenger96.dtb
> >>>>>   DTC     dts/upstream/src/arm/st/ste-nomadik-s8815.dtb
> >>>>> Error: ../dts/upstream/src/arm/st/stm32mp15x-mecio1-io.dtsi:338.1-2 syntax error
> >>>>> FATAL ERROR: Unable to parse input tree
> >>>>>
> >>>>>
> >>>>> At line 338 in dts/upstream/src/arm/st/stm32mp15x-mecio1-io.dtsi we got :
> >>>>>
> >>>>> &{qspi_bk1_pins_a/pins} {
> >>>>>         pinmux = <STM32_PINMUX('F', 8, AF10)>, /* QSPI_BK1_IO0 */
> >>>>>                  <STM32_PINMUX('F', 9, AF10)>, /* QSPI_BK1_IO1 */
> >>>>>                  <STM32_PINMUX('F', 7, AF9)>, /* QSPI_BK1_IO2 */
> >>>>>                  <STM32_PINMUX('F', 6, AF9)>; /* QSPI_BK1_IO3 */
> >>>>>         /delete-property/ bias-disable;
> >>>>>         bias-pull-up;
> >>>>> };
> >>>>>
> >>>>> If i update it as following , the DTC compilation is OK :
> >>>>>
> >>>>> &qspi_bk1_pins_a {
> >>>>>         pins {
> >>>>>                 pinmux = <STM32_PINMUX('F', 8, AF10)>, /* QSPI_BK1_IO0 */
> >>>>>                          <STM32_PINMUX('F', 9, AF10)>, /* QSPI_BK1_IO1 */
> >>>>>                          <STM32_PINMUX('F', 7, AF9)>, /* QSPI_BK1_IO2 */
> >>>>>                          <STM32_PINMUX('F', 6, AF9)>; /* QSPI_BK1_IO3 */
> >>>>>                 /delete-property/ bias-disable;
> >>>>>                 bias-pull-up;
> >>>>>         };
> >>>>> };
> >>>>>
> >>>>> On kernel side, the DTC compilation is ok, but not on U-Boot side. I am not able to understand the difference.
> >>>>>
> >>>>
> >>>> Could it be that the kernel dtc is newer?
> >>>
> >>> I have tested with dtc Version: DTC 1.7.0-gbcd02b52 which is the same dtc version than kernel tag next-20250114
> >>
> >> I mean, it's ok with newer version of dtc : DTC 1.7.0-gbcd02b52.
> > 
> > Ah, so, sigh, we need to update DTC. I stopped my last upgrade there
> > because other changes it made grew the binary size for everyone and
> > didn't get back to it. I guess another attempt is in order.
> > 
> 
> Hi Tom
> 
> Do you know when you will be able to provide a DTC update in master or next branch ?

Unfortunately trying to update resync-dtc-v1.6.0-31-gcbca977ea121-v5 to
be on top of current (the first step to moving to 1.7.0 or 1.7.1)
produced some test failures that don't exist when using the host dtc.
Can you confirm if dtc 1.7.0 is new enough for this syntax? We might
just need to change to building pylibfdt and not dtc as well (as having
pylibfdt come via system python or pipx is differently tricky it seems).

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20250128/a5b9981c/attachment.sig>


More information about the U-Boot mailing list