Message ID | 20230824221440.484675-7-dbarboza@ventanamicro.com |
---|---|
State | New |
Headers | show |
Series | riscv: 'max' CPU, detect user choice in TCG | expand |
On Thu, Aug 24, 2023 at 07:14:26PM -0300, Daniel Henrique Barboza wrote: > Our goal is to make riscv_cpu_extensions[] hold only ratified, > non-vendor extensions. > > Create a new riscv_cpu_vendor_exts[] array for them, changing > riscv_cpu_add_user_properties() and riscv_cpu_add_kvm_properties() > accordingly. > > Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> > Reviewed-by: Alistair Francis <alistair.francis@wdc.com> > --- > target/riscv/cpu.c | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c > index 78eb2ac6bd..668522db01 100644 > --- a/target/riscv/cpu.c > +++ b/target/riscv/cpu.c > @@ -1860,7 +1860,10 @@ static Property riscv_cpu_extensions[] = { > DEFINE_PROP_BOOL("zcmp", RISCVCPU, cfg.ext_zcmp, false), > DEFINE_PROP_BOOL("zcmt", RISCVCPU, cfg.ext_zcmt, false), > > - /* Vendor-specific custom extensions */ > + DEFINE_PROP_END_OF_LIST(), > +}; > + > +static Property riscv_cpu_vendor_exts[] = { > DEFINE_PROP_BOOL("xtheadba", RISCVCPU, cfg.ext_xtheadba, false), > DEFINE_PROP_BOOL("xtheadbb", RISCVCPU, cfg.ext_xtheadbb, false), > DEFINE_PROP_BOOL("xtheadbs", RISCVCPU, cfg.ext_xtheadbs, false), > @@ -1973,6 +1976,10 @@ static void riscv_cpu_add_kvm_properties(Object *obj) > riscv_cpu_add_kvm_unavail_prop(obj, prop->name); > } > > + for (prop = riscv_cpu_vendor_exts; prop && prop->name; prop++) { > + riscv_cpu_add_kvm_unavail_prop(obj, prop->name); > + } > + > for (prop = riscv_cpu_experimental_exts; prop && prop->name; prop++) { > riscv_cpu_add_kvm_unavail_prop(obj, prop->name); > } > @@ -2017,6 +2024,10 @@ static void riscv_cpu_add_user_properties(Object *obj) > qdev_property_add_static(dev, prop); > } > > + for (prop = riscv_cpu_vendor_exts; prop && prop->name; prop++) { > + qdev_property_add_static(dev, prop); > + } > + > for (prop = riscv_cpu_experimental_exts; prop && prop->name; prop++) { > qdev_property_add_static(dev, prop); > } > -- > 2.41.0 > > Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c index 78eb2ac6bd..668522db01 100644 --- a/target/riscv/cpu.c +++ b/target/riscv/cpu.c @@ -1860,7 +1860,10 @@ static Property riscv_cpu_extensions[] = { DEFINE_PROP_BOOL("zcmp", RISCVCPU, cfg.ext_zcmp, false), DEFINE_PROP_BOOL("zcmt", RISCVCPU, cfg.ext_zcmt, false), - /* Vendor-specific custom extensions */ + DEFINE_PROP_END_OF_LIST(), +}; + +static Property riscv_cpu_vendor_exts[] = { DEFINE_PROP_BOOL("xtheadba", RISCVCPU, cfg.ext_xtheadba, false), DEFINE_PROP_BOOL("xtheadbb", RISCVCPU, cfg.ext_xtheadbb, false), DEFINE_PROP_BOOL("xtheadbs", RISCVCPU, cfg.ext_xtheadbs, false), @@ -1973,6 +1976,10 @@ static void riscv_cpu_add_kvm_properties(Object *obj) riscv_cpu_add_kvm_unavail_prop(obj, prop->name); } + for (prop = riscv_cpu_vendor_exts; prop && prop->name; prop++) { + riscv_cpu_add_kvm_unavail_prop(obj, prop->name); + } + for (prop = riscv_cpu_experimental_exts; prop && prop->name; prop++) { riscv_cpu_add_kvm_unavail_prop(obj, prop->name); } @@ -2017,6 +2024,10 @@ static void riscv_cpu_add_user_properties(Object *obj) qdev_property_add_static(dev, prop); } + for (prop = riscv_cpu_vendor_exts; prop && prop->name; prop++) { + qdev_property_add_static(dev, prop); + } + for (prop = riscv_cpu_experimental_exts; prop && prop->name; prop++) { qdev_property_add_static(dev, prop); }