[coreboot] Gigabyte M57SLI-S4 MAC address

yhlu yinghailu at gmail.com
Sat May 17 08:26:48 CEST 2008


On Fri, May 16, 2008 at 8:48 PM, Fredrik Tolf <fredrik at dolda2000.com> wrote:
> Hi list!
>
> This mail is justa noteworthy observation I've made. I've got two
> separate M57SLI-S4 motherboards on which I've installed Coreboot, and
> I've noticed an interesting thing with the onboard Ethernet chip. It
> seems it contains one MAC address in hardware, which is changed by the
> factory-shipped BIOS during boot. The hardwired address begins with
> 00-E0-81, which seems to be registered to Tyan[1], and the address which
> it is replaced with begins with 00-1D-7D, which seems to be registered
> to Gigabyte. This is noteworthy for two reasons:
>
> 1. It confused me a lot at first. Since udev assigns a new interface
> name for every MAC address it discovers, it made my DHCP client fail
> since it couldn't find the interface it was configured for, so at first
> I thought that Coreboot couldn't initialize the NIC. I got past that
> pretty quickly, though.
>
> 2. More importantly, the hardwired address is actually the same for both
> motherboards! More precisely, it is 00-E0-81-54-32-66. Thus, running
> several of these board on the same physical link is a bad idea if one
> does not change the address manually.
>
> I don't know if anything should (or can) be done about this in Coreboot.
> I just thought I'd mention it.

current the MAC is in fixed postion in ROM

romstrap.inc

/*
 * Copyright 2004 Tyan Computer
 *  by yhlu at tyan.com
 */
        .section ".romstrap", "a", @progbits


        .globl __romstrap_start
__romstrap_start:
rstables:
        .long 0x2b16d065
        .long 0x0
        .long 0x0
        .long linkedlist

linkedlist:
        .long 0x0003001C                        // 10h
        .long 0x08000000                        // 14h
        .long 0x00000000                        // 18h
        .long 0xFFFFFFFF                        // 1Ch

        .long 0xFFFFFFFF                        // 20h
        .long 0xFFFFFFFF                        // 24h
        .long 0xFFFFFFFF                        // 28h
        .long 0xFFFFFFFF                        // 2Ch

        .long 0x81543266                        // 30h, MAC address
low 4 byte ---> keep it in 0xffffffd0
        .long 0x000000E0                        // 34h, MAC address high 4 byte

        .long 0x002309CE                        // 38h, UUID low 4 byte
        .long 0x00E08100                        // 3Ch, UUID high 4 byte

rspointers:
        .long rstables                          // It will be 0xffffffe0
        .long rstables
        .long rstables
        .long rstables

        .globl __romstrap_end

__romstrap_end:
.previous


MB should have one label....for MAC
so next time you should have read from rom to cat one new rom before flashrom.

or good HW design is having seperate serial EEPROM to store MAC, and
BIOS will read that from smbus to write the NIC...
like s2895... the code is there in MB Config.lb, and ck804_nic.c or mcp55_nic.c

YH




More information about the coreboot mailing list