Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
qemu
提交
c177684c
Q
qemu
项目概览
openeuler
/
qemu
通知
10
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Q
qemu
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
c177684c
编写于
11月 23, 2012
作者:
G
Gerd Hoffmann
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
apci: switch piix4 pci hotplug to memory api
Signed-off-by:
N
Gerd Hoffmann
<
kraxel@redhat.com
>
上级
c84649ca
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
29 addition
and
8 deletion
+29
-8
hw/acpi_piix4.c
hw/acpi_piix4.c
+29
-8
未找到文件。
hw/acpi_piix4.c
浏览文件 @
c177684c
...
...
@@ -42,6 +42,9 @@
#define GPE_BASE 0xafe0
#define GPE_LEN 4
#define PCI_HOTPLUG_ADDR 0xae00
#define PCI_HOTPLUG_SIZE 0x000f
#define PCI_UP_BASE 0xae00
#define PCI_DOWN_BASE 0xae04
#define PCI_EJ_BASE 0xae08
...
...
@@ -58,6 +61,7 @@ typedef struct PIIX4PMState {
PCIDevice
dev
;
MemoryRegion
io
;
MemoryRegion
io_gpe
;
MemoryRegion
io_pci
;
ACPIREGS
ar
;
APMState
apm
;
...
...
@@ -574,6 +578,27 @@ static uint32_t pcirmv_read(void *opaque, uint32_t addr)
return
s
->
pci0_hotplug_enable
;
}
static
const
MemoryRegionOps
piix4_pci_ops
=
{
.
old_portio
=
(
MemoryRegionPortio
[])
{
{
.
offset
=
PCI_UP_BASE
-
PCI_HOTPLUG_ADDR
,
.
len
=
4
,
.
size
=
4
,
.
read
=
pci_up_read
,
},{
.
offset
=
PCI_DOWN_BASE
-
PCI_HOTPLUG_ADDR
,
.
len
=
4
,
.
size
=
4
,
.
read
=
pci_down_read
,
},{
.
offset
=
PCI_EJ_BASE
-
PCI_HOTPLUG_ADDR
,
.
len
=
4
,
.
size
=
4
,
.
read
=
pci_features_read
,
.
write
=
pciej_write
,
},{
.
offset
=
PCI_RMV_BASE
-
PCI_HOTPLUG_ADDR
,
.
len
=
4
,
.
size
=
4
,
.
read
=
pcirmv_read
,
},
PORTIO_END_OF_LIST
()
},
.
endianness
=
DEVICE_LITTLE_ENDIAN
,
};
static
int
piix4_device_hotplug
(
DeviceState
*
qdev
,
PCIDevice
*
dev
,
PCIHotplugState
state
);
...
...
@@ -583,14 +608,10 @@ static void piix4_acpi_system_hot_add_init(PCIBus *bus, PIIX4PMState *s)
GPE_LEN
);
memory_region_add_subregion
(
get_system_io
(),
GPE_BASE
,
&
s
->
io_gpe
);
register_ioport_read
(
PCI_UP_BASE
,
4
,
4
,
pci_up_read
,
s
);
register_ioport_read
(
PCI_DOWN_BASE
,
4
,
4
,
pci_down_read
,
s
);
register_ioport_write
(
PCI_EJ_BASE
,
4
,
4
,
pciej_write
,
s
);
register_ioport_read
(
PCI_EJ_BASE
,
4
,
4
,
pci_features_read
,
s
);
register_ioport_read
(
PCI_RMV_BASE
,
4
,
4
,
pcirmv_read
,
s
);
memory_region_init_io
(
&
s
->
io_pci
,
&
piix4_pci_ops
,
s
,
"apci-pci-hotplug"
,
PCI_HOTPLUG_SIZE
);
memory_region_add_subregion
(
get_system_io
(),
PCI_HOTPLUG_ADDR
,
&
s
->
io_pci
);
pci_bus_hotplug
(
bus
,
piix4_device_hotplug
,
&
s
->
dev
.
qdev
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录