Linux-2.6.12-rc2

Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.

Let it rip!
This commit is contained in:
Linus Torvalds
2005-04-16 15:20:36 -07:00
commit 1da177e4c3
17291 changed files with 6718755 additions and 0 deletions

18
drivers/zorro/Kconfig Normal file
View File

@@ -0,0 +1,18 @@
#
# Zorro configuration
#
config ZORRO_NAMES
bool "Zorro device name database"
depends on ZORRO
---help---
By default, the kernel contains a database of all known Zorro device
names to make the information in /proc/iomem comprehensible to the
user. This database increases the size of the kernel image by about
15KB, but it gets freed after the system boots up, so it doesn't
take up kernel memory. Anyway, if you are building an installation
floppy or kernel for an embedded system where kernel image size
really matters, you can disable this feature and you'll get device
ID numbers instead of names.
When in doubt, say Y.

21
drivers/zorro/Makefile Normal file
View File

@@ -0,0 +1,21 @@
#
# Makefile for the Zorro bus specific drivers.
#
obj-$(CONFIG_ZORRO) += zorro.o zorro-driver.o zorro-sysfs.o names.o
obj-$(CONFIG_PROC_FS) += proc.o
hostprogs-y := gen-devlist
# Files generated that shall be removed upon make clean
clean-files := devlist.h
# Dependencies on generated files need to be listed explicitly
$(obj)/names.o: $(obj)/devlist.h
# And that's how to generate them
quiet_cmd_devlist = DEVLIST $@
cmd_devlist = ( cd $(obj); ./gen-devlist ) < $<
$(obj)/devlist.h: $(src)/zorro.ids $(obj)/gen-devlist
$(call cmd,devlist)

107
drivers/zorro/gen-devlist.c Normal file
View File

@@ -0,0 +1,107 @@
/*
* Generate devlist.h from the Zorro ID file.
*
* (c) 2000 Geert Uytterhoeven <geert@linux-m68k.org>
*
* Based on the PCI version:
*
* (c) 1999--2000 Martin Mares <mj@ucw.cz>
*/
#include <stdio.h>
#include <string.h>
#define MAX_NAME_SIZE 63
static void
pq(FILE *f, const char *c)
{
while (*c) {
if (*c == '"')
fprintf(f, "\\\"");
else
fputc(*c, f);
c++;
}
}
int
main(void)
{
char line[1024], *c, *bra, manuf[8];
int manufs = 0;
int mode = 0;
int lino = 0;
int manuf_len = 0;
FILE *devf;
devf = fopen("devlist.h", "w");
if (!devf) {
fprintf(stderr, "Cannot create output file!\n");
return 1;
}
while (fgets(line, sizeof(line)-1, stdin)) {
lino++;
if ((c = strchr(line, '\n')))
*c = 0;
if (!line[0] || line[0] == '#')
continue;
if (line[0] == '\t') {
switch (mode) {
case 1:
if (strlen(line) > 5 && line[5] == ' ') {
c = line + 5;
while (*c == ' ')
*c++ = 0;
if (manuf_len + strlen(c) + 1 > MAX_NAME_SIZE) {
/* Too long, try cutting off long description */
bra = strchr(c, '[');
if (bra && bra > c && bra[-1] == ' ')
bra[-1] = 0;
if (manuf_len + strlen(c) + 1 > MAX_NAME_SIZE) {
fprintf(stderr, "Line %d: Product name too long\n", lino);
return 1;
}
}
fprintf(devf, "\tPRODUCT(%s,%s,\"", manuf, line+1);
pq(devf, c);
fputs("\")\n", devf);
} else goto err;
break;
default:
goto err;
}
} else if (strlen(line) > 4 && line[4] == ' ') {
c = line + 4;
while (*c == ' ')
*c++ = 0;
if (manufs)
fputs("ENDMANUF()\n\n", devf);
manufs++;
strcpy(manuf, line);
manuf_len = strlen(c);
if (manuf_len + 24 > MAX_NAME_SIZE) {
fprintf(stderr, "Line %d: manufacturer name too long\n", lino);
return 1;
}
fprintf(devf, "MANUF(%s,\"", manuf);
pq(devf, c);
fputs("\")\n", devf);
mode = 1;
} else {
err:
fprintf(stderr, "Line %d: Syntax error in mode %d: %s\n", lino, mode, line);
return 1;
}
}
fputs("ENDMANUF()\n\
\n\
#undef MANUF\n\
#undef PRODUCT\n\
#undef ENDMANUF\n", devf);
fclose(devf);
return 0;
}

109
drivers/zorro/names.c Normal file
View File

