2021-12-02 22:27:11

by Giulio Benetti

[permalink] [raw]
Subject: [PATCH] ARM: Kconfig: improve ARM_SINGLE_ARMV7M description with Cortex M7

ARM_SINGLE_ARMV7M implies Arm Cortex M7 too, so let's add it to
description with M0/M3/M4.

Signed-off-by: Giulio Benetti <[email protected]>
---
arch/arm/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index c2724d986fa0..67efbde70e34 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -329,7 +329,7 @@ config ARCH_MULTIPLATFORM
select USE_OF

config ARM_SINGLE_ARMV7M
- bool "ARMv7-M based platforms (Cortex-M0/M3/M4)"
+ bool "ARMv7-M based platforms (Cortex-M0/M3/M4/M7)"
depends on !MMU
select ARM_NVIC
select AUTO_ZRELADDR
--
2.25.1



2021-12-03 09:30:43

by Vladimir Murzin

[permalink] [raw]
Subject: Re: [PATCH] ARM: Kconfig: improve ARM_SINGLE_ARMV7M description with Cortex M7

On 12/2/21 10:20 PM, Giulio Benetti wrote:
> ARM_SINGLE_ARMV7M implies Arm Cortex M7 too, so let's add it to
> description with M0/M3/M4.

Well it also implies M33 and M55. I'd suggest drop specific implementations
from description - so we do not need to update it each time new compatible
core is released. To account newest cores like M33 and M55 you can rephrase
to:
- ARMv7-M/v8-M
- ARMv7-M and above

Cheers
Vladimir

>
> Signed-off-by: Giulio Benetti <[email protected]>
> ---
> arch/arm/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index c2724d986fa0..67efbde70e34 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -329,7 +329,7 @@ config ARCH_MULTIPLATFORM
> select USE_OF
>
> config ARM_SINGLE_ARMV7M
> - bool "ARMv7-M based platforms (Cortex-M0/M3/M4)"
> + bool "ARMv7-M based platforms (Cortex-M0/M3/M4/M7)"
> depends on !MMU
> select ARM_NVIC
> select AUTO_ZRELADDR
>


2021-12-03 16:41:43

by Giulio Benetti

[permalink] [raw]
Subject: Re: [PATCH] ARM: Kconfig: improve ARM_SINGLE_ARMV7M description with Cortex M7

Hi Vladimir,

On 03/12/21 10:30, Vladimir Murzin wrote:
> On 12/2/21 10:20 PM, Giulio Benetti wrote:
>> ARM_SINGLE_ARMV7M implies Arm Cortex M7 too, so let's add it to
>> description with M0/M3/M4.
>
> Well it also implies M33 and M55. I'd suggest drop specific implementations
> from description - so we do not need to update it each time new compatible
> core is released. To account newest cores like M33 and M55 you can rephrase
> to:
> - ARMv7-M/v8-M

This ^^^ is ok for me. Also, I don't see any M0 used at the moment so no
ARMv6-M makes sense, if any in the future we can update. I see M3,M4,M7
for the moment, so ARMv7-M. But at the moment no ARMv8-M, or am I wrong?
Maybe it would be better to add ARMv8-M when there will really be the
support, considering also that ARM_SINGLE_ARMV7M is a bit ambiguous to
be used with ARMv8-M. So maybe that could be modified too when an
ARMv8-M is added.

What do you think about this?

Best regards
--
Giulio Benetti
Benetti Engineering sas

> - ARMv7-M and above
>
> Cheers
> Vladimir
>
>>
>> Signed-off-by: Giulio Benetti <[email protected]>
>> ---
>> arch/arm/Kconfig | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>> index c2724d986fa0..67efbde70e34 100644
>> --- a/arch/arm/Kconfig
>> +++ b/arch/arm/Kconfig
>> @@ -329,7 +329,7 @@ config ARCH_MULTIPLATFORM
>> select USE_OF
>>
>> config ARM_SINGLE_ARMV7M
>> - bool "ARMv7-M based platforms (Cortex-M0/M3/M4)"
>> + bool "ARMv7-M based platforms (Cortex-M0/M3/M4/M7)"
>> depends on !MMU
>> select ARM_NVIC
>> select AUTO_ZRELADDR
>>
>


2021-12-03 17:01:09

by Vladimir Murzin

[permalink] [raw]
Subject: Re: [PATCH] ARM: Kconfig: improve ARM_SINGLE_ARMV7M description with Cortex M7

On 12/3/21 4:41 PM, Giulio Benetti wrote:
> Hi Vladimir,
>
> On 03/12/21 10:30, Vladimir Murzin wrote:
>> On 12/2/21 10:20 PM, Giulio Benetti wrote:
>>> ARM_SINGLE_ARMV7M implies Arm Cortex M7 too, so let's add it to
>>> description with M0/M3/M4.
>>
>> Well it also implies M33 and M55. I'd suggest drop specific implementations
>> from description - so we do not need to update it each time new compatible
>> core is released. To account newest cores like M33 and M55 you can rephrase
>> to:
>> - ARMv7-M/v8-M
>
> This ^^^ is ok for me. Also, I don't see any M0 used at the moment so no ARMv6-M makes sense, if any in the future we can update. I see M3,M4,M7 for the moment, so ARMv7-M. But at the moment no ARMv8-M, or am I wrong?

