Allow chipset drivers to specify the direct-mapped DMA window's mask in

preparation for tsunami support.  Previous chipsets' direct-mapped DMA
mask was always 1024*1024*1024.  The Tsunami chipset needs it to be
2*1024*1024*1024

These changes should not affect the i386 port

Reviewed by:	Doug Rabson <dfr@nlsystems.com>
This commit is contained in:
Andrew Gallatin 1999-05-26 23:01:57 +00:00
parent 430f792e8c
commit 50b8d1cce4
10 changed files with 33 additions and 28 deletions

View File

@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id$
* $Id: busdma_machdep.c,v 1.1 1998/09/16 08:20:45 dfr Exp $
*/
#include <sys/param.h>
@ -356,6 +356,9 @@ bus_dmamem_free(bus_dma_tag_t dmat, void *vaddr, bus_dmamap_t map)
/*
* Map the buffer buf into bus space using the dmamap map.
*/
vm_offset_t alpha_XXX_dmamap_or = 1024UL*1024UL*1024UL; /*XXX */
int
bus_dmamap_load(bus_dma_tag_t dmat, bus_dmamap_t map, void *buf,
bus_size_t buflen, bus_dmamap_callback_t *callback,
@ -439,7 +442,7 @@ bus_dmamap_load(bus_dma_tag_t dmat, bus_dmamap_t map, void *buf,
}
if (sg->ds_len == 0) {
sg->ds_addr = paddr + 1*1024*1024*1024; /* XXX */
sg->ds_addr = paddr + alpha_XXX_dmamap_or;
sg->ds_len = size;
} else if (paddr == nextpaddr) {
sg->ds_len += size;
@ -449,7 +452,7 @@ bus_dmamap_load(bus_dma_tag_t dmat, bus_dmamap_t map, void *buf,
seg++;
if (seg > dmat->nsegments)
break;
sg->ds_addr = paddr + 1*1024*1024*1024; /* XXX */
sg->ds_addr = paddr + alpha_XXX_dmamap_or;
sg->ds_len = size;
}
vaddr += size;

View File

@ -43,7 +43,7 @@
* from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90
* from: @(#)pmap.h 7.4 (Berkeley) 5/12/91
* from: i386 pmap.h,v 1.54 1997/11/20 19:30:35 bde Exp
* $Id: pmap.h,v 1.2 1998/06/10 10:55:16 dfr Exp $
* $Id: pmap.h,v 1.3 1998/08/23 16:05:55 dfr Exp $
*/
#ifndef _MACHINE_PMAP_H_
@ -144,6 +144,14 @@ pmap_kextract(vm_offset_t va)
#define vtophys(va) pmap_kextract(((vm_offset_t) (va)))
extern vm_offset_t alpha_XXX_dmamap_or;
static __inline vm_offset_t
alpha_XXX_dmamap(vm_offset_t va)
{
return (pmap_kextract(va) | alpha_XXX_dmamap_or);
}
#endif /* KERNEL */
/*

View File

@ -25,7 +25,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: ata-dma.c,v 1.6 1999/04/18 20:48:15 sos Exp $
* $Id: ata-dma.c,v 1.7 1999/05/17 15:58:45 sos Exp $
*/
#include "ata.h"
@ -47,7 +47,7 @@
#ifdef __alpha__
#undef vtophys
#define vtophys(va) (pmap_kextract(((vm_offset_t) (va))) + 1*1024*1024*1024)
#define vtophys(va) alpha_XXX_dmamap((vm_offset_t)va)
#endif
/* misc defines */

View File

@ -29,7 +29,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: if_tireg.h,v 1.44 1999/05/03 16:56:07 wpaul Exp $
* $Id: if_tireg.h,v 1.2 1999/05/03 17:44:52 wpaul Exp $
*/
/*
@ -1184,7 +1184,6 @@ struct ti_softc {
#ifdef __alpha__
#undef vtophys
#define vtophys(va) (pmap_kextract(((vm_offset_t) (va))) \
+ 1*1024*1024*1024)
#define vtophys(va) alpha_XXX_dmamap((vm_offset_t)va)
#endif

View File

@ -29,7 +29,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: if_alreg.h,v 1.4 1999/05/21 00:07:34 wpaul Exp $
* $Id: if_alreg.h,v 1.1 1999/05/21 04:37:24 wpaul Exp $
*/
/*
@ -702,6 +702,5 @@ struct al_softc {
#ifdef __alpha__
#undef vtophys
#define vtophys(va) (pmap_kextract(((vm_offset_t) (va))) \
+ 1*1024*1024*1024)
#define vtophys(va) alpha_XXX_dmamap((vm_offset_t)va)
#endif

View File

@ -29,7 +29,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: if_mxreg.h,v 1.17 1999/05/06 15:04:00 wpaul Exp $
* $Id: if_mxreg.h,v 1.5 1999/05/06 15:32:46 wpaul Exp $
*/
/*
@ -709,6 +709,5 @@ struct mx_softc {
#ifdef __alpha__
#undef vtophys
#define vtophys(va) (pmap_kextract(((vm_offset_t) (va))) \
+ 1*1024*1024*1024)
#define vtophys(va) alpha_XXX_dmamap((vm_offset_t)va)
#endif

View File

@ -29,7 +29,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: if_pnreg.h,v 1.10 1999/04/14 19:40:08 wpaul Exp $
* $Id: if_pnreg.h,v 1.11 1999/05/06 15:32:47 wpaul Exp $
*/
/*
@ -707,6 +707,5 @@ struct pn_softc {
#ifdef __alpha__
#undef vtophys
#define vtophys(va) (pmap_kextract(((vm_offset_t) (va))) \
+ 1*1024*1024*1024)
#define vtophys(va) alpha_XXX_dmamap((vm_offset_t)va)
#endif

View File

@ -29,7 +29,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: if_tireg.h,v 1.44 1999/05/03 16:56:07 wpaul Exp $
* $Id: if_tireg.h,v 1.2 1999/05/03 17:44:52 wpaul Exp $
*/
/*
@ -1184,7 +1184,6 @@ struct ti_softc {
#ifdef __alpha__
#undef vtophys
#define vtophys(va) (pmap_kextract(((vm_offset_t) (va))) \
+ 1*1024*1024*1024)
#define vtophys(va) alpha_XXX_dmamap((vm_offset_t)va)
#endif

View File

@ -29,7 +29,7 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: if_xlreg.h,v 1.28 1999/05/05 15:01:27 wpaul Exp $
* $Id: if_xlreg.h,v 1.15 1999/05/05 17:05:07 wpaul Exp $
*/
#define XL_EE_READ 0x0080 /* read, 5 bit address */
@ -812,8 +812,8 @@ struct xl_stats {
#ifdef __alpha__
#undef vtophys
#define vtophys(va) (pmap_kextract(((vm_offset_t) (va))) \
+ 1*1024*1024*1024)
#define vtophys(va) alpha_XXX_dmamap((vm_offset_t)va)
#endif
#ifndef IFM_10_FL

View File

@ -1,6 +1,6 @@
/**************************************************************************
**
** $Id: ncr.c,v 1.146 1999/05/09 22:44:42 se Exp $
** $Id: ncr.c,v 1.147 1999/05/21 22:02:02 ken Exp $
**
** Device driver for the NCR 53C8XX PCI-SCSI-Controller Family.
**
@ -275,8 +275,7 @@
#ifdef __alpha__
/* XXX */
#undef vtophys
#define vtophys(va) (pmap_kextract(((vm_offset_t) (va))) \
+ 1*1024*1024*1024)
#define vtophys(va) alpha_XXX_dmamap((vm_offset_t)va)
#endif
#ifdef NCR_IOMAPPED
@ -1361,7 +1360,7 @@ static void ncr_attach (pcici_t tag, int unit);
#if !defined(lint)
static const char ident[] =
"\n$Id: ncr.c,v 1.146 1999/05/09 22:44:42 se Exp $\n";
"\n$Id: ncr.c,v 1.147 1999/05/21 22:02:02 ken Exp $\n";
#endif
static const u_long ncr_version = NCR_VERSION * 11