[v3,5/5] config/arm: add AMD CDX

Message ID 20230421145406.12831-6-nipun.gupta@amd.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series Support AMD CDX bus, for FPGA based CDX devices. The CDX |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/github-robot: build success github build: passed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-unit-testing success Testing PASS
ci/intel-Functional success Functional PASS
ci/intel-Testing success Testing PASS
ci/iol-intel-Performance success Performance Testing PASS

Commit Message

Gupta, Nipun April 21, 2023, 2:54 p.m. UTC
  Adding support for AMD CDX devices

Signed-off-by: Nipun Gupta <nipun.gupta@amd.com>
---
 config/arm/arm64_cdx_linux_gcc | 17 +++++++++++++++++
 config/arm/meson.build         | 14 ++++++++++++++
 2 files changed, 31 insertions(+)
 create mode 100644 config/arm/arm64_cdx_linux_gcc
  

Comments

Ferruh Yigit May 4, 2023, 3:28 p.m. UTC | #1
On 4/21/2023 3:54 PM, Nipun Gupta wrote:
> Adding support for AMD CDX devices
> 
> Signed-off-by: Nipun Gupta <nipun.gupta@amd.com>
> ---
>  config/arm/arm64_cdx_linux_gcc | 17 +++++++++++++++++
>  config/arm/meson.build         | 14 ++++++++++++++
>  2 files changed, 31 insertions(+)
>  create mode 100644 config/arm/arm64_cdx_linux_gcc
> 
> diff --git a/config/arm/arm64_cdx_linux_gcc b/config/arm/arm64_cdx_linux_gcc
> new file mode 100644
> index 0000000000..8e6d619dae
> --- /dev/null
> +++ b/config/arm/arm64_cdx_linux_gcc
> @@ -0,0 +1,17 @@
> +[binaries]
> +c = ['ccache', 'aarch64-linux-gnu-gcc']
> +cpp = ['ccache', 'aarch64-linux-gnu-g++']
> +ar = 'aarch64-linux-gnu-ar'
> +as = 'aarch64-linux-gnu-as'
> +strip = 'aarch64-linux-gnu-strip'
> +pkgconfig = 'aarch64-linux-gnu-pkg-config'
> +pcap-config = ''
> +
> +[host_machine]
> +system = 'linux'
> +cpu_family = 'aarch64'
> +cpu = 'armv8-a'
> +endian = 'little'
> +
> +[properties]
> +platform = 'cdx'
> diff --git a/config/arm/meson.build b/config/arm/meson.build
> index 5213434ca4..39b8929534 100644
> --- a/config/arm/meson.build
> +++ b/config/arm/meson.build
> @@ -305,6 +305,18 @@ soc_bluefield = {
>      'numa': false
>  }
>  
> +soc_cdx = {
> +    'description': 'AMD CDX',
> +    'implementer': '0x41',
> +    'part_number': '0xd42',
> +    'flags': [
> +        ['RTE_MACHINE', '"cdx"'],
> +        ['RTE_MAX_LCORE', 16],
> +        ['RTE_MAX_NUMA_NODES', 1]
> +    ],
> +    'numa': false
> +}

Hi Nipun,

Why we need a new arm platform/config? Is it because of above flags?
If it can work with default values, I think we can drop this patch.
  
Gupta, Nipun May 8, 2023, 10:24 a.m. UTC | #2
> -----Original Message-----
> From: Yigit, Ferruh <Ferruh.Yigit@amd.com>
> Sent: Thursday, May 4, 2023 8:59 PM
> To: Gupta, Nipun <Nipun.Gupta@amd.com>; dev@dpdk.org;
> thomas@monjalon.net; david.marchand@redhat.com
> Cc: Anand, Harpreet <harpreet.anand@amd.com>; Agarwal, Nikhil
> <nikhil.agarwal@amd.com>
> Subject: Re: [PATCH v3 5/5] config/arm: add AMD CDX
> 
> On 4/21/2023 3:54 PM, Nipun Gupta wrote:
> > Adding support for AMD CDX devices
> >
> > Signed-off-by: Nipun Gupta <nipun.gupta@amd.com>
> > ---
> >  config/arm/arm64_cdx_linux_gcc | 17 +++++++++++++++++
> >  config/arm/meson.build         | 14 ++++++++++++++
> >  2 files changed, 31 insertions(+)
> >  create mode 100644 config/arm/arm64_cdx_linux_gcc
> >
> > diff --git a/config/arm/arm64_cdx_linux_gcc
> b/config/arm/arm64_cdx_linux_gcc
> > new file mode 100644
> > index 0000000000..8e6d619dae
> > --- /dev/null
> > +++ b/config/arm/arm64_cdx_linux_gcc
> > @@ -0,0 +1,17 @@
> > +[binaries]
> > +c = ['ccache', 'aarch64-linux-gnu-gcc']
> > +cpp = ['ccache', 'aarch64-linux-gnu-g++']
> > +ar = 'aarch64-linux-gnu-ar'
> > +as = 'aarch64-linux-gnu-as'
> > +strip = 'aarch64-linux-gnu-strip'
> > +pkgconfig = 'aarch64-linux-gnu-pkg-config'
> > +pcap-config = ''
> > +
> > +[host_machine]
> > +system = 'linux'
> > +cpu_family = 'aarch64'
> > +cpu = 'armv8-a'
> > +endian = 'little'
> > +
> > +[properties]
> > +platform = 'cdx'
> > diff --git a/config/arm/meson.build b/config/arm/meson.build
> > index 5213434ca4..39b8929534 100644
> > --- a/config/arm/meson.build
> > +++ b/config/arm/meson.build
> > @@ -305,6 +305,18 @@ soc_bluefield = {
> >      'numa': false
> >  }
> >
> > +soc_cdx = {
> > +    'description': 'AMD CDX',
> > +    'implementer': '0x41',
> > +    'part_number': '0xd42',
> > +    'flags': [
> > +        ['RTE_MACHINE', '"cdx"'],
> > +        ['RTE_MAX_LCORE', 16],
> > +        ['RTE_MAX_NUMA_NODES', 1]
> > +    ],
> > +    'numa': false
> > +}
> 
> Hi Nipun,
> 
> Why we need a new arm platform/config? Is it because of above flags?
> If it can work with default values, I think we can drop this patch.

Hi Ferruh,

CDX driver works with generic ARM compilation too (arm64_armv8_linux_gcc).

The versal platforms supporting CDX have A78 cores, and adding this cdx config
Helps to provide gcc option "march= armv8.4-a" which is for implementer
"0xd42" (ARM cortex A78 cores)., whereas for generic ARM compilation
"march= armv8-a".