@@ -0,0 +1,109 @@
/*
* Zorro Device Name Tables
*
* Copyright (C) 1999--2000 Geert Uytterhoeven
*
* Based on the PCI version:
*
* Copyright 1992--1999 Drew Eckhardt, Frederic Potter,
* David Mosberger-Tang, Martin Mares
*/
#include <linux/config.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/zorro.h>
#ifdef CONFIG_ZORRO_NAMES
struct zorro_prod_info {
__u16 prod;
unsigned short seen;
const char *name;
};
struct zorro_manuf_info {
__u16 manuf;
unsigned short nr;
const char *name;
struct zorro_prod_info *prods;
};
/*
* This is ridiculous, but we want the strings in
* the .init section so that they don't take up
* real memory.. Parse the same file multiple times
* to get all the info.
*/
#define MANUF( manuf, name ) static char __manufstr_##manuf[] __initdata = name;
#define ENDMANUF()
#define PRODUCT( manuf, prod, name ) static char __prodstr_##manuf##prod[] __initdata = name;
#include "devlist.h"
#define MANUF( manuf, name ) static struct zorro_prod_info __prods_##manuf[] __initdata = {
#define ENDMANUF() };
#define PRODUCT( manuf, prod, name ) { 0x##prod, 0, __prodstr_##manuf##prod },
#include "devlist.h"
static struct zorro_manuf_info __initdata zorro_manuf_list[] = {
#define MANUF( manuf, name ) { 0x##manuf, sizeof(__prods_##manuf) / sizeof(struct zorro_prod_info), __manufstr_##manuf, __prods_##manuf },
#define ENDMANUF()
#define PRODUCT( manuf, prod, name )
#include "devlist.h"
};
#define MANUFS (sizeof(zorro_manuf_list)/sizeof(struct zorro_manuf_info))
void __init zorro_name_device(struct zorro_dev *dev)
{
const struct zorro_manuf_info *manuf_p = zorro_manuf_list;
int i = MANUFS;
char *name = dev->name;
do {
if (manuf_p->manuf == ZORRO_MANUF(dev->id))
goto match_manuf;
manuf_p++;
} while (--i);
/* Couldn't find either the manufacturer nor the product */
sprintf(name, "Zorro device %08x", dev->id);
return;
match_manuf: {
struct zorro_prod_info *prod_p = manuf_p->prods;
int i = manuf_p->nr;
while (i > 0) {
if (prod_p->prod ==
((ZORRO_PROD(dev->id)<<8) | ZORRO_EPC(dev->id)))
goto match_prod;
prod_p++;
i--;
}
/* Ok, found the manufacturer, but unknown product */
sprintf(name, "Zorro device %08x (%s)", dev->id, manuf_p->name);
return;
/* Full match */
match_prod: {
char *n = name + sprintf(name, "%s %s", manuf_p->name, prod_p->name);
int nr = prod_p->seen + 1;
prod_p->seen = nr;
if (nr > 1)
sprintf(n, " (#%d)", nr);
}
}
}
#else
void __init zorro_name_device(struct zorro_dev *dev)
{
}
#endif

139
drivers/zorro/proc.c Normal file
View File

@@ -0,0 +1,139 @@
/*
* $Id: proc.c,v 1.1.2.1 1998/06/07 23:21:01 geert Exp $
*
* Procfs interface for the Zorro bus.
*
* Copyright (C) 1998-2003 Geert Uytterhoeven
*
* Heavily based on the procfs interface for the PCI bus, which is
*
* Copyright (C) 1997, 1998 Martin Mares <mj@atrey.karlin.mff.cuni.cz>
*/
#include <linux/types.h>
#include <linux/zorro.h>
#include <linux/proc_fs.h>
#include <linux/init.h>
#include <linux/smp_lock.h>
#include <asm/uaccess.h>
#include <asm/amigahw.h>
#include <asm/setup.h>
static loff_t
proc_bus_zorro_lseek(struct file *file, loff_t off, int whence)
{
loff_t new = -1;
lock_kernel();
switch (whence) {
case 0:
new = off;
break;
case 1:
new = file->f_pos + off;
break;
case 2:
new = sizeof(struct ConfigDev) + off;
break;
}
if (new < 0 || new > sizeof(struct ConfigDev)) {
unlock_kernel();
return -EINVAL;
}
unlock_kernel();
return (file->f_pos = new);
}
static ssize_t
proc_bus_zorro_read(struct file *file, char *buf, size_t nbytes, loff_t *ppos)
{
struct inode *ino = file->f_dentry->d_inode;
struct proc_dir_entry *dp = PDE(ino);
struct zorro_dev *z = dp->data;
struct ConfigDev cd;
loff_t pos = *ppos;
if (pos >= sizeof(struct ConfigDev))
return 0;
if (nbytes >= sizeof(struct ConfigDev))
nbytes = sizeof(struct ConfigDev);
if (pos + nbytes > sizeof(struct ConfigDev))
nbytes = sizeof(struct ConfigDev) - pos;
/* Construct a ConfigDev */
memset(&cd, 0, sizeof(cd));
cd.cd_Rom = z->rom;
cd.cd_SlotAddr = z->slotaddr;
cd.cd_SlotSize = z->slotsize;
cd.cd_BoardAddr = (void *)zorro_resource_start(z);
cd.cd_BoardSize = zorro_resource_len(z);
if (copy_to_user(buf, &cd, nbytes))
return -EFAULT;
*ppos += nbytes;
return nbytes;
}
static struct file_operations proc_bus_zorro_operations = {
.llseek = proc_bus_zorro_lseek,
.read = proc_bus_zorro_read,
};
static int
get_zorro_dev_info(char *buf, char **start, off_t pos, int count)
{
u_int slot;
off_t at = 0;
int len, cnt;
for (slot = cnt = 0; slot < zorro_num_autocon && count > cnt; slot++) {
struct zorro_dev *z = &zorro_autocon[slot];
len = sprintf(buf, "%02x\t%08x\t%08lx\t%08lx\t%02x\n", slot,
z->id, zorro_resource_start(z),
zorro_resource_len(z), z->rom.er_Type);
at += len;
if (at >= pos) {
if (!*start) {
*start = buf + (pos - (at - len));
cnt = at - pos;
} else
cnt += len;
buf += len;
}
}
return (count > cnt) ? cnt : count;
}
static struct proc_dir_entry *proc_bus_zorro_dir;
static int __init zorro_proc_attach_device(u_int slot)
{
struct proc_dir_entry *entry;
char name[4];
sprintf(name, "%02x", slot);
entry = create_proc_entry(name, 0, proc_bus_zorro_dir);
if (!entry)
return -ENOMEM;
entry->proc_fops = &proc_bus_zorro_operations;
entry->data = &zorro_autocon[slot];
entry->size = sizeof(struct zorro_dev);
return 0;
}
static int __init zorro_proc_init(void)
{
u_int slot;
if (MACH_IS_AMIGA && AMIGAHW_PRESENT(ZORRO)) {
proc_bus_zorro_dir = proc_mkdir("zorro", proc_bus);
create_proc_info_entry("devices", 0, proc_bus_zorro_dir,
get_zorro_dev_info);
for (slot = 0; slot < zorro_num_autocon; slot++)
zorro_proc_attach_device(slot);
}
return 0;
}
__initcall(zorro_proc_init);

