MLK-16005-2 arm64: tlb: add the SW workaround for i.MX8QM TKT340553
authorJason Liu <jason.hui.liu@nxp.com>
Thu, 31 Oct 2019 06:48:12 +0000 (14:48 +0800)
committerDong Aisheng <aisheng.dong@nxp.com>
Mon, 14 Dec 2020 02:34:23 +0000 (10:34 +0800)
commit3b4f1f74a3d3bd189a3918d2033b05ac4893c3c4
treeb7510749c63ca35447cc9a4bd85f7ded2b7dd491
parent57561faf7091a65315311f58461900ef54145674
MLK-16005-2 arm64: tlb: add the SW workaround for i.MX8QM TKT340553

on i.MX8QM 1.0/1.1,TLB maintenance through DVM messages over ARADDR channel,
some bits (see the following) will be corrupted:

ASID[15:12] VA[48:45] VA[44:41] VA[39:36]

This issue will result in the TLB aintenance across the clusters not working
as expected due to some VA and ASID bits get corrupted

The SW workaround is: use the vmalle1is if VA larger than 36bits or
ASID[15:12] is not zero, otherwise, we use original TLB maintenance path.

Note: To simplify the code, we did not check VA[40] bit specifically

[ Leo: split arch change from drivers/soc change ]
Signed-off-by: Jason Liu <jason.hui.liu@nxp.com>
Reviewed-by: Anson Huang <anson.huang@nxp.com>
arch/arm64/include/asm/tlbflush.h