Hello all, On Thu, 26 Sep 2019 13:58:35 -0600 Steve McIntyre <steve.mcintyre@xxxxxxxxxx> wrote: > Arg, missed the CC to the devicetree-spec list. > > ----- Forwarded message from Steve McIntyre <steve.mcintyre@xxxxxxxxxx> ----- > > From: Steve McIntyre <steve.mcintyre@xxxxxxxxxx> > To: dte-all@xxxxxxxxxx > Cc: dan.handley@xxxxxxx, Mathieu Poirier <mathieu.poirier@xxxxxxxxxx>, > broonie@xxxxxxxxxx > Date: Thu, 26 Sep 2019 18:07:30 +0100 > Subject: Meeting notes: Planning around splitting devicetree data out of the > Linux tree > User-Agent: Mutt/1.10.1 (2018-07-13) > > Hi all, > > A large group of us met yesterday at Linaro Connect in San Diego to > discuss this topic. I hope most people are on one of the two the > mailing lists here already - please forward if you think somebody is > not and should see this. > > (probably incomplete) list of attendees > ======================================= > Steve McIntyre, Arm/Linaro > Bill Fletcher, Linaro > Bruce Ashfield, Xilinx > Mark Brown, Arm > Stefano Stabellini, Xilinx > Arnd Bergmann, Linaro > Grant Likely, Arm > Mathieu Poirier, Linaro > Loic Pallardy, ST > ???, Socionext > > Notes > ===== > > Please correct me if you think I'm missed/mis-described something... > > We believe that it's time to move arm and arm64 DT data out of the > kernel tree to a separate repo, on github. Arnd showed a graph showing > the number of dts files, grouped by architecture. Vast majority are > for arm/arm64, with a small number elsewhere. *Still* not all arm > platforms have moved across to DT totally (e.g. omap2). > > What work needs to be done? > > * create repo (github.com/devicetree.org/dts) > * move the dts files, bindings, and header files across *together* - > they make no sense separately. > > Is anybody else except Linux using the header files we have? not that > we know of. If you are talking about the headers include/dt-bindings at least FreeBSD, NetBSD and OpenBSD are using it to some extent. Talking just about FreeBSD now, we include them in our kernel drivers when the licence is fine with us (X11 was chosen for some reason). We need them for clocks/reset/etc... ids. When the licence isn't okay for us (GPL) we redifine the ID in our drivers. I've always wondered if such include should/can be licenced anyway, those are just numbers that we need to know. > As the first aim, we'd copy things from the external repo into the > kernel tree periodically - just like we do with dtc already. Later on, > we might revisit that decision. What would be the difference with the devicetree-rebasing repo ? https://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git/ This is the one I'm using to import DTS into the FreeBSD source tree. > if we move the DTS files out, would we still want to build them with > the kernel? Why? Should the kernel build sync things across > automatically at build time? Sometimes mips and ppc build the DTB > files into a bootable image format, so there is a dependency there for > those arches. Not for arm/arm64. > > We have a prototype patchset for the kernel which would add support > for out-of-tree dts files. Needs re-evaluating, it's gone stale. DTS are known to break backward compatibility so a kernel (Linux or *BSD) needs to be in sync with them. > How would the kernel devs pick the right DTB from an external tree? > Worry about forwards/backwards compat. Follow the same release cadence > as the kernel for now, tag it matching? How do we keep it in sync? > > Two different sets of versioning here - DT versioning, and Linux > versioning. > > We should have tooling and data in separate repos. Common schema in > with tooling, device bindings in the data repo? > > How do we keep DTS and drivers in sync between the two repos? In early > development, we will need maintainers of both repos to work together. Do not break bindings. Cheers, > Currently not all the driver bindings changes are reviewed. This will > become more of a problem if we separate the data out. We need > commitment of responsive maintainers for the DT repo. We need to get > more people involved, spreading the load - that's a problem already. > > So we do all arches, or just arm? Start with arm, iron out the > kinks. Once we're happy, move risc-v, ppc, etc. as/when their > maintainers care. There are a number of quiet arches with very few dts > files, as seen already. The SoC maintainers and Rob will clearly end > up maintaining the new tree to start with. > > How do we do tagging etc.? Same release cadence as the kernel. Add a > -next style process. Also need to integrate with the linux-next > process? Probably not. kernelCI watches linux-next and does boot > testing. We should extend that to help us here. > > Should we do automatic tagging to match the kernel releases, including > LTS? Would that make sense? > > We will want to test the tip DT tree with other kernel releases. > > How do we track which hash of the DT repo we want to use? We *could* > store it in the kernel, but that's not a great way to work. > > We could tag using the Linux tags *and* the U-Boot tags *and* the DT > tags. Could even dump post-lopper [System DT] output in and tag *if we > want* to do that, but we probably don't - let's not store processed > output. If we're shipping tarballs of DTBs, then we might do that > there. > > Testing should start tracking the hash of the DT repo alongside the > kernel tree. Should we get somebody to do a DT -next tree? Gives us a > complicated testing matrix for bisection etc. Get kernelCI to do two > tests for each kernel build - one with the previous release of the DT > branch, and one with current. > > Headers will have to be cloned into the kernel tree to not block > device driver updates. Add a script to automate the update - pull > things from the dt repo and commit into kernel. Headers need to go > into the DT repo *first*, then people can pull the header update into > their tree before the driver updates. Must never be rebased, to make > things safe. Can mostly be automated. People may occasionally end up > making changes to the headers directly in -next, and this would > break. We'll just have to deal with that and fix things. Try to get > Linus to pull updates from the DT tree early, so that bindings will > come that way. Should be cleaner. Maybe some git request-pull noise to > come? > > How much lives in the header files that doesn't need to be? Maybe > quite a bit. > > Should the pull request process for headers also pull in the dts files > at the same point? Would be nice, but we don't have the same > "add-only" policy as for the header files so probably would not work. > > We need to publicise this discussion and work, and engage with people > disagreeing or suggesting alternative ideas. > > Olof might have more ideas that won't quite match this. Maybe keep > reference platforms in the kernel like with ppc? > > Idea: start with a shadow process for a couple of cycles and make sure > that things are working before we go live with everything. Once that > works, pick a couple of platforms to start with. Get tooling organised > in the dt repo to validate that things are working. Choose a single > SoC and start working with that - which one? Arm reference platforms - > maybe not good, not enough changes there. stm32? > > Actions > ------- > > * Resurrect the external DT patch - Grant to prod > * Arnd to discuss with Olof about his ideas > * Set up a target tree on github (good for CI etc.) Grant will give > Arnd access. Start with importing the dt-rebasing tree > * broonie will get kernelCI to look at the new DT tree too > * Stefano will check if the ZU+ is a good candidate for us to work > with > * Arm foundation model stuff is heading into LAVA soon. broonie to > chase on that > * Add CI - TF-A and U-Boot pulling from our DT tree and validating > (overlap with System DT) > * Don't break everyone! > * Regular meetings: > + Arnd to organise a session at ELC-E > + We'll organise a (monthly?) sync-up > > mailing list: > > boot-architecture? not ideal > devicetree=spec? done (hence CC here!) > > If I've missed anything here, please reply and correct me... > > Cheers, > > Steve > > -- > Steve McIntyre steve.mcintyre@xxxxxxxxxx > <http://www.linaro.org/> Linaro.org | Open source software for ARM SoCs > > > > ----- End forwarded message ----- > -- > Steve McIntyre steve.mcintyre@xxxxxxxxxx > <http://www.linaro.org/> Linaro.org | Open source software for ARM SoCs -- Emmanuel Vadot <manu@xxxxxxxxxxxxxxxx> <manu@xxxxxxxxxxx>