Maybe ARM guys can provide more information regarding if there is any impact
on using generic architecture flag (i.e. march= armv8a) on A78 cores.

Thanks,
Nipun
  
Thomas Monjalon May 8, 2023, 10:44 a.m. UTC | #3
08/05/2023 12:24, Gupta, Nipun:
> From: Yigit, Ferruh <Ferruh.Yigit@amd.com>
> > On 4/21/2023 3:54 PM, Nipun Gupta wrote:
> > > Adding support for AMD CDX devices
> > >
> > > Signed-off-by: Nipun Gupta <nipun.gupta@amd.com>
> > > ---
> > >  config/arm/arm64_cdx_linux_gcc | 17 +++++++++++++++++
> > >  config/arm/meson.build         | 14 ++++++++++++++
> > >  2 files changed, 31 insertions(+)
> > >  create mode 100644 config/arm/arm64_cdx_linux_gcc
> > >
> > > diff --git a/config/arm/arm64_cdx_linux_gcc
> > b/config/arm/arm64_cdx_linux_gcc
> > > new file mode 100644
> > > index 0000000000..8e6d619dae
> > > --- /dev/null
> > > +++ b/config/arm/arm64_cdx_linux_gcc
> > > @@ -0,0 +1,17 @@
> > > +[binaries]
> > > +c = ['ccache', 'aarch64-linux-gnu-gcc']
> > > +cpp = ['ccache', 'aarch64-linux-gnu-g++']
> > > +ar = 'aarch64-linux-gnu-ar'
> > > +as = 'aarch64-linux-gnu-as'
> > > +strip = 'aarch64-linux-gnu-strip'
> > > +pkgconfig = 'aarch64-linux-gnu-pkg-config'
> > > +pcap-config = ''
> > > +
> > > +[host_machine]
> > > +system = 'linux'
> > > +cpu_family = 'aarch64'
> > > +cpu = 'armv8-a'
> > > +endian = 'little'
> > > +
> > > +[properties]
> > > +platform = 'cdx'
> > > diff --git a/config/arm/meson.build b/config/arm/meson.build
> > > index 5213434ca4..39b8929534 100644
> > > --- a/config/arm/meson.build
> > > +++ b/config/arm/meson.build
> > > @@ -305,6 +305,18 @@ soc_bluefield = {
> > >      'numa': false
> > >  }
> > >
> > > +soc_cdx = {
> > > +    'description': 'AMD CDX',
> > > +    'implementer': '0x41',
> > > +    'part_number': '0xd42',
> > > +    'flags': [
> > > +        ['RTE_MACHINE', '"cdx"'],
> > > +        ['RTE_MAX_LCORE', 16],
> > > +        ['RTE_MAX_NUMA_NODES', 1]
> > > +    ],
> > > +    'numa': false
> > > +}
> > 
> > Hi Nipun,
> > 
> > Why we need a new arm platform/config? Is it because of above flags?
> > If it can work with default values, I think we can drop this patch.
> 
> Hi Ferruh,
> 
> CDX driver works with generic ARM compilation too (arm64_armv8_linux_gcc).
> 
> The versal platforms supporting CDX have A78 cores, and adding this cdx config
> Helps to provide gcc option "march= armv8.4-a" which is for implementer
> "0xd42" (ARM cortex A78 cores)., whereas for generic ARM compilation
> "march= armv8-a".
> 
> Maybe ARM guys can provide more information regarding if there is any impact
> on using generic architecture flag (i.e. march= armv8a) on A78 cores.

Please let's skip this patch for now.
You should send it separately later, with perf testing and HW description in the commit log.
  
Gupta, Nipun May 8, 2023, 10:48 a.m. UTC | #4
> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Monday, May 8, 2023 4:14 PM
> To: Yigit, Ferruh <Ferruh.Yigit@amd.com>; Gupta, Nipun
> <Nipun.Gupta@amd.com>
> Cc: dev@dpdk.org; david.marchand@redhat.com; Anand, Harpreet
> <harpreet.anand@amd.com>; Agarwal, Nikhil <nikhil.agarwal@amd.com>
> Subject: Re: [PATCH v3 5/5] config/arm: add AMD CDX
> 
> 
> 08/05/2023 12:24, Gupta, Nipun:
> > From: Yigit, Ferruh <Ferruh.Yigit@amd.com>
> > > On 4/21/2023 3:54 PM, Nipun Gupta wrote:
> > > > Adding support for AMD CDX devices
> > > >
> > > > Signed-off-by: Nipun Gupta <nipun.gupta@amd.com>
> > > > ---
> > > >  config/arm/arm64_cdx_linux_gcc | 17 +++++++++++++++++
> > > >  config/arm/meson.build         | 14 ++++++++++++++
> > > >  2 files changed, 31 insertions(+)
> > > >  create mode 100644 config/arm/arm64_cdx_linux_gcc
> > > >
> > > > diff --git a/config/arm/arm64_cdx_linux_gcc
> > > b/config/arm/arm64_cdx_linux_gcc
> > > > new file mode 100644
> > > > index 0000000000..8e6d619dae
> > > > --- /dev/null
> > > > +++ b/config/arm/arm64_cdx_linux_gcc
> > > > @@ -0,0 +1,17 @@
> > > > +[binaries]
> > > > +c = ['ccache', 'aarch64-linux-gnu-gcc']
> > > > +cpp = ['ccache', 'aarch64-linux-gnu-g++']
> > > > +ar = 'aarch64-linux-gnu-ar'
> > > > +as = 'aarch64-linux-gnu-as'
> > > > +strip = 'aarch64-linux-gnu-strip'
> > > > +pkgconfig = 'aarch64-linux-gnu-pkg-config'
> > > > +pcap-config = ''
> > > > +
> > > > +[host_machine]
> > > > +system = 'linux'
> > > > +cpu_family = 'aarch64'
> > > > +cpu = 'armv8-a'
> > > > +endian = 'little'
> > > > +
> > > > +[properties]
> > > > +platform = 'cdx'
> > > > diff --git a/config/arm/meson.build b/config/arm/meson.build
> > > > index 5213434ca4..39b8929534 100644
> > > > --- a/config/arm/meson.build
> > > > +++ b/config/arm/meson.build
> > > > @@ -305,6 +305,18 @@ soc_bluefield = {
> > > >      'numa': false
> > > >  }
> > > >
> > > > +soc_cdx = {
> > > > +    'description': 'AMD CDX',
> > > > +    'implementer': '0x41',
> > > > +    'part_number': '0xd42',
> > > > +    'flags': [
> > > > +        ['RTE_MACHINE', '"cdx"'],
> > > > +        ['RTE_MAX_LCORE', 16],
> > > > +        ['RTE_MAX_NUMA_NODES', 1]
> > > > +    ],
> > > > +    'numa': false
> > > > +}
> > >
> > > Hi Nipun,
> > >
> > > Why we need a new arm platform/config? Is it because of above flags?
> > > If it can work with default values, I think we can drop this patch.
> >
> > Hi Ferruh,
> >
> > CDX driver works with generic ARM compilation too
> (arm64_armv8_linux_gcc).
> >
> > The versal platforms supporting CDX have A78 cores, and adding this cdx
> config
> > Helps to provide gcc option "march= armv8.4-a" which is for implementer
> > "0xd42" (ARM cortex A78 cores)., whereas for generic ARM compilation
> > "march= armv8-a".
> >
> > Maybe ARM guys can provide more information regarding if there is any
> impact
> > on using generic architecture flag (i.e. march= armv8a) on A78 cores.
> 
> Please let's skip this patch for now.
> You should send it separately later, with perf testing and HW description in the
> commit log.

