기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요. 요즘 질문만 계속해서 죄송하네요..
아는게 없어서 아직은 배우고만 있습니다. 조그만 도움이라도 부탁드립니다.

 U-BOOT에 LAN91C111 이더넷 드라이버를 추가하여 PXA255 보드에서 동작시킬려고 합니다.

진행사항
1.  includ/configs/pxa_test.h (u-boot 소스 트리) 헤어 파일 추가사항
=========================================================================
#define CONFIG_DRIVER_SMC91111       1
#define CONFIG_SMC91111_BASE          0x04000300 ( MSC1 address는 0x4000000 임 )
#define CONFIG_SMC_USE_32_BIT         1
#define CONFIG_CMD_PING                       1
=========================================================================

2. GPIO 설정( LAN91C111 관련)
=========================================================================
AEN   <-->  GPIO_15/nCS1_ETH
nRD   <-->  nOE
nWR   <-->  GPIO_49/nPWE
RESET <-->  GPIO_5/ETH_RESET
=> 아래와 같이 설정 하였습니다.
AEN : GPDR(OUT설정) , GPCR(LOW로 출력),GAFR(설정해줌)
nWR : GPDR(OUT설정), GPSR(HIGH로 출력), GAFR(설정해줌)
RESET : GPDR(OUT설정) , GPSR(HIGH로 출력) 로 했다가 GPCR(LOW로 출력)으로 해줌.
=========================================================================



3. printenv 라고 치면 아래와 같이 설정되어 있구요
=========================================================================
bootargs=root=/dev/mtdblock2 rootfstype=cramfs console=ttyS0,115200
bootcmd=bootm=0x100000
bootdelay=2
baudrate=115200
ipaddr=192.168.100.10
serverip=192.168.100.50
netmask=255.255.255.0
ethaddr=08:00:3e:26:0a:5b
stdin=serial
stdout=serial
stderr=serial

Environment size: 254/16380 bytes
=========================================================================

4.  이렇게 해주고 "ping 192.168.100.50" 이렇게 ping test를 하였는데 아래와 같이 에러가 납니다.
=========================================================================
testlinux$ ping 192.168.100.50
SMC91111: smc_close
LAN91C111: smc_shutdown
SMC91111: smc_open
SMC91111: smc_reset
SMC91111: smc_enable
SMC91111: smc_program_phy()
smc_write_phy_register(): phyaddr=0,phyreg=0,phydata=8000
BIT#:01234567890123456789012345678901234567890123456789012345678901234
MDOE:11111111111111111111111111111111111111111111110011111111111111110
MDO :11111111111111111111111111111111010100000000000010000000000000000
MDI :00000000000000000000000000000000000000000000000000000000000000000
smc_read_phy_register(): phyaddr=0,phyreg=0,phydata=0
BIT#:0123456789012345678901234567890123456789012345678901234567890123
MDOE:1111111111111111111111111111111111111111111111000000000000000000
MDO :1111111111111111111111111111111101100000000000000000000000000000
MDI :0000000000000000000000000000000000000000000000000000000000000000
smc_write_phy_register(): phyaddr=0,phyreg=13,phydata=ffff
BIT#:01234567890123456789012345678901234567890123456789012345678901234
MDOE:11111111111111111111111111111111111111111111110011111111111111110
MDO :11111111111111111111111111111111010100000100110011111111111111110
MDI :00000000000000000000000000000000000000000000000000000000000000000
smc_read_phy_register(): phyaddr=0,phyreg=1,phydata=0
BIT#:0123456789012345678901234567890123456789012345678901234567890123
MDOE:1111111111111111111111111111111111111111111111000000000000000000
MDO :1111111111111111111111111111111101100000000001000000000000000000
MDI :0000000000000000000000000000000000000000000000000000000000000000

==================== 중략 ====================
smc_read_phy_register(): phyaddr=0,phyreg=1,phydata=0
BIT#:0123456789012345678901234567890123456789012345678901234567890123
MDOE:1111111111111111111111111111111111111111111111000000000000000000
MDO :1111111111111111111111111111111101100000000001000000000000000000
MDI :0000000000000000000000000000000000000000000000000000000000000000
SMC91111: PHY auto-negotiate timed out

Warning: MAC addresses don't match:
        HW MAC address:  50:00:01:00:50:3A
        "ethaddr" value: 08:00:3E:26:0A:5B
Using MAC Address 08:00:3E:26:0A:5B
SMC91111: smc_hardware_send_packet
SMC91111: memory allocation, try 1 failed ...
SMC91111: memory allocation, try 2 failed ...
SMC91111: memory allocation, try 3 failed ...
SMC91111: memory allocation, try 4 failed ...
SMC91111: memory allocation, try 5 failed ...
SMC91111: smc_rcv
RCV: STATUS    a LENGTH    0
 Reading 16383 dwords (and 0 bytes)

=========================================================================

위의 빨간 에러 내용을 소스를 찾아봐도 잘 모르겠네요.
도움좀 부탁드립니다. 

아~ 추가로 질문 하나만 더 드릴게요. 염치없네요..
Host PC 즉 윈도우 XP상에서 tftp 서버 프로그램을 구동시켰습니다.
이때 시작->설정->네트워크 연결에서 해당 이더넷 카드의 tcp/ip 속성에서 Serverip와 넷마스크를 설정하였는데요 gateway는
설정을 꼭 해야되나요? 아니면 안해도 되는지요?

