
Dear Deepak Saxena,
In message 4D026BB2.6020609@mentor.com you wrote:
On 12/08/2010 02:34 PM, Wolfgang Denk wrote:
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
I imagine this being rather ugly to implement and to keep the code clean and maintained. Who parses these variables? Does each and every piece of code in U-Boot that now touches a piece of the DT need to check for this variable? I could see something like this working if there was a central DT handler that read nodes and then called platform-specific over-ride function, i.e.:
for_each_node_in_dt() { if (dt_include(node->type)) platform_of_dt_node_process(node, boot_stage); }
where boot_stage tells us whether we are at early init, about to boot an OS image, or in some other step in the process.
This would provide a consistent method of handling that variable. Without something like this, I think and environment variable is just going to create confusion for users and developers.
You just described what the implementation should look like.
Thanks.
Wolfgang Denk