
Ich arbeite an einem Board mit Linux, das über zwei NOR-Flash-Geräte verfügt. Sie sind im Gerätebaum beschrieben, sodass eine Reihe von MTDs unter /dev/ angezeigt werden.
Ich möchte die MTDs jedoch vor einem der NOR-Flash-Geräte verbergen, bis sie tatsächlich benötigt werden (während Upgrades).
Ich habe herausgefunden, dass ich den Treiber nach dem Booten vom NOR-Flash trennen und ihn dann bei Bedarf erneut binden kann. Mir wäre es jedoch lieber, wenn das System ohne Bindung booten könnte. Ich habe es versucht, indem ich den Gerätebaum bearbeitet undstatus="deaktiviert"und durch Entfernen derkompatibelFeld, aber beide Ansätze machten es anscheinend unmöglich, den Treiber an den NOR-Flash zu binden. (Es gab keineTreiber_OverrideKnoten.)
Gibt es eine Möglichkeit, das System dazu zu bringen,Michentscheiden, wann der Treiber gebunden oder die MTDs angezeigt werden sollen?
Antwort1
Das compatible
Attribut verbindet den Treiber mit dem Gerät (dem NOR-Flash-Controller) und status
wirkt sich auf das Gerät aus.
Es ist verständlich, dass das, was Sie versucht haben, nicht das gewünschte Ergebnis gebracht hat.
Wenn die MTD-Partitionsdefinitionen im DT sind, warum können Sie dann nicht einfach die Partitionen auskommentieren, die nicht sichtbar sein sollen?
Gibt es eine Möglichkeit, das System so zu gestalten, dass ich selbst entscheiden kann, wann der Treiber gebunden werden soll?
Ja, das ist es, was der Gerätebaum kann.
Aber in Ihrer Situation sollten Sie sich mit den Partitionen befassen, nicht mit dem Gerät (da zwei Chips an einen Controller angeschlossen sind)!
Siehehttps://www.kernel.org/doc/Documentation/devicetree/bindings/mtd/partition.txt
Wenn die MTD-Partition nicht definiert ist, kann offensichtlich kein Geräteknoten für sie erstellt werden in/Entwickler.