Re: [PATCH V11 3/5] kbuild: Allow .dtso format for overlay source files

From: Frank Rowand
Date: Sun Mar 14 2021 - 21:16:59 EST


Hi VIresh,

On 3/12/21 11:11 PM, Frank Rowand wrote:
> On 3/12/21 1:13 AM, Viresh Kumar wrote:
>> On 12-03-21, 01:09, Frank Rowand wrote:
>>> I suggested having the .dtso files include the .dts file because that is a relatively
>>> small and easy change to test. What would probably make more sense is the rename
>>> the existing overlay .dts files to be .dtso files and then for each overlay .dtso
>>> file create a new .dts file that #includes the corresponding .dtso file. This is
>>> more work and churn, but easier to document that the .dts files are a hack that is
>>> needed so that the corresponding .dtb.S files will be generated.
>>
>> What about creating links instead then ?
>>
>
> I don't really like the idea of using links here.
>
> Maybe it is best to make the changes needed to allow the unittest
> overlays to be .dtso instead of .dts.
>
> Off the top of my head:
>
> scripts/Makefile.lib:
> The rule for %.dtb.S invokes cmd_dt_S_dtb, which puts the
> overlay data in section .dtb.init.rodata, with a label
> pointing to the beginning of the overlay __dtb_XXX_begin and
> a label pointing to the end of the overlay __dtb_XXX_end,
> for the overlay named XXX. I _think_ that you could simply
> add a corresponding rule for %.dtbo.S using a new command
> cmd_dt_S_dtbo (the same as cmd_dt_S_dtb, except use labels
> __dtbo_XXX_begin and __dtbo_XXX_end).

If you do the above, please put it in drivers/of/unittest-data/Makefile
instead of scripts/Makefile.lib because it is unittest.c specific and
not meant to be anywhere else in the kernel.

-Frank

>
> drivers/of/unittest.o:
> would need to have the #define of OVERLAY_INFO() changed to
> reflect the changed label names (use __dtbo_##overlayname##begin
> and __dtb_##overlay_name##_end).
>
> drivers/of/unittest-data/Makefile:
> In obj-$(CONFIG_OF_OVERLAY) change the *.dtb.o names to *.dtbo.o
>
> I'm not sure how the DTC_FLAGS_... += -@ differentiates between
> .dts / .dtb and .dtso / .dtbo That is worth looking at.
>
> -Frank
>