We already support PMSAv8 which is ARMv8-M, M33/M55 is in flight [1].

> Maybe it would be better to add ARMv8-M when there will really be the support, considering also that ARM_SINGLE_ARMV7M is a bit ambiguous to be used with ARMv8-M. So maybe that could be modified too when an ARMv8-M is added.
>
> What do you think about this?

Well, I prefer to touch this as rare as possible, and if we touch
it then ensure we do not need to touch it for a long time ;)

Look at A-class cores,

config ARCH_MULTI_V7
bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)"

it doesn't mention ARMv8, yet it is pretty much possible to run it
on some cores either bare-metal or as a guest (just look under
arch/arm/include/asm/cputype.h)

These are just config options, not a legal deeds...

[1] https://lore.kernel.org/linux-arm-kernel/[email protected]/T/

Cheers
Vladimir

>
> Best regards


2021-12-03 17:03:39

by Giulio Benetti

[permalink] [raw]
Subject: Re: [PATCH] ARM: Kconfig: improve ARM_SINGLE_ARMV7M description with Cortex M7

On 03/12/21 18:01, Vladimir Murzin wrote:
> On 12/3/21 4:41 PM, Giulio Benetti wrote:
>> Hi Vladimir,
>>
>> On 03/12/21 10:30, Vladimir Murzin wrote:
>>> On 12/2/21 10:20 PM, Giulio Benetti wrote:
>>>> ARM_SINGLE_ARMV7M implies Arm Cortex M7 too, so let's add it to
>>>> description with M0/M3/M4.
>>>
>>> Well it also implies M33 and M55. I'd suggest drop specific implementations
>>> from description - so we do not need to update it each time new compatible
>>> core is released. To account newest cores like M33 and M55 you can rephrase
>>> to:
>>> - ARMv7-M/v8-M
>>
>> This ^^^ is ok for me. Also, I don't see any M0 used at the moment so no ARMv6-M makes sense, if any in the future we can update. I see M3,M4,M7 for the moment, so ARMv7-M. But at the moment no ARMv8-M, or am I wrong?
>
> We already support PMSAv8 which is ARMv8-M, M33/M55 is in flight [1].

Ah, I've missed that. And great for M33!

>> Maybe it would be better to add ARMv8-M when there will really be the support, considering also that ARM_SINGLE_ARMV7M is a bit ambiguous to be used with ARMv8-M. So maybe that could be modified too when an ARMv8-M is added.
>>
>> What do you think about this?
>
> Well, I prefer to touch this as rare as possible, and if we touch
> it then ensure we do not need to touch it for a long time ;)
>
> Look at A-class cores,
>
> config ARCH_MULTI_V7
> bool "ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait)"
>
> it doesn't mention ARMv8, yet it is pretty much possible to run it
> on some cores either bare-metal or as a guest (just look under
> arch/arm/include/asm/cputype.h)

Ah yeah, thanks for pointing, then I'm going with ARMv7-M/v8-M

> These are just config options, not a legal deeds...

+1

Thank you
Best regards
--
Giulio Benetti
Benetti Engineering sas

> [1] https://lore.kernel.org/linux-arm-kernel/[email protected]/T/
>
> Cheers
> Vladimir
>
>>
>> Best regards
>


2021-12-03 17:09:57

by Giulio Benetti

[permalink] [raw]
Subject: [PATCH] ARM: Kconfig: improve ARM_SINGLE_ARMV7M with ARMv8-M too

ARM_SINGLE_ARMV7M implies ARMv7-M and ARMv8-M, so let's remove
"Cortex-M0/M3/M4" mention and add "/v8-M" after ARMv7-M instead.

Signed-off-by: Giulio Benetti <[email protected]>
---
arch/arm/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index c2724d986fa0..4a36a80e57b7 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -329,7 +329,7 @@ config ARCH_MULTIPLATFORM
select USE_OF

config ARM_SINGLE_ARMV7M
- bool "ARMv7-M based platforms (Cortex-M0/M3/M4)"
+ bool "ARMv7-M/v8-M based platforms"
depends on !MMU
select ARM_NVIC
select AUTO_ZRELADDR
--
2.25.1


2021-12-03 17:12:10

by Vladimir Murzin

[permalink] [raw]
Subject: Re: [PATCH] ARM: Kconfig: improve ARM_SINGLE_ARMV7M with ARMv8-M too

On 12/3/21 5:09 PM, Giulio Benetti wrote:
> ARM_SINGLE_ARMV7M implies ARMv7-M and ARMv8-M, so let's remove
> "Cortex-M0/M3/M4" mention and add "/v8-M" after ARMv7-M instead.
>
> Signed-off-by: Giulio Benetti <[email protected]>
> ---
> arch/arm/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index c2724d986fa0..4a36a80e57b7 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -329,7 +329,7 @@ config ARCH_MULTIPLATFORM
> select USE_OF
>
> config ARM_SINGLE_ARMV7M
> - bool "ARMv7-M based platforms (Cortex-M0/M3/M4)"
> + bool "ARMv7-M/v8-M based platforms"
> depends on !MMU
> select ARM_NVIC
> select AUTO_ZRELADDR
>

Reviewed-by: Vladimir Murzin <[email protected]>

Thanks
Vladimir