diff options
Diffstat (limited to 'target-mips')
-rw-r--r-- | target-mips/cpu.h | 8 | ||||
-rw-r--r-- | target-mips/translate.c | 10 |
2 files changed, 16 insertions, 2 deletions
diff --git a/target-mips/cpu.h b/target-mips/cpu.h index 3ade7bc..3ac2131 100644 --- a/target-mips/cpu.h +++ b/target-mips/cpu.h @@ -182,7 +182,6 @@ struct CPUMIPSState { uint32_t CP0_ErrorEPC; uint32_t CP0_DESAVE; /* Qemu */ - struct QEMUTimer *timer; /* Internal timer */ int interrupt_request; jmp_buf jmp_env; int exception_index; @@ -213,6 +212,13 @@ struct CPUMIPSState { int halted; /* TRUE if the CPU is in suspend state */ CPU_COMMON + + int ram_size; + const char *kernel_filename; + const char *kernel_cmdline; + const char *initrd_filename; + + struct QEMUTimer *timer; /* Internal timer */ }; #include "cpu-all.h" diff --git a/target-mips/translate.c b/target-mips/translate.c index 0d62418..07725b3 100644 --- a/target-mips/translate.c +++ b/target-mips/translate.c @@ -2425,7 +2425,16 @@ CPUMIPSState *cpu_mips_init (void) if (!env) return NULL; cpu_exec_init(env); + cpu_reset(env); + return env; +} + +void cpu_reset (CPUMIPSState *env) +{ + memset(env, 0, offsetof(CPUMIPSState, breakpoints)); + tlb_flush(env, 1); + /* Minimal init */ env->PC = 0xBFC00000; #if defined (MIPS_USES_R4K_TLB) @@ -2456,5 +2465,4 @@ CPUMIPSState *cpu_mips_init (void) #ifdef MIPS_USES_FPU env->fcr0 = MIPS_FCR0; #endif - return env; } |