기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
임베디드 시스템의 전원을 on하면 bootloader가 먼저 부팅을 하고, kernel이 부팅합니다.
Flash memory경우는
bootloader booting시에 최초 H/W관련 Control(또는, 설정의 의미이며, 아래에서도 동일함)을 해주고,
kernel부팅시에 FLASH driver가 다시 H/W관련 Control을 해주는 것으로 알고 있습니다.
kernel이 모두 부팅이 되고 나면, APP의 명령에 따라서, FLASH driver가 적절히 동작할 것으로 생각됩니다.
이와 비교해서... SDRAM(DDR이든, SDR이든...)의 경우는
bootloader booting시에 최초 H/W관련 Control을 해줄 것으로 생각합니다.
이 때, H/W관련 Control해주는 source의 경로(디렉토리와 파일명)는 어떻게 되는지요 ?
bootloader booting이 끝나고, kernel로 제어권이 넘어와서 kernel booting시에
SDRAM도 Flash memory처럼 kernel에서도 H/W관련 Control해주는 부분이 있는지요 ? 없는지요 ?
만약 없다면, bootloader에서 SDRAM의 Control을 한 번 해주면,
그 상태로 계속 유지를 한 채로 SDRAM이 동작을 한다는 의미인지요?
만약에 있다면, SDRAM driver에서 H/W control을 해주는 지요 ?
아니면, SDRAM은 driver가 없고, driver형태가 아닌 방식으로(즉, kernle의 특정 source에서) H/W control을 해주는 지요 ?
대부분 DRAM 관련 초기화는 대부분 부트로더의 초기 Assembly 코드에서 진행합니다.
u-boot 소스에서 확장자가 .S인 파일만 검색해 보면 쉽게 찾을 수 있습니다만.. CPU의 종류에 따라 다소 다를 수 있습니다.
기존에는 커널에서는 DRAM을 제어할 일이 거의 없었으나, 요즘 모바일 기기용 커널에서는 동적으로 부하에따라 DRAM의 클럭을 변경하고 사용하지 않는 Bank의 전원을 절약하는 등등 많이 복잡해 지고 있습니다.