WIZnet Developer Forum

[W5100] register r/w 관련 문의

안녕하세요.
현재 S3C2440 MCU와 W5100이 탑재된 evaluation board에 u-boot를 porting하는 작업을 하고 있습니다.
u-boot에서는 w5100으로 작업된 code를 못찾아서, 대신 w5300으로 작업된 u-boot driver를 base로 하여 작업하고 있습니다.

MCU와는 현재 direct mode로 연결되어 있고요(base address 0x8000000).
이에 따라 memory timing을 설정하였습니다.

그런데 ip, gateway, subnet, mac 등의 값을 register에 기록할 때와 다시 읽을 때의 값이 다르게 나타나고 있습니다.

그래서 좀 더 살펴본 바로는, MR/RST를 통해 SW reset 하고 1sec 이상 delay후 common register 영역을 읽었을 때, 해당 register 들의 값이 아래와 같이 출력됩니다.

MR
[print_common_register] 08000000 - 00

GWR
[print_common_register] 08000001 - 20
[print_common_register] 08000002 - 20
[print_common_register] 08000003 - 20
[print_common_register] 08000004 - 20

SUBR
[print_common_register] 08000005 - 20
[print_common_register] 08000006 - 20
[print_common_register] 08000007 - 20
[print_common_register] 08000008 - 20

SHAR
[print_common_register] 08000009 - 20
[print_common_register] 0800000a - 20
[print_common_register] 0800000b - 20
[print_common_register] 0800000c - 20
[print_common_register] 0800000d - 20
[print_common_register] 0800000e - 20

SIPR
[print_common_register] 0800000f - 20
[print_common_register] 08000010 - 20
[print_common_register] 08000011 - 20
[print_common_register] 08000012 - 20

Reserved
[print_common_register] 08000013 - 20
[print_common_register] 08000014 - 20

IR
[print_common_register] 08000015 - 20

IMR
[print_common_register] 08000016 - 20

RTR
[print_common_register] 08000017 - 27
[print_common_register] 08000018 - F0

RCR
[print_common_register] 08000019 - 28

RMSR
[print_common_register] 0800001a - 75

TMSR
[print_common_register] 0800001b - 75

PATR
[print_common_register] 0800001c - 20
[print_common_register] 0800001d - 20

Reserved
[print_common_register] 0800001e - 20
[print_common_register] 0800001f - 20
[print_common_register] 08000020 - 20
[print_common_register] 08000021 - 20
[print_common_register] 08000022 - 20
[print_common_register] 08000023 - 20
[print_common_register] 08000024 - 20
[print_common_register] 08000025 - 20
[print_common_register] 08000026 - 20
[print_common_register] 08000027 - 20

PTIMER
[print_common_register] 08000028 - 28

PMAGIC
[print_common_register] 08000029 - 20

UIPR
[print_common_register] 0800002a - 20
[print_common_register] 0800002b - 20
[print_common_register] 0800002c - 20
[print_common_register] 0800002d - 20

UPORT
[print_common_register] 0800002e - 20
[print_common_register] 0800002f - 20

상기에 출력된 내용으로 보면, MR을 제외한 각 register 별로 reset value + 0x20 의 값이 출력되고 있습니다.
처음엔 MCU쪽의 memory controller에 설정한 timing이 의심되어 해당 설정값과 설정 후의 delay를 바꿔 보기도 했습니다만 뚜렷한 차이는 보이지 않았습니다.

상기의 현재 문제와 관련하여 추가로 검토할만한 사항이 있을지 guide 부탁 드립니다.

감사합니다.


안녕하세요

메모리 접근을 잘못하고 있는 것으로 보입니다.
다시한번 확인해보시기바랍니다.

reset pin 설정이 잘못 돼 있을 가능성도 있습니다.

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.