Re: [PATCH] MIPS: disable MMID if GINVT is not usable

From: Gregory CLEMENT
Date: Fri Jul 04 2025 - 11:17:31 EST


Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx> writes:

> On Wed, Jun 25, 2025 at 03:44:00PM +0100, Jiaxun Yang wrote:
>> 在2025年6月25日周三 下午2:27,Gregory CLEMENT写道:
>>
>> Hi Gregory,
>>
>> > If System-level Interconnect (aka Network on Chip) does not support
>> > the global invalidation, then MMID feature is not usable. Indeed the
>> > current implementation of MMID relies on the GINV* instruction.
>>
>> Yes, it is the case if the NoC IP can't handle AMBA ACE DVM requests.
>>
>> >
>> > Signed-off-by: Gregory CLEMENT <gregory.clement@xxxxxxxxxxx>
>> > ---
>> > arch/mips/Kconfig | 6 ++++++
>> > arch/mips/include/asm/cpu-features.h | 5 ++++-
>> > arch/mips/mobileye/Kconfig | 2 ++
>> > 3 files changed, 12 insertions(+), 1 deletion(-)
>> >
>> > diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
>> > index
>> > 1e48184ecf1ec8e29c0a25de6452ece5da835e30..05ce008459b89f03fa71d94429607feb9d06526f
>> > 100644
>> > --- a/arch/mips/Kconfig
>> > +++ b/arch/mips/Kconfig
>> > @@ -2575,6 +2575,12 @@ config WAR_R10000_LLSC
>> > config WAR_MIPS34K_MISSED_ITLB
>> > bool
>> >
>> > +# Some I6500 based SoC do not support the global invalidation on their
>> > +# System-level Interconnect (aka Network on Chip), this have an
>> > +# influence on the MMID support.
>> > +config GINVT_UNSUPPORTED_NOC
>> > + bool
>> > +
>>
>> I believe this should be a DeviceTree property of CM node instead of Kconfig
>> hack.
>
> Either that or by a runtime check, if possible.

Unfortunately we can't detect at runtime this (lack of) feature on the
NoC, so it has to be a device tree property.

Gregory

>
> Thomas.
>
> --
> Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
> good idea. [ RFC1925, 2.3 ]

--
Grégory CLEMENT, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com