Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
3e5621ed
K
Kernel
项目概览
openeuler
/
Kernel
接近 2 年 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
3e5621ed
编写于
12月 23, 2008
作者:
I
Ingo Molnar
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'x86/iommu' into x86/core
上级
be9a1d3c
181de82e
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
42 addition
and
48 deletion
+42
-48
arch/x86/Kconfig
arch/x86/Kconfig
+1
-1
arch/x86/include/asm/dma-mapping.h
arch/x86/include/asm/dma-mapping.h
+0
-2
arch/x86/include/asm/gart.h
arch/x86/include/asm/gart.h
+33
-0
arch/x86/include/asm/io.h
arch/x86/include/asm/io.h
+0
-2
arch/x86/include/asm/io_64.h
arch/x86/include/asm/io_64.h
+0
-2
arch/x86/include/asm/iommu.h
arch/x86/include/asm/iommu.h
+0
-33
arch/x86/kernel/amd_iommu.c
arch/x86/kernel/amd_iommu.c
+1
-0
arch/x86/kernel/amd_iommu_init.c
arch/x86/kernel/amd_iommu_init.c
+1
-0
arch/x86/kernel/aperture_64.c
arch/x86/kernel/aperture_64.c
+3
-2
arch/x86/kernel/early-quirks.c
arch/x86/kernel/early-quirks.c
+1
-0
arch/x86/kernel/pci-dma.c
arch/x86/kernel/pci-dma.c
+1
-6
arch/x86/kernel/setup.c
arch/x86/kernel/setup.c
+1
-0
未找到文件。
arch/x86/Kconfig
浏览文件 @
3e5621ed
...
...
@@ -563,7 +563,7 @@ config AMD_IOMMU
# need this always selected by IOMMU for the VIA workaround
config SWIOTLB
bool
def_bool y if X86_64
help
Support for software bounce buffers used on x86-64 systems
which don't have a hardware IOMMU (e.g. the current generation
...
...
arch/x86/include/asm/dma-mapping.h
浏览文件 @
3e5621ed
...
...
@@ -71,12 +71,10 @@ static inline struct dma_mapping_ops *get_dma_ops(struct device *dev)
/* Make sure we keep the same behaviour */
static
inline
int
dma_mapping_error
(
struct
device
*
dev
,
dma_addr_t
dma_addr
)
{
#ifdef CONFIG_X86_64
struct
dma_mapping_ops
*
ops
=
get_dma_ops
(
dev
);
if
(
ops
->
mapping_error
)
return
ops
->
mapping_error
(
dev
,
dma_addr
);
#endif
return
(
dma_addr
==
bad_dma_address
);
}
...
...
arch/x86/include/asm/gart.h
浏览文件 @
3e5621ed
...
...
@@ -29,6 +29,39 @@ extern int fix_aperture;
#define AMD64_GARTCACHECTL 0x9c
#define AMD64_GARTEN (1<<0)
#ifdef CONFIG_GART_IOMMU
extern
int
gart_iommu_aperture
;
extern
int
gart_iommu_aperture_allowed
;
extern
int
gart_iommu_aperture_disabled
;
extern
void
early_gart_iommu_check
(
void
);
extern
void
gart_iommu_init
(
void
);
extern
void
gart_iommu_shutdown
(
void
);
extern
void
__init
gart_parse_options
(
char
*
);
extern
void
gart_iommu_hole_init
(
void
);
#else
#define gart_iommu_aperture 0
#define gart_iommu_aperture_allowed 0
#define gart_iommu_aperture_disabled 1
static
inline
void
early_gart_iommu_check
(
void
)
{
}
static
inline
void
gart_iommu_init
(
void
)
{
}
static
inline
void
gart_iommu_shutdown
(
void
)
{
}
static
inline
void
gart_parse_options
(
char
*
options
)
{
}
static
inline
void
gart_iommu_hole_init
(
void
)
{
}
#endif
extern
int
agp_amd64_init
(
void
);
static
inline
void
enable_gart_translation
(
struct
pci_dev
*
dev
,
u64
addr
)
...
...
arch/x86/include/asm/io.h
浏览文件 @
3e5621ed
...
...
@@ -80,8 +80,6 @@ static inline void writeq(__u64 val, volatile void __iomem *addr)
#define readq readq
#define writeq writeq
extern
int
iommu_bio_merge
;
#ifdef CONFIG_X86_32
# include "io_32.h"
#else
...
...
arch/x86/include/asm/io_64.h
浏览文件 @
3e5621ed
...
...
@@ -232,8 +232,6 @@ void memset_io(volatile void __iomem *a, int b, size_t c);
#define flush_write_buffers()
#define BIO_VMERGE_BOUNDARY iommu_bio_merge
/*
* Convert a virtual cached pointer to an uncached pointer
*/
...
...
arch/x86/include/asm/iommu.h
浏览文件 @
3e5621ed
...
...
@@ -12,37 +12,4 @@ extern unsigned long iommu_nr_pages(unsigned long addr, unsigned long len);
/* 10 seconds */
#define DMAR_OPERATION_TIMEOUT ((cycles_t) tsc_khz*10*1000)
#ifdef CONFIG_GART_IOMMU
extern
int
gart_iommu_aperture
;
extern
int
gart_iommu_aperture_allowed
;
extern
int
gart_iommu_aperture_disabled
;
extern
void
early_gart_iommu_check
(
void
);
extern
void
gart_iommu_init
(
void
);
extern
void
gart_iommu_shutdown
(
void
);
extern
void
__init
gart_parse_options
(
char
*
);
extern
void
gart_iommu_hole_init
(
void
);
#else
#define gart_iommu_aperture 0
#define gart_iommu_aperture_allowed 0
#define gart_iommu_aperture_disabled 1
static
inline
void
early_gart_iommu_check
(
void
)
{
}
static
inline
void
gart_iommu_init
(
void
)
{
}
static
inline
void
gart_iommu_shutdown
(
void
)
{
}
static
inline
void
gart_parse_options
(
char
*
options
)
{
}
static
inline
void
gart_iommu_hole_init
(
void
)
{
}
#endif
#endif
/* _ASM_X86_IOMMU_H */
arch/x86/kernel/amd_iommu.c
浏览文件 @
3e5621ed
...
...
@@ -24,6 +24,7 @@
#include <linux/iommu-helper.h>
#include <asm/proto.h>
#include <asm/iommu.h>
#include <asm/gart.h>
#include <asm/amd_iommu_types.h>
#include <asm/amd_iommu.h>
...
...
arch/x86/kernel/amd_iommu_init.c
浏览文件 @
3e5621ed
...
...
@@ -28,6 +28,7 @@
#include <asm/amd_iommu_types.h>
#include <asm/amd_iommu.h>
#include <asm/iommu.h>
#include <asm/gart.h>
/*
* definitions for the ACPI scanning code
...
...
arch/x86/kernel/aperture_64.c
浏览文件 @
3e5621ed
/*
* Firmware replacement code.
*
* Work around broken BIOSes that don't set an aperture or only set the
* aperture in the AGP bridge.
* Work around broken BIOSes that don't set an aperture, only set the
* aperture in the AGP bridge, or set too small aperture.
*
* If all fails map the aperture over some low memory. This is cheaper than
* doing bounce buffering. The memory is lost. This is done at early boot
* because only the bootmem allocator can allocate 32+MB.
...
...
arch/x86/kernel/early-quirks.c
浏览文件 @
3e5621ed
...
...
@@ -17,6 +17,7 @@
#include <asm/io_apic.h>
#include <asm/apic.h>
#include <asm/iommu.h>
#include <asm/gart.h>
static
void
__init
fix_hypertransport_config
(
int
num
,
int
slot
,
int
func
)
{
...
...
arch/x86/kernel/pci-dma.c
浏览文件 @
3e5621ed
...
...
@@ -6,6 +6,7 @@
#include <asm/proto.h>
#include <asm/dma.h>
#include <asm/iommu.h>
#include <asm/gart.h>
#include <asm/calgary.h>
#include <asm/amd_iommu.h>
...
...
@@ -30,11 +31,6 @@ int no_iommu __read_mostly;
/* Set this to 1 if there is a HW IOMMU in the system */
int
iommu_detected
__read_mostly
=
0
;
/* This tells the BIO block layer to assume merging. Default to off
because we cannot guarantee merging later. */
int
iommu_bio_merge
__read_mostly
=
0
;
EXPORT_SYMBOL
(
iommu_bio_merge
);
dma_addr_t
bad_dma_address
__read_mostly
=
0
;
EXPORT_SYMBOL
(
bad_dma_address
);
...
...
@@ -188,7 +184,6 @@ static __init int iommu_setup(char *p)
}
if
(
!
strncmp
(
p
,
"biomerge"
,
8
))
{
iommu_bio_merge
=
4096
;
iommu_merge
=
1
;
force_iommu
=
1
;
}
...
...
arch/x86/kernel/setup.c
浏览文件 @
3e5621ed
...
...
@@ -93,6 +93,7 @@
#include <asm/desc.h>
#include <asm/dma.h>
#include <asm/iommu.h>
#include <asm/gart.h>
#include <asm/mmu_context.h>
#include <asm/proto.h>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录