On 06/06/17 00:20, Frank Rowand wrote: > On 06/05/17 05:59, Stefani Seibold wrote: >> From: Stefani Seibold <stefani@xxxxxxxxxxx> >> >> This patch enables external references for symbols which are not >> exported by the current device tree. For example >> >> // RASPI example (only for testing) >> /dts-v1/; >> /plugin/; >> >> / { >> compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709"; >> >> fragment@0 { >> target-path = "/soc/i2s@7e203000"; >> __overlay__ { >> #address-cells = <0x00000001>; >> #size-cells = <0x00000001>; >> test = "test"; >> timer = <&timer>; >> }; >> }; >> >> __external_symbols__ { >> timer = "/soc/timer@7e003000"; >> }; >> }; > > My hope is that the dtc compiler will stop supporting specification of the > __symbols__ node in dts source, and only generate it automatically in the dtb. > That change to dtc would not allow any node name specified in a dts to begin > with an underscore. Thus node __external_symbols__ would not be allowed. > > >> >> The "timer" symbol is not exported by the RASPI device tree, because it is >> missing in the __symbols__ section of the device tree. >> >> In case of the RASPI device tree this could be simple fixed by modifing >> the device tree source, but when the device tree is provided by a closed >> source BIOS this kind of missing symbol could not be fixed. > > Is there a real example of this issue, or is this a theoretical concern? > If this is a real example, we should be discouraging such behavior. > > The suggestion by Pantelis should work, but that is just a hack to get > you out of a bad situation, not a good practice. Digging a little bit deeper into the suggestion by Pantelis, I don't like that approach either. It is still rather hacky. > >> >> An additional benefit is to override a (possible broken) symbol exported >> by the currect live device tree. >> >> The patch is based and tested on linux 4.12-rc3. >> >> Signed-off-by: Stefani Seibold <stefani.seibold.ext@xxxxxxxxxx> >> Signed-off-by: Stefani Seibold <stefani@xxxxxxxxxxx> >> --- >> drivers/of/overlay.c | 19 +++++++++++++++++++ >> drivers/of/resolver.c | 27 ++++++++++++++++++++++----- >> 2 files changed, 41 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c >> index 7827786718d8..de6516ea0fcd 100644 >> --- a/drivers/of/overlay.c >> +++ b/drivers/of/overlay.c > > < snip > > > -Frank > -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html