Re: Moving ARM dts files

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Dec 4, 2018 at 7:22 PM Andreas Färber <afaerber@xxxxxxx> wrote:
>
> Rob,
>
> Am 04.12.18 um 19:36 schrieb Rob Herring:
> > I've put together a script to move the dts files and update the
> > makefiles. It doesn't handle files not following a common prefix which
> > isn't many and some includes within the dts files will need some fixups
> > by hand.
> >
> > MAINTAINERS will also need updating.
> >
> > A few questions:
> >
> > Do we want to move absolutely everything to subdirs?
>
> This refactoring is a terrible idea!

How do you really feel?

> While it would've been nice to have more structure from the start,
> bootloaders like U-Boot expect a flat structure for arm .dtb files now.
> If you start installing them into subdirs instead, they won't find the
> files anymore under the hardcoded name.
>
> Doing this only for new platforms would be much less invasive and allow
> to prepare bootloaders accordingly.

That was my suggestion where this started for the new RDA platform.
Olof preferred to move everything and that's my desire too.

> Alternatively, white-list which ones
> are safe to move around.

I'd prefer to know which ones the distros don't want moved. That
should be easier to figure out. We also need that anyways in context
of what platforms we care about compatibility.

Another option is dtbs_install target could flatten the installed
dtbs. That is the only part the distros should depend on.

> But don't just script a refactoring because it
> looks nicer in the source tree, without testing what side effects this
> can have for board/distro users of the compiled files in practice.
> We already had that discussion for arm64 because Debian chose to ignore
> the kernel-installed subdirectories and installed .dtb files into a flat
> directory, which collided with openSUSE sticking to the kernel choice.

So everyone already deals with subdirs or not with arm and arm64
already, seems like they can deal with this. I will raise the topic on
the cross-distro list though.

> This topic becomes even more important with EBBR: There is neither a
> mechanism in place to sync .dts files into U-Boot or EDK2 source trees,
> nor are capsule updates implemented in U-Boot for easily deploying such
> bootloaders with new .dts sources or paths yet.

EBBR actually says firmware (including dtbs) goes in directories named
by vendor.

> And I can assure you
> that just getting users to dd the right bootloader can be difficult...
> Since DT forward and backward compatibility is often being neglected,
> for example with optional properties or renamed compatibles that break
> booting with previous drivers, new kernel versions often need updated
> Device Trees to make use of new/enhanced drivers. Therefore it is
> unfortunately often enough a necessity to load newer kernel-based .dtb
> files matching the kernel (as opposed to the dream of kernel-independent
> hardware descriptions) when working with the latest -rc or -next kernels
> at least. For examples of DTs needing updates, look no further than
> Linaro's 96boards - in case of hikey960/EDK2 GRUB is another layer where
> .dtb paths may be hardcoded, ditto for arm; and Armada was an example
> where the upstream bindings for the network IP changed incompatibly.

Compatibility is an issue, yes, but that really has nothing to do with this.

> DT overlays are another topic that is not making any progress upstream
> according to the ELCE BoF, so beyond the Raspberry Pi the only known
> working way to apply them is to write a U-Boot boot.scr script, which
> can either reuse $fdtcontroladdr DT or use the filename $fdtfile or
> hardcode one, the latter two of which would break with your renaming.

DT overlays also have nothing to do with this as there aren't any in
the kernel. I'm not inclined to take any either with a flat tree.
We're already at 1800+ files.

Rob




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux