aboutsummaryrefslogtreecommitdiff
path: root/system/arch_init.c
diff options
context:
space:
mode:
authorMostafa Saleh <smostafa@google.com>2024-07-15 08:45:05 +0000
committerPeter Maydell <peter.maydell@linaro.org>2024-07-18 13:49:29 +0100
commita9e3f4c1ebeead57008ebe1c0e9f4e50d5020105 (patch)
treeea5b84028c5cbafc7c392af96da8c2954c1f7d0e /system/arch_init.c
parentf6cc198050faf055b17105fdf4da63cf4d295765 (diff)
downloadqemu-a9e3f4c1ebeead57008ebe1c0e9f4e50d5020105.zip
qemu-a9e3f4c1ebeead57008ebe1c0e9f4e50d5020105.tar.gz
qemu-a9e3f4c1ebeead57008ebe1c0e9f4e50d5020105.tar.bz2
hw/arm/smmu: Split smmuv3_translate()
smmuv3_translate() does everything from STE/CD parsing to TLB lookup and PTW. Soon, when nesting is supported, stage-1 data (tt, CD) needs to be translated using stage-2. Split smmuv3_translate() to 3 functions: - smmu_translate(): in smmu-common.c, which does the TLB lookup, PTW, TLB insertion, all the functions are already there, this just puts them together. This also simplifies the code as it consolidates event generation in case of TLB lookup permission failure or in TT selection. - smmuv3_do_translate(): in smmuv3.c, Calls smmu_translate() and does the event population in case of errors. - smmuv3_translate(), now calls smmuv3_do_translate() for translation while the rest is the same. Also, add stage in trace_smmuv3_translate_success() Reviewed-by: Eric Auger <eric.auger@redhat.com> Signed-off-by: Mostafa Saleh <smostafa@google.com> Reviewed-by: Jean-Philippe Brucker <jean-philippe@linaro.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-id: 20240715084519.1189624-6-smostafa@google.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'system/arch_init.c')
0 files changed, 0 insertions, 0 deletions