¿Cómo puedo controlar la visibilidad de los MTD en Linux?

¿Cómo puedo controlar la visibilidad de los MTD en Linux?

Estoy trabajando en una placa que ejecuta Linux y que tiene dos dispositivos NOR-flash. Se describen en el árbol de dispositivos para que aparezcan varios MTD en /dev/.

Pero me gustaría ocultar los MTD de uno de los dispositivos NOR-flash hasta que realmente sean necesarios (durante las actualizaciones).

Descubrí que puedo desvincular el controlador del NOR-flash después del arranque y luego volver a vincularlo cuando sea necesario. Sin embargo, preferiría que el sistema pudiera iniciarse sin vincularse en primer lugar. Lo intenté editando el árbol de dispositivos y configurandoestado = "deshabilitado"y eliminando elcompatiblecampo, pero ambos enfoques aparentemente hicieron imposible vincular al conductor al flash NOR. (No huboanulación_conductornodo.)

¿Hay alguna manera de hacer que el sistema permitaa mí¿Decidir cuándo vincular al conductor o mostrar los MTD?

Respuesta1

El compatibleatributo asocia el controlador al dispositivo (el controlador flash NOR) y statusafecta al dispositivo.
Tiene sentido que lo que intentaste no haya logrado el resultado deseado.
Si las definiciones de partición MTD están en el DT, ¿por qué no puede simplemente comentar las particiones que no desea que sean visibles?

¿Hay alguna manera de que el sistema me permita decidir cuándo vincular al controlador?

Sí, eso es de lo que es capaz el árbol de dispositivos.
¡Pero para su situación, debería ocuparse de las particiones, no del dispositivo (ya que hay dos chips conectados a un controlador)!
Verhttps://www.kernel.org/doc/Documentation/devicetree/bindings/mtd/partition.txt
Si la partición MTD no está definida, entonces obviamente no se puede crear un nodo de dispositivo para ella en/desarrollador.

información relacionada