안녕하세요.
보드를 가지고 공부를 하고 있는데 안되는 부분이 있어서 질문을 올리게 되었습니다.
제가 사용하는 보드는 S3C2416 보드입니다. 이솝 보드는 아닙니다ㅠ 하다가 막혔는데 질문할 곳이 없더라구요.
이 보드는 코어 보드 + 미니 보드로 이루어졌는데
그 중 미니 보드에 DM9000EP라는 이더넷 칩셋이 박혀 있습니다.
보통 전원을 넣으면 이더넷 포트(RJ45)가 꺼져있나요?
리눅스로 부팅이 되면 일단 꺼져 있기에 ifconfig eth0 xxx.xx.xxx.xx 해서 링크를 켭니다. 그 때 포트에 불도 들어오구요.
이걸 이제 U-boot에서 사용하고자 하는게 DM9000EP용으로 세팅이 안 되어있고
CS8900으로 되어있어서 제가 코드를 추가했습니다.
드라이버를 사용하게 만들고, 16bit 버스 쓰게 만들고..
스키매틱 자료도 좀 보고 nLan_CS2에 GPA15가 연결되어있고 또 그게 nRCS4라는데 연결 되어있다는걸 보고 디바이스 베이스 주소는 0x20000300으로 지정해 주었습니다. 이렇게 하면 data 주소가 0x20000304구요.
저 위치에서 디바이스 ID를 읽을 수 있어야 하는 것 같은데.... 근데 디바이스 ID를 못 읽어오네요.
리눅스로 부팅이 성공하여 cat /proc/iomem? 명령으로 매핑된거 보면 0x20000300과 0x20000308이 두개에 IO 주소가 가 있습니다. 이걸로 봐서는 저 주소가 맞는 것 같은데...
U-boot에서 사용하는 디바이스 드라이버 파일(drivers/net/dm9000.c, .h)이나 보드 세팅 파일(include/configs/smdk2416.h)에서 핀에 들어가는 값들을 고쳐 주어야 할 것 같은데..
혹시 이 문제에 익숙하신 분이나 낯선(?) 이더넷 칩셋 다뤄보신 경험 있으신 분들이 조금 도와주셨으면 합니다.
이 문제로 tftp를 못 사용하고 있거든요. 그동안 sd로 커널/루트 파일 시스템을 퓨징하고 있었는데 그 과정이 너무 번거로워서 U-boot 상에서 tftp 좀 써보려다가 고생중입니다.
감사합니다 T^T
u-boot를 구할 수 있으시면 구해서 사용하시고요. 아니면 제가 내일 맨정신이면 올려놓도록 하겠습니다.
하두 요즘 맨정신이 아니라서요...ㅠ.ㅠ