Subject: L68K: New Zorro ID scheme
From: Geert Uytterhoeven <[email-masked]>
Date: Fri, 7 Mar 1997 10:06:26 +0100 (MET)

These patches implement a new and enhanced Zorro ID scheme:

  - Each board type has a 32-bit ID of the form
  
	mmmmmmmmmmmmmmmmppppppppeeeeeeee

      o [m]: 16-bit manufacturer ID
      o [p]: 8-bit product ID
      o [e]: 8-bit extended product ID (only for some GVP boards)

  - zorro_find() can find GVP boards too, simplifying ser_ioext.c and gvp11.c.

  - Almost all boards in the database have a class, indicating the type of
    device.

  - Code size decreased because common strings (e.g. `SCSI host adapter') are
    in the class database instead of in each board name's ID string.

  - New /proc/zorro format.

  - Some cleanups (constness, signed vs. unsigned values).

  - More than 250 boards of nearly 100 manufacturers are recognized!

Caveats:

  - The GVP detection is untested.

  - Unfortunately I couldn't create a clean diff for zorro.[ch] (accidentaly
    deleted the wrong file :-(, so the plain files are included in the archive.
    This shouldn't be a problem since all lines involving any Zorro ID were
    changed, and the diffs would be much larger.

Results on my machine (sorry, only one Zorro device :-):

  - Bootup:

      Probing AutoConfig expansion device(s):
        00e90000: Village Tronic Ariadne Ethernet Card and Parallel Ports (64K)

  - cat /proc/zorro:

      AutoConfig expansion devices:
        Device 0 at 0x00e90000: ID=0877:c9, Zorro II, 64K, Configured=00000001
	  Manufacturer: Village Tronic
	  Product Name: Ariadne
	  Board Class : Ethernet Card and Parallel Ports

[tar file here is in geert-zorro-id.tar.gz]

Greetings,

						Geert

P.S. zorro.tar.gz is also available as a MIME attachment (on request only :-)
--
Geert Uytterhoeven                     [email-masked]
Wavelets, Linux/m68k on Amiga          http://www.cs.kuleuven.ac.be/~geert/
Department of Computer Science -- Katholieke Universiteit Leuven -- Belgium