case sensitivity for devicetree node names
Frank Rowand
frowand.list at gmail.com
Sun Jun 12 05:38:09 AEST 2016
Hi Ben,
(and adding other powerpc folks)
On 06/10/16 13:05, Frank Rowand wrote:
> I had assumed that devicetree node names were case sensitive. But a recent
> email thread asserted that they were not, which made me curious.
>
> dtc treats node names as case sensitive:
>
> $ cat test_node_case_1.dts
>
> /dts-v1/;
>
> / {
> node-x {
> prop_a = < 1 >;
> };
> };
>
> / {
> node-X {
> prop_a = < 2 >;
> };
> };
>
> $ cat test_node_case_2.dts
>
> /dts-v1/;
>
> / {
> node-x {
> prop_a = < 1 >;
> };
> };
>
> / {
> node-x {
> prop_a = < 2 >;
> };
> };
>
> $ dtc -O dts test_node_case_1.dts
> /dts-v1/;
>
> / {
>
> node-x {
> prop_a = <0x1>;
> };
>
> node-X {
> prop_a = <0x2>;
> };
> };
>
> $ dtc -O dts test_node_case_2.dts
> /dts-v1/;
>
> / {
>
> node-x {
> prop_a = <0x2>;
> };
> };
>
>
> But the Linux kernel source code defines of_node_cmp() as:
>
> include/linux/of.h:
>
> /* Default string compare functions, Allow arch asm/prom.h to override */
> #if !defined(of_compat_cmp)
> #define of_node_cmp(s1, s2) strcasecmp((s1), (s2))
>
> arch/sparc/include/asm/prom.h uses strcmp() instead of strcasecmp().
>
> Examples of using of_node_cmp() to check for a node name can be found,
> for example, of_find_node_by_name().
>
> Is case insensitivity for node names a bug in the Linux kernel, or desired
> for some reason?
>
> -Frank
>
I chased through the history and found a 2.6.0-test5 announcement
which noted the patch from you which adds:
of_find_node_by_path()
of_find_node_by_name()
of_find_node_by_type()
of_find_compatible_node()
(And the patch is commit 394edd852a14 in the git recreation
of bitkeeper days, which is found at
git://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git)
That version of the functions uses a case insensitive compare for
devicetree node names.
Do you remember why you chose to not use a case sensitive compare?
Thanks,
-Frank
More information about the Linuxppc-dev
mailing list