ioremap_nocache()에 대해 질문 드립니다.
글쓴이: lovejin0309 / 작성시간: 금, 2006/01/20 - 9:51오전
디바이스 드라이버를 제작하고 있습니다.
ADV 7171, 7183 비디오 인,디코더 디바이스입니다.
디바이스 드라이버를 열면 다음과 같은 크기의 버퍼를 등록해야 합니다.
out_buffer 1512000 * 4
out_buffer_1 1512000 * 4
out_buffer_2 1512000 * 4
uClinux에서 미완성인채로 제공하는 디바이스 드라이버에서는
kmalloc를 사용하여 버퍼 영역을 확보하려고 되어 있습니다. 하지만 kmalloc를 사용할 경우엔 128kb 까지 밖에 확보가 안 되기 때문에 문제가 있습니다.
이상한건, kmalloc를 사용하여 공간을 확보하면 에러 메세지 없이 사용 가능하다가 조금 지나면 다음과 같은 에러 메시지를 출력하면서 죽어 버리는 겁니다.
Data access misaligned address violation - Attempted misaligned data memory or data cache access. CCPLB_FAULT_ADDR=fffffffc
여기 저기 질문을 던져 보니까 ioremap_nocache() 함수를 사용하는 것이 좋다고 하는데 ioremap_nocache()를 어떻게 사용하는 것인지 알려 주세요.
그리고 혹시 제가 생각하고 있는 설계가 잘못된 것이라면 지적 부탁 드립니다.
Forums:
댓글 달기