On 03.05.2018 11:34, Jan Lübbe wrote: [...] >>> Then the existing selection logic would >>> handle your case as well. >> Ohh ... ok. And could you explain please, who we could do that? Because, >> all our DTs are compatible with barebox DT and barebox would choose simple >> the first one and boot it. Or is using of Bootloader Spec isn't right >> way, to solve this issue? > So in the barebox DT you'd have: > / { > model = "Foo Common i.MX6 Board"; > compatible = "foo,mx6-common", "fsl,imx6q"; > }; > [...] > > Then for the kernel DTs you can use different compatible lists, which > each use a different and more specific entry. > > mx6-variant1.dts: > / { > model = "Foo Variant 1 i.MX6 Board"; > compatible = > "foo,mx6-variant1", "foo,mx6-common", "fsl,imx6q"; > }; > [...] > > mx6-variant2.dts: > / { > model = "Foo Variant 2 i.MX6 Board"; > compatible = "foo,mx6-variant2", "foo,mx6-common", "fsl,imx6q"; > }; > [...] > > Then, in barebox, you need to have a way to override which compatible > string the bootspec code is looking for. Ok, the way is to override/extend barebox DT compatible string while initialisation, so barebox would be match only one boot entry. > I'd prefer this to the machine-id approach, as the DT compatible list > mechanism is designed exactly for handing these different levels of > compatibility declarations. Yes, I agree with you. That could be better for us to solve our issue. Thank you for explanation! Do your mean, for using the machine-id in right way, the patch could be apply? If Sascha still agree, of course. Regards, Andreas