[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 4/5] arm: boot: Use cpu_set_pc
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH 4/5] arm: boot: Use cpu_set_pc |
Date: |
Mon, 15 Jun 2015 08:37:55 +0100 |
On 15 June 2015 at 04:48, Peter Crosthwaite <address@hidden> wrote:
> Use cpu_set_pc across the board for setting program counters. This
> removes instances of system level code having to reach into the CPU
> env.
>
> Signed-off-by: Peter Crosthwaite <address@hidden>
> ---
> hw/arm/boot.c | 16 ++++------------
> 1 file changed, 4 insertions(+), 12 deletions(-)
>
> diff --git a/hw/arm/boot.c b/hw/arm/boot.c
> index d036624..324ba6d 100644
> --- a/hw/arm/boot.c
> +++ b/hw/arm/boot.c
> @@ -168,11 +168,9 @@ static void default_write_secondary(ARMCPU *cpu,
> static void default_reset_secondary(ARMCPU *cpu,
> const struct arm_boot_info *info)
> {
> - CPUARMState *env = &cpu->env;
> -
> address_space_stl_notdirty(&address_space_memory, info->smp_bootreg_addr,
> 0, MEMTXATTRS_UNSPECIFIED, NULL);
> - env->regs[15] = info->smp_loader_start;
> + cpu_set_pc(CPU(cpu), info->smp_loader_start, &error_abort);
> }
>
> static inline bool have_dtb(const struct arm_boot_info *info)
> @@ -452,12 +450,10 @@ static void do_cpu_reset(void *opaque)
> if (info) {
> if (!info->is_linux) {
> /* Jump to the entry point. */
> - if (env->aarch64) {
> - env->pc = info->entry;
> - } else {
> - env->regs[15] = info->entry & 0xfffffffe;
> + if (!env->aarch64) {
> env->thumb = info->entry & 1;
> }
> + cpu_set_pc(CPU(cpu), info->entry, &error_abort);
Code like this is really wanting to call a "set PC and Thumb"
function, ie an interworking-aware set-pc.
-- PMM
- [Qemu-devel] [PATCH 0/5] qom-cpu: Wrap set_pc hook and use in bootloaders, Peter Crosthwaite, 2015/06/14
- [Qemu-devel] [PATCH 1/5] qom: cpu: Add wrapper to the set-pc hook, Peter Crosthwaite, 2015/06/14
- [Qemu-devel] [PATCH 2/5] gdbstub: Use cpu_set_pc helper, Peter Crosthwaite, 2015/06/14
- [Qemu-devel] [PATCH 4/5] arm: boot: Use cpu_set_pc, Peter Crosthwaite, 2015/06/14
- Re: [Qemu-devel] [PATCH 4/5] arm: boot: Use cpu_set_pc,
Peter Maydell <=
- [Qemu-devel] [PATCH 3/5] arm: Support thumb in set_pc routines, Peter Crosthwaite, 2015/06/14
- [Qemu-devel] [PATCH 5/5] microblaze: boot: Use cpu_set_pc, Peter Crosthwaite, 2015/06/14