View File

@@ -0,0 +1,150 @@
/*
* Zorro Driver Services
*
* Copyright (C) 2003 Geert Uytterhoeven
*
* Loosely based on drivers/pci/pci-driver.c
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file COPYING in the main directory of this archive
* for more details.
*/
#include <linux/init.h>
#include <linux/module.h>
#include <linux/zorro.h>
/**
* zorro_match_device - Tell if a Zorro device structure has a matching
* Zorro device id structure
* @ids: array of Zorro device id structures to search in
* @dev: the Zorro device structure to match against
*
* Used by a driver to check whether a Zorro device present in the
* system is in its list of supported devices. Returns the matching
* zorro_device_id structure or %NULL if there is no match.
*/
const struct zorro_device_id *
zorro_match_device(const struct zorro_device_id *ids,
const struct zorro_dev *z)
{
while (ids->id) {
if (ids->id == ZORRO_WILDCARD || ids->id == z->id)
return ids;
ids++;
}
return NULL;
}
static int zorro_device_probe(struct device *dev)
{
int error = 0;
struct zorro_driver *drv = to_zorro_driver(dev->driver);
struct zorro_dev *z = to_zorro_dev(dev);
if (!z->driver && drv->probe) {
const struct zorro_device_id *id;
id = zorro_match_device(drv->id_table, z);
if (id)
error = drv->probe(z, id);
if (error >= 0) {
z->driver = drv;
error = 0;
}
}
return error;
}
/**
* zorro_register_driver - register a new Zorro driver
* @drv: the driver structure to register
*
* Adds the driver structure to the list of registered drivers
* Returns the number of Zorro devices which were claimed by the driver
* during registration. The driver remains registered even if the
* return value is zero.
*/
int zorro_register_driver(struct zorro_driver *drv)
{
int count = 0;
/* initialize common driver fields */
drv->driver.name = drv->name;
drv->driver.bus = &zorro_bus_type;
drv->driver.probe = zorro_device_probe;
/* register with core */
count = driver_register(&drv->driver);
return count ? count : 1;
}
/**
* zorro_unregister_driver - unregister a zorro driver
* @drv: the driver structure to unregister
*
* Deletes the driver structure from the list of registered Zorro drivers,
* gives it a chance to clean up by calling its remove() function for
* each device it was responsible for, and marks those devices as
* driverless.
*/
void zorro_unregister_driver(struct zorro_driver *drv)
{
driver_unregister(&drv->driver);
}
/**
* zorro_bus_match - Tell if a Zorro device structure has a matching Zorro
* device id structure
* @ids: array of Zorro device id structures to search in
* @dev: the Zorro device structure to match against
*
* Used by a driver to check whether a Zorro device present in the
* system is in its list of supported devices.Returns the matching
* zorro_device_id structure or %NULL if there is no match.
*/
static int zorro_bus_match(struct device *dev, struct device_driver *drv)
{
struct zorro_dev *z = to_zorro_dev(dev);
struct zorro_driver *zorro_drv = to_zorro_driver(drv);
const struct zorro_device_id *ids = zorro_drv->id_table;
if (!ids)
return 0;
while (ids->id) {
if (ids->id == ZORRO_WILDCARD || ids->id == z->id)
return 1;
ids++;
}
return 0;
}
struct bus_type zorro_bus_type = {
.name = "zorro",
.match = zorro_bus_match
};
static int __init zorro_driver_init(void)
{
return bus_register(&zorro_bus_type);
}
postcore_initcall(zorro_driver_init);
EXPORT_SYMBOL(zorro_match_device);
EXPORT_SYMBOL(zorro_register_driver);
EXPORT_SYMBOL(zorro_unregister_driver);
EXPORT_SYMBOL(zorro_dev_driver);
EXPORT_SYMBOL(zorro_bus_type);

View File

