Re: DT case sensitivity
From: Rob Herring <robh@kernel.org>
Date: 2018-08-23 11:43:42
Also in:
linux-devicetree
On Thu, Aug 23, 2018 at 4:02 AM Grant Likely [off-list ref] wrote:
On 23/08/2018 02:29, Benjamin Herrenschmidt wrote:quoted
On Wed, 2018-08-22 at 20:26 -0500, Rob Herring wrote:quoted
On Wed, Aug 22, 2018 at 8:14 PM Benjamin Herrenschmidt [off-list ref] wrote:quoted
On Wed, 2018-08-22 at 19:47 -0500, Rob Herring wrote:quoted
The default DT string handling in the kernel is node names and compatibles are case insensitive and property names are case sensitive (Sparc is the the only variation and is opposite). It seems only PPC (and perhaps only Power Macs?) needs to support case insensitive comparisons. It was probably a mistake to follow PPC for new arches and we should have made everything case sensitive from the start. So I have a few questions for the DT historians. :)Open Firmware itself is insensitive.Doesn't it depend on the implementation? Otherwise, how is Sparc different?Not sure ... Forth itself is insensitive for words but maybe not for string comparisons.What problem are you trying to solve?
I'm looking at removing device_node.name and using full_name instead (which now is only the local node name plus unit-address). This means replacing of_node_cmp() (and still some strcmp) calls in a lot of places. I need to use either strncmp or strncasecmp instead.
I would think making everything case insensitive would be the direction to go if you do anything. Least possibility of breaking existing platforms in that scenario.
Really? Even if all the "new" arches are effectively case sensitive? Anything using dtc and libfdt are (and json-schema certainly will be). But I frequently say the kernel's job is not DT validation, so you pass crap in, you get undefined results. Rob