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

안녕하세요~

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

이솝보드는 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 조회 수

사용자 로그인