All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] Updates for ARM tunings
@ 2024-01-31 23:29 Mark Hatle
  2024-01-31 23:29 ` [PATCH 1/4] tune-cortexa78.inc: Add cortexa78 tune, based on cortexa77 Mark Hatle
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Mark Hatle @ 2024-01-31 23:29 UTC (permalink / raw)
  To: openembedded-core

From: Mark Hatle <mark.hatle@amd.com>

cortexa78 missing seems to be an oversight.  It (according to wikipedia) is a
successor to the cortexa77 which already exists.  This was created by
copying the cortexa77 and changing it to be a78.  A test system was build to
verify no obvious issues with the toolchain.

The remaining three changes are related.  I've got a need for a cortex-r5 and
cortex-r52 that enables the hard-float calling convention (this might also
be useful to others with other cortex-r and maybe even cortex-m processors,
but I'm not in a position to know this outside of my specific need.)

tune-cortexr5 simply adds an hf variant that adds the callconvention-hard.
Since there is no armv7r-vfp3d16 w/ this, the package_arch list is more
limited then the regular r5.

tune-cortexr52 requires the change to feature-arm-vfp to allow the setting
when 'simd' is enabled (since we don't specify vfp or neon).  Otherwise
this follows the same convention as the r5 change.

Mark Hatle (4):
  tune-cortexa78.inc: Add cortexa78 tune, based on cortexa77
  feature-arm-vfp.inc: Allow hard-float on newer simd targets
  tune-cortexr5: Add hard-float variant
  tune-cortexr52: Add hard-float variant

 .../machine/include/arm/armv7r/tune-cortexr5.inc |  5 +++++
 .../include/arm/armv8-2a/tune-cortexa78.inc      | 16 ++++++++++++++++
 .../include/arm/armv8r/tune-cortexr52.inc        |  5 +++++
 .../conf/machine/include/arm/feature-arm-vfp.inc |  3 ++-
 4 files changed, 28 insertions(+), 1 deletion(-)
 create mode 100644 meta/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc

-- 
2.34.1



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/4] tune-cortexa78.inc: Add cortexa78 tune, based on cortexa77
  2024-01-31 23:29 [PATCH 0/4] Updates for ARM tunings Mark Hatle
@ 2024-01-31 23:29 ` Mark Hatle
  2024-02-01  2:09   ` [OE-core] " Khem Raj
  2024-01-31 23:29 ` [PATCH 2/4] feature-arm-vfp.inc: Allow hard-float on newer simd targets Mark Hatle
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 7+ messages in thread
From: Mark Hatle @ 2024-01-31 23:29 UTC (permalink / raw)
  To: openembedded-core

From: Mark Hatle <mark.hatle@amd.com>

Signed-off-by: Mark Hatle <mark.hatle@amd.com>
Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
---
 .../include/arm/armv8-2a/tune-cortexa78.inc      | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 meta/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc

diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc
new file mode 100644
index 0000000000..8c85d98ef9
--- /dev/null
+++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc
@@ -0,0 +1,16 @@
+#
+# Tune Settings for Cortex-A78
+#
+DEFAULTTUNE                                        ?= "cortexa78"
+
+TUNEVALID[cortexa78] = "Enable Cortex-A78 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa78', ' -mcpu=cortex-a78', '', d)}"
+
+require conf/machine/include/arm/arch-armv8-2a.inc
+
+# Little Endian base configs
+AVAILTUNES                                         += "cortexa78"
+ARMPKGARCH:tune-cortexa78                           = "cortexa78"
+TUNE_FEATURES:tune-cortexa78                        = "${TUNE_FEATURES:tune-armv8-2a-crypto} cortexa78"
+PACKAGE_EXTRA_ARCHS:tune-cortexa78                  = "${PACKAGE_EXTRA_ARCHS:tune-armv8-2a-crypto} cortexa78"
+BASE_LIB:tune-cortexa78                             = "lib64"
-- 
2.34.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/4] feature-arm-vfp.inc: Allow hard-float on newer simd targets
  2024-01-31 23:29 [PATCH 0/4] Updates for ARM tunings Mark Hatle
  2024-01-31 23:29 ` [PATCH 1/4] tune-cortexa78.inc: Add cortexa78 tune, based on cortexa77 Mark Hatle
@ 2024-01-31 23:29 ` Mark Hatle
  2024-01-31 23:29 ` [PATCH 3/4] tune-cortexr5: Add hard-float variant Mark Hatle
  2024-01-31 23:29 ` [PATCH 4/4] tune-cortexr52: " Mark Hatle
  3 siblings, 0 replies; 7+ messages in thread
