기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
6410을 이용해서 보드를 개발하고 있는 중입니다.
커널은 오태호님이 올려주신 커널을 베이스로 수정하고 있는데요..
(http://www.aesop.or.kr/?document_srl=74498)
커널에서 따로 수정한것은 없고 DM9000 랜칩만 인식 시켜서 NFS로 연결하여 개발하고 있습니다.
USB D+/D-는 USB HUB칩에 연결되어 있고,
OTG D+/D-는 바로 USB 케이블(일반적으로 볼수 있는 4PIN큰놈)에 연결 되어있습니다
OTG ID는 그라운드에 붙여서 언제나 HOST로만 이니셜 하도록 했구요.
DEVICE로는 동작시킬 일이 없어서, OTG VBUS를 사용하지 않고 5V에 연결했습니다.
USB HOST 드라이버는 "OHCI HCD Support", "S3C OTG Host Support"두가지 체크 했습니다.
커널 부팅하면 이니셜이나 그런 부분은 문제 없이 진행 되는것 같은데요...
OHCI는 USB BUS 1, OTG HCD는 USB BUS 2로 인식 되고 있습니다.
문제는 장치를 꽂았을때인데요 ...
USB HUB쪽 포트에 장치를 꽂으면 Device s3c2410-OHCI, USB BUS 1, PORT 1로 인식되어 정상적으로 마운트 됩니다.
그런데 OTG쪽 커넥터에 장치를 꽂으면 Device s3c2410-OHCI, USB BUS1, PORT 2로 인식되면서 -62를 뱉고 인식이 안됩니다;;
port 2, status 0101, change 0001, 12 Mb/s
s3c2410-ohci
usb 1-2: new full speed USB device using s3c2410-ohci and address 3
usb 1-2: device descriptor read/64, error -62
usb 1-2: device descriptor read/64, error -62
디버그 메시지를 따라가보면, OTG에 꽂았을때 OTG Interrupt(90)가 뜨는게 아니라, USB Host Interrupt(79)가 뜨고 있더군요..
아무래도 레지스터 설정이 잘못 된거 같아서 덤프해서 데이터 시트 확인 해봤는데, 레지스터 설정은 별 문제를 모르겠네요;
s3c6410_otg_drv_probe함수가 완료된 후의 OTG 레지스터 덤프 내용 입니다.
Register Value Dump F7A00000 - 4 elements
ADDR F7A00000 : 00000000
ADDR F7A00004 : 00000020
ADDR F7A00008 : 00000000
ADDR F7A0000C : 00000000
Register Value Dump F7900000 - 11 elements
ADDR F7900000 : 00100000
ADDR F7900004 : 00000000
ADDR F7900008 : 00000023
ADDR F790000C : 0000170F
ADDR F7900010 : 80000000
ADDR F7900014 : 04000021
ADDR F7900018 : 3100000A
ADDR F790001C : 4B9BE804
ADDR F7900020 : 4B9BE804
ADDR F7900024 : 0000010D
ADDR F7900028 : 0080010D
Register Value Dump F7900400 - 6 elements
ADDR F7900400 : 00000000
ADDR F7900404 : 0000EA60
ADDR F7900408 : EA603FFF
ADDR F790040C : 00000000
ADDR F7900410 : 00080100
ADDR F7900414 : 00000000
Register Value Dump F7900440 - 1 elements
ADDR F7900440 : 00000000
Register Value Dump F7900000 - 11 elements
ADDR F7900000 : 00100000
ADDR F7900004 : 00000000
ADDR F7900008 : 00000023
ADDR F790000C : 0000170F
ADDR F7900010 : 80000000
ADDR F7900014 : 04000021
ADDR F7900018 : 3100000A
ADDR F790001C : 4B9BE804
ADDR F7900020 : 4B9BE804
ADDR F7900024 : 0000010D
ADDR F7900028 : 0080010D
임베디드쪽은 처음이라 여기서 더이상 진척이 없네요;
OTG HOST 성공 하신분들 조언 부탁드립니다.
저도 OTG Host는 사용해 본적은 없지만, 예전에 보니 OTG Host를 살리면 USB OHCI Host 쪽 디바이스
드라이버가 비활성화가 되었던 기억이 납니다. (어느 커널 버전인지는 모르나...ㅡㅡ;;;)
그래서 생기는 문제가 아닌지? 혹시 참고해보시기 바랍니다. ^^