Interesting. How do you differentiate the different Indigo R3K versions in the kernel?
Do you think the firmware version might also have a play in this?
Think simple.
https://nxr.netbsd.org/xref/src/sys/arch/sgimips/hpc/if_sq.c#266
Add routine.
----------------------------------------------------------------------------
/* Get MAC address */
memcpy(sc->sc_enaddr, &haa->hpc_eeprom[SQ_HPC_EEPROM_ENADDR],
ETHER_ADDR_LEN);
#define SQ_HPC_EEPROM_ENADDR_R3K 122
/*
* Indigo R3K(early lot) to store MAC address at hpc_eeprom[122] -
hpc_eeprom[127].
*/
/* If Indigo R3K machine */
if (mach_type == MACH_SGI_IP12) {
/* If MAC address is strange */
if (sc->sc_enaddr[0] != SGI_OUI_0 ||
sc->sc_enaddr[1] != SGI_OUI_1 ||
sc->sc_enaddr[2] != SGI_OUI_2) {
/* Get MAC address on Indigo R3K(early lot) */
memcpy(sc->sc_enaddr, &haa->hpc_eeprom[SQ_HPC_EEPROM_ENADDR_R3K],
ETHER_ADDR_LEN);
}
}
----------------------------------------------------------------------------
It will work fine!