[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 07/16] target/riscv: read marchid/mimpid in kvm_riscv_init_ma
From: |
Alistair Francis |
Subject: |
Re: [PATCH 07/16] target/riscv: read marchid/mimpid in kvm_riscv_init_machine_ids() |
Date: |
Mon, 12 Jun 2023 14:05:04 +1000 |
On Wed, May 31, 2023 at 5:48 AM Daniel Henrique Barboza
<dbarboza@ventanamicro.com> wrote:
>
> Allow 'marchid' and 'mimpid' to also be initialized in
> kvm_riscv_init_machine_ids().
>
> After this change, the handling of mvendorid/marchid/mimpid for the
> 'host' CPU type will be equal to what we already have for TCG named
> CPUs, i.e. the user is not able to set these values to a different val
> than the one that is already preset.
>
> Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Acked-by: Alistair Francis <alistair.francis@wdc.com>
Alistair
> ---
> target/riscv/kvm.c | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/target/riscv/kvm.c b/target/riscv/kvm.c
> index 37f0f70794..cd2974c663 100644
> --- a/target/riscv/kvm.c
> +++ b/target/riscv/kvm.c
> @@ -378,6 +378,22 @@ static void kvm_riscv_init_machine_ids(RISCVCPU *cpu,
> KVMScratchCPU *kvmcpu)
> if (ret != 0) {
> error_report("Unable to retrieve mvendorid from host, error %d",
> ret);
> }
> +
> + reg.id = kvm_riscv_reg_id(env, KVM_REG_RISCV_CONFIG,
> + KVM_REG_RISCV_CONFIG_REG(marchid));
> + reg.addr = (uint64_t)&cpu->cfg.marchid;
> + ret = ioctl(kvmcpu->cpufd, KVM_GET_ONE_REG, ®);
> + if (ret != 0) {
> + error_report("Unable to retrieve marchid from host, error %d", ret);
> + }
> +
> + reg.id = kvm_riscv_reg_id(env, KVM_REG_RISCV_CONFIG,
> + KVM_REG_RISCV_CONFIG_REG(mimpid));
> + reg.addr = (uint64_t)&cpu->cfg.mimpid;
> + ret = ioctl(kvmcpu->cpufd, KVM_GET_ONE_REG, ®);
> + if (ret != 0) {
> + error_report("Unable to retrieve mimpid from host, error %d", ret);
> + }
> }
>
> void kvm_riscv_init_user_properties(Object *cpu_obj)
> --
> 2.40.1
>
>