From: Mark Hatle @ 2024-01-31 23:29 UTC (permalink / raw)
  To: openembedded-core

From: Mark Hatle <mark.hatle@amd.com>

Currently hard-float is dependency upon the special TUNE_CCARGS_MFPU which
contains custom -mfpu= values.  However, newer 32-bit architectures like
cortex-r52 use 'simd' instead.  There is no 'simd' entry for -mfpu=
according to the GCC manual, it's more or less automatic based on the
cpu settings.

Add this as an exception to the TUNE_CCARGS_FLOAT setting of hard or softfp.

Signed-off-by: Mark Hatle <mark.hatle@amd.com>
Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
---
 meta/conf/machine/include/arm/feature-arm-vfp.inc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/meta/conf/machine/include/arm/feature-arm-vfp.inc b/meta/conf/machine/include/arm/feature-arm-vfp.inc
index 678888e638..d020100daa 100644
--- a/meta/conf/machine/include/arm/feature-arm-vfp.inc
+++ b/meta/conf/machine/include/arm/feature-arm-vfp.inc
@@ -5,11 +5,12 @@
 TUNEVALID[vfp] = "Enable Vector Floating Point (vfp) unit."
 TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfp', ' vfp', '', d)}"
 
+# simd is special, we don't pass this to the -mfpu, it's implied
 TUNE_CCARGS  .= "${@ (' -mfpu=%s' % d.getVar('TUNE_CCARGS_MFPU').split()[-1]) if (d.getVar('TUNE_CCARGS_MFPU') != '') else ''}"
 # The following deals with both vfpv3-d16 and vfpv4-d16
 ARMPKGSFX_FPU = "${@ ('-%s'       % d.getVar('TUNE_CCARGS_MFPU').split()[-1].replace('-d16', 'd16')) if (d.getVar('TUNE_CCARGS_MFPU') != '') else ''}"
 
 TUNEVALID[callconvention-hard] = "Enable EABI hard float call convention, requires VFP."
-TUNE_CCARGS_MFLOAT = "${@ bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hard', 'softfp', d) if (d.getVar('TUNE_CCARGS_MFPU') != '') else '' }"
+TUNE_CCARGS_MFLOAT = "${@ bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hard', 'softfp', d) if (d.getVar('TUNE_CCARGS_MFPU') != '' or bb.utils.contains('TUNE_FEATURES', 'simd', True, False, d)) else '' }"
 TUNE_CCARGS   .= "${@ ' -mfloat-abi=${TUNE_CCARGS_MFLOAT}' if (d.getVar('TUNE_CCARGS_MFLOAT') != '')     else ''}"
 ARMPKGSFX_EABI = "${@ 'hf'                                 if (d.getVar('TUNE_CCARGS_MFLOAT') == 'hard') else ''}"
-- 
2.34.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/4] tune-cortexr5: Add hard-float variant
  2024-01-31 23:29 [PATCH 0/4] Updates for ARM tunings Mark Hatle
  2024-01-31 23:29 ` [PATCH 1/4] tune-cortexa78.inc: Add cortexa78 tune, based on cortexa77 Mark Hatle
  2024-01-31 23:29 ` [PATCH 2/4] feature-arm-vfp.inc: Allow hard-float on newer simd targets Mark Hatle
@ 2024-01-31 23:29 ` Mark Hatle
  2024-01-31 23:29 ` [PATCH 4/4] tune-cortexr52: " Mark Hatle
  3 siblings, 0 replies; 7+ messages in thread
From: Mark Hatle @ 2024-01-31 23:29 UTC (permalink / raw)
  To: openembedded-core

From: Mark Hatle <mark.hatle@amd.com>

Add the ability to specify cortexr5hf to get a version that enables the
hard-float calling convention.

Signed-off-by: Mark Hatle <mark.hatle@amd.com>
Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
---
 meta/conf/machine/include/arm/armv7r/tune-cortexr5.inc | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/meta/conf/machine/include/arm/armv7r/tune-cortexr5.inc b/meta/conf/machine/include/arm/armv7r/tune-cortexr5.inc
