diff options
author | peter <peter@FreeBSD.org> | 1999-04-16 21:22:55 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1999-04-16 21:22:55 +0000 |
commit | 087d4857e56f150a8f549600150404f273efb895 (patch) | |
tree | cf4e27432c59d956f4e5784207180115ee8fef9d /sys/alpha/include | |
parent | c5fe612b8411a32a8e6e426fc1a70cba0cca3d31 (diff) | |
download | FreeBSD-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.h | 9 | ||||
-rw-r--r-- | sys/alpha/include/cpuconf.h | 1 | ||||
-rw-r--r-- | sys/alpha/include/cpufunc.h | 36 |
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 */ |