Sure, I will skip this and send another spin for CDX bus without this change.

Thanks,
Nipun

> 
>
  
Ferruh Yigit May 8, 2023, 11:26 a.m. UTC | #5
On 5/8/2023 11:24 AM, Gupta, Nipun wrote:
> 
> 
>> -----Original Message-----
>> From: Yigit, Ferruh <Ferruh.Yigit@amd.com>
>> Sent: Thursday, May 4, 2023 8:59 PM
>> To: Gupta, Nipun <Nipun.Gupta@amd.com>; dev@dpdk.org;
>> thomas@monjalon.net; david.marchand@redhat.com
>> Cc: Anand, Harpreet <harpreet.anand@amd.com>; Agarwal, Nikhil
>> <nikhil.agarwal@amd.com>
>> Subject: Re: [PATCH v3 5/5] config/arm: add AMD CDX
>>
>> On 4/21/2023 3:54 PM, Nipun Gupta wrote:
>>> Adding support for AMD CDX devices
>>>
>>> Signed-off-by: Nipun Gupta <nipun.gupta@amd.com>
>>> ---
>>>  config/arm/arm64_cdx_linux_gcc | 17 +++++++++++++++++
>>>  config/arm/meson.build         | 14 ++++++++++++++
>>>  2 files changed, 31 insertions(+)
>>>  create mode 100644 config/arm/arm64_cdx_linux_gcc
>>>
>>> diff --git a/config/arm/arm64_cdx_linux_gcc
>> b/config/arm/arm64_cdx_linux_gcc
>>> new file mode 100644
>>> index 0000000000..8e6d619dae
>>> --- /dev/null
>>> +++ b/config/arm/arm64_cdx_linux_gcc
>>> @@ -0,0 +1,17 @@
>>> +[binaries]
>>> +c = ['ccache', 'aarch64-linux-gnu-gcc']
>>> +cpp = ['ccache', 'aarch64-linux-gnu-g++']
>>> +ar = 'aarch64-linux-gnu-ar'
>>> +as = 'aarch64-linux-gnu-as'
>>> +strip = 'aarch64-linux-gnu-strip'
>>> +pkgconfig = 'aarch64-linux-gnu-pkg-config'
>>> +pcap-config = ''
>>> +
>>> +[host_machine]
>>> +system = 'linux'
>>> +cpu_family = 'aarch64'
>>> +cpu = 'armv8-a'
>>> +endian = 'little'
>>> +
>>> +[properties]
>>> +platform = 'cdx'
>>> diff --git a/config/arm/meson.build b/config/arm/meson.build
>>> index 5213434ca4..39b8929534 100644
>>> --- a/config/arm/meson.build
>>> +++ b/config/arm/meson.build
>>> @@ -305,6 +305,18 @@ soc_bluefield = {
>>>      'numa': false
>>>  }
>>>
>>> +soc_cdx = {
>>> +    'description': 'AMD CDX',
>>> +    'implementer': '0x41',
>>> +    'part_number': '0xd42',
>>> +    'flags': [
>>> +        ['RTE_MACHINE', '"cdx"'],
>>> +        ['RTE_MAX_LCORE', 16],
>>> +        ['RTE_MAX_NUMA_NODES', 1]
>>> +    ],
>>> +    'numa': false
>>> +}
>>
>> Hi Nipun,
>>
>> Why we need a new arm platform/config? Is it because of above flags?
>> If it can work with default values, I think we can drop this patch.
> 
> Hi Ferruh,
> 
> CDX driver works with generic ARM compilation too (arm64_armv8_linux_gcc).
> 
> The versal platforms supporting CDX have A78 cores, and adding this cdx config
> Helps to provide gcc option "march= armv8.4-a" which is for implementer
> "0xd42" (ARM cortex A78 cores)., whereas for generic ARM compilation
> "march= armv8-a".
> 
> Maybe ARM guys can provide more information regarding if there is any impact
> on using generic architecture flag (i.e. march= armv8a) on A78 cores.
> 

Hi Honnappa, Ruifeng,

Can you please support on this question, what is the difference of
'march= armv8-a' flag (comparing march= armv8a)?
Should we consider adding an arm config file to support this flag?

Thanks,
ferruh
  
Honnappa Nagarahalli May 8, 2023, 5:16 p.m. UTC | #6
<snip>

