U-boot: device tree overlay and symbols path

laurent vaudoit laurent.vaudoit at gmail.com
Thu Dec 19 08:28:50 CET 2019


Hi,
i want to use device tree overlay in U-boot.
my overlay looks like this:
-----------------------------
/dts-v1/;
/plugin/;
/ {

fragment at 1 {
//target = <&i2c1>;
target-path = "/soc/aips-bus at 2100000/i2c at 21a4000/";

__overlay__ {
status = "okay";
isl7998x_mipi: isl7998x_mipi at 44 {
compatible = "intersil,isl7998x_mipi";
reg = <0x44>;
//clocks = <&clks 201>;
clocks = <&{/soc/aips-bus at 2000000/ccm at 20c4000} 201>;

clock-names = "csi_mclk";
csi_id = <0>;
mclk = <27000000>;
mclk_source = <0>;
};
};
};
-----------------------------

If i build the base device tree with -@, and use the &i2c1 and &clks
symbols, the overlays works.
I use yocto to build and it seems the -@ is not used for building DT. So i
wanted to use the path corresponding to each symbols.
for the target-path, it's working well in U-boot.
The problem i have is for the clks path.
the binary gives me some __fixup__ like this:
__fixups__ {
        /soc/aips-bus at 2000000/ccm at 20c4000 = "/fragment at 1
/__overlay__/isl7998x_mipi at 44:clocks:0";
    };

but when U-boot try to apply the overlay, i have an error in
"overlay_fixup_one_phandle"
because base device tree symbols offset is null.
So it seems that fixup can not work if the base DT is not build with -@?

Is there something i'm missing, or something wrong in my overlay?

Thanks in advance for your help

regards
Laurent


More information about the U-Boot mailing list