On Thu, Sep 16, 2021 at 9:10 AM Matthias Schiffer <matthias.schiffer@xxxxxxxxxxxxxxx> wrote: > > There are situations where it is desirable to use the same base Device > Tree for devices with a different number of CPUs: There may be CPU > variants with different numbers of cores that can be used interchangably > on the same mainboard, or there are multiple CPU sockets. Not needing to > explicitly build a device tree for each such variant can make > maintenance significantly easier. > > For this to work, a system firmware / bootloader needs to adjust the > Device Tree by removing or disabling the excess CPU nodes. However, this > is currently not easily possible due to the special meaning of the > "disabled" status for CPU nodes: > > - A "disabled" CPU node is interpreted as inactive, but existent. The > Linux kernel will attempt to enable such CPUs on boot, which will > obviously fail for non-existent CPUs > - Removing the CPU node altogether from a Device Tree is much more > complex than setting a single property, as it may leave dangling > phandle references, often requiring specific knowledge of other nodes' > structure to deal with them. > > In the discussion [1] it was suggested to introduce a new status value > for CPUs that should really not be used at all. Rob proposed to use the > value "fail", which already exists in the generic definitions of the > status property. > > [1] https://www.lkml.org/lkml/2020/8/26/1237 > > Suggested-by: Rob Herring <robh+dt@xxxxxxxxxx> > Signed-off-by: Matthias Schiffer <matthias.schiffer@xxxxxxxxxxxxxxx> > --- > source/chapter3-devicenodes.rst | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) Applied, thanks. Rob