On Fri, Oct 25, 2024 at 12:17:32PM +0200, Eric Auger wrote: > The known ID regs are described in a new initialization function > dubbed initialize_cpu_sysreg_properties(). That code will be > automatically generated from linux arch/arm64/tools/sysreg. For the > time being let's just describe a single id reg, CTR_EL0. In this > description we only care about non RES/RAZ fields, ie. named fields. > > The registers are populated in a 3x8x8 array and their fields are > added in a sorted list. > > Signed-off-by: Eric Auger <eric.au...@redhat.com> > --- > target/arm/cpu-custom.h | 58 ++++++++++++++++++++++++++++++ > target/arm/cpu-sysreg-properties.c | 41 +++++++++++++++++++++ > target/arm/cpu64.c | 2 ++ > target/arm/meson.build | 1 + > 4 files changed, 102 insertions(+) > create mode 100644 target/arm/cpu-custom.h > create mode 100644 target/arm/cpu-sysreg-properties.c > > diff --git a/target/arm/cpu-custom.h b/target/arm/cpu-custom.h > new file mode 100644 > index 0000000000..1952095bf7 > --- /dev/null > +++ b/target/arm/cpu-custom.h > @@ -0,0 +1,58 @@ > +#ifndef ARM_CPU_CUSTOM_H > +#define ARM_CPU_CUSTOM_H
License header her. > diff --git a/target/arm/cpu-sysreg-properties.c > b/target/arm/cpu-sysreg-properties.c > new file mode 100644 > index 0000000000..753e7c9127 > --- /dev/null > +++ b/target/arm/cpu-sysreg-properties.c > @@ -0,0 +1,41 @@ > +/* > + * QEMU ARM CPU SYSREG PROPERTIES > + * to be generated from linux sysreg > + * > + * Copyright (c) 2024, Inc. 2024 ^^^^ missing company name :-) > + * > + * This program is free software; you can redistribute it and/or > + * modify it under the terms of the GNU General Public License > + * as published by the Free Software Foundation; either version 2 > + * of the License, or (at your option) any later version. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * You should have received a copy of the GNU General Public License > + * along with this program; if not, see > + * <http://www.gnu.org/licenses/gpl-2.0.html> > + */ > + > +#include "cpu-custom.h" > + > +ARM64SysReg arm64_id_regs[NR_ID_REGS]; > + > +void initialize_cpu_sysreg_properties(void) > +{ > + memset(arm64_id_regs, 0, sizeof(ARM64SysReg) * NR_ID_REGS); ^^^ just sizeof(arm64_id_regs) > + /* CTR_EL0 */ > + ARM64SysReg *CTR_EL0 = arm64_sysreg_get(3, 3, 0, 0, 1); > + CTR_EL0->name = "CTR_EL0"; > + arm64_sysreg_add_field(CTR_EL0, "TMinline", 32, 37); > + arm64_sysreg_add_field(CTR_EL0, "DIC", 29, 29); > + arm64_sysreg_add_field(CTR_EL0, "IDC", 28, 28); > + arm64_sysreg_add_field(CTR_EL0, "CWG", 24, 27); > + arm64_sysreg_add_field(CTR_EL0, "ERG", 20, 23); > + arm64_sysreg_add_field(CTR_EL0, "DMinLine", 16, 19); > + arm64_sysreg_add_field(CTR_EL0, "L1Ip", 14, 15); > + arm64_sysreg_add_field(CTR_EL0, "IminLine", 0, 3); > +} > + With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|