mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 17:23:56 -06:00
PPC: booke timers
While working on the emulation of the freescale p2010 (e500v2) I realized that there's no implementation of booke's timers features. Currently mpc8544 uses ppc_emb (ppc_emb_timers_init) which is close but not exactly like booke (for example booke uses different SPR). Signed-off-by: Fabien Chouteau <chouteau@adacore.com> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
94135e813c
commit
ddd1055b07
9 changed files with 427 additions and 101 deletions
|
@ -81,7 +81,6 @@ static void mmubooke_create_initial_mapping(CPUState *env,
|
|||
static CPUState *ppc440_init_xilinx(ram_addr_t *ram_size,
|
||||
int do_init,
|
||||
const char *cpu_model,
|
||||
clk_setup_t *cpu_clk, clk_setup_t *tb_clk,
|
||||
uint32_t sysclk)
|
||||
{
|
||||
CPUState *env;
|
||||
|
@ -93,11 +92,7 @@ static CPUState *ppc440_init_xilinx(ram_addr_t *ram_size,
|
|||
exit(1);
|
||||
}
|
||||
|
||||
cpu_clk->cb = NULL; /* We don't care about CPU clock frequency changes */
|
||||
cpu_clk->opaque = env;
|
||||
/* Set time-base frequency to sysclk */
|
||||
tb_clk->cb = ppc_emb_timers_init(env, sysclk, PPC_INTERRUPT_DECR);
|
||||
tb_clk->opaque = env;
|
||||
ppc_booke_timers_init(env, sysclk, 0/* no flags */);
|
||||
|
||||
ppc_dcr_init(env, NULL, NULL);
|
||||
|
||||
|
@ -197,7 +192,6 @@ static void virtex_init(ram_addr_t ram_size,
|
|||
DriveInfo *dinfo;
|
||||
ram_addr_t phys_ram;
|
||||
qemu_irq irq[32], *cpu_irq;
|
||||
clk_setup_t clk_setup[7];
|
||||
int kernel_size;
|
||||
int i;
|
||||
|
||||
|
@ -207,8 +201,7 @@ static void virtex_init(ram_addr_t ram_size,
|
|||
}
|
||||
|
||||
memset(clk_setup, 0, sizeof(clk_setup));
|
||||
env = ppc440_init_xilinx(&ram_size, 1, cpu_model, &clk_setup[0],
|
||||
&clk_setup[1], 400000000);
|
||||
env = ppc440_init_xilinx(&ram_size, 1, cpu_model, 400000000);
|
||||
qemu_register_reset(main_cpu_reset, env);
|
||||
|
||||
phys_ram = qemu_ram_alloc(NULL, "ram", ram_size);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue