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

안녕하세요.
cs8900a와 관련된 질문입니다.
움.. 이솝보드도 cs8900a를 이용하여 u-boot에서 이더넷을 사용하죠?
여기서 cs8900a를 연결하기 위해 세트 하는 코드 부분은 어디 부분인가요?
cs8900a를 제어 하는 간단한 펌웨어를 작성해보려고 하는데 잘 안됩니다.
u-boot의 driver 디렉토리에서 cs8900.c, cs8900.h을 참고 해서 보면
cs8900a의 패킷페이지 아키텍처에 따라 구현한 get_reg()나 put_reg() 함수를
사용하여 칩 내의 레지스터를 세팅하는 것을 알 수 있습니다.
그래서 그 함수들을 이용하여 값을 입력하고 넣어 보았지만 두가지 값만 얻을 수
있더군요. 바로 0x630e와 0x0300입니다.
get_reg나 put_reg() 함수는 내부에서 패킷페이지 포인터 레지스터에 인자로 받은
offset 값을 넣어서 칩 내의 다른 레지스터에 접근하도록 되어 있는데, 이때
패킷페이지 포인터 레지스터에 원하는 값이 들어가지가 않습니다. 만약 0을 집어
넣으면 0x3000이 들어가 있고, 그 외의 다른 값은 0x3101이라는 값이 들어가더군요.
0을 넣었을때의 결과는 확실히 맞는 것 같은데.. 다른 값은 왜 안들어가는지..
아마도 제가 보드의 환경을 설정할때 (GPIO 등..) 무엇인가 빠뜨려서 인것 같은데..
제 보드 같은 경우 cs8900이 0x19000300이 베이스 입니다. 즉 GCS3에 위치하는
데요. 이녀석은 gpa14에 물려 있더군요. 그래서 이 것을 연결하는 코드를 넣어봤습
니다. 하지만 안되요...ㅜ_ㅜ
그래서 혹시 하드웨어를 연결하기 위한 코드가 필요한지 궁금합니다. 혹시 다른
문제 때문인지도 궁금하고요.
고수님들 답변 부탁드립니다.

고현철

2006.05.15 20:14:39
*.117.46.252


include/configs/smdk2410.h 를 보면

#define CONFIG_DRIVER_CS8900 1 /* we have a CS8900 on-board */
#define CS8900_BASE 0x19000300
#define CS8900_BUS16 1 /* the Linux driver does accesses as shorts */

#define CONFIG_ETHADDR 08:00:3e:26:0a:5b

이거 네줄 define하면 동작합니다.

나머지는 코드쪽을 봐야지요.

그리고, timing쪽을 신경써야할겁니다.

임동관

2006.05.15 22:02:50
*.240.203.101

우와.. 정말 빠른 답변이네요. 여태 속만 태웠는데, 감사합니다.
제 상황을 좀더 설명 드리겠습니다.
u-boot를 사용하는게 아니고요. 그냥 u-boot에서 필요하다고 생각하는 부분에 대해 편집해서 간단한 부트로더를 만들었습니다. 그리고 cs8900를 사용하기 위해 CS8900_BASE 같은 부분은 선언해두었습니다. 우선 시험해본 것은 CS8900 내의 레지스터 읽기 쓰기 입니다.

-------- cs8900.h -------------------------------------------
.................
#define CS8900_BASE 0x19000300
.................

-------- cs8900.c -------------------------------------------
51 int cs8900_hw_init()
52 {
53 uart_puts("cs8900 hardware init..n");
54 // initialize CS8900
55 rBWSCON = (rBWSCON&~(0xf<<12))|(0xd<<12); /* nWAIT */ /* 16비트 모드로 동작하게 함. SHBE */
56
57 // rGSTATUS0; /* Read Only */
58 // rGPACON = 0x007fffff; /* look up uncomress.h */
59 }

61 int cs8900_init()
62 {
63 uart_puts("cs8900 init is started..n");
64 cs8900_hw_init();
65
66 uart_puts("ChipID : ");
67 uart_puthexnl(get_reg(PP_ChipID));
68
69 uart_puts("LineCTL : ");
70 uart_puthexnl(get_reg(PP_LineCTL));
71
72 uart_puts("Change LineCTL value : put_reg(PP_LineCTL, PP_LineCTL_Rx | PP_LineCTL_Tx)n");
73 put_reg(PP_LineCTL, PP_LineCTL_Rx | PP_LineCTL_Tx);
74
75 uart_puts("LineCTL : ");
76 uart_puthexnl(get_reg(PP_LineCTL));
77
78 }