index ecaaa0d846..4c8985292b 100644
--- a/meta/conf/machine/include/arm/armv7r/tune-cortexr5.inc
+++ b/meta/conf/machine/include/arm/armv7r/tune-cortexr5.inc
@@ -12,3 +12,8 @@ AVAILTUNES                            += "cortexr5"
 ARMPKGARCH:tune-cortexr5               = "cortexr5"
 TUNE_FEATURES:tune-cortexr5            = "${TUNE_FEATURES:tune-armv7r-vfpv3d16} cortexr5 idiv"
 PACKAGE_EXTRA_ARCHS:tune-cortexr5      = "${PACKAGE_EXTRA_ARCHS:tune-armv7r-vfpv3d16} cortexr5-vfpv3d16"
+
+AVAILTUNES                            += "cortexr5hf"
+ARMPKGARCH:tune-cortexr5hf             = "cortexr5"
+TUNE_FEATURES:tune-cortexr5hf          = "${TUNE_FEATURES:tune-cortexr5} callconvention-hard"
+PACKAGE_EXTRA_ARCHS:tune-cortexr5hf    = "cortexr5hf-vfpv3d16"
-- 
2.34.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 4/4] tune-cortexr52: Add hard-float variant
  2024-01-31 23:29 [PATCH 0/4] Updates for ARM tunings Mark Hatle
                   ` (2 preceding siblings ...)
  2024-01-31 23:29 ` [PATCH 3/4] tune-cortexr5: Add hard-float variant Mark Hatle
@ 2024-01-31 23:29 ` Mark Hatle
  3 siblings, 0 replies; 7+ messages in thread
From: Mark Hatle @ 2024-01-31 23:29 UTC (permalink / raw)
  To: openembedded-core

From: Mark Hatle <mark.hatle@amd.com>

Add the ability to specify cortexr52hf to get a version that enables the
hard-float calling convention.

Signed-off-by: Mark Hatle <mark.hatle@amd.com>
Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
---
 meta/conf/machine/include/arm/armv8r/tune-cortexr52.inc | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/meta/conf/machine/include/arm/armv8r/tune-cortexr52.inc b/meta/conf/machine/include/arm/armv8r/tune-cortexr52.inc
index 3a97cf8ee8..32ad30c4ea 100644
--- a/meta/conf/machine/include/arm/armv8r/tune-cortexr52.inc
+++ b/meta/conf/machine/include/arm/armv8r/tune-cortexr52.inc
@@ -12,3 +12,8 @@ AVAILTUNES                             += "cortexr52"
 ARMPKGARCH:tune-cortexr52               = "cortexr52"
 TUNE_FEATURES:tune-cortexr52            = "${TUNE_FEATURES:tune-armv8r-crc-simd} cortexr52"
 PACKAGE_EXTRA_ARCHS:tune-cortexr52      = "${PACKAGE_EXTRA_ARCHS:tune-armv8r-crc-simd} cortexr52"
+
+AVAILTUNES                             += "cortexr52hf"
+ARMPKGARCH:tune-cortexr52hf             = "cortexr52"
+TUNE_FEATURES:tune-cortexr52hf          = "${TUNE_FEATURES:tune-cortexr52} callconvention-hard"
+PACKAGE_EXTRA_ARCHS:tune-cortexr52hf    = "cortexr52hf"
-- 
2.34.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [OE-core] [PATCH 1/4] tune-cortexa78.inc: Add cortexa78 tune, based on cortexa77
  2024-01-31 23:29 ` [PATCH 1/4] tune-cortexa78.inc: Add cortexa78 tune, based on cortexa77 Mark Hatle
@ 2024-02-01  2:09   ` Khem Raj
  2024-02-01  2:15     ` Mark Hatle
  0 siblings, 1 reply; 7+ messages in thread
From: Khem Raj @ 2024-02-01  2:09 UTC (permalink / raw)
  To: Mark Hatle; +Cc: openembedded-core

