기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
S5PV210에서 Kernel-2.6.32(안드로이드커널) 버전을 사용하고 있습니다.
FPGA를 연결해서 FPGA을 제어하는 char 디바이스 드라이버를 만들었습니다.
FPGA의 물리 Memory 영역이 0x9800_0000 이고 읽고 사용할 어드레스는
0x9800_0000 ~ 0x9830_0000 까지 사용해야 합니다.
문제는 다음과 같습니다.
ioremap 을 사용해서 할당을 받았지만 0x2000 사이즈씩 같은 값이 read 되는 현상이 발생합니다.
즉 할당 받은 Address가 0x0 이라면
Address: 0x0 Data : 0x1F42
.....
....
....
Address: 0x2000 Data : 0x1F42
.....
.....
Address :0x4000 Data : 0x1F42
..
이렇게 0x2000 사이즈를 주기로 같은 값이 읽혀 지고 있습니다.
그래서 User Application에서 /dev/mem을 통해서 물리주소를 유저영역으로 맵핑하고
read를 하면 위와 같은 증상이 없이 정상으로 FPGA를 제어할 수 있습니다.
혹시 위와 같은 문제를 겪으신 분이 있으시면 답변 부탁드리겠습니다.
감사합니다.
ioremap 할 때 어떤 옵션을 주셨나요?