> >>
> >> On 4/21/2023 3:54 PM, Nipun Gupta wrote:
> >>> Adding support for AMD CDX devices
> >>>
> >>> Signed-off-by: Nipun Gupta <nipun.gupta@amd.com>
> >>> ---
> >>>  config/arm/arm64_cdx_linux_gcc | 17 +++++++++++++++++
> >>>  config/arm/meson.build         | 14 ++++++++++++++
> >>>  2 files changed, 31 insertions(+)
> >>>  create mode 100644 config/arm/arm64_cdx_linux_gcc
> >>>
> >>> diff --git a/config/arm/arm64_cdx_linux_gcc
> >> b/config/arm/arm64_cdx_linux_gcc
> >>> new file mode 100644
> >>> index 0000000000..8e6d619dae
> >>> --- /dev/null
> >>> +++ b/config/arm/arm64_cdx_linux_gcc
> >>> @@ -0,0 +1,17 @@
> >>> +[binaries]
> >>> +c = ['ccache', 'aarch64-linux-gnu-gcc'] cpp = ['ccache',
> >>> +'aarch64-linux-gnu-g++'] ar = 'aarch64-linux-gnu-ar'
> >>> +as = 'aarch64-linux-gnu-as'
> >>> +strip = 'aarch64-linux-gnu-strip'
> >>> +pkgconfig = 'aarch64-linux-gnu-pkg-config'
> >>> +pcap-config = ''
> >>> +
> >>> +[host_machine]
> >>> +system = 'linux'
> >>> +cpu_family = 'aarch64'
> >>> +cpu = 'armv8-a'
> >>> +endian = 'little'
> >>> +
> >>> +[properties]
> >>> +platform = 'cdx'
> >>> diff --git a/config/arm/meson.build b/config/arm/meson.build index
> >>> 5213434ca4..39b8929534 100644
> >>> --- a/config/arm/meson.build
> >>> +++ b/config/arm/meson.build
> >>> @@ -305,6 +305,18 @@ soc_bluefield = {
> >>>      'numa': false
> >>>  }
> >>>
> >>> +soc_cdx = {
> >>> +    'description': 'AMD CDX',
> >>> +    'implementer': '0x41',
> >>> +    'part_number': '0xd42',
> >>> +    'flags': [
> >>> +        ['RTE_MACHINE', '"cdx"'],
> >>> +        ['RTE_MAX_LCORE', 16],
> >>> +        ['RTE_MAX_NUMA_NODES', 1]
> >>> +    ],
> >>> +    'numa': false
> >>> +}
> >>
> >> Hi Nipun,
> >>
> >> Why we need a new arm platform/config? Is it because of above flags?
> >> If it can work with default values, I think we can drop this patch.
> >
> > Hi Ferruh,
> >
> > CDX driver works with generic ARM compilation too
> (arm64_armv8_linux_gcc).
> >
> > The versal platforms supporting CDX have A78 cores, and adding this
> > cdx config Helps to provide gcc option "march= armv8.4-a" which is for
> > implementer "0xd42" (ARM cortex A78 cores)., whereas for generic ARM
> > compilation "march= armv8-a".
> >
> > Maybe ARM guys can provide more information regarding if there is any
> > impact on using generic architecture flag (i.e. march= armv8a) on A78 cores.
> >
> 
> Hi Honnappa, Ruifeng,
> 
> Can you please support on this question, what is the difference of 'march=
> armv8-a' flag (comparing march= armv8a)?
I am assuming you meant, 'march=armv8.4-a' vs 'march=armv8-a'.

'march=armv8-a' will compile for the ARM V8.0-a ISA which is the base V8-a version of the ISA. This compilation ensures that the binaries can run on any ARM V8-a platforms.
'march=armv8.4-a' will compile the binary for ARM V8.4 ISA. The binary will use additional (possibly instructions that improve performance) instructions which are not supported in ARM V8.0-a. This binary can run only on machines that support V8.4-a and higher. But, it will provide optimized binary for the target platform.

> Should we consider adding an arm config file to support this flag?
We support the optimized binary through the config files. We should keep these config changes.

> 
> Thanks,
> ferruh
>
  
Ferruh Yigit May 8, 2023, 5:47 p.m. UTC | #7
On 5/8/2023 6:16 PM, Honnappa Nagarahalli wrote:
> <snip>
> 
>>>>
>>>> On 4/21/2023 3:54 PM, Nipun Gupta wrote:
>>>>> Adding support for AMD CDX devices
>>>>>
>>>>> Signed-off-by: Nipun Gupta <nipun.gupta@amd.com>
>>>>> ---
>>>>>  config/arm/arm64_cdx_linux_gcc | 17 +++++++++++++++++
>>>>>  config/arm/meson.build         | 14 ++++++++++++++
>>>>>  2 files changed, 31 insertions(+)
>>>>>  create mode 100644 config/arm/arm64_cdx_linux_gcc
>>>>>
>>>>> diff --git a/config/arm/arm64_cdx_linux_gcc
>>>> b/config/arm/arm64_cdx_linux_gcc
>>>>> new file mode 100644
>>>>> index 0000000000..8e6d619dae
>>>>> --- /dev/null
>>>>> +++ b/config/arm/arm64_cdx_linux_gcc
>>>>> @@ -0,0 +1,17 @@
>>>>> +[binaries]
>>>>> +c = ['ccache', 'aarch64-linux-gnu-gcc'] cpp = ['ccache',
>>>>> +'aarch64-linux-gnu-g++'] ar = 'aarch64-linux-gnu-ar'
>>>>> +as = 'aarch64-linux-gnu-as'
>>>>> +strip = 'aarch64-linux-gnu-strip'
>>>>> +pkgconfig = 'aarch64-linux-gnu-pkg-config'
>>>>> +pcap-config = ''
>>>>> +
>>>>> +[host_machine]
>>>>> +system = 'linux'
>>>>> +cpu_family = 'aarch64'
>>>>> +cpu = 'armv8-a'
>>>>> +endian = 'little'
>>>>> +
>>>>> +[properties]
>>>>> +platform = 'cdx'
>>>>> diff --git a/config/arm/meson.build b/config/arm/meson.build index
>>>>> 5213434ca4..39b8929534 100644
>>>>> --- a/config/arm/meson.build
>>>>> +++ b/config/arm/meson.build
>>>>> @@ -305,6 +305,18 @@ soc_bluefield = {
>>>>>      'numa': false
>>>>>  }
>>>>>
>>>>> +soc_cdx = {
>>>>> +    'description': 'AMD CDX',
>>>>> +    'implementer': '0x41',
>>>>> +    'part_number': '0xd42',
>>>>> +    'flags': [
>>>>> +        ['RTE_MACHINE', '"cdx"'],
>>>>> +        ['RTE_MAX_LCORE', 16],
>>>>> +        ['RTE_MAX_NUMA_NODES', 1]
>>>>> +    ],
>>>>> +    'numa': false
>>>>> +}
>>>>
>>>> Hi Nipun,
>>>>
>>>> Why we need a new arm platform/config? Is it because of above flags?
>>>> If it can work with default values, I think we can drop this patch.
>>>
>>> Hi Ferruh,
>>>
>>> CDX driver works with generic ARM compilation too
>> (arm64_armv8_linux_gcc).
>>>
>>> The versal platforms supporting CDX have A78 cores, and adding this
>>> cdx config Helps to provide gcc option "march= armv8.4-a" which is for
>>> implementer "0xd42" (ARM cortex A78 cores)., whereas for generic ARM
>>> compilation "march= armv8-a".
>>>
>>> Maybe ARM guys can provide more information regarding if there is any
>>> impact on using generic architecture flag (i.e. march= armv8a) on A78 cores.
>>>
>>
>> Hi Honnappa, Ruifeng,
>>
>> Can you please support on this question, what is the difference of 'march=
>> armv8-a' flag (comparing march= armv8a)?
> I am assuming you meant, 'march=armv8.4-a' vs 'march=armv8-a'.
> 

