dtc: "syntax error" linked to &{label/subnode} syntax
Patrice CHOTARD
patrice.chotard at foss.st.com
Tue Jan 28 08:47:37 CET 2025
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 ?
Thanks
Patrice
More information about the U-Boot
mailing list