The above is working as expected. If there is no FDT
entry, then trees are pulled from partitions, and not the files in “/boot
”. What is your exact FDT
entry? Can that file be decompiled and show changes you’ve made, and do those changes fail to show up in “/proc/device-tree
”?
Perhaps more important, in the original tree, are the modifications for (what I assume to be “interrupt-controller/regs
”) what you are changing being edited, or are they being added from previously non-existing entries? I ask because I wonder if perhaps you are trying to add something which would be rejected…it is different to have a valid parameter behave incorrectly, versus adding a parameter which isn’t allowed. I couldn’t tell you if the parameter you are adding is valid or not, but someone else probably can if they know what the change is.
Keep in mind that earlier boot stages do have their own device tree sources, and this is inherited by succeeding boot stages (perhaps after edits). Then, when it loads the FDT
entry, this is appended. To indirectly illustrate, look closely at the “/boot/extlinux/extlinux.conf
”. Note the “APPEND
” key/value pair starts with “${cbootargs}
”. Then examine what occurs in “APPEND
” after “${cbootargs}
”. If you run command “cat /proc/cmdline
”, then you will see the sum total of “${cbootargs}
” plus the appended extra content in the extlinux.conf
file. If the start of your cmdline
contains content not equal to the suffix of the APPEND
key/value pair, then that is content which was inherited, and not content from extlinux.conf
.
The important point here is that the “${cbootargs}” is actually a device tree entry, the “chosen->bootargs” tree node. The content of “chosen->bootargs
” is not necessarily from your tree, but could originate from another device tree location inside of a partition which was read by early boot stages.
The FDT
entry is a good place for you to add changes, but it cannot be guaranteed to be the entire device tree source since this is a merge with early boot stage content.
If you added something with the FDT
entry, and it shows up, then this is valid behavior. If there is something inherited from earlier stages, then this too is valid behavior. If what you are adding does not have some sort of conflict, then it should show up in “/proc/device-tree
”. Your specific changes and how you add these, and whether or not the rest of the boot tree is non-custom (it would be custom for third party carrier boards or if you’ve ever told it to flash a tree to a partition), has to all be considered to know if something really went wrong.
Incidentally, the initrd
is its own file. Some changes to tree won’t matter there, as the initrd
is likely reading the actual “/boot
” partition and not reading from inside the initrd
, but it isn’t a guarantee. Changes which alter the initrd
might be a bit confusing, e.g., for a custom carrier board.