Yes

> 'march=armv8-a' will compile for the ARM V8.0-a ISA which is the base V8-a version of the ISA. This compilation ensures that the binaries can run on any ARM V8-a platforms.
> 'march=armv8.4-a' will compile the binary for ARM V8.4 ISA. The binary will use additional (possibly instructions that improve performance) instructions which are not supported in ARM V8.0-a. This binary can run only on machines that support V8.4-a and higher. But, it will provide optimized binary for the target platform.
> 
>> Should we consider adding an arm config file to support this flag?
> We support the optimized binary through the config files. We should keep these config changes.
> 

Got it, thanks for the guidance.
  
Gupta, Nipun May 9, 2023, 4:35 a.m. UTC | #8
[AMD Official Use Only - General]



> -----Original Message-----
> From: Yigit, Ferruh <Ferruh.Yigit@amd.com>
> Sent: Monday, May 8, 2023 11:17 PM
> To: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>; Gupta, Nipun
> <Nipun.Gupta@amd.com>; dev@dpdk.org; thomas@monjalon.net;
> david.marchand@redhat.com; Ruifeng Wang <Ruifeng.Wang@arm.com>
> Cc: Anand, Harpreet <harpreet.anand@amd.com>; Agarwal, Nikhil
> <nikhil.agarwal@amd.com>; nd <nd@arm.com>
> Subject: Re: [PATCH v3 5/5] config/arm: add AMD CDX
> 
> On 5/8/2023 6:16 PM, Honnappa Nagarahalli wrote:
> > <snip>
> >
> >>>>
> >>>> On 4/21/2023 3:54 PM, Nipun Gupta wrote:
> >>>>> Adding support for AMD CDX devices
> >>>>>
> >>>>> Signed-off-by: Nipun Gupta <nipun.gupta@amd.com>
> >>>>> ---
> >>>>>  config/arm/arm64_cdx_linux_gcc | 17 +++++++++++++++++
> >>>>>  config/arm/meson.build         | 14 ++++++++++++++
> >>>>>  2 files changed, 31 insertions(+)
> >>>>>  create mode 100644 config/arm/arm64_cdx_linux_gcc
> >>>>>
> >>>>> diff --git a/config/arm/arm64_cdx_linux_gcc
> >>>> b/config/arm/arm64_cdx_linux_gcc
> >>>>> new file mode 100644
> >>>>> index 0000000000..8e6d619dae
> >>>>> --- /dev/null
> >>>>> +++ b/config/arm/arm64_cdx_linux_gcc
> >>>>> @@ -0,0 +1,17 @@
> >>>>> +[binaries]
> >>>>> +c = ['ccache', 'aarch64-linux-gnu-gcc'] cpp = ['ccache',
> >>>>> +'aarch64-linux-gnu-g++'] ar = 'aarch64-linux-gnu-ar'
> >>>>> +as = 'aarch64-linux-gnu-as'
> >>>>> +strip = 'aarch64-linux-gnu-strip'
> >>>>> +pkgconfig = 'aarch64-linux-gnu-pkg-config'
> >>>>> +pcap-config = ''
> >>>>> +
> >>>>> +[host_machine]
> >>>>> +system = 'linux'
> >>>>> +cpu_family = 'aarch64'
> >>>>> +cpu = 'armv8-a'
> >>>>> +endian = 'little'
> >>>>> +
> >>>>> +[properties]
> >>>>> +platform = 'cdx'
> >>>>> diff --git a/config/arm/meson.build b/config/arm/meson.build index
> >>>>> 5213434ca4..39b8929534 100644
> >>>>> --- a/config/arm/meson.build
> >>>>> +++ b/config/arm/meson.build
> >>>>> @@ -305,6 +305,18 @@ soc_bluefield = {
> >>>>>      'numa': false
> >>>>>  }
> >>>>>
> >>>>> +soc_cdx = {
> >>>>> +    'description': 'AMD CDX',
> >>>>> +    'implementer': '0x41',
> >>>>> +    'part_number': '0xd42',
> >>>>> +    'flags': [
> >>>>> +        ['RTE_MACHINE', '"cdx"'],
> >>>>> +        ['RTE_MAX_LCORE', 16],
> >>>>> +        ['RTE_MAX_NUMA_NODES', 1]
> >>>>> +    ],
> >>>>> +    'numa': false
> >>>>> +}
> >>>>
> >>>> Hi Nipun,
> >>>>
> >>>> Why we need a new arm platform/config? Is it because of above flags?
> >>>> If it can work with default values, I think we can drop this patch.
> >>>
> >>> Hi Ferruh,
> >>>
> >>> CDX driver works with generic ARM compilation too
> >> (arm64_armv8_linux_gcc).
> >>>
> >>> The versal platforms supporting CDX have A78 cores, and adding this
> >>> cdx config Helps to provide gcc option "march= armv8.4-a" which is for
> >>> implementer "0xd42" (ARM cortex A78 cores)., whereas for generic
> ARM
> >>> compilation "march= armv8-a".
> >>>
> >>> Maybe ARM guys can provide more information regarding if there is any
> >>> impact on using generic architecture flag (i.e. march= armv8a) on A78
> cores.
> >>>
> >>
> >> Hi Honnappa, Ruifeng,
> >>
> >> Can you please support on this question, what is the difference of
> 'march=
> >> armv8-a' flag (comparing march= armv8a)?
> > I am assuming you meant, 'march=armv8.4-a' vs 'march=armv8-a'.
> >
> 
> Yes
> 
> > 'march=armv8-a' will compile for the ARM V8.0-a ISA which is the base V8-a
> version of the ISA. This compilation ensures that the binaries can run on any
> ARM V8-a platforms.
> > 'march=armv8.4-a' will compile the binary for ARM V8.4 ISA. The binary will
> use additional (possibly instructions that improve performance) instructions
> which are not supported in ARM V8.0-a. This binary can run only on machines
> that support V8.4-a and higher. But, it will provide optimized binary for the
> target platform.
> >
> >> Should we consider adding an arm config file to support this flag?
> > We support the optimized binary through the config files. We should keep
> these config changes.
> >
> 
> Got it, thanks for the guidance.

Thanks Honnappa, Ferruh,
As discussed with Thomas too, we will add this as a separate platform patch,
with more platform details separated from CDX bus (patch sent out v4).
  
