[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 1/4] hw/mips: Add a bootloader helper
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH v3 1/4] hw/mips: Add a bootloader helper |
Date: |
Sun, 21 Feb 2021 14:16:15 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.0 |
On 1/27/21 7:54 AM, Jiaxun Yang wrote:
> Add a bootloader helper to generate simple bootloaders for kernel.
> It can help us reduce inline hex hack and also keep MIPS release 6
> compatibility easier.
>
> Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
> ---
> include/hw/mips/bootloader.h | 49 +++++++++++
> hw/mips/bootloader.c | 164 +++++++++++++++++++++++++++++++++++
> hw/mips/meson.build | 2 +-
> 3 files changed, 214 insertions(+), 1 deletion(-)
> create mode 100644 include/hw/mips/bootloader.h
> create mode 100644 hw/mips/bootloader.c
>
> diff --git a/include/hw/mips/bootloader.h b/include/hw/mips/bootloader.h
> new file mode 100644
> index 0000000000..2a0e1a11c9
> --- /dev/null
> +++ b/include/hw/mips/bootloader.h
> @@ -0,0 +1,49 @@
> +#ifndef HW_MIPS_BOOTLOADER_H
> +#define HW_MIPS_BOOTLOADER_H
> +
> +#include "exec/cpu-defs.h"
> +
> +void bl_gen_jump_to(uint32_t **p, target_ulong jump_addr);
> +void bl_gen_jump_kernel(uint32_t **p, target_ulong sp, target_ulong a0,
> + target_ulong a1, target_ulong a2, target_ulong a3,
> + target_ulong kernel_addr);
> +void bl_gen_write_ulong(uint32_t **p, target_ulong val, target_ulong addr);
> +void bl_gen_write_u32(uint32_t **p, uint32_t val, target_ulong addr);
> +void bl_gen_write_u64(uint32_t **p, uint64_t val, target_ulong addr);
Again, if you don't mind, I inverted bl_gen_write() arguments:
void bl_gen_write_TYPE(uint32_t **p, target_ulong addr, TYPE val);
> +typedef enum bl_reg {
> + BL_REG_ZERO = 0,
> + BL_REG_AT = 1,
> + BL_REG_V0 = 2,
> + BL_REG_V1 = 3,
> + BL_REG_A0 = 4,
And moved the enum declaration to the source file.