diff options
Diffstat (limited to 'include/linux/zorro.h')
| -rw-r--r-- | include/linux/zorro.h | 121 | 
1 files changed, 19 insertions, 102 deletions
diff --git a/include/linux/zorro.h b/include/linux/zorro.h index dff42025649b..63fbba0740c2 100644 --- a/include/linux/zorro.h +++ b/include/linux/zorro.h @@ -11,107 +11,10 @@  #ifndef _LINUX_ZORRO_H  #define _LINUX_ZORRO_H -#include <linux/device.h> - - -    /* -     *  Each Zorro board has a 32-bit ID of the form -     * -     *      mmmmmmmmmmmmmmmmppppppppeeeeeeee -     * -     *  with -     * -     *      mmmmmmmmmmmmmmmm	16-bit Manufacturer ID (assigned by CBM (sigh)) -     *      pppppppp		8-bit Product ID (assigned by manufacturer) -     *      eeeeeeee		8-bit Extended Product ID (currently only used -     *				for some GVP boards) -     */ - - -#define ZORRO_MANUF(id)		((id) >> 16) -#define ZORRO_PROD(id)		(((id) >> 8) & 0xff) -#define ZORRO_EPC(id)		((id) & 0xff) - -#define ZORRO_ID(manuf, prod, epc) \ -    ((ZORRO_MANUF_##manuf << 16) | ((prod) << 8) | (epc)) - -typedef __u32 zorro_id; - - -/* Include the ID list */ -#include <linux/zorro_ids.h> - -    /* -     *  GVP identifies most of its products through the 'extended product code' -     *  (epc). The epc has to be ANDed with the GVP_PRODMASK before the -     *  identification. -     */ - -#define GVP_PRODMASK			(0xf8) -#define GVP_SCSICLKMASK			(0x01) - -enum GVP_flags { -    GVP_IO		= 0x01, -    GVP_ACCEL		= 0x02, -    GVP_SCSI		= 0x04, -    GVP_24BITDMA	= 0x08, -    GVP_25BITDMA	= 0x10, -    GVP_NOBANK		= 0x20, -    GVP_14MHZ		= 0x40, -}; - - -struct Node { -    struct  Node *ln_Succ;	/* Pointer to next (successor) */ -    struct  Node *ln_Pred;	/* Pointer to previous (predecessor) */ -    __u8    ln_Type; -    __s8    ln_Pri;		/* Priority, for sorting */ -    __s8    *ln_Name;		/* ID string, null terminated */ -} __attribute__ ((packed)); - -struct ExpansionRom { -    /* -First 16 bytes of the expansion ROM */ -    __u8  er_Type;		/* Board type, size and flags */ -    __u8  er_Product;		/* Product number, assigned by manufacturer */ -    __u8  er_Flags;		/* Flags */ -    __u8  er_Reserved03;	/* Must be zero ($ff inverted) */ -    __u16 er_Manufacturer;	/* Unique ID, ASSIGNED BY COMMODORE-AMIGA! */ -    __u32 er_SerialNumber;	/* Available for use by manufacturer */ -    __u16 er_InitDiagVec;	/* Offset to optional "DiagArea" structure */ -    __u8  er_Reserved0c; -    __u8  er_Reserved0d; -    __u8  er_Reserved0e; -    __u8  er_Reserved0f; -} __attribute__ ((packed)); - -/* er_Type board type bits */ -#define ERT_TYPEMASK	0xc0 -#define ERT_ZORROII	0xc0 -#define ERT_ZORROIII	0x80 - -/* other bits defined in er_Type */ -#define ERTB_MEMLIST	5		/* Link RAM into free memory list */ -#define ERTF_MEMLIST	(1<<5) - -struct ConfigDev { -    struct Node		cd_Node; -    __u8		cd_Flags;	/* (read/write) */ -    __u8		cd_Pad;		/* reserved */ -    struct ExpansionRom cd_Rom;		/* copy of board's expansion ROM */ -    void		*cd_BoardAddr;	/* where in memory the board was placed */ -    __u32		cd_BoardSize;	/* size of board in bytes */ -    __u16		cd_SlotAddr;	/* which slot number (PRIVATE) */ -    __u16		cd_SlotSize;	/* number of slots (PRIVATE) */ -    void		*cd_Driver;	/* pointer to node of driver */ -    struct ConfigDev	*cd_NextCD;	/* linked list of drivers to config */ -    __u32		cd_Unused[4];	/* for whatever the driver wants */ -} __attribute__ ((packed)); - -#define ZORRO_NUM_AUTO		16 - -#ifdef __KERNEL__ +#include <uapi/linux/zorro.h> +#include <linux/device.h>  #include <linux/init.h>  #include <linux/ioport.h>  #include <linux/mod_devicetable.h> @@ -175,7 +78,23 @@ static inline struct zorro_driver *zorro_dev_driver(const struct zorro_dev *z)  extern unsigned int zorro_num_autocon;	/* # of autoconfig devices found */ -extern struct zorro_dev zorro_autocon[ZORRO_NUM_AUTO]; +extern struct zorro_dev *zorro_autocon; + + +    /* +     * Minimal information about a Zorro device, passed from bootinfo +     * Only available temporarily, i.e. until initmem has been freed! +     */ + +struct zorro_dev_init { +	struct ExpansionRom rom; +	u16 slotaddr; +	u16 slotsize; +	u32 boardaddr; +	u32 boardsize; +}; + +extern struct zorro_dev_init zorro_autocon_init[ZORRO_NUM_AUTO] __initdata;      /* @@ -229,6 +148,4 @@ extern DECLARE_BITMAP(zorro_unused_z2ram, 128);  #define Z2RAM_CHUNKSHIFT	(16) -#endif /* __KERNEL__ */ -  #endif /* _LINUX_ZORRO_H */  |