gart.h 1.3 KB
Newer Older
J
Joerg Roedel 已提交
1 2 3 4 5 6 7
#ifndef _ASM_X8664_IOMMU_H
#define _ASM_X8664_IOMMU_H 1

extern void pci_iommu_shutdown(void);
extern void no_iommu_init(void);
extern int force_iommu, no_iommu;
extern int iommu_detected;
8
extern int agp_amd64_init(void);
9
#ifdef CONFIG_GART_IOMMU
J
Joerg Roedel 已提交
10 11 12
extern void gart_iommu_init(void);
extern void gart_iommu_shutdown(void);
extern void __init gart_parse_options(char *);
Y
Yinghai Lu 已提交
13
extern void early_gart_iommu_check(void);
14
extern void gart_iommu_hole_init(void);
J
Joerg Roedel 已提交
15 16
extern int fallback_aper_order;
extern int fallback_aper_force;
17 18 19
extern int gart_iommu_aperture;
extern int gart_iommu_aperture_allowed;
extern int gart_iommu_aperture_disabled;
J
Joerg Roedel 已提交
20 21
extern int fix_aperture;
#else
22 23
#define gart_iommu_aperture 0
#define gart_iommu_aperture_allowed 0
J
Joerg Roedel 已提交
24

Y
Yinghai Lu 已提交
25 26 27 28
static inline void early_gart_iommu_check(void)
{
}

J
Joerg Roedel 已提交
29 30 31 32 33 34
static inline void gart_iommu_shutdown(void)
{
}

#endif

35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
/* PTE bits. */
#define GPTE_VALID	1
#define GPTE_COHERENT	2

/* Aperture control register bits. */
#define GARTEN		(1<<0)
#define DISGARTCPU	(1<<4)
#define DISGARTIO	(1<<5)

/* GART cache control register bits. */
#define INVGART		(1<<0)
#define GARTPTEERR	(1<<1)

/* K8 On-cpu GART registers */
#define AMD64_GARTAPERTURECTL	0x90
#define AMD64_GARTAPERTUREBASE	0x94
#define AMD64_GARTTABLEBASE	0x98
#define AMD64_GARTCACHECTL	0x9c
#define AMD64_GARTEN		(1<<0)

J
Joerg Roedel 已提交
55
#endif