Subject: 1.0 ethernet weirdness
To: None <port-sparc@NetBSD.ORG>
From: der Mouse <mouse@Collatz.McRCIM.McGill.EDU>
List: port-sparc
Date: 04/20/1995 10:21:30
I recently installed a second ethernet on the sbus of the SPARC I've
been playing with NetBSD on.  At boot time the kernel reports, in part,

le0 at sbus0 slot 0 offset 0xc00000 pri 5: hardware address 08:00:20:10:44:eb
le1 at sbus0 slot 1 offset 0xc00000 pri 5: hardware address 08:00:20:10:44:eb

This looks fishy to me.  I thought that every ethernet interface by
definition had its own distinctive hardware address, different from
that of any other ethernet interface in existence.

The possibilities that occur to me:

1) Ethernet hardware addresses are not intended to be unique (seems
    extremely unlikely to me).

2) The sbus ethernet card has some funky mechanism to look at the
    built-in ethernet's hardware address, and changes its to match.

3) The card allows software to set its "hardware" address.  There are
    two subcases:
3a) The ROMs copied the hardware address from one into the other.
3b) NetBSD copied the hardware address from one into the other.

4) There's a bug in the le driver, and it's lying about at least one of
    the "hardware address"es.

Does anyone know?  My guess is that it's (3a).  And incidentally, does
anyone know how to fix it?  It won't cause grief in our intended
application, but it definitely seems broken to me, and I'd like to fix
it if it's not a great deal of work.

In case it matters, here are the rest of the boot-time messages.  (Once
I get it switched over to -current, I'll deal with the rogue disk.  By
the way, the ROM's "probe-scsi" command sees LUNs 0 and 1, but not 2-7,
on target 0.)  Kernel config file available on request.

NetBSD 1.0 (CALLISTO) #1: Tue Apr 18 16:34:09 EDT 1995
    mouse@Callisto.McRCIM.McGill.EDU:/sources/working-usr-src/sys/arch/sparc/compile/CALLISTO
real mem = 11993088
avail mem = 9728000
using 146 buffers containing 598016 bytes of memory
mainbus0 (root)
cpu0 at mainbus0: SUNW,Sun 4/40 (MB86900/1A or L64801 @ 25 MHz, WTL3170/2 FPU)
cpu0: 65536 byte write-through, 16 bytes/line, sw flush cache enabled
memreg0 at mainbus0 ioaddr 0xf4000000
clock0 at mainbus0 ioaddr 0xf2000000: mk48t02 (eeprom)
timer0 at mainbus0 ioaddr 0xf3000000
zs0 at mainbus0 ioaddr 0xf1000000 pri 12, softpri 6
zs1 at mainbus0 ioaddr 0xf0000000 pri 12, softpri 6
audio0 at mainbus0 ioaddr 0xf7201000 pri 13, softpri 4
auxreg0 at mainbus0 ioaddr 0xf7400003
sbus0 at mainbus0 ioaddr 0xf8000000: clock = 25 MHz
dma0 at sbus0 slot 0 offset 0x400000: rev 1
esp0 at sbus0 slot 0 offset 0x800000 pri 3: ESP100A, clock = 25 MHz, ID = 7
tg1 at esp0 target 0
sd1 at tg1 unit 0: type 0x0, qual 0x0, ver 0, 280840 512 byte blocks
sd1: <Toshiba MK 156F cyl 815 alt 2 hd 10 sec 34>
sd2 at tg1 unit 1: type 0x0, qual 0x0, ver 0: unable to determine drive capacity [sts=2]
[not matching `sd' at unit 2: not a disk]
unit 2 at tg1 not configured
[not matching `sd' at unit 3: not a disk]
unit 3 at tg1 not configured
[not matching `sd' at unit 4: not a disk]
unit 4 at tg1 not configured
[not matching `sd' at unit 5: not a disk]
unit 5 at tg1 not configured
[not matching `sd' at unit 6: not a disk]
unit 6 at tg1 not configured
[not matching `sd' at unit 7: not a disk]
unit 7 at tg1 not configured
tg0 at esp0 target 3
sd0 at tg0 unit 0: SEAGATE ST31200N 8630, 2061108 512 byte blocks
sd0: <SEAGATE ST31200N cyl 2434 alt 2 hd 9 sec 94>
le0 at sbus0 slot 0 offset 0xc00000 pri 5: hardware address 08:00:20:10:44:eb
le1 at sbus0 slot 1 offset 0xc00000 pri 5: hardware address 08:00:20:10:44:eb
bwtwo0 at sbus0 slot 3 offset 0x0: SUNW,501-1561, 1152 x 900 (console)
fd at mainbus0 ioaddr 0xf7200000 not configured
Found boot device sd0
init: copying out path `/sbin/init' 11

					der Mouse

			    mouse@collatz.mcrcim.mcgill.edu