Ruifeng Wang May 9, 2023, 5:55 a.m. UTC | #9
> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit@amd.com>
> Sent: Monday, May 8, 2023 7:27 PM
> To: Gupta, Nipun <Nipun.Gupta@amd.com>; dev@dpdk.org; thomas@monjalon.net;
> david.marchand@redhat.com; Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>; Ruifeng
> Wang <Ruifeng.Wang@arm.com>
> Cc: Anand, Harpreet <harpreet.anand@amd.com>; Agarwal, Nikhil <nikhil.agarwal@amd.com>
> Subject: Re: [PATCH v3 5/5] config/arm: add AMD CDX
> 
> On 5/8/2023 11:24 AM, Gupta, Nipun wrote:
> >
> >
> >> -----Original Message-----
> >> From: Yigit, Ferruh <Ferruh.Yigit@amd.com>
> >> Sent: Thursday, May 4, 2023 8:59 PM
> >> To: Gupta, Nipun <Nipun.Gupta@amd.com>; dev@dpdk.org;
> >> thomas@monjalon.net; david.marchand@redhat.com
> >> Cc: Anand, Harpreet <harpreet.anand@amd.com>; Agarwal, Nikhil
> >> <nikhil.agarwal@amd.com>
> >> Subject: Re: [PATCH v3 5/5] config/arm: add AMD CDX
> >>
> >> On 4/21/2023 3:54 PM, Nipun Gupta wrote:
> >>> Adding support for AMD CDX devices
> >>>
> >>> Signed-off-by: Nipun Gupta <nipun.gupta@amd.com>
> >>> ---
> >>>  config/arm/arm64_cdx_linux_gcc | 17 +++++++++++++++++
> >>>  config/arm/meson.build         | 14 ++++++++++++++
> >>>  2 files changed, 31 insertions(+)
> >>>  create mode 100644 config/arm/arm64_cdx_linux_gcc
> >>>
> >>> diff --git a/config/arm/arm64_cdx_linux_gcc
> >> b/config/arm/arm64_cdx_linux_gcc
> >>> new file mode 100644
> >>> index 0000000000..8e6d619dae
> >>> --- /dev/null
> >>> +++ b/config/arm/arm64_cdx_linux_gcc
> >>> @@ -0,0 +1,17 @@
> >>> +[binaries]
> >>> +c = ['ccache', 'aarch64-linux-gnu-gcc'] cpp = ['ccache',
> >>> +'aarch64-linux-gnu-g++'] ar = 'aarch64-linux-gnu-ar'
> >>> +as = 'aarch64-linux-gnu-as'
> >>> +strip = 'aarch64-linux-gnu-strip'
> >>> +pkgconfig = 'aarch64-linux-gnu-pkg-config'
> >>> +pcap-config = ''
> >>> +
> >>> +[host_machine]
> >>> +system = 'linux'
> >>> +cpu_family = 'aarch64'
> >>> +cpu = 'armv8-a'
> >>> +endian = 'little'
> >>> +
> >>> +[properties]
> >>> +platform = 'cdx'
> >>> diff --git a/config/arm/meson.build b/config/arm/meson.build index
> >>> 5213434ca4..39b8929534 100644
> >>> --- a/config/arm/meson.build
> >>> +++ b/config/arm/meson.build
> >>> @@ -305,6 +305,18 @@ soc_bluefield = {
> >>>      'numa': false
> >>>  }
> >>>
> >>> +soc_cdx = {
> >>> +    'description': 'AMD CDX',
> >>> +    'implementer': '0x41',
> >>> +    'part_number': '0xd42',
> >>> +    'flags': [
> >>> +        ['RTE_MACHINE', '"cdx"'],
> >>> +        ['RTE_MAX_LCORE', 16],
> >>> +        ['RTE_MAX_NUMA_NODES', 1]
> >>> +    ],
> >>> +    'numa': false
> >>> +}
> >>
> >> Hi Nipun,
> >>
> >> Why we need a new arm platform/config? Is it because of above flags?
> >> If it can work with default values, I think we can drop this patch.
> >
> > Hi Ferruh,
> >
> > CDX driver works with generic ARM compilation too (arm64_armv8_linux_gcc).
> >
> > The versal platforms supporting CDX have A78 cores, and adding this
> > cdx config Helps to provide gcc option "march= armv8.4-a" which is for
> > implementer "0xd42" (ARM cortex A78 cores)., whereas for generic ARM
> > compilation "march= armv8-a".
> >
> > Maybe ARM guys can provide more information regarding if there is any
> > impact on using generic architecture flag (i.e. march= armv8a) on A78 cores.
> >
> 
> Hi Honnappa, Ruifeng,
> 
> Can you please support on this question, what is the difference of 'march= armv8-a' flag
> (comparing march= armv8a)?
> Should we consider adding an arm config file to support this flag?

I see there is a new version without change to config file.
FWIW, native build is fine without this change. Because the specific (implementer, part number) flags
are already in place. What enabled by this change are options for soc build (-Dplatform=cdx) and
cross-build (--cross-file arm64_cdx_linux_gcc).

Regards,
Ruifeng
> 
> Thanks,
> ferruh
>
  
