포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 20MB 입니다.

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에서 자동 해석하게 코드를 작성하면 됩니당....^^

그럼...

고도리

2012.01.30 00:34:35
*.127.19.87

위의 방법대로 구성된  my_ethaddr[i] 를 실제 device driver의 mac address가 세팅되는 부분에서 6바이트를 실제 디바이스의 mac으로 사용되는 배열에 넣어주시면 됩니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수

사용자 로그인