[v2,2/4] config/arm: add generic V2 SoC
Checks
Commit Message
Add generic V2 CPU SoC. This will allow for compiling a binary
that will run on any SoC that uses V2 CPU.
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Wathsala Vithanage <wathsala.vithanage@arm.com>
---
config/arm/arm64_v2_linux_gcc | 16 ++++++++++++++++
config/arm/meson.build | 9 +++++++++
2 files changed, 25 insertions(+)
create mode 100644 config/arm/arm64_v2_linux_gcc
Comments
20/02/2024 02:45, Honnappa Nagarahalli:
> Add generic V2 CPU SoC. This will allow for compiling a binary
> that will run on any SoC that uses V2 CPU.
[...]
> +soc_v2 = {
> + 'description': 'Arm Neoverse V2',
> + 'implementer': '0x41',
> + 'part_number': '0xd4f',
> + 'numa': true
> +}
[...]
> thunderxt88: Marvell ThunderX T88
> thunderxt83: Marvell ThunderX T83
> +v2: Arm Neoverse V2
Why just "v2" and not "neoversev2"?
Is it a new Arm naming?
If yes, why not just "2" ;)
Last question: what is best between Arm V2 and Armv7? answer is aarchv2 :D
Sorry I like having fun with Arm naming.
> On Feb 22, 2024, at 1:08 AM, Thomas Monjalon <thomas@monjalon.net> wrote:
>
> 20/02/2024 02:45, Honnappa Nagarahalli:
>> Add generic V2 CPU SoC. This will allow for compiling a binary
>> that will run on any SoC that uses V2 CPU.
> [...]
>> +soc_v2 = {
>> + 'description': 'Arm Neoverse V2',
>> + 'implementer': '0x41',
>> + 'part_number': '0xd4f',
>> + 'numa': true
>> +}
> [...]
>> thunderxt88: Marvell ThunderX T88
>> thunderxt83: Marvell ThunderX T83
>> +v2: Arm Neoverse V2
>
> Why just "v2" and not "neoversev2”?
This is what was done for N2, so just keeping it consistent
>
> Is it a new Arm naming?
No. ’Neoverse’ is the brand name that encompasses all the products for infrastructure market. CPUs are one of the products under Neoverse brand name. There are 2 series of CPUs (targeting 2 different PPAs) - N series and V series. N2 and V2 are the second generation of CPUs in those series.
> If yes, why not just "2" ;)
> Last question: what is best between Arm V2 and Armv7? answer is aarchv2 :D
ArmV7/ArmV8/ArmV9 are architecture revisions. There is no ArmV2 architecture.
Aarch32/Aarch64 are architecture states. For ex: N1 supported Aarch32 to run 32b applications as well as Aarch64 to run 64b applications. The later cores just support Aarch64 state and one can run only 64b applications.
> Sorry I like having fun with Arm naming.
No worries, it can be confusing. I hope the above explanation helps.
You have to pin this email for several months to be able to remember this :)
>
>
new file mode 100644
@@ -0,0 +1,16 @@
+[binaries]
+c = ['ccache', 'aarch64-linux-gnu-gcc']
+cpp = ['ccache', 'aarch64-linux-gnu-g++']
+ar = 'aarch64-linux-gnu-gcc-ar'
+strip = 'aarch64-linux-gnu-strip'
+pkgconfig = 'aarch64-linux-gnu-pkg-config'
+pcap-config = ''
+
+[host_machine]
+system = 'linux'
+cpu_family = 'aarch64'
+cpu = 'armv9-a'
+endian = 'little'
+
+[properties]
+platform = 'v2'
@@ -527,6 +527,13 @@ soc_bluefield3 = {
'numa': false
}
+soc_v2 = {
+ 'description': 'Arm Neoverse V2',
+ 'implementer': '0x41',
+ 'part_number': '0xd4f',
+ 'numa': true
+}
+
'''
Start of SoCs list
generic: Generic un-optimized build for armv8 aarch64 execution mode.
@@ -555,6 +562,7 @@ stingray: Broadcom Stingray
thunderx2: Marvell ThunderX2 T99
thunderxt88: Marvell ThunderX T88
thunderxt83: Marvell ThunderX T83
+v2: Arm Neoverse V2
End of SoCs list
'''
# The string above is included in the documentation, keep it in sync with the
@@ -586,6 +594,7 @@ socs = {
'thunderx2': soc_thunderx2,
'thunderxt88': soc_thunderxt88,
'thunderxt83': soc_thunderxt83,
+ 'v2': soc_v2,
}
dpdk_conf.set('RTE_ARCH_ARM', 1)