Ferruh Yigit June 14, 2023, 10:30 a.m. UTC | #10
On 5/9/2023 6:55 AM, Ruifeng Wang wrote:
>> -----Original Message-----
>> From: Ferruh Yigit <ferruh.yigit@amd.com>
>> Sent: Monday, May 8, 2023 7:27 PM
>> To: Gupta, Nipun <Nipun.Gupta@amd.com>; dev@dpdk.org; thomas@monjalon.net;
>> david.marchand@redhat.com; Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>; Ruifeng
>> Wang <Ruifeng.Wang@arm.com>
>> Cc: Anand, Harpreet <harpreet.anand@amd.com>; Agarwal, Nikhil <nikhil.agarwal@amd.com>
>> Subject: Re: [PATCH v3 5/5] config/arm: add AMD CDX
>>
>> On 5/8/2023 11:24 AM, Gupta, Nipun wrote:
>>>
>>>
>>>> -----Original Message-----
>>>> From: Yigit, Ferruh <Ferruh.Yigit@amd.com>
>>>> Sent: Thursday, May 4, 2023 8:59 PM
>>>> To: Gupta, Nipun <Nipun.Gupta@amd.com>; dev@dpdk.org;
>>>> thomas@monjalon.net; david.marchand@redhat.com
>>>> Cc: Anand, Harpreet <harpreet.anand@amd.com>; Agarwal, Nikhil
>>>> <nikhil.agarwal@amd.com>
>>>> Subject: Re: [PATCH v3 5/5] config/arm: add AMD CDX
>>>>
>>>> On 4/21/2023 3:54 PM, Nipun Gupta wrote:
>>>>> Adding support for AMD CDX devices
>>>>>
>>>>> Signed-off-by: Nipun Gupta <nipun.gupta@amd.com>
>>>>> ---
>>>>>  config/arm/arm64_cdx_linux_gcc | 17 +++++++++++++++++
>>>>>  config/arm/meson.build         | 14 ++++++++++++++
>>>>>  2 files changed, 31 insertions(+)
>>>>>  create mode 100644 config/arm/arm64_cdx_linux_gcc
>>>>>
>>>>> diff --git a/config/arm/arm64_cdx_linux_gcc
>>>> b/config/arm/arm64_cdx_linux_gcc
>>>>> new file mode 100644
>>>>> index 0000000000..8e6d619dae
>>>>> --- /dev/null
>>>>> +++ b/config/arm/arm64_cdx_linux_gcc
>>>>> @@ -0,0 +1,17 @@
>>>>> +[binaries]
>>>>> +c = ['ccache', 'aarch64-linux-gnu-gcc'] cpp = ['ccache',
>>>>> +'aarch64-linux-gnu-g++'] ar = 'aarch64-linux-gnu-ar'
>>>>> +as = 'aarch64-linux-gnu-as'
>>>>> +strip = 'aarch64-linux-gnu-strip'
>>>>> +pkgconfig = 'aarch64-linux-gnu-pkg-config'
>>>>> +pcap-config = ''
>>>>> +
>>>>> +[host_machine]
>>>>> +system = 'linux'
>>>>> +cpu_family = 'aarch64'
>>>>> +cpu = 'armv8-a'
>>>>> +endian = 'little'
>>>>> +
>>>>> +[properties]
>>>>> +platform = 'cdx'
>>>>> diff --git a/config/arm/meson.build b/config/arm/meson.build index
>>>>> 5213434ca4..39b8929534 100644
>>>>> --- a/config/arm/meson.build
>>>>> +++ b/config/arm/meson.build
>>>>> @@ -305,6 +305,18 @@ soc_bluefield = {
>>>>>      'numa': false
>>>>>  }
>>>>>
>>>>> +soc_cdx = {
>>>>> +    'description': 'AMD CDX',
>>>>> +    'implementer': '0x41',
>>>>> +    'part_number': '0xd42',
>>>>> +    'flags': [
>>>>> +        ['RTE_MACHINE', '"cdx"'],
>>>>> +        ['RTE_MAX_LCORE', 16],
>>>>> +        ['RTE_MAX_NUMA_NODES', 1]
>>>>> +    ],
>>>>> +    'numa': false
>>>>> +}
>>>>
>>>> Hi Nipun,
>>>>
>>>> Why we need a new arm platform/config? Is it because of above flags?
>>>> If it can work with default values, I think we can drop this patch.
>>>
>>> Hi Ferruh,
>>>
>>> CDX driver works with generic ARM compilation too (arm64_armv8_linux_gcc).
>>>
>>> The versal platforms supporting CDX have A78 cores, and adding this
>>> cdx config Helps to provide gcc option "march= armv8.4-a" which is for
>>> implementer "0xd42" (ARM cortex A78 cores)., whereas for generic ARM
>>> compilation "march= armv8-a".
>>>
>>> Maybe ARM guys can provide more information regarding if there is any
>>> impact on using generic architecture flag (i.e. march= armv8a) on A78 cores.
>>>
>>
>> Hi Honnappa, Ruifeng,
>>
>> Can you please support on this question, what is the difference of 'march= armv8-a' flag
>> (comparing march= armv8a)?
>> Should we consider adding an arm config file to support this flag?
> 
> I see there is a new version without change to config file.
> FWIW, native build is fine without this change. Because the specific (implementer, part number) flags
> are already in place. What enabled by this change are options for soc build (-Dplatform=cdx) and
> cross-build (--cross-file arm64_cdx_linux_gcc).
> 

Hi Ruifeng, Honnappa,

Config file will come as standalone patch, it only separated from this set.

And config file is required mainly for '--march=armv8.4-a' parameter.

There are multiple configs using the same parameter, is it a good option
to create a common config for 'armv8.4-a', similar to 'generic' one?
Or is it preferred that each SoC adding its own config, as done in this
patch?

Thanks,
ferruh
  
