diff options
Diffstat (limited to 'hw/xtensa')
-rw-r--r-- | hw/xtensa/pic_cpu.c | 4 | ||||
-rw-r--r-- | hw/xtensa/xtfpga.c | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/hw/xtensa/pic_cpu.c b/hw/xtensa/pic_cpu.c index e2005bd981..18825d19f0 100644 --- a/hw/xtensa/pic_cpu.c +++ b/hw/xtensa/pic_cpu.c @@ -31,14 +31,14 @@ void xtensa_advance_ccount(CPUXtensaState *env, uint32_t d) { - uint32_t old_ccount = env->sregs[CCOUNT]; + uint32_t old_ccount = env->sregs[CCOUNT] + 1; env->sregs[CCOUNT] += d; if (xtensa_option_enabled(env->config, XTENSA_OPTION_TIMER_INTERRUPT)) { int i; for (i = 0; i < env->config->nccompare; ++i) { - if (env->sregs[CCOMPARE + i] - old_ccount <= d) { + if (env->sregs[CCOMPARE + i] - old_ccount < d) { xtensa_timer_irq(env, i, 1); } } diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c index 0100c3115b..e5a6bba783 100644 --- a/hw/xtensa/xtfpga.c +++ b/hw/xtensa/xtfpga.c @@ -328,7 +328,8 @@ static void lx_init(const LxBoardDesc *board, MachineState *machine) } else { hwaddr ep; int is_linux; - success = load_uimage(kernel_filename, &ep, NULL, &is_linux); + success = load_uimage(kernel_filename, &ep, NULL, &is_linux, + translate_phys_addr, cpu); if (success > 0 && is_linux) { entry_point = ep; } else { |