Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
qemu
提交
32e0c826
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
32e0c826
编写于
9月 10, 2009
作者:
G
Gerd Hoffmann
提交者:
malc
9月 10, 2009
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
qdev/isa: convert real time clock
Signed-off-by:
N
Gerd Hoffmann
<
kraxel@redhat.com
>
上级
11d23c35
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
38 addition
and
18 deletion
+38
-18
hw/mc146818rtc.c
hw/mc146818rtc.c
+32
-11
hw/mips_jazz.c
hw/mips_jazz.c
+1
-1
hw/mips_malta.c
hw/mips_malta.c
+1
-1
hw/mips_r4k.c
hw/mips_r4k.c
+1
-1
hw/pc.c
hw/pc.c
+1
-1
hw/pc.h
hw/pc.h
+1
-2
hw/ppc_prep.c
hw/ppc_prep.c
+1
-1
未找到文件。
hw/mc146818rtc.c
浏览文件 @
32e0c826
...
...
@@ -63,10 +63,11 @@
#define REG_C_AF 0x20
struct
RTCState
{
ISADevice
dev
;
uint8_t
cmos_data
[
128
];
uint8_t
cmos_index
;
struct
tm
current_tm
;
int
base_year
;
int
32_t
base_year
;
qemu_irq
irq
;
qemu_irq
sqw_irq
;
int
it_shift
;
...
...
@@ -589,20 +590,19 @@ static void rtc_reset(void *opaque)
#endif
}
RTCState
*
rtc_init_sqw
(
int
base
,
qemu_irq
irq
,
qemu_irq
sqw_irq
,
int
base_year
)
static
int
rtc_initfn
(
ISADevice
*
dev
)
{
RTCState
*
s
;
RTCState
*
s
=
DO_UPCAST
(
RTCState
,
dev
,
dev
);
int
base
=
0x70
;
int
isairq
=
8
;
s
=
qemu_mallocz
(
sizeof
(
RTCState
)
);
isa_init_irq
(
dev
,
&
s
->
irq
,
isairq
);
s
->
irq
=
irq
;
s
->
sqw_irq
=
sqw_irq
;
s
->
cmos_data
[
RTC_REG_A
]
=
0x26
;
s
->
cmos_data
[
RTC_REG_B
]
=
0x02
;
s
->
cmos_data
[
RTC_REG_C
]
=
0x00
;
s
->
cmos_data
[
RTC_REG_D
]
=
0x80
;
s
->
base_year
=
base_year
;
rtc_set_date_from_host
(
s
);
s
->
periodic_timer
=
qemu_new_timer
(
vm_clock
,
...
...
@@ -628,14 +628,35 @@ RTCState *rtc_init_sqw(int base, qemu_irq irq, qemu_irq sqw_irq, int base_year)
register_savevm
(
"mc146818rtc-td"
,
base
,
1
,
rtc_save_td
,
rtc_load_td
,
s
);
#endif
qemu_register_reset
(
rtc_reset
,
s
);
return
s
;
return
0
;
}
RTCState
*
rtc_init
(
int
base
,
qemu_irq
irq
,
int
base_year
)
RTCState
*
rtc_init
(
int
base_year
)
{
ISADevice
*
dev
;
dev
=
isa_create
(
"mc146818rtc"
);
qdev_prop_set_int32
(
&
dev
->
qdev
,
"base_year"
,
base_year
);
qdev_init
(
&
dev
->
qdev
);
return
DO_UPCAST
(
RTCState
,
dev
,
dev
);
}
static
ISADeviceInfo
mc146818rtc_info
=
{
.
qdev
.
name
=
"mc146818rtc"
,
.
qdev
.
size
=
sizeof
(
RTCState
),
.
qdev
.
no_user
=
1
,
.
init
=
rtc_initfn
,
.
qdev
.
props
=
(
Property
[])
{
DEFINE_PROP_INT32
(
"base_year"
,
RTCState
,
base_year
,
1980
),
DEFINE_PROP_END_OF_LIST
(),
}
};
static
void
mc146818rtc_register
(
void
)
{
return
rtc_init_sqw
(
base
,
irq
,
NULL
,
base_year
);
isa_qdev_register
(
&
mc146818rtc_info
);
}
device_init
(
mc146818rtc_register
)
/* Memory mapped interface */
static
uint32_t
cmos_mm_readb
(
void
*
opaque
,
target_phys_addr_t
addr
)
...
...
hw/mips_jazz.c
浏览文件 @
32e0c826
...
...
@@ -241,7 +241,7 @@ void mips_jazz_init (ram_addr_t ram_size,
fdctrl_init_sysbus
(
rc4030
[
1
],
0
,
0x80003000
,
fds
);
/* Real time clock */
rtc_init
(
0x70
,
i8259
[
8
],
1980
);
rtc_init
(
1980
);
s_rtc
=
cpu_register_io_memory
(
rtc_read
,
rtc_write
,
env
);
cpu_register_physical_memory
(
0x80004000
,
0x00001000
,
s_rtc
);
...
...
hw/mips_malta.c
浏览文件 @
32e0c826
...
...
@@ -923,7 +923,7 @@ void mips_malta_init (ram_addr_t ram_size,
/* Super I/O */
isa_dev
=
isa_create_simple
(
"i8042"
);
rtc_state
=
rtc_init
(
0x70
,
isa_reserve_irq
(
8
),
2000
);
rtc_state
=
rtc_init
(
2000
);
serial_init
(
0x3f8
,
isa_reserve_irq
(
4
),
115200
,
serial_hds
[
0
]);
serial_init
(
0x2f8
,
isa_reserve_irq
(
3
),
115200
,
serial_hds
[
1
]);
if
(
parallel_hds
[
0
])
...
...
hw/mips_r4k.c
浏览文件 @
32e0c826
...
...
@@ -244,7 +244,7 @@ void mips_r4k_init (ram_addr_t ram_size,
isa_bus_new
(
NULL
);
isa_bus_irqs
(
i8259
);
rtc_state
=
rtc_init
(
0x70
,
i8259
[
8
],
2000
);
rtc_state
=
rtc_init
(
2000
);
/* Register 64 KB of ISA IO space at 0x14000000 */
isa_mmio_init
(
0x14000000
,
0x00010000
);
...
...
hw/pc.c
浏览文件 @
32e0c826
...
...
@@ -1313,7 +1313,7 @@ static void pc_init1(ram_addr_t ram_size,
}
}
rtc_state
=
rtc_init
(
0x70
,
isa_reserve_irq
(
8
),
2000
);
rtc_state
=
rtc_init
(
2000
);
qemu_register_boot_set
(
pc_boot_set
,
rtc_state
);
...
...
hw/pc.h
浏览文件 @
32e0c826
...
...
@@ -81,8 +81,7 @@ void i8042_mm_init(qemu_irq kbd_irq, qemu_irq mouse_irq,
typedef
struct
RTCState
RTCState
;
RTCState
*
rtc_init
(
int
base
,
qemu_irq
irq
,
int
base_year
);
RTCState
*
rtc_init_sqw
(
int
base
,
qemu_irq
irq
,
qemu_irq
sqw_irq
,
int
base_year
);
RTCState
*
rtc_init
(
int
base_year
);
RTCState
*
rtc_mm_init
(
target_phys_addr_t
base
,
int
it_shift
,
qemu_irq
irq
,
int
base_year
);
void
rtc_set_memory
(
RTCState
*
s
,
int
addr
,
int
val
);
...
...
hw/ppc_prep.c
浏览文件 @
32e0c826
...
...
@@ -680,7 +680,7 @@ static void ppc_prep_init (ram_addr_t ram_size,
pci_vga_init
(
pci_bus
,
0
,
0
);
// openpic = openpic_init(0x00000000, 0xF0000000, 1);
// pit = pit_init(0x40, i8259[0]);
rtc_init
(
0x70
,
i8259
[
8
],
2000
);
rtc_init
(
2000
);
serial_init
(
0x3f8
,
i8259
[
4
],
115200
,
serial_hds
[
0
]);
nb_nics1
=
nb_nics
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录