[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
A question about the translation granule size supported by the vSMMU
From: |
Kunkun Jiang |
Subject: |
A question about the translation granule size supported by the vSMMU |
Date: |
Sat, 27 Mar 2021 10:24:44 +0800 |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1 |
Hi all,
Recently, I did some tests on SMMU nested mode. Here is
a question about the translation granule size supported by
vSMMU.
There is such a code in SMMUv3_init_regs():
/* 4K and 64K granule support */
s->idr[5] = FIELD_DP32(s->idr[5], IDR5, GRAN4K, 1);
s->idr[5] = FIELD_DP32(s->idr[5], IDR5, GRAN64K, 1);
s->idr[5] = FIELD_DP32(s->idr[5], IDR5, OAS, SMMU_IDR5_OAS); /* 44
bits */
Why is the 16K granule not supported? I modified the code
to support it and did not encounter any problems in the
test. Although 4K and 64K minimal granules are "strongly
recommended", I think vSMMU should still support 16K.😉
Are there other reasons why 16K is not supported here?
When in SMMU nested mode, it may get errors if pSMMU
doesn't support 16K but vSMMU supports 16K. But we
can get some settings of pSMMU to avoid this situation.
I found some discussions between Eric and Linu about
this [1], but this idea does not seem to be implemented.
[1] https://lists.gnu.org/archive/html/qemu-arm/2017-09/msg00149.html
Best regards,
Kunkun Jiang
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- A question about the translation granule size supported by the vSMMU,
Kunkun Jiang <=