하드웨어
U-boot포팅 네번째 시간 입니다.
이번 시간에는 이더넷 포팅에 대해 다뤄 볼까 합니다.
smdk6410과 달리 Ez-s3c6410 보드는 ax88796b 이더넷 칩을 사용합니다.
U-boot는 여러가지 이더넷 칩을 지원하는데요. 요놈 ax88796b는 없더군요….ㅠ.ㅠ
ax88796이란 놈이 있긴한데 아쉽게도 ax88796b와는 다른 칩입니다.
어떻게 포팅을 해야 될지 난감하던 차에 이더넷 칩제조사(Asix)에서
AX88796B Linux
u-boot Driver Source For SMDK2440
platform 을 지원 하더군요….ㅎㅎㅎ
로그인을 하고 압축 파일을 다운 받아 보니 아래와 같았습니다.
이 파일들을 참고해서
6410에 맞게 추가 해주면 되겠죠?
먼저 Ax88796b.c 파일과 Ax88796b.h \drivers\net 디렉토리에 복사 합니다.
이더넷
설정 부분을 추가 해줘야겠죠?
일단 ez-board 회로도를 열어 이더넷 부분을 살펴보니 아래와 같았습니다.
이더넷 CS#가 6410 CS1번 핀에 연결되어 있는걸 볼수 있습니다.
CS1번핀은 어떻게 제어해야 될까요? 6410메뉴얼을 살짝 열어봄니다.
매뉴얼상에
보니 SROMC Bank1 이라고 되어 있는 부분이 CS#1입니다
어드레스
영역은 0x1800000~0x1fffffff 까지라고 되어있군요~~!!
\u-boot.6410\include\configs 에 ez6410.h 파일을 수정 해줍니다.
\u-boot.6410\net 에 eth.c 파일을 수정합니다.
AX88796B Linux u-boot Driver Source 상에는 없지만 추가 해줘야 할 부분이 또 있습니다.
\board\ez6410 폴더에 ez6410.c 파일을 열어 수정합니다.
위에 추가해준
부분은 ez-board에 맞춘 이더넷 설정 부분입니다.
6410매뉴얼을 참고로 설명하자면 SROM_BW_REG는 SROM BUS폭 & Wait 컨트롤 레지스터입니다.
SROM_BC1_REG 은 SROM bank 컨트롤 레지스터 입니다.
이제 셋팅은
얼추 끝난 것 같군요….빌드 해보겠습니다.
이것저것
원인을 찾다보니 분명 ax88796b.c파일안에 존재하는 함수인데 컴파일러가 인식을 못하네요
한동안
삽질좀 했습니다….결론은 요 부분을 주석 처리해서 급한데로 해결은 했습니다.
\drivers\net 에 ax88796b.c 파일을 열어 아래 부분을 주석 처리 해줍니다.
다행히 컴파일은 잘되는군요….
과연 보드에서도
잘 동작할까요? 결과는 다음시간에 테스트 해보겠습니다.
to be continue….
- 이미지 76.jpg (35.7KB)(95)
- 이미지 77.jpg (15.4KB)(111)
- 이미지 78.jpg (7.2KB)(95)
- 이미지 80.jpg (78.2KB)(127)
- 이미지 81.jpg (100.8KB)(95)
- 이미지 79.jpg (207.6KB)(141)
- 이미지 91.jpg (243.6KB)(107)
- 이미지 92.jpg (34.7KB)(90)
- 이미지 93.jpg (50.0KB)(98)
- 이미지 88.jpg (221.3KB)(110)
- 이미지 89.jpg (94.0KB)(98)
- 이미지 90.jpg (22.1KB)(83)
- 이미지 82.jpg (44.5KB)(99)
- 이미지 84.jpg (197.6KB)(96)
- 이미지 85.jpg (125.9KB)(112)
- 이미지 86.jpg (165.6KB)(126)
- 이미지 87.jpg (114.3KB)(108)
- 이미지 94.jpg (19.3KB)(86)
- 이미지 95.jpg (46.8KB)(94)
- 이미지 97.jpg (53.5KB)(110)
- 이미지 98.jpg (28.6KB)(106)
- 이미지 99.jpg (27.9KB)(106)