On Fri, May 16, 2008 at 8:48 PM, Fredrik Tolf fredrik@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:
- 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.
- 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@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