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

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

 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
번호 제목 글쓴이 날짜 조회 수
408 LM480KF01용 FPC 커넥터 & 스테레오잭 커넥터.. [2] just4you 2009-03-26 1185
407 GStreamer관련 질문드립니다. 정장석 2009-03-26 1304
406 카메라 I/F 신호 레벨 관련.. [4] just4you 2009-03-26 989
405 u-boot소스에서 pxa255용 PCMCIA카드를 사용할려면? [2] 한석준 2009-03-25 1057
404 VirtualBox로 부팅하면 "HostMemoryLow" 에러만 납니다.. [1] just4you 2009-03-25 1261
403 LCD Backlight용 LED Driver 선택 중에... [4] just4you 2009-03-24 984
402 카메라 모듈 업체좀 알려주세요.. [1] just4you 2009-03-24 890
401 mkimage 옵션 중 -O(os type 선택) 파라메터 설정 문제. [2] 한석준 2009-03-20 1333
400 scheduler에서 아래의 BUG message는 어떤 상황에서 발생하나요? [3] 이현배 2009-03-17 1157
399 ARM 프로세서와 Peripheral 디바이스연결시 GPIO설정 방법 문의 [2] 한석준 2009-03-16 1327
398 ARM에서 modified virtual address와 process id가 왜 필요할 까요... [3] 이종진 2009-03-16 1874
397 LAN91C111 칩 메뉴얼의 Reset 부분에 관한 문의 [3] 한석준 2009-03-14 1394
396 ARM 보드 구입을 생각하고 있습니다만... [2] 안병희 2009-03-12 1051
» U-boot상에서 Ping 테스트 에러(LAN91C111 이더넷 드라이브 사용) [2] 한석준 2009-03-11 2618
394 LAN91C111 이더넷 드라이버 핀과 GPIO 설정 문의 [4] 한석준 2009-03-10 1565
393 ssh와 serial terminal에서 busybox또는 signal등의 동작이 다른지요? [7] 이현배 2009-03-04 2236
392 cygwin을 사용하여 u-boot 컴파일 가능? [2] 한석준 2009-03-03 2648
391 driver install 관련 질문 [4] 최영진 2009-02-27 1126
390 로컬 스택 영역 수정 가능한가요? [6] 한석준 2009-02-26 1292
389 fpu가 들어있는 arm 은 어떤것이 있을까요? [4] 성진호 2009-02-26 1848

사용자 로그인