Subject: port-amiga/2117: new ethernet hardware addresses for if_ae.c
To: None <gnats-bugs@NetBSD.ORG>
From: Matthias Scheler <tron@colwyn.owl.de>
List: netbsd-bugs
Date: 02/23/1996 19:33:06
>Number:         2117
>Category:       port-amiga
>Synopsis:       new ethernet hardware addresses for if_ae.c
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    gnats-admin (GNATS administrator)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Feb 23 14:20:01 1996
>Last-Modified:
>Originator:     Matthias Scheler
>Organization:
Matthias Scheler
tron@colwyn.owl.de
>Release:        960222
>Environment:
System: NetBSD lyssa 1.1 NetBSD 1.1 (LYSSA) #10: Fri Feb 23 18:27:04 GMT 1996     tron@lyssa:/usr/src/sys/arch/amiga/compile/LYSSA amiga

>Description:
When the Ariadne ethernet board was release the manufacturer VillageTronic
didn't have its own address space for the hardware addresses and used a
part of Commodore's space. Meanwhile they have one and use it in version
1.39 of their Sana II device. Because NetBSD's "ae" interface still uses
the old numbering scheme you always get an error message if you switch
between AmigaOS and NetBSD.

>How-To-Repeat:
Boot AmigaOS, ping another host on the net, boot NetBSD, ping it again and
the other host will complain about an overwritten arp info.

>Fix:
*** src/sys/arch/amiga/dev/if_ae.c.orig	Sun Dec 24 13:22:44 1995
--- src/sys/arch/amiga/dev/if_ae.c	Fri Feb 23 18:20:42 1996
*************** aeattach(parent, self, aux)
*** 206,221 ****
  	 * Manufacturer decides the 3 first bytes, i.e. ethernet vendor ID.
  	 */
  
- 	/*
- 	 * currently borrowed from C= 
- 	 * the next four lines will soon have to be altered 
- 	 */
- 
  	sc->sc_arpcom.ac_enaddr[0] = 0x00;
! 	sc->sc_arpcom.ac_enaddr[1] = 0x80;
! 	sc->sc_arpcom.ac_enaddr[2] = 0x10;
  
! 	sc->sc_arpcom.ac_enaddr[3] = ((ser >> 16) & 0x0f) | 0xf0; /* to diff from A2065 */
  	sc->sc_arpcom.ac_enaddr[4] = (ser >>  8 ) & 0xff;
  	sc->sc_arpcom.ac_enaddr[5] = (ser       ) & 0xff;
  
--- 206,216 ----
  	 * Manufacturer decides the 3 first bytes, i.e. ethernet vendor ID.
  	 */
  
  	sc->sc_arpcom.ac_enaddr[0] = 0x00;
! 	sc->sc_arpcom.ac_enaddr[1] = 0x60;
! 	sc->sc_arpcom.ac_enaddr[2] = 0x30;
  
! 	sc->sc_arpcom.ac_enaddr[3] = (ser >> 16 ) & 0xff;
  	sc->sc_arpcom.ac_enaddr[4] = (ser >>  8 ) & 0xff;
  	sc->sc_arpcom.ac_enaddr[5] = (ser       ) & 0xff;
  

>Audit-Trail:
>Unformatted: