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

안녕하세요~

오늘도 질문입니다. ㅠ.ㅜ

이솝보드는 CS8900의 IP,Gate Way, Subnet, MAC을 어떻게 관리하는지 알고 싶어서 질문올립니다.

현재 저는 파일에 기록해서  IP,Gate Way, Subnet 까지는 관리하는데
MAC이 문제네요~ 지금이야 샘플보드니까 하나하나 넣음 된다지만 나중에
많이 만들면 그때마다 MAC 때문에 부트로더와 커널을 보드 갯수만큼 컴파일 할 것 같다는..^^;

혹시 flash 안에 넣고 관리한다면 어떻게 하는지 방법론을 알고싶습니다.
flash의 일정부분에 기록하고 수정할 수 있게 하고 싶은데 제 실력으론 아직이네요^^;

그럼 도움 부탁드립니다.

고현철

2006.07.18 21:14:29
*.117.46.252

상용일 경우 MAC을 일단 사야합니다.
대략 100만개 단위론가 사서 썼던 기억이 나고요.

mac을 기록하는 방법은 보통 eeprom을 사용합니다만,
저는 소량 생산을 주로 해서 u-boot에서 mac을 기록하고
(이것에 대한 config옵션이 몇개 있습니다), 그것을 커널로
넘기는 방법을 사용하였습니다.

aesop용 command line argument를 보면 맨 끝에 ethaddr= 해서
넘겨주는게 있는게 그 부분을 처리할 수 있도록 커널의 cs8900 driver에서 손을 대주면 될겁니다.

aesop용 linux kernel 2.4.20을 보시면 그 부분이 나와있을텐데
아마도 소스가 여기에는 없을듯...^^

u-boot에서 원래는 mac을 못 바꾸도록 되어 있습니다만,
config옵션중에 한 줄을 더 써주면 한번 바꾸는게 가능하도록 되어
있습니다(README 읽어보시면 있을겁니다.)

어떤 옵션인지는 너무 오래되어서 pass...--; 하여간 ETHADDR이나
ETHERNET, MAC등으로 검색해 보면 될겁니다...

아니면 직접 u-boot 코드를 고쳐서 막 고쳐도 되도록 해도 되고요...^^

고현철

2006.07.18 21:21:12
*.117.46.252

1. u-boot에서는
CONFIG_OVERWRITE_ETHADDR_ONCE

를 지정해 주면 ethernet address가 한번 overwrite가 됩니다. 당연히 ethernet은 쓴다고 되어 있어야 하고요.

2. kernel의 driver에서는 이렇게 처리해주면 됩니다.

static unsigned char my_ethaddr[MAX_ADDR_LEN];
/* need to get the ether addr from armboot */
static int __init ethaddr_setup(char *line)
{
char *ep;
int i;

printk("ethaddr_setup()n");
memset(my_ethaddr, 0, MAX_ADDR_LEN);
/* there should really be routines to do this stuff */
for (i = 0; i < 6; i++)
{
my_ethaddr[i] = line ? simple_strtoul(line, &ep, 16) : 0;
if (line)
line = (*ep) ? ep+1 : ep;
printk("mac[%d] = 0x%02Xn", i, my_ethaddr[i]);

}
return 0;
}
__setup("ethaddr=", ethaddr_setup);

이 부분을 커널의 cs89x0.c에 삽입해 주신 후,

부트로더에서 넘겨주는 kernel command line argument를 이렇게 지정해 주면 됩니다.
setenv bootargs root=/dev/nfs rw nfsroot=172.16.1.253:/korea-dokdo/nfsmount/rootfs-aesop ip=172.16.1.100:172.16.1.253:172.16.1.1:255.255.255.0::eth0:off console=ttyS0 ethaddr=08:00:3e:26:0a:5b

여기의 맨 뒤에 있는 ethaddr=08:00:3e:26:0a:5b
이 cs8900에서 자동 해석하게 코드를 작성하면 됩니당....^^

그럼...

고현철

2006.07.18 21:21:39
*.117.46.252

2.6.13에는 적용 안해 놨습니다...귀찮아서....쩝

오주열

2006.07.18 21:30:13
*.123.193.26

^^ 항상 빠른 답변 주셔서 감사합니다. 참고해서 적용해보도록 하겠습니다. 감사합니다.
List of Articles
번호 제목 글쓴이 날짜sort 조회 수
6268 임베디드 처음 해보는 초보입니다. [4] 양용현 2006-06-27 1371
6267 serial gadget 이 안되네요... [6] 이율삼 2006-06-28 3138
6266 [질문] 부팅 과정중 CS8900A 인식 실패 메시지 <-완료 [6] 오주열 2006-06-29 1139
6265 mpeg-4 최종 specification 갖고 계신분 [3] 고현철 2006-07-04 1087
6264 [질문] /var/adm/messages 파일을 계속 쓰는데..<-완료 [3] 오주열 2006-07-05 992
6263 [질문] 부팅시 ping을 쏘면 이더넷이 동작을 안하네요 <-완료 [6] 오주열 2006-07-06 1140
6262 high speed aesop-jtag 의 2410버전이 있나요? [2] 박병구 2006-07-11 1005
6261 aesop보드에 붙일만한 지상파 dmb 칩 알고 계신분 고현철 2006-07-11 1186
6260 [re] 지상파 dmb 칩에 대하여 ... 현철님 보세요 .... [5] 장석원 2006-07-11 1710
6259 특정핀을 부트로더와 부팅시에 GPIO로 사용하게 하는법<--완료 [3] 오주열 2006-07-15 1240
6258 가입하자마자 질문을 드립니다.. ^^; [8] 강성곤 2006-07-18 1692
» CS8900의 IP,Gate Way, Subnet, MAC을 저장하는법<--완료 [4] 오주열 2006-07-18 1404
6256 [질문] NOR Flash의 erase 에 대해서...<--완료 [5] 김선엽 2006-07-20 1173
6255 이솝 3차보드에 LCD용 핀이 몇개나 나오나요?<--완료 [2] 오주열 2006-07-20 1070
6254 혹시 aesop 보드에 wince 포팅해보신분 계신가요?? <= 완료 [3] 안정섭 2006-07-24 1428
6253 와이브로의 경우 ... [3] 장석원 2006-07-25 907
6252 AESOP 3차 Board 일정이 어떻게 되나요? <== 완료 [2] 손진호 2006-07-25 1112
6251 [질문]회로 베껴서 보드 떴는데 JTAG로 부트로더 다운로드가 안됩니... [5] 양용현 2006-07-26 1358
6250 무선랜 ?? <==완료 [3] 윤현승 2006-07-28 1494
6249 [질문] 이솝보드의 telnetd 질문입니다. <== 완료 ^^ [4] 이재훈 2006-07-28 1129

사용자 로그인