summaryrefslogtreecommitdiff
path: root/hw/arm/aspeed.c
diff options
context:
space:
mode:
authorZenghui Yu <yuzenghui@huawei.com>2021-04-02 18:04:49 +0800
committerPeter Maydell <peter.maydell@linaro.org>2021-04-12 11:06:24 +0100
commit017a913af4dff47ac5e62be613b9f8b88fc8fa96 (patch)
treebffa550d15d833db8ef8f6c081b793afc0596660 /hw/arm/aspeed.c
parent0c38f607836af40921ea2b58676b7c4a9fe33bef (diff)
downloadqemu-017a913af4dff47ac5e62be613b9f8b88fc8fa96.zip
hw/arm/smmuv3: Emulate CFGI_STE_RANGE for an aligned range of StreamIDs
In emulation of the CFGI_STE_RANGE command, we now take StreamID as the start of the invalidation range, regardless of whatever the Range is, whilst the spec clearly states that - "Invalidation is performed for an *aligned* range of 2^(Range+1) StreamIDs." - "The bottom Range+1 bits of the StreamID parameter are IGNORED, aligning the range to its size." Take CFGI_ALL (where Range == 31) as an example, if there are some random bits in the StreamID field, we'll fail to perform the full invalidation but get a strange range (e.g., SMMUSIDRange={.start=1, .end=0}) instead. Rework the emulation a bit to get rid of the discrepancy with the spec. Signed-off-by: Zenghui Yu <yuzenghui@huawei.com> Acked-by: Eric Auger <eric.auger@redhat.com> Message-id: 20210402100449.528-1-yuzenghui@huawei.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw/arm/aspeed.c')
0 files changed, 0 insertions, 0 deletions