도와주세요!!
안녕하세요.
저는 유영창님의 디바이스 드라이버 책을 공부하고 있는 독자이구요.
여쭤보고싶은것이 있어서 글을 올립니다.
제가 리눅스 소스코드에서(커널 2.4) map_desc구조체 부분을 수정하였거든요. 다음과 같습니다.
{ 0xfff00000, 0x14000000, 0x0000ffff, DOMAIN_IO, 0, 1, 0, 0 }, //CS5 :Serial CS_A A16:L, A17:L, A18:0
{ 0xfff10000, 0x14010000, 0x0000ffff, DOMAIN_IO, 0, 1, 0, 0 }, //CS5 :Serial CS_A A16:L, A17:L, A18:0
{ 0xfff20000, 0x14020000, 0x0000ffff, DOMAIN_IO, 0, 1, 0, 0 }, //CS5 :Serial CS_A A16:L, A17:L, A18:0
{ 0xfff30000, 0x14030000, 0x0000ffff, DOMAIN_IO, 0, 1, 0, 0 }, //CS5 :Serial CS_A A16:L, A17:L, A18:0
CS5를 사용하기위해서 다음과 같이 연결을 하였는데요.
위의 처리는. 리눅스 디바이스 드라이버 단에서 ioremap함수의 기능과 동일하다고 알고 있습니다.
위의 환경에서 virt_to_phys(0xfff00000) 을 하면요. 0x14000000으로 매핑된 물리주소가 나올줄 알았는데요
그렇치않더라구요. 그 이유를 알고싶습니다.
아 그리구요. ioremap()함수와 request_mem_region() 함수와의 차이점또한 알고싶습니다.
읽어주셔서 감사합니다.