On Tue, 21 Mar 2023 at 13:55, Mostafa Saleh <smost...@google.com> wrote: > > Hi Peter, > > On Tue, Mar 21, 2023 at 01:34:55PM +0000, Peter Maydell wrote: > > > >>> + */ > > > >>> + ARMCPU *armcpu = ARM_CPU(qemu_get_cpu(0)); > > > >>> + uint8_t oas = FIELD_EX64(armcpu->isar.id_aa64mmfr0, > > > >>> ID_AA64MMFR0, PARANGE); > > > >> is this working in accelerated mode? > > > > I didn't try with accel, I will give it a try, but from what I see, that > > > > ARM_CPU() is used to get the CPU in traget/arm/kvm.c which is used from > > > > accel/kvm-all.c, so it seems this would work for accelerated mode. > > > > > > yeah I ma not familiar enough with that code but it is worth to be > > > checked. > > > > I'm a bit unsure about fishing around in the CPU ID registers for this. > > That's not what you would do in real hardware, you'd just say "the > > system is supposed to configure the CPU and the SMMU correctly". > > > > Also, there is no guarantee that CPU 0 is related to this SMMU in > > particular. > Sorry, missed this point in last email. > > So, we leave it this way, or there is a better way to discover PARANGE?
If you really need to know it, put a QOM property on the SMMU device and have the board code set it. (This is analogous to how it works in hardware: there are tie-off signals on the SMMU for the OAS value.) -- PMM