Ruifeng Wang June 15, 2023, 7 a.m. UTC | #11
> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit@amd.com>
> Sent: Wednesday, June 14, 2023 6:31 PM
> To: Ruifeng Wang <Ruifeng.Wang@arm.com>; Gupta, Nipun <Nipun.Gupta@amd.com>; dev@dpdk.org;
> thomas@monjalon.net; david.marchand@redhat.com; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>
> Cc: Anand, Harpreet <harpreet.anand@amd.com>; Agarwal, Nikhil <nikhil.agarwal@amd.com>; nd
> <nd@arm.com>
> Subject: Re: [PATCH v3 5/5] config/arm: add AMD CDX
> 
> On 5/9/2023 6:55 AM, Ruifeng Wang wrote:
> >> -----Original Message-----
> >> From: Ferruh Yigit <ferruh.yigit@amd.com>
> >> Sent: Monday, May 8, 2023 7:27 PM
> >> To: Gupta, Nipun <Nipun.Gupta@amd.com>; dev@dpdk.org;
> >> thomas@monjalon.net; david.marchand@redhat.com; Honnappa Nagarahalli
> >> <Honnappa.Nagarahalli@arm.com>; Ruifeng Wang <Ruifeng.Wang@arm.com>
> >> Cc: Anand, Harpreet <harpreet.anand@amd.com>; Agarwal, Nikhil
> >> <nikhil.agarwal@amd.com>
> >> Subject: Re: [PATCH v3 5/5] config/arm: add AMD CDX
> >>
> >> On 5/8/2023 11:24 AM, Gupta, Nipun wrote:
> >>>
> >>>
> >>>> -----Original Message-----
> >>>> From: Yigit, Ferruh <Ferruh.Yigit@amd.com>
> >>>> Sent: Thursday, May 4, 2023 8:59 PM
> >>>> To: Gupta, Nipun <Nipun.Gupta@amd.com>; dev@dpdk.org;
> >>>> thomas@monjalon.net; david.marchand@redhat.com
> >>>> Cc: Anand, Harpreet <harpreet.anand@amd.com>; Agarwal, Nikhil
> >>>> <nikhil.agarwal@amd.com>
> >>>> Subject: Re: [PATCH v3 5/5] config/arm: add AMD CDX
> >>>>
> >>>> On 4/21/2023 3:54 PM, Nipun Gupta wrote:
> >>>>> Adding support for AMD CDX devices
> >>>>>
> >>>>> Signed-off-by: Nipun Gupta <nipun.gupta@amd.com>
> >>>>> ---
> >>>>>  config/arm/arm64_cdx_linux_gcc | 17 +++++++++++++++++
> >>>>>  config/arm/meson.build         | 14 ++++++++++++++
> >>>>>  2 files changed, 31 insertions(+)  create mode 100644
> >>>>> config/arm/arm64_cdx_linux_gcc
> >>>>>
> >>>>> diff --git a/config/arm/arm64_cdx_linux_gcc
> >>>> b/config/arm/arm64_cdx_linux_gcc
> >>>>> new file mode 100644
> >>>>> index 0000000000..8e6d619dae
> >>>>> --- /dev/null
> >>>>> +++ b/config/arm/arm64_cdx_linux_gcc
> >>>>> @@ -0,0 +1,17 @@
> >>>>> +[binaries]
> >>>>> +c = ['ccache', 'aarch64-linux-gnu-gcc'] cpp = ['ccache',
> >>>>> +'aarch64-linux-gnu-g++'] ar = 'aarch64-linux-gnu-ar'
> >>>>> +as = 'aarch64-linux-gnu-as'
> >>>>> +strip = 'aarch64-linux-gnu-strip'
> >>>>> +pkgconfig = 'aarch64-linux-gnu-pkg-config'
> >>>>> +pcap-config = ''
> >>>>> +
> >>>>> +[host_machine]
> >>>>> +system = 'linux'
> >>>>> +cpu_family = 'aarch64'
> >>>>> +cpu = 'armv8-a'
> >>>>> +endian = 'little'
> >>>>> +
> >>>>> +[properties]
> >>>>> +platform = 'cdx'
> >>>>> diff --git a/config/arm/meson.build b/config/arm/meson.build index
> >>>>> 5213434ca4..39b8929534 100644
> >>>>> --- a/config/arm/meson.build
> >>>>> +++ b/config/arm/meson.build
> >>>>> @@ -305,6 +305,18 @@ soc_bluefield = {
> >>>>>      'numa': false
> >>>>>  }
> >>>>>
> >>>>> +soc_cdx = {
> >>>>> +    'description': 'AMD CDX',
> >>>>> +    'implementer': '0x41',
> >>>>> +    'part_number': '0xd42',
> >>>>> +    'flags': [
> >>>>> +        ['RTE_MACHINE', '"cdx"'],
> >>>>> +        ['RTE_MAX_LCORE', 16],
> >>>>> +        ['RTE_MAX_NUMA_NODES', 1]
> >>>>> +    ],
> >>>>> +    'numa': false
> >>>>> +}
> >>>>
> >>>> Hi Nipun,
> >>>>
> >>>> Why we need a new arm platform/config? Is it because of above flags?
> >>>> If it can work with default values, I think we can drop this patch.
> >>>
> >>> Hi Ferruh,
> >>>
> >>> CDX driver works with generic ARM compilation too (arm64_armv8_linux_gcc).
> >>>
> >>> The versal platforms supporting CDX have A78 cores, and adding this
> >>> cdx config Helps to provide gcc option "march= armv8.4-a" which is
> >>> for implementer "0xd42" (ARM cortex A78 cores)., whereas for generic
> >>> ARM compilation "march= armv8-a".
> >>>
> >>> Maybe ARM guys can provide more information regarding if there is
> >>> any impact on using generic architecture flag (i.e. march= armv8a) on A78 cores.
> >>>
> >>
> >> Hi Honnappa, Ruifeng,
> >>
> >> Can you please support on this question, what is the difference of
> >> 'march= armv8-a' flag (comparing march= armv8a)?
> >> Should we consider adding an arm config file to support this flag?
> >
> > I see there is a new version without change to config file.
> > FWIW, native build is fine without this change. Because the specific
> > (implementer, part number) flags are already in place. What enabled by
> > this change are options for soc build (-Dplatform=cdx) and cross-build (--cross-file
> arm64_cdx_linux_gcc).
> >
> 
> Hi Ruifeng, Honnappa,
> 
> Config file will come as standalone patch, it only separated from this set.
> 
> And config file is required mainly for '--march=armv8.4-a' parameter.
> 
> There are multiple configs using the same parameter, is it a good option to create a
> common config for 'armv8.4-a', similar to 'generic' one?
> Or is it preferred that each SoC adding its own config, as done in this patch?

Hi Ferruh,

It is preferred that each SoC adding its own config.
SoCs at the same ISA level (e.g. armv8.4-a) can have different optional features/extensions supported.
Therefore, SoC config is provided alongside with part number config.

Thanks.

> 
> Thanks,
> ferruh
> 
> 
> 
>
  

Patch

diff --git a/config/arm/arm64_cdx_linux_gcc b/config/arm/arm64_cdx_linux_gcc
new file mode 100644
index 0000000000..8e6d619dae
--- /dev/null
+++ b/config/arm/arm64_cdx_linux_gcc
@@ -0,0 +1,17 @@ 
+[binaries]
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-g++']
+ar = 'aarch64-linux-gnu-ar'
+as = 'aarch64-linux-gnu-as'
+strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
+pcap-config = ''
+
+[host_machine]
+system = 'linux'
+cpu_family = 'aarch64'
+cpu = 'armv8-a'
+endian = 'little'
+
+[properties]
+platform = 'cdx'
diff --git a/config/arm/meson.build b/config/arm/meson.build
index 5213434ca4..39b8929534 100644
--- a/config/arm/meson.build
+++ b/config/arm/meson.build
@@ -305,6 +305,18 @@  soc_bluefield = {
     'numa': false
 }
 
+soc_cdx = {
+    'description': 'AMD CDX',
+    'implementer': '0x41',
+    'part_number': '0xd42',
+    'flags': [
+        ['RTE_MACHINE', '"cdx"'],
+        ['RTE_MAX_LCORE', 16],
+        ['RTE_MAX_NUMA_NODES', 1]
+    ],
+    'numa': false
+}
+
 soc_centriq2400 = {
     'description': 'Qualcomm Centriq 2400',
     'implementer': '0x51',
@@ -463,6 +475,7 @@  generic_aarch32: Generic un-optimized build for armv8 aarch32 execution mode.
 armada:          Marvell ARMADA
 bluefield:       NVIDIA BlueField
 bluefield3:      NVIDIA BlueField-3
+cdx:             AMD CDX
 centriq2400:     Qualcomm Centriq 2400
 cn9k:            Marvell OCTEON 9
 cn10k:           Marvell OCTEON 10
@@ -490,6 +503,7 @@  socs = {
     'armada': soc_armada,
     'bluefield': soc_bluefield,
     'bluefield3': soc_bluefield3,
+    'cdx': soc_cdx,
     'centriq2400': soc_centriq2400,
     'cn9k': soc_cn9k,
     'cn10k' : soc_cn10k,