이상입니다. 좋은 하루되세요.


profile

김재훈

2009.03.12 01:54:36
*.162.60.144

Warning: MAC addresses don't match:
        HW MAC address:  50:00:01:00:50:3A
        "ethaddr" value: 08:00:3E:26:0A:5B
Using MAC Address 08:00:3E:26:0A:5B
=> 일단, SMSC91111의 드라이버에서 MAC ADDRESS가 저장되어 있는 ROM이 있는 지를 검사합니다.
    만약 ROM이 붙어있지 않을 경우는 0 이 리턴되기 떄문에, 저런 메시지는 나오지가 않습니다.
    (해당 부분의 rom_valid() 함수 참조)
    하지만, 회로상에서는 ROM이 붙어있지 않은데,  HW MAC Address 값이 나왔네요..
    뭔가 하드웨어 혹은 S/W 적으로 설정이 잘 못된 것 같습니다. 원래는 "0"이 나와야 정상이거든요..
SMC91111: smc_hardware_send_packet
SMC91111: memory allocation, try 1 failed ...
SMC91111: memory allocation, try 2 failed ...
SMC91111: memory allocation, try 3 failed ...
SMC91111: memory allocation, try 4 failed ...
SMC91111: memory allocation, try 5 failed ...
=> SMSC91111은 패킷을 전송하기전에 내부 FIFO Memory를 초기화 한 후 전송을 수행 합니다.
     물론 FIFO Memory가 초기화가 되었는지를 검사하겠죠. 저 메시지는 초기화 검사가 계속 실패했기 때문에 메시지가 나오는 것입니다.
     윗 부분에서 MAC 관련 데이터도 제대로 못 뽑아내는 것 같으니, 이 부분도 에러가 나는 것은 당연한 것 같습니다.

     저라면 일단 디버깅 장비로 Chip 데이터 시트 보시면서, 하나씩 레지스터를 때려보시면서 값이 Valid 한지 찾아 볼 것 같습니다.
     그러면서 H/W 문제인지 아닌지를 우선 판단하고 짚고 넘어갈 것 같습니다. :)

그리고, TFTP의 경우 게이트웨이는 따로 설정하지 않아도 잘 동작하였던 것 같습니다.

한석준

2009.03.12 04:10:42
*.110.91.31

답변 감사드립니다.
ROM이 있는거 같은데 한번더 확인해 보겠습니다.
메모리 할당 FAIL은 내부 FIFO 메모리 초기화와 관련이 되있군요.. 머리속에서 이런게 구상이 아직은 안되네요.
chip 스펙좀 더 보겠습니다.

제가 가장 큰문제가 h/w 디버깅입니다. h/w는 전혀 몰라서 어떻게 회로도를 보고 스코프를 찍어서 확인하는지조차도 잘 모릅니다.
그래도 넘어야 할 산이니 어떻게든 공부해야겠네요.

그리고 안드로이드 포팅하신것도 축하드립니다.

그럼 좋은 하루되세요..
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
6128 aESOP 가지고놀기 라는 PDF 자료중 yaffs 관련 문의 입니다.-&gt... [1] 공경준 2006-08-28 2685
6127 [질문] LX800 보드 부품수급 관련 질문` [2] 박명대 2007-11-03 2675
6126 [질문]RTC 오차 관련해서 질문 드립니다. [3] 백승준 2008-06-10 2674
6125 YAFFS2 마운트는 되는데 파일쓰기 에러... [1] 공정표 2009-08-03 2673
6124 터치 스크린.. [3] 이재철 2006-09-16 2667
6123 mf2530f의 연산 성능은 s3c2440a에 비해서 어떠한가요? [3] 성진호 2007-10-24 2664
6122 안드로이드 디바이스 드라이버 [1] jacket 2010-01-13 2653
6121 log 출력에 관해서. [3] 권윤택 2009-07-15 2652
6120 cygwin을 사용하여 u-boot 컴파일 가능? [2] 한석준 2009-03-03 2648
6119 안드로이드 overlay 서정민 2009-06-09 2642
6118 NAND 변경시 나온 문제 (OverWrite 문제) [2] cshqq 2013-12-09 2634
6117 XPe용 VGA 비디오 드라이버를 구할곳이 있나요 [3] 정인수 2007-05-30 2634
6116 [질문]LCD 백라이트 하드웨어적으로 ON 시키는 방범좀...(완료) [6] 안문기 2007-05-14 2630
6115 Android Kernel 2.6.29로 업데이트 방법? [1] 김태준 2009-05-15 2628
6114 mkyaffsimage 질문입니다...[완료] [4] 이홍석 2006-05-07 2624
6113 Android kernel 2.6.28 재업 smdk6410 커널용 [2] 최종환 2009-04-09 2622
6112 화면잔상 해결법? [1] 이동술 2007-05-14 2621
6111 Android 동작시 mtd부분에서 uevent관련 하여 죽어 버립니다. [3] 최종환 2009-03-26 2614
» U-boot상에서 Ping 테스트 에러(LAN91C111 이더넷 드라이브 사용) [2] 한석준 2009-03-11 2612
6109 tftp 파일 수신 시 timeout 이 발생 [8] blue0sky 2012-08-23 2608

사용자 로그인