@@ -0,0 +1,98 @@
/*
* File Attributes for Zorro Devices
*
* Copyright (C) 2003 Geert Uytterhoeven
*
* Loosely based on drivers/pci/pci-sysfs.c
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file COPYING in the main directory of this archive
* for more details.
*/
#include <linux/kernel.h>
#include <linux/zorro.h>
#include <linux/stat.h>
#include "zorro.h"
/* show configuration fields */
#define zorro_config_attr(name, field, format_string) \
static ssize_t \
show_##name(struct device *dev, char *buf) \
{ \
struct zorro_dev *z; \
\
z = to_zorro_dev(dev); \
return sprintf(buf, format_string, z->field); \
} \
static DEVICE_ATTR(name, S_IRUGO, show_##name, NULL);
zorro_config_attr(id, id, "0x%08x\n");
zorro_config_attr(type, rom.er_Type, "0x%02x\n");
zorro_config_attr(serial, rom.er_SerialNumber, "0x%08x\n");
zorro_config_attr(slotaddr, slotaddr, "0x%04x\n");
zorro_config_attr(slotsize, slotsize, "0x%04x\n");
static ssize_t zorro_show_resource(struct device *dev, char *buf)
{
struct zorro_dev *z = to_zorro_dev(dev);
return sprintf(buf, "0x%08lx 0x%08lx 0x%08lx\n",
zorro_resource_start(z), zorro_resource_end(z),
zorro_resource_flags(z));
}
static DEVICE_ATTR(resource, S_IRUGO, zorro_show_resource, NULL);
static ssize_t zorro_read_config(struct kobject *kobj, char *buf, loff_t off,
size_t count)
{
struct zorro_dev *z = to_zorro_dev(container_of(kobj, struct device,
kobj));
struct ConfigDev cd;
unsigned int size = sizeof(cd);
if (off > size)
return 0;
if (off+count > size)
count = size-off;
/* Construct a ConfigDev */
memset(&cd, 0, sizeof(cd));
cd.cd_Rom = z->rom;
cd.cd_SlotAddr = z->slotaddr;
cd.cd_SlotSize = z->slotsize;
cd.cd_BoardAddr = (void *)zorro_resource_start(z);
cd.cd_BoardSize = zorro_resource_len(z);
memcpy(buf, (void *)&cd+off, count);
return count;
}
static struct bin_attribute zorro_config_attr = {
.attr = {
.name = "config",
.mode = S_IRUGO | S_IWUSR,
.owner = THIS_MODULE
},
.size = sizeof(struct ConfigDev),
.read = zorro_read_config,
};
void zorro_create_sysfs_dev_files(struct zorro_dev *z)
{
struct device *dev = &z->dev;
/* current configuration's attributes */
device_create_file(dev, &dev_attr_id);
device_create_file(dev, &dev_attr_type);
device_create_file(dev, &dev_attr_serial);
device_create_file(dev, &dev_attr_slotaddr);
device_create_file(dev, &dev_attr_slotsize);
device_create_file(dev, &dev_attr_resource);
sysfs_create_bin_file(&dev->kobj, &zorro_config_attr);
}

193
drivers/zorro/zorro.c Normal file
View File

@@ -0,0 +1,193 @@
/*
* $Id: zorro.c,v 1.1.2.1 1998/06/07 23:21:02 geert Exp $
*
* Zorro Bus Services
*
* Copyright (C) 1995-2003 Geert Uytterhoeven
*
* This file is subject to the terms and conditions of the GNU General Public
* License. See the file COPYING in the main directory of this archive
* for more details.
*/
#include <linux/module.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/zorro.h>
#include <linux/bitops.h>
#include <asm/setup.h>
#include <asm/amigahw.h>
#include "zorro.h"
/*
* Zorro Expansion Devices
*/
u_int zorro_num_autocon = 0;
struct zorro_dev zorro_autocon[ZORRO_NUM_AUTO];
/*
* Single Zorro bus
*/
struct zorro_bus zorro_bus = {\
.resources = {
/* Zorro II regions (on Zorro II/III) */
{ .name = "Zorro II exp", .start = 0x00e80000, .end = 0x00efffff },
{ .name = "Zorro II mem", .start = 0x00200000, .end = 0x009fffff },
/* Zorro III regions (on Zorro III only) */
{ .name = "Zorro III exp", .start = 0xff000000, .end = 0xffffffff },
{ .name = "Zorro III cfg", .start = 0x40000000, .end = 0x7fffffff }
},
.name = "Zorro bus"
};
/*
* Find Zorro Devices
*/
struct zorro_dev *zorro_find_device(zorro_id id, struct zorro_dev *from)
{
struct zorro_dev *z;
if (!MACH_IS_AMIGA || !AMIGAHW_PRESENT(ZORRO))
return NULL;
for (z = from ? from+1 : &zorro_autocon[0];
z < zorro_autocon+zorro_num_autocon;
z++)
if (id == ZORRO_WILDCARD || id == z->id)
return z;
return NULL;
}
/*
* Bitmask indicating portions of available Zorro II RAM that are unused
* by the system. Every bit represents a 64K chunk, for a maximum of 8MB
* (128 chunks, physical 0x00200000-0x009fffff).
*
* If you want to use (= allocate) portions of this RAM, you should clear
* the corresponding bits.
*
* Possible uses:
* - z2ram device
* - SCSI DMA bounce buffers
*
* FIXME: use the normal resource management
*/
DECLARE_BITMAP(zorro_unused_z2ram, 128);
static void __init mark_region(unsigned long start, unsigned long end,
int flag)
{
if (flag)
start += Z2RAM_CHUNKMASK;
else
end += Z2RAM_CHUNKMASK;
start &= ~Z2RAM_CHUNKMASK;
end &= ~Z2RAM_CHUNKMASK;
if (end <= Z2RAM_START || start >= Z2RAM_END)
return;
start = start < Z2RAM_START ? 0x00000000 : start-Z2RAM_START;
end = end > Z2RAM_END ? Z2RAM_SIZE : end-Z2RAM_START;
while (start < end) {
u32 chunk = start>>Z2RAM_CHUNKSHIFT;
if (flag)
set_bit(chunk, zorro_unused_z2ram);
else
clear_bit(chunk, zorro_unused_z2ram);
start += Z2RAM_CHUNKSIZE;
}
}
static struct resource __init *zorro_find_parent_resource(struct zorro_dev *z)
{
int i;
for (i = 0; i < zorro_bus.num_resources; i++)
if (zorro_resource_start(z) >= zorro_bus.resources[i].start &&
zorro_resource_end(z) <= zorro_bus.resources[i].end)
return &zorro_bus.resources[i];
return &iomem_resource;
}
/*
* Initialization
*/
static int __init zorro_init(void)
{
struct zorro_dev *z;
unsigned int i;
if (!MACH_IS_AMIGA || !AMIGAHW_PRESENT(ZORRO))
return 0;
pr_info("Zorro: Probing AutoConfig expansion devices: %d device%s\n",
zorro_num_autocon, zorro_num_autocon == 1 ? "" : "s");
/* Initialize the Zorro bus */
INIT_LIST_HEAD(&zorro_bus.devices);
strcpy(zorro_bus.dev.bus_id, "zorro");
device_register(&zorro_bus.dev);
/* Request the resources */
zorro_bus.num_resources = AMIGAHW_PRESENT(ZORRO3) ? 4 : 2;
for (i = 0; i < zorro_bus.num_resources; i++)
request_resource(&iomem_resource, &zorro_bus.resources[i]);
/* Register all devices */
for (i = 0; i < zorro_num_autocon; i++) {
z = &zorro_autocon[i];
z->id = (z->rom.er_Manufacturer<<16) | (z->rom.er_Product<<8);
if (z->id == ZORRO_PROD_GVP_EPC_BASE) {
/* GVP quirk */
unsigned long magic = zorro_resource_start(z)+0x8000;
z->id |= *(u16 *)ZTWO_VADDR(magic) & GVP_PRODMASK;
}
sprintf(z->name, "Zorro device %08x", z->id);
zorro_name_device(z);
z->resource.name = z->name;
if (request_resource(zorro_find_parent_resource(z), &z->resource))
printk(KERN_ERR "Zorro: Address space collision on device %s "
"[%lx:%lx]\n",
z->name, zorro_resource_start(z), zorro_resource_end(z));
sprintf(z->dev.bus_id, "%02x", i);
z->dev.parent = &zorro_bus.dev;
z->dev.bus = &zorro_bus_type;
device_register(&z->dev);
zorro_create_sysfs_dev_files(z);
}
/* Mark all available Zorro II memory */
zorro_for_each_dev(z) {
if (z->rom.er_Type & ERTF_MEMLIST)
mark_region(zorro_resource_start(z), zorro_resource_end(z)+1, 1);
}
/* Unmark all used Zorro II memory */
for (i = 0; i < m68k_num_memory; i++)
if (m68k_memory[i].addr < 16*1024*1024)
mark_region(m68k_memory[i].addr,
m68k_memory[i].addr+m68k_memory[i].size, 0);
return 0;
}
subsys_initcall(zorro_init);
EXPORT_SYMBOL(zorro_find_device);
EXPORT_SYMBOL(zorro_unused_z2ram);
MODULE_LICENSE("GPL");

4
drivers/zorro/zorro.h Normal file
View File

@@ -0,0 +1,4 @@
extern void zorro_name_device(struct zorro_dev *z);
extern void zorro_create_sysfs_dev_files(struct zorro_dev *z);

476
drivers/zorro/zorro.ids Normal file
View File

@@ -0,0 +1,476 @@
#
# List of Zorro IDs
#
# Maintained by Geert Uytterhoeven <zorro@linux-m68k.org>
# If you have any new entries, please send them to the maintainer.
#
# $Id: zorro.ids,v 1.19 2002/10/14 13:08:58 geert Exp $
#
# Manufacturers and Products. Please keep sorted.
# Syntax:
# manufacturer manufacturer_name
# product product_name <-- single tab
00d3 Pacific Peripherals
0000 SE 2000 A500 [HD Controller]
0a00 [SCSI Host Adapter]
00dd Kupke
0000 Golem RAM Box 2MB [RAM Expansion]
0100 MacroSystems USA
# The Stormbringer is actually made by Memphis
0000 Stormbringer [Accelerator]
1300 Warp Engine [Accelerator, SCSI Host Adapter and RAM Expansion]
0200 3-State
0200 Megamix 2000 [RAM Expansion]
0201 Commodore Braunschweig
0100 A2088 XT/A2286 AT [ISA Bus Bridge]
0200 A2286 AT [ISA Bus Bridge]
5400 A4091 [SCSI Host Adapter]
6700 A2386-SX [ISA Bus Bridge]
0202 Commodore West Chester
0100 A2090/A2090A [SCSI Host Adapter]
0200 A590/A2091 [SCSI Host Adapter]
0300 A590/A2091 [SCSI Host Adapter]
0400 A2090B 2090 Autoboot [SCSI Host Adapter]
0900 A2060 [ArcNet Card]
0a00 A590/A2052/A2058/A2091 [RAM Expansion]
2000 A560 [RAM Expansion]
4500 A2232 Prototype [Multi I/O]
4600 A2232 [Multi I/O]
5000 A2620 68020 [Accelerator and RAM Expansion]
5100 A2630 68030 [Accelerator and RAM Expansion]
5400 A4091 [SCSI Host Adapter]
5a00 A2065 [Ethernet Card]
6000 Romulator Card
6100 A3000 Test Fixture [Miscellaneous Expansion Card]
6700 A2386-SX [ISA Bus Bridge]
7000 A2065 [Ethernet Card]
0203 Commodore West Chester
0300 A2090/A2090A Combitec/MacroSystem [SCSI Host Adapter]
02f4 Progressive Peripherals & Systems
0200 EXP8000 [RAM Expansion]
6900 A2000 68040 [Accelerator]
9600 68040 [Accelerator]
02ff Kolff Computer Supplies
0000 KCS Power PC [ISA Bus Bridge]
03ec Cardco Ltd.
0400 Kronos 2000 [SCSI Host Adapter]
0c00 A1000 [SCSI Host Adapter]
0e00 Escort [SCSI Host Adapter]
f500 A2410 HiRes [Graphics Card]
03ed A-Squared
0100 Live! 2000 [Video Card]
03ee Comspec Communications
0100 AX2000 [RAM Expansion]
03f1 Anakin Research
0100 Easyl Drawing Tablet Interface
03f2 Microbotics
0000 StarBoard II [RAM Expansion]
0200 StarDrive [SCSI Host Adapter]
0300 8-Up (Rev A) [RAM Expansion]
0400 8-Up (Rev Z) [RAM Expansion]
2000 Delta [RAM Expansion]
4000 8-Star [RAM Expansion]
4100 8-Star [Miscellaneous Expansion Card]
4400 VXL RAM*32 [RAM Expansion]
4500 VXL-30 [Accelerator]
6000 Delta [Miscellaneous Expansion Card]
8100 MBX 1200/1200z [RAM Expansion]
9600 Hardframe 2000 [SCSI Host Adapter]
9e00 Hardframe 2000 [SCSI Host Adapter]
c100 MBX 1200/1200z [Miscellaneous Expansion Card]
03f4 Access Associates Alegra
03f6 Expansion Technologies/Pacific Cypress
03ff ASDG
0100 [RAM Expansion]
0200 [RAM Expansion]
fe00 EB-920 Lan Rover [Ethernet Card]
ff00 GPIB/Dual IEEE-488/Twin-X [Multi I/O]
0404 Ronin/Imtronics
3900 Hurricane 2800 [Accelerator and RAM Expansion]
5700 Hurricane 2800 [Accelerator and RAM Expansion]
0406 Commodore/University of Lowell
0000 A2410 HiRes [Graphics Card]
041d Ameristar
0100 A2065 [Ethernet Card]
0900 A560 [ArcNet Card]
0a00 A4066 [Ethernet Card]
2000 1600-GX [Graphics Card]
0420 Supra
0100 SupraDrive 4x4 [SCSI Host Adapter]
0200 1000 [RAM Expansion]
0300 2000 DMA [SCSI Host Adapter]
0500 500 [SCSI Host Adapter and RAM Expansion]
0800 500 [SCSI Host Adapter]
0900 500XP/2000 [RAM Expansion]
0a00 500RX/2000 [RAM Expansion]
0b00 2400zi [Modem]
0c00 500XP/SupraDrive WordSync [SCSI Host Adapter]
0d00 SupraDrive WordSync II [SCSI Host Adapter]
1000 2400zi+ [Modem]
0422 Computer Systems Assosiates
1100 Magnum 40 [Accelerator and SCSI Host Adapter]
1500 12 Gauge [SCSI Host Adapter]
0439 Marc Michael Groth
0502 M-Tech
0300 AT500 [RAM Expansion]
06e1 Great Valley Products
0800 Impact Series I [SCSI Host Adapter and RAM Expansion]
2000 Impact Vision 24 [Graphics Card]
07da ByteBox
0000 A500
07db Hacker Test Board
07dc DKB/Power Computing
0900 SecureKey
0e00 DKM 3128 [RAM Expansion]
0f00 Rapid Fire [SCSI Host Adapter]
1000 DKM 1202 [FPU and RAM Expansion]
1200 Cobra/Viper II 68EC030 [Accelerator]
1700 WildFire 060 [Accelerator]
ff00 WildFire 060 [Accelerator]
07e1 Great Valley Products
0100 Impact Series I (4K) [SCSI Host Adapter]
0200 Impact Series I (16K/2) [SCSI Host Adapter]
0300 Impact Series I (16K/2) [SCSI Host Adapter]
0800 Impact 3001 [IDE Interface]
0900 Impact 3001 [RAM Expansion]
0a00 Impact Series II [RAM Expansion]
0b20 GForce 040 [Accelerator]
0b30 GForce 040 [Accelerator and SCSI Host Adapter]
0b40 A1291 [SCSI Host Adapter]
0b60 Combo 030 R4 [Accelerator]
0b70 Combo 030 R4 [Accelerator and SCSI Host Adapter]
0b78 Phone Pak
0b98 IO-Extender [Multi I/O]
0ba0 GForce 030 [Accelerator]
0bb0 GForce 030 [Accelerator and SCSI Host Adapter]
0bc0 A530 [Accelerator]
0bd0 A530 [Accelerator and SCSI Host Adapter]
0be0 Combo 030 R3 [Accelerator]
0bf0 Combo 030 R3 [Accelerator and SCSI Host Adapter]
0bf8 Series-II [SCSI Host Adapter]
0d00 Impact 3001 [IDE Interface]
1600 GForce 040/060 [Accelerator and SCSI Host Adapter]
2000 Impact Vision 24 [Graphics Card]
4400 Rembrandt [Graphics Card]
ff00 GForce 040 [Accelerator]
07e5 California Access/Synergy
0100 Malibu [SCSI Host Adapter]
07e6 Xetec
0100 FastCard [SCSI Host Adapter]
0200 FastCard [RAM Expansion]
0300 FastCard Plus [SCSI Host Adapter]
07ea Progressive Peripherals & Systems
0000 Mercury [Accelerator]
0100 A3000 68040 [Accelerator]
6900 A2000 68040 [Accelerator]
9600 Zeus [Accelerator, SCSI Host Adapter and RAM Expansion]
bb00 A500 68040 [Accelerator]
# The AteoBus and Pixel64 are actually made by Ateo Concepts
fc00 AteoBus [Expansion Bus Bridge]
fe00 Pixel64 [Graphics Card]
ff00 Pixel64 RAM [Graphics Card]
07ec Xebec
07f2 Spirit Technology
0100 Insider IN1000 [RAM Expansion]
0200 Insider IN500 [RAM Expansion]
0300 SIN500 [RAM Expansion]
0400 HDA 506 [HD Controller]
0500 AX-S [Miscellaneous Expansion Card]
0600 OctaByte [RAM Expansion]
0800 Inmate [SCSI Host Adapter and RAM Expansion]
07f3 Spirit Technology
07fe BSC/Alfadata
0300 ALF 3 [SCSI Host Adapter]
0801 BSC/Alfadata
0100 ALF 2 [SCSI Host Adapter]
0200 ALF 2 [SCSI Host Adapter]
0300 ALF 3 [SCSI Host Adapter]
0400 Oktagon 500 [SCSI Host Adapter]
0600 Tandem AT-2008/508 [IDE Interface]
0800 Oktagon 2008 [RAM Expansion]
1000 MultiFace I [Multi I/O]
2000 FrameMaster II [Graphics Card]
4000 ISDN MasterCard [ISDN Interface]
0802 Cardco Ltd.
0400 Kronos 2000 [SCSI Host Adapter]
0c00 A1000 [SCSI Host Adapter]
0804 Jochheim
0100 [RAM Expansion]
2000 [RAM Expansion]
0807 Checkpoint Technologies
0000 Serial Solution [Multi Serial]
0810 Edotronik
0100 IEEE-488 Interface Card
0200 CBM-8032 Card
0300 [Multi Serial]
0400 24Bit Realtime Video Digitizer
0500 32Bit Parallel I/O Interface
0600 PIC Prototyping Card
0700 16 Channel ADC Interface
0800 VME-Bus Controller
0900 DSP96000 Realtime Data Acquisition DSP Card
0813 NES Inc.
0000 [RAM Expansion]
0817 ICD
0100 Advantage 2000 [SCSI Host Adapter]
0300 Advantage [IDE Interface]
0400 Advantage 2080 [RAM Expansion]
0819 Kupke
0100 Omti [HD Controller]
0200 Golem SCSI-II [SCSI Host Adapter]
0300 Golem Box
0400 030/882 [Accelerator]
0500 Golem [SCSI Host Adapter]
081d Great Valley Products
0900 A2000-RAM8/2 [Miscellaneous Expansion Card]
0a00 Impact Series II [RAM Expansion]
081e Interworks Network
0820 Hardital Synthesis
0100 Super Big Bang [Accelerator, SCSI Host Adapter and RAM Expansion]
1400 TQM 68030+68882 [Accelerator]
0828 Applied Engineering
1000 DL2000 [Modem]
e000 RAM Works [RAM Expansion]
082c BSC/Alfadata
0400 Oktagon 500 [SCSI Host Adapter]
0500 Oktagon 2008 [SCSI Host Adapter]
0600 Tandem AT-2008/508 [IDE Interface]
0700 Alpha 1200 [RAM Expansion]
0800 Oktagon 2008 [RAM Expansion]
1000 MultiFace I [Multi I/O]
1100 MultiFace II [Multi I/O]
1200 MultiFace III [Multi I/O]
2000 FrameMaster II [Graphics Card]
2100 Graffiti RAM [Graphics Card]
2200 Graffiti [Graphics Card]
4000 ISDN MasterCard [ISDN Interface]
4100 ISDN MasterCard II [ISDN Interface]
0835 Phoenix
2100 ST506 [HD Controller]
2200 [SCSI Host Adapter]
be00 [RAM Expansion]
0836 Advanced Storage Systems
0100 Nexus [SCSI Host Adapter]
0800 Nexus [RAM Expansion]
0838 Impulse
0000 FireCracker 24 (NTSC) [Graphics Card]
0100 FireCracker 24 (PAL) [Graphics Card]
0840 IVS
0200 GrandSlam PIC 2 [RAM Expansion]
0400 GrandSlam PIC 1 [RAM Expansion]
1000 OverDrive [HD Controller]
3000 TrumpCard Classic [SCSI Host Adapter]
3400 TrumpCard Pro/GrandSlam [SCSI Host Adapter]
4000 Meta-4 [RAM Expansion]
bf00 Wavetools [Audio Card]
f300 Vector [SCSI Host Adapter]
f400 Vector [SCSI Host Adapter]
0841 Vector
e300 Connection [Multi I/O]
0845 XPert ProDev
0100 Visiona RAM [Graphics Card]
0200 Visiona [Graphics Card]
0300 Merlin RAM [Graphics Card]
0400 Merlin [Graphics Card]
c900 Merlin [Graphics Card]
0849 Hydra Systems
0100 Amiganet [Ethernet Card]
084f Sunrize Industries
0100 AD1012 [Audio Card]
0200 AD516 [Audio Card]
0300 DD512 [Audio Card]
0850 Triceratops
0100 [Multi I/O]
0851 Applied Magic Inc.
0100 DMI Resolver [Graphics Card]
0200 Vivid 24 [Graphics Card]
0600 Digital Broadcaster [Video Card]
085e GFX-Base
0000 GDA-1 VRAM [Graphics Card]
0100 GDA-1 [Graphics Card]
0860 RocTec
0100 RH 800C [HD Controller]
0200 RH 800C [RAM Expansion]
0861 Kato
# The Rainbow II and III are actually made by Ingenieurb<72>ro Helfrich
2000 Rainbow II [Graphics Card]
2100 Rainbow III [Graphics Card]
8000 Melody MPEG [Audio Card]
0862 Atlantis
0864 Protar
0865 ACS
0866 Software Results Enterprises
0100 Golden Gate 2 Bus+ [ISA Bus Bridge]
086a Unknown
0100 Horizon [Graphics Card]
0200 Blackbox [Graphics Card]
0300 Voyager [Graphics Card]
086d Masoboshi
0300 MasterCard SC201 [RAM Expansion]
0400 MasterCard MC702 [SCSI Host Adapter and IDE Interface]
0700 MVD 819
086f Mainhattan-Data/A-Team
0100 [IDE Interface]
0877 Village Tronic
0100 Domino RAM [Graphics Card]
0200 Domino [Graphics Card]
0300 Domino 16M Prototype [Graphics Card]
0b00 Picasso II/II+ RAM [Graphics Card]
0c00 Picasso II/II+ [Graphics Card]
0d00 Picasso II/II+ (Segmented Mode) [Graphics Card]
1500 Picasso IV Z2 RAM [Graphics Card]
1600 Picasso IV Z2 RAM [Graphics Card]
1700 Picasso IV Z2 [Graphics Card]
1800 Picasso IV Z3 [Graphics Card]
c900 Ariadne [Ethernet Card and Parallel Ports]
ca00 Ariadne II [Ethernet Card]
087b Utilities Unlimited
1500 Emplant Deluxe [Macintosh Emulator]
2000 Emplant Deluxe [Macintosh Emulator]
0880 Amitrix
0100 [Multi I/O]
0200 CD-RAM [RAM Expansion]
0885 ArMax
0000 OmniBus [Graphics Card]
088d ZEUS Electronic Development
0300 [ISDN Interface]
0400 Spider [Video Card]
088f NewTek
0000 VideoToaster [Video Card]
0890 M-Tech Germany
0100 AT500 [IDE Interface]
0300 68030 [Accelerator]
0600 68020i [Accelerator]
2000 A1200 T68030 RTC [Accelerator]
2100 Viper Mk V/E-Matrix 530 [Accelerator and RAM Expansion]
2200 8MB [RAM Expansion]
2400 Viper Mk V/E-Matrix 530 [SCSI Host Adapter and IDE Interface]
0891 Great Valley Products
0100 EGS 28/24 Spectrum RAM [Graphics Card]
0200 EGS 28/24 Spectrum [Graphics Card]
0892 Apollo
0100 A1200 [FPU and RAM Expansion]
0893 Ingenieurb<72>ro Helfrich
0500 Piccolo RAM [Graphics Card]
0600 Piccolo [Graphics Card]
0700 PeggyPlus MPEG [Video Card]
0800 VideoCruncher [Video Card]
0a00 Piccolo SD64 RAM [Graphics Card]
0b00 Piccolo SD64 [Graphics Card]
089b MacroSystems USA
1300 Warp Engine 40xx [Accelerator, SCSI Host Adapter and RAM Expansion]
089e ElBox Computer
0600 1200/4 [RAM Expansion]
0800 FastATA 1200 [IDE Interface]
1200 FastATA 1200 [IDE Interface]
1300 FastATA 1200 [IDE Interface]
1800 FastATA 1200 [IDE Interface]
1900 FastATA 4000 [IDE Interface]
1d00 FastATA 4000 [IDE Interface]
1e00 FastATA ZIV [IDE Interface]
0a00 Harms Professional
1000 030 Plus [Accelerator]
d000 3500 Professional [Accelerator and RAM Expansion]
0a50 Micronik
0a00 RCA 120 [RAM Expansion]
0f0f Micronik
0100 Z3i A1200 [Zorro III Extender and SCSI Host Adapter]
1000 MegaMicro
0300 SCRAM 500 [SCSI Host Adapter]
0400 SCRAM 500 [RAM Expansion]
1028 Ronin/Imtronics
3900 Hurricane 2800 [Accelerator and RAM Expansion]
5700 Hurricane 2800 [Accelerator and RAM Expansion]
102f Ateo Concepts
fc00 AteoBus [Expansion Bus Bridge]
fe00 Pixel64 [Graphics Card]
ff00 Pixel64 RAM [Graphics Card]
1212 Individual Computers
0000 Buddha [IDE Interface]
1700 X-Surf [Ethernet Card and IDE Interface]
2a00 Catweasel [IDE Interface and Floppy Controller]
1248 Kupke
0100 Golem HD 3000 [HD Controller]
1267 RBM-Computertechnik
0100 IOBlix [Multi I/O]
1388 ITH
0100 ISDN-Master II [ISDN Interface]
1389 VMC
0100 ISDN Blaster Z2 [ISDN Interface]
0200 HyperCom 4 [Multi I/O]
0600 HyperCom 4+ [Multi I/O]
157c Information
6400 ISDN Engine I [ISDN Interface]
2017 Vortex
0700 Golden Gate 80386SX [ISA Bus Bridge]
0800 Golden Gate [RAM Expansion]
0900 Golden Gate 80486 [ISA Bus Bridge]
2062 Expansion Systems
0100 DataFlyer 4000SX [SCSI Host Adapter]
0200 DataFlyer 4000SX [RAM Expansion]
2100 ReadySoft
0100 AMax II/IV [Macintosh Emulator]
2140 Phase 5
0100 Blizzard [RAM Expansion]
0200 Blizzard [Accelerator]
0600 Blizzard 1220-IV [Accelerator]
0a00 FastLane Z3 [RAM Expansion]
0b00 Blizzard 1230-II/Fastlane Z3/CyberSCSI/CyberStorm060 [Accelerator and/or SCSI Host Adapter]
0c00 Blizzard 1220/CyberStorm [Accelerator and SCSI Host Adapter]
0d00 Blizzard 1230 [Accelerator]
1100 Blizzard 1230-IV/1260 [Accelerator]
1800 Blizzard 2060 [Accelerator]
1900 CyberStorm Mk II [Flash ROM]
2200 CyberVision64 [Graphics Card]
3200 CyberVision64-3D Prototype [Graphics Card]
4300 CyberVision64-3D [Graphics Card]
6400 CyberStorm Mk III [Accelerator and SCSI Host Adapter]
6e00 Blizzard 603e+ [Accelerator and SCSI Host Adapter]
2169 DPS
0100 Personal Animation Recorder [Video Card]
2200 Apollo
0000 A620 68020 [Accelerator]
0100 A620 68020 [Accelerator]
2222 Apollo
2200 AT-Apollo
2300 1230/1240/1260/2030/4040/4060 [Accelerator]
38a5 Petsoff LP
0000 Delfina [Audio Card]
0100 Delfina Lite [Audio Card]
0200 Delfina Plus [Audio Card]
3ff7 Uwe Gerlach
d400 RAM/ROM [Miscellaneous Expansion Card]
4231 ACT
0100 Prelude [Audio Card]
4754 MacroSystems Germany
0300 Maestro [Audio Card]
0400 VLab [Video Card]
0500 Maestro Pro [Audio Card]
0600 Retina [Graphics Card]
0800 MultiEvolution [SCSI Host Adapter]
0c00 Toccata [Audio Card]
0d00 Toccata Pro [Audio Card]
1000 Retina Z3 [Graphics Card]
1200 VLab Motion [Video Card]
1300 Altais [Graphics Card]
fd00 Falcon '040 [Accelerator]
6766 Combitec
8000 SKI Peripherals
0800 MAST Fireball [SCSI Host Adapter]
8000 [SCSI Host Adapter and Dual Serial Card]
a9ad Reis-Ware
1100 Scan King [Scanner Interface]
aa01 Cameron
1000 Personal A4 [Scanner Interface]
aa11 Reis-Ware
1100 Handyscanner [Scanner Interface]
b5a8 Phoenix
2100 ST506 [HD Controller]
2200 [SCSI Host Adapter]
be00 [RAM Expansion]
c008 Combitec
2a00 [HD Controller]
2b00 SRAM [RAM Expansion]