Resolución dinámica, notas
Éste documento describe la implementación -en el lado del kernel, del Solucionador del árbol de dispositivo. localización: drivers/devicetree/resolver.c lectura: Documentation/devicetree/dt-object-internal.txt [1]
Cómo funciona el solucionador
El solucionador es dado como entrada, un árbol arbitrario, compilado con la apropiada opción dtc y, sosteniendo la etiqueta /plugin/. Ésto genera los nodos __fixups__ & __local_fixups__, tal y como se describe en [1].
La secuencia de funcionamiento del solucionador es como sigue:
Obtine el valor phandle máximo, del árbol de dispositivo -desde el árbol activo
+ 1.Ajusta mtodos los phandel locales del árbol de dispositivo, para resolver el montante (cantidad).
Usa la información del nodo
__local__fixups__, para ajustar las referencias locales al mismo montante.Para cada propiedad en el nodo
__fixups__, localiza el nodo referenciado en el árbol activo. Es la etiqueta usada para marcar el nodo.Recupera el phandle del objetivo de la corrección.
Para cada corrección en la propiedad, encuentra la localización del
node:property:offsety lo reemplaza con el valor phandle.
Referencias y agradecimientos
phandle
Especie de puntero de un nodo, el cuál apunta a la definición del nodo, pudiéndo ser guardado en el mismo archivo o, en otro distinto.