
저는 Linux를 실행하는 보드에서 작업 중이며 두 개의 NOR 플래시 장치가 있습니다. MTD는 /dev/ 아래에 표시되도록 장치 트리에 설명되어 있습니다.
그러나 실제로 필요할 때까지(업그레이드 중) NOR 플래시 장치 중 하나에서 MTD를 숨기고 싶습니다.
부팅 후 NOR 플래시에서 드라이버를 바인딩 해제한 다음 필요할 때 다시 바인딩할 수 있다는 것을 발견했습니다. 그러나 처음에는 바인딩하지 않고 시스템을 부팅할 수 있었으면 좋겠습니다. 장치 트리를 편집하고 설정을 시도해 보았습니다.상태="비활성화"그리고호환 가능필드이지만 두 접근 방식 모두 드라이버를 NOR 플래시에 바인딩하는 것을 불가능하게 만든 것 같습니다. (없었다드라이버_오버라이드마디.)
시스템이 허용하도록 할 수 있는 방법이 있나요?나드라이버를 바인딩하거나 MTD를 표시할 시기를 결정합니까?
답변1
속성 compatible
은 드라이버를 장치(NOR 플래시 컨트롤러)에 연결하고 status
장치에 영향을 줍니다.
당신이 시도한 것이 원하는 결과를 얻지 못했다는 것은 당연합니다.
MTD 파티션 정의가 DT에 있는 경우 표시하지 않으려는 파티션을 간단히 주석 처리할 수 없는 이유는 무엇입니까?
드라이버를 바인딩할 시기를 시스템에서 결정하도록 할 수 있는 방법이 있나요?
예, 그것이 바로 장치 트리가 할 수 있는 일입니다.
그러나 귀하의 상황에서는 장치가 아닌 파티션을 다루어야 합니다(하나의 컨트롤러에 두 개의 칩이 연결되어 있기 때문입니다)!
보다https://www.kernel.org/doc/Documentation/devicetree/bindings/mtd/partition.txt
MTD 파티션이 정의되지 않은 경우 해당 파티션에 대한 장치 노드를 생성할 수 없습니다./개발자.