diff options
-rw-r--r-- | sys/dev/pci/pcivar.h | 10 | ||||
-rw-r--r-- | sys/pci/pci_compat.c | 13 | ||||
-rw-r--r-- | sys/pci/pcivar.h | 10 |
3 files changed, 26 insertions, 7 deletions
diff --git a/sys/dev/pci/pcivar.h b/sys/dev/pci/pcivar.h index b164e4e5eb53..f624678e4f32 100644 --- a/sys/dev/pci/pcivar.h +++ b/sys/dev/pci/pcivar.h @@ -26,7 +26,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: pcivar.h,v 1.17 1997/08/21 07:05:54 fsmp Exp $ + * $Id: pcivar.h,v 1.18 1997/08/21 08:31:41 fsmp Exp $ * */ @@ -192,10 +192,16 @@ struct pci_lkm { struct pci_lkm *next; }; +#ifdef __i386__ +typedef u_short pci_port_t; +#else +typedef u_int pci_port_t; +#endif + u_long pci_conf_read (pcici_t tag, u_long reg); void pci_conf_write (pcici_t tag, u_long reg, u_long data); void pci_configure (void); -int pci_map_port (pcici_t tag, u_long reg, u_short* pa); +int pci_map_port (pcici_t tag, u_long reg, pci_port_t* pa); int pci_map_mem (pcici_t tag, u_long reg, vm_offset_t* va, vm_offset_t* pa); int pci_map_int (pcici_t tag, pci_inthand_t *func, void *arg, unsigned *maskptr); int pci_unmap_int (pcici_t tag); diff --git a/sys/pci/pci_compat.c b/sys/pci/pci_compat.c index 8499fcf0115f..9fbf3ee8fdd8 100644 --- a/sys/pci/pci_compat.c +++ b/sys/pci/pci_compat.c @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: pci_compat.c,v 1.6 1997/08/21 08:42:59 fsmp Exp $ + * $Id: pci_compat.c,v 1.7 1998/04/01 21:07:37 tegge Exp $ * */ @@ -56,7 +56,6 @@ static int pci_mapno(pcicfgregs *cfg, int reg) { int map = -1; - if ((reg & 0x03) == 0) { map = (reg -0x10) / 4; if (map < 0 || map >= cfg->nummaps) @@ -106,7 +105,7 @@ pci_conf_write(pcici_t tag, u_long reg, u_long data) pci_cfgwrite(tag, reg, data, 4); } -int pci_map_port(pcici_t cfg, u_long reg, u_short* pa) +int pci_map_port(pcici_t cfg, u_long reg, pci_port_t* pa) { int map; @@ -149,7 +148,15 @@ int pci_map_mem(pcici_t cfg, u_long reg, vm_offset_t* va, vm_offset_t* pa) vm_offset_t vaddr; poffs = paddr - trunc_page(paddr); +#ifdef __i386__ vaddr = (vm_offset_t)pmap_mapdev(paddr-poffs, psize+poffs); +#endif +#ifdef __alpha__ + /* XXX should talk to chipset. + Hardwire pyxis for now */ + vaddr = ALPHA_PHYS_TO_K0SEG(0x8600000000L + + paddr-poffs); +#endif if (vaddr != NULL) { vaddr += poffs; *va = vaddr; diff --git a/sys/pci/pcivar.h b/sys/pci/pcivar.h index b164e4e5eb53..f624678e4f32 100644 --- a/sys/pci/pcivar.h +++ b/sys/pci/pcivar.h @@ -26,7 +26,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: pcivar.h,v 1.17 1997/08/21 07:05:54 fsmp Exp $ + * $Id: pcivar.h,v 1.18 1997/08/21 08:31:41 fsmp Exp $ * */ @@ -192,10 +192,16 @@ struct pci_lkm { struct pci_lkm *next; }; +#ifdef __i386__ +typedef u_short pci_port_t; +#else +typedef u_int pci_port_t; +#endif + u_long pci_conf_read (pcici_t tag, u_long reg); void pci_conf_write (pcici_t tag, u_long reg, u_long data); void pci_configure (void); -int pci_map_port (pcici_t tag, u_long reg, u_short* pa); +int pci_map_port (pcici_t tag, u_long reg, pci_port_t* pa); int pci_map_mem (pcici_t tag, u_long reg, vm_offset_t* va, vm_offset_t* pa); int pci_map_int (pcici_t tag, pci_inthand_t *func, void *arg, unsigned *maskptr); int pci_unmap_int (pcici_t tag); |