
Estou trabalhando em uma placa rodando Linux e que possui dois dispositivos NOR-flash. Eles são descritos na árvore de dispositivos para que vários MTDs apareçam em /dev/.
Porém, eu gostaria de ocultar os MTDs de um dos dispositivos NOR-flash até que sejam realmente necessários (durante as atualizações).
Descobri que posso desvincular o driver do flash NOR após a inicialização e religá-lo quando necessário. No entanto, eu preferiria que o sistema pudesse inicializar sem ligação. Eu tentei editando a árvore de dispositivos e configurandostatus = "desabilitado"e removendo ocompatívelcampo, mas ambas as abordagens aparentemente tornaram impossível vincular o driver ao flash NOR. (Não houvedriver_overridenó.)
Existe alguma maneira de fazer com que o sistema deixemeudecidir quando vincular o driver ou mostrar os MTDs?
Responder1
O compatible
atributo associa o driver ao dispositivo (o controlador flash NOR) e status
afeta o dispositivo.
Faz sentido que o que você tentou não tenha alcançado o resultado desejado.
Se as definições de partição MTD estão no DT, por que você não pode simplesmente comentar as partições que não deseja que sejam visíveis?
Existe alguma maneira de fazer com que o sistema me permita decidir quando vincular o driver?
Sim, é disso que a Árvore de Dispositivos é capaz.
Mas para a sua situação, você deve lidar com as partições, não com o dispositivo (já que há dois chips conectados a um controlador)!
Verhttps://www.kernel.org/doc/Documentation/devicetree/bindings/mtd/partition.txt
Se a partição MTD não estiver definida, então um nó de dispositivo obviamente não poderá ser criado para ela em/dev.