
Dear Dan,
In message 0DDCBDA1-188F-433D-BDCC-5FDCF709A131@digitaldans.com you wrote:
If you want to make this switchable at runtime, then we should probably use an environment setting.
I experimented with this, but could never determine the best way to cover all behavior. Do we have a variable that indicates "don't update DT?" If so, it means we have to place all values in the DT, when it's really nice for U-Boot to do some of that for us. In fact, we want U-Boot to update many things it discovers, just not the few we wish to actually (sometimes) define for ourselves.
"You can please all the people some of the time and some of the people all of the time but you can't please all the people all of the time."
The other alternative (granted, I'm not as smart as I used to be :-)) was to have an environment variable that specified which node we didn't want updated by U-Boot. For now, that seems reasonable since there is only one, but is that the general approach we want in the future? It also presents the challenge of having to update both environment and the provided DT.
I guess we can argue that the normal situation is that U-Boot will know how to update the DT such as needed to boot the OS. So what we are dealing with is a small percentage of cases where we need special behaviour, and where it may be acceptable if the solution is only semi-perfect ;-)
My current thinking is to introduce something like
dt_skip=memory,mac-address
including eventually "dt_skip=ALL". This should cover most of the current use cases.
If someone gets fancy he can add wildcard support.
And if we need even more flexibility, we can add some "dt_include" with higher priority, so one could do for example
dt_skip=ALL dt_include=memory
to have only the memory node updated.
Best regards,
Wolfgang Denk