NetBSD-5.0.2/sys/dev/podulebus/secreg.h

/* $NetBSD: secreg.h,v 1.1 2006/10/01 12:39:35 bjh21 Exp $ */

/*
 * Ben Harris 2006
 *
 * This file is in the public domain.
 */

/*
 * Register definitions for Acorn SCSI expansion cards (AKA30, AKA31, AKA32)
 */

/*
 * Offsets are in bus_space units (words)
 */

/* Podule "fast" space */
#define SEC_ROM		0x000
#define SEC_ISR		0x800 /* Interrupt status (read-only) */
#define SEC_ISR_SBIC	0x08  /* Interrupt from WD33C93A SBIC */
#define SEC_ISR_DMAC	0x02  /* TC uPD71071 DMAC */
#define SEC_ISR_IRQ	0x01  /* OR of the above */
#define SEC_CLRINT	0x800 /* Clear TC interrupt (write-only) */
#define SEC_MPR		0xc00 /* Memory page register */
#define SEC_MPR_UR	0x80  /* User reset */
#define SEC_MPR_IE	0x40  /* Interrupts enabled */
#define SEC_MPR_PAGE	0x3f  /* EPROM/SRAM page address */

/* Module space */
#define SEC_SRAM	0x000
#define SEC_SBIC	0x800
#define SEC_DMAC	0xc00

/* The address lines of the DMAC are permuted. */
#define DMAC(addr) ((addr) >> 1 | ((addr) & 1) << 7)

#define SEC_CLKFREQ	80	/* Clock speed in 100 kHz */
#define SEC_NPAGES	16
#define SEC_PAGESIZE	4096
#define SEC_MEMSIZE	(SEC_PAGESIZE * SEC_NPAGES)