极术小姐姐 · 2020年02月03日

Is it necessary to flush data cache 3

A-R-M seems not mention anything about this data cache flush of changing table entry.
From A-R-M of ARMv8-Cortex-A (DDI 0487D.a), the G.5.9 TLB maintenance requirements,
we do not see any hint about the necessary to flush data cache of table entry.

The only one example for a uniprocessor system in G.5.9.1, there is no data cache flush operation.

Therefore, in a uniprocessor system, an example instruction sequence for writing a translation table entry, covering
changes to the instruction or data mappings is:

STR rx, [Translation table entry] ; write new entry to the translation table
DSB ; ensures visibility of the new entry
Invalidate TLB entry by VA (and ASID if non-global) [page address]
Invalidate BTC
DSB ; ensure completion of the Invalidate TLB instruction
ISB ; ensure table changes visible to instruction fetch

For SMP system, It neither not find anything about necessary of data cache flush operation.

1 个回答 得票排序 · 时间排序
棋子 · 2020年02月03日

After I correct the MMU.IRGN setting, it works without flushing data cache of modified page entry.

Thus, Q1 is also solved. Because MMU page walk is not non-cached, for wrong setting as "write-through".

你的回答
关注数
1
收藏数
0
浏览数
1909
棋子
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息