summaryrefslogtreecommitdiffstats
path: root/sys/alpha/include
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1999-04-16 21:22:55 +0000
committerpeter <peter@FreeBSD.org>1999-04-16 21:22:55 +0000
commit087d4857e56f150a8f549600150404f273efb895 (patch)
treecf4e27432c59d956f4e5784207180115ee8fef9d /sys/alpha/include
parentc5fe612b8411a32a8e6e426fc1a70cba0cca3d31 (diff)
downloadFreeBSD-src-087d4857e56f150a8f549600150404f273efb895.zip
FreeBSD-src-087d4857e56f150a8f549600150404f273efb895.tar.gz
Bring the 'new-bus' to the i386. This extensively changes the way the
i386 platform boots, it is no longer ISA-centric, and is fully dynamic. Most old drivers compile and run without modification via 'compatability shims' to enable a smoother transition. eisa, isapnp and pccard* are not yet using the new resource manager. Once fully converted, all drivers will be loadable, including PCI and ISA. (Some other changes appear to have snuck in, including a port of Soren's ATA driver to the Alpha. Soren, back this out if you need to.) This is a checkpoint of work-in-progress, but is quite functional. The bulk of the work was done over the last few years by Doug Rabson and Garrett Wollman. Approved by: core
Diffstat (limited to 'sys/alpha/include')
-rw-r--r--sys/alpha/include/chipset.h9
-rw-r--r--sys/alpha/include/cpuconf.h1
-rw-r--r--sys/alpha/include/cpufunc.h36
3 files changed, 37 insertions, 9 deletions
diff --git a/sys/alpha/include/chipset.h b/sys/alpha/include/chipset.h
index f7a61be..66f59bb 100644
--- a/sys/alpha/include/chipset.h
+++ b/sys/alpha/include/chipset.h
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: chipset.h,v 1.5 1998/10/06 14:18:39 dfr Exp $
+ * $Id: chipset.h,v 1.6 1998/11/15 18:25:16 dfr Exp $
*/
#ifndef _MACHINE_CHIPSET_H_
@@ -100,13 +100,6 @@ typedef struct alpha_chipset {
*/
alpha_chipset_read_hae_t* read_hae;
alpha_chipset_write_hae_t* write_hae;
-
- /*
- * PCI interrupt device.
- * (XXX hack until I change pci code to use new
- * device framework.)
- */
- void* intrdev;
} alpha_chipset_t;
extern alpha_chipset_t chipset;
diff --git a/sys/alpha/include/cpuconf.h b/sys/alpha/include/cpuconf.h
index 6bddc82..1965a5a 100644
--- a/sys/alpha/include/cpuconf.h
+++ b/sys/alpha/include/cpuconf.h
@@ -73,6 +73,7 @@ extern struct platform {
void (*pci_intr_map) __P((void *));
void (*pci_intr_disable) __P((int));
void (*pci_intr_enable) __P((int));
+ int (*pci_setup_ide_intr) __P((int chan, void (*fn)(void*), void *arg));
} platform;
/*
diff --git a/sys/alpha/include/cpufunc.h b/sys/alpha/include/cpufunc.h
index bc4ffe3..8326970 100644
--- a/sys/alpha/include/cpufunc.h
+++ b/sys/alpha/include/cpufunc.h
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: cpufunc.h,v 1.2 1998/07/22 08:25:39 dfr Exp $
+ * $Id: cpufunc.h,v 1.3 1998/08/17 08:21:31 dfr Exp $
*/
#ifndef _MACHINE_CPUFUNC_H_
@@ -59,11 +59,45 @@ breakpoint(void)
#define writel(pa,v) chipset.writel(pa,v)
/*
+ * Bulk i/o (for IDE driver).
+ */
+static __inline void insw(u_int32_t port, void *buffer, size_t count)
+{
+ u_int16_t *p = (u_int16_t *) buffer;
+ while (count--)
+ *p++ = inw(port);
+}
+
+static __inline void insl(u_int32_t port, void *buffer, size_t count)
+{
+ u_int32_t *p = (u_int32_t *) buffer;
+ while (count--)
+ *p++ = inl(port);
+}
+
+static __inline void outsw(u_int32_t port, const void *buffer, size_t count)
+{
+ const u_int16_t *p = (const u_int16_t *) buffer;
+ while (count--)
+ outw(port, *p++);
+}
+
+static __inline void outsl(u_int32_t port, const void *buffer, size_t count)
+{
+ const u_int32_t *p = (const u_int32_t *) buffer;
+ while (count--)
+ outl(port, *p++);
+}
+
+/*
* String version of IO memory access ops:
*/
extern void memcpy_fromio(void *, u_int32_t, size_t);
extern void memcpy_toio(u_int32_t, void *, size_t);
+extern void memcpy_io(u_int32_t, u_int32_t, size_t);
extern void memset_io(u_int32_t, int, size_t);
+extern void memsetw(void *, int, size_t);
+extern void memsetw_io(u_int32_t, int, size_t);
#endif /* KERNEL */
OpenPOWER on IntegriCloud