그리고 cs8900_init() 호출 후의 결과는 다음과 같습니다.

cs8900 init is started..
cs8900 hardware init..
ChipID : 0x0000630e
LineCTL : 0x00000300
Change LineCTL value : put_reg(PP_LineCTL, PP_LineCTL_Rx | PP_LineCTL_Tx)
LineCTL : 0x00000300

음.. 전체 소스를 다올리고 싶은데 파일 올리는 부분이 없어서 올리지 못했습니다.
전부 보여드리면 좋겠는데..

아, 그리고 timing 쪽이라면 memset.S의 다음 부분을 말하는 것 아닌가요?
#define vBANKCON3 ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC))

임동관

2006.05.15 22:05:56
*.240.203.101

헛.. 파일도 올릴 수 있었군요. 소스 파일 첨부했습니다. 봐주세요..ㅜ_ㅜ

고현철

2006.05.15 22:28:55
*.117.46.252

예....bank timing 설정이 잘 못 되어 있으면 동작하지 않습니다.

고현철

2006.05.15 23:11:11
*.117.46.252

자료실에 cs8900 날림분석을 올려놨습니다.

코드를 봤는데, 제 생각에는 cs8900 reset등의 초기화 루틴이 없는 듯 보여지네요.

분석코드를 보면서 좀 더 테스트해보시기 바랍니다.

임동관

2006.05.15 23:44:18
*.240.203.101

네, 답변 감사합니다.
테스트 해보고 되는 데로 "--> [완료]" 표시 띠우겠습니다.

임동관

2006.05.24 02:23:18
*.240.203.101

음.. 해결 했습니다. 컴파일 시에 다음 옵션을 추가했습니다.
-march=armv4
제가 쓰는 보드가 armv4 이기 때문에 추가 해야 하는 것 같습니다.
List of Articles
번호 제목 글쓴이 날짜sort 조회 수
6308 현철님의 Root Filesystem 질문이요~ <= 완료 [8] 안정섭 2006-05-10 1415
6307 아직도 비디오 디코딩으로 해매고 있습니다. <--완료 [2] 박영학 2006-05-10 1154
6306 SD Card속도 문제 [5] 정창환 2006-05-10 1799
6305 [질문] Nand Flash 128MB에 관련해서. [3] 이재훈 2006-05-11 1165
6304 H.264의 CAVLC 구현방법에 대한 자료를 구합니다. [1] 장석원 2006-05-14 1243
6303 ffplay에 libmad 붙이기 방법 또 질문[완료] [2] 오용석 2006-05-14 1346
6302 SD 카드 인식 문제.[미해결] [3] 오용석 2006-05-15 1158
» 이솝보드 u-boot의 cs8900과 관련한 port 세팅에 관한 질문..--> ... [7] 임동관 2006-05-15 1444
6300 커널 소스에 있는 드라이버에 대해서...<--완료 [1] 박현진 2006-05-16 5189
6299 Qtopia 2.1.1 ARM용으로 컴파일시 에러...ㅡ.ㅡ; <--[완료] [5] 이용휴 2006-05-18 1188
6298 올리신 Toolchain 으로 busybox 가 컴파일이 안돼네요. [5] 임현 2006-05-18 1200
6297 ffplay sync 문제[미해결] [1] 오용석 2006-05-20 1087
6296 QT문서 정리하면서 테스트하고있는데 또 안되는..ㅡ.ㅡ;이에러 좀 봐... [4] 이용휴 2006-05-23 1194
6295 보드를 서버로 돌리려면..?<==ㄹ완료 [6] 윤현승 2006-05-25 1189
6294 커널컴파일중 오류입니다. -> 완료 [6] 서연석 2006-05-25 1052
6293 nand 제어부에 있는 NCON 핀 질문. < 완료. 한지훈 2006-05-26 1347
6292 [re] nand 제어부에 있는 NCON 핀 질문. [1] 고현철 2006-05-26 1409
6291 2440이 PLL을 세팅 못하고 죽어버리네요.. <<== 완료 [2] 양재석 2006-05-26 1050
6290 무선랜 올리신적 있지 않은가염..? <==완료 [1] 윤현승 2006-05-27 1046
6289 노트북에 사용할 USB to Parallel 포트 추천요 [2] 조준동 2006-05-27 1259

사용자 로그인