1. I didn't see that 0xA8 in the device config space was for the MAC address. It
doesn't show it in the register spec I received. I'll give it a try when I get a
chance. I only saw that offset 0xA8 in the MMIO space was for it.
2. Taking a closer look at it, I do like it. Maybe just change the if(!eeprom_valid)
part to read from the ROMSTRAP the way I had it. The reason I like my way of reading the
ROMSTRAPs MAC is because you have it at a fixed address. But the ROMSTRAP could actually
be used to setup lots and lots of device registers, if chosen to do so. Thus pushing that
// read directly from rom_strap
mac_pos = read8(0xffffffe0); // refer to romstrap.inc
mac_pos |= (read8(0xffffffe1)<<8);
mac_pos |= (read8(0xffffffe2)<<16);
mac_pos |= (read8(0xffffffe3)<<24);
mac_pos += 0x30;
for ( dword = nic_index ; dword > 0 ; dword-- )
mac_pos += 8;
mac_l = read32(mac_pos);
mac_h = read32(mac_pos + 4);
Sorry I didn't look at it more closely.
3. yeah, I saw that. I was just using something familiar. Thanks.
Show replies by thread
1. In NV NDA doc.
2. That is trick, in romstrap.inc, rspointers must be 0xffffffe0, So
just put MAC below that in 16bytes, and it can be fixed. actually it
is not some kind of part romstrap, just want to make it in fixed
positon. Fixed position is better than floating..., it may make your
flash util more easier to find it.
.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
.long rstables // It will be 0xffffffe0