On Wed, Jan 31, 2024 at 3:29 PM Mark Hatle
<mark.hatle@kernel.crashing.org> wrote:
>
> From: Mark Hatle <mark.hatle@amd.com>
>
> Signed-off-by: Mark Hatle <mark.hatle@amd.com>
> Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
> ---
>  .../include/arm/armv8-2a/tune-cortexa78.inc      | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
>  create mode 100644 meta/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc
>
> diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc
> new file mode 100644
> index 0000000000..8c85d98ef9
> --- /dev/null
> +++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc
> @@ -0,0 +1,16 @@
> +#
> +# Tune Settings for Cortex-A78
> +#
> +DEFAULTTUNE                                        ?= "cortexa78"
> +
> +TUNEVALID[cortexa78] = "Enable Cortex-A78 specific processor optimizations"
> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa78', ' -mcpu=cortex-a78', '', d)}"
> +
> +require conf/machine/include/arm/arch-armv8-2a.inc
> +
> +# Little Endian base configs
> +AVAILTUNES                                         += "cortexa78"
> +ARMPKGARCH:tune-cortexa78                           = "cortexa78"
> +TUNE_FEATURES:tune-cortexa78                        = "${TUNE_FEATURES:tune-armv8-2a-crypto} cortexa78"

I think this should be set to "aarch64 crypto cortexa78" inline with
patch I sent last week [1], otherwise it looks ok.

[1] https://lore.kernel.org/openembedded-core/20240126233141.1589013-1-raj.khem@gmail.com/


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [OE-core] [PATCH 1/4] tune-cortexa78.inc: Add cortexa78 tune, based on cortexa77
  2024-02-01  2:09   ` [OE-core] " Khem Raj
@ 2024-02-01  2:15     ` Mark Hatle
  0 siblings, 0 replies; 7+ messages in thread
From: Mark Hatle @ 2024-02-01  2:15 UTC (permalink / raw)
  To: Khem Raj; +Cc: openembedded-core

It should be the same as the cortexa77.inc file, but say 78..  So I've no 
problems with that change if it's in master.

--Mark

On 1/31/24 8:09 PM, Khem Raj wrote:
> On Wed, Jan 31, 2024 at 3:29 PM Mark Hatle
> <mark.hatle@kernel.crashing.org> wrote:
>>
>> From: Mark Hatle <mark.hatle@amd.com>
>>
>> Signed-off-by: Mark Hatle <mark.hatle@amd.com>
>> Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
>> ---
>>   .../include/arm/armv8-2a/tune-cortexa78.inc      | 16 ++++++++++++++++
>>   1 file changed, 16 insertions(+)
>>   create mode 100644 meta/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc
>>
>> diff --git a/meta/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc
>> new file mode 100644
>> index 0000000000..8c85d98ef9
>> --- /dev/null
>> +++ b/meta/conf/machine/include/arm/armv8-2a/tune-cortexa78.inc
>> @@ -0,0 +1,16 @@
>> +#
>> +# Tune Settings for Cortex-A78
>> +#
>> +DEFAULTTUNE                                        ?= "cortexa78"
>> +
>> +TUNEVALID[cortexa78] = "Enable Cortex-A78 specific processor optimizations"
>> +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa78', ' -mcpu=cortex-a78', '', d)}"
>> +
>> +require conf/machine/include/arm/arch-armv8-2a.inc
>> +
>> +# Little Endian base configs
>> +AVAILTUNES                                         += "cortexa78"
>> +ARMPKGARCH:tune-cortexa78                           = "cortexa78"
>> +TUNE_FEATURES:tune-cortexa78                        = "${TUNE_FEATURES:tune-armv8-2a-crypto} cortexa78"
> 
> I think this should be set to "aarch64 crypto cortexa78" inline with
> patch I sent last week [1], otherwise it looks ok.
> 
> [1] https://lore.kernel.org/openembedded-core/20240126233141.1589013-1-raj.khem@gmail.com/
> 
> 
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#194545): https://lists.openembedded.org/g/openembedded-core/message/194545
> Mute This Topic: https://lists.openembedded.org/mt/104086355/3616948
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [mark.hatle@kernel.crashing.org]
> -=-=-=-=-=-=-=-=-=-=-=-
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2024-02-01  2:17 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-31 23:29 [PATCH 0/4] Updates for ARM tunings Mark Hatle
2024-01-31 23:29 ` [PATCH 1/4] tune-cortexa78.inc: Add cortexa78 tune, based on cortexa77 Mark Hatle
2024-02-01  2:09   ` [OE-core] " Khem Raj
2024-02-01  2:15     ` Mark Hatle
2024-01-31 23:29 ` [PATCH 2/4] feature-arm-vfp.inc: Allow hard-float on newer simd targets Mark Hatle
2024-01-31 23:29 ` [PATCH 3/4] tune-cortexr5: Add hard-float variant Mark Hatle
2024-01-31 23:29 ` [PATCH 4/4] tune-cortexr52: " Mark Hatle

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.