<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">
<br>
<div><br>
<blockquote type="cite">
<div>On Feb 19, 2024, at 9:02 PM, Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com> wrote:</div>
<br class="Apple-interchange-newline">
<div><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">Caution:
 This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
<br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
<br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
<blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
On Feb 16, 2024, at 11:07 AM, Andrew Boyer <andrew.boyer@amd.com> wrote:<br>
<br>
Add support for running DPDK applications directly on AMD Pensando<br>
embedded HW. The platform exposes the device BARs through UIO. The<br>
UIO code in the common/ionic library walks the sysfs filesystem<br>
to identify the relevant BARs and map them into process memory.<br>
<br>
The SoCs are named 'Capri' and 'Elba'.<br>
<br>
The vdev device interface code is located in ionic_dev_vdev.c.<br>
<br>
Some datapath operations are #ifdef-ed out to save on resources when<br>
running in embedded mode.<br>
<br>
Some controlpath operations are skipped by the ionic_is_embedded()<br>
helper function.<br>
<br>
Before ringing the doorbell, use an ARM 'dsb st' barrier. The normal<br>
barrier inside rte_write64() is insufficient on these devices due to<br>
a chip errata.<br>
<br>
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com><br>
Signed-off-by: Neel Patel <neel.patel@amd.com><br>
Signed-off-by: R Mohamed Shah <mohamedshah.r@amd.com><br>
Signed-off-by: Alfredo Cardigliano <cardigliano@ntop.org><br>
---<br>
config/arm/arm64_capri_linux_gcc   |  16 +++<br>
config/arm/arm64_elba_linux_gcc    |  16 +++<br>
config/arm/meson.build             |  42 ++++++++<br>
drivers/net/ionic/ionic.h          |   2 +-<br>
drivers/net/ionic/ionic_dev.h      |  17 ++++<br>
drivers/net/ionic/ionic_dev_vdev.c | 156 +++++++++++++++++++++++++++++<br>
drivers/net/ionic/ionic_ethdev.c   |   7 ++<br>
drivers/net/ionic/ionic_lif.c      |  19 ++++<br>
drivers/net/ionic/ionic_rxtx.h     |   4 +<br>
drivers/net/ionic/meson.build      |   1 +<br>
10 files changed, 279 insertions(+), 1 deletion(-)<br>
create mode 100644 config/arm/arm64_capri_linux_gcc<br>
create mode 100644 config/arm/arm64_elba_linux_gcc<br>
create mode 100644 drivers/net/ionic/ionic_dev_vdev.c<br>
<br>
diff --git a/config/arm/arm64_capri_linux_gcc b/config/arm/arm64_capri_linux_gcc<br>
new file mode 100644<br>
index 0000000000..1a6313e684<br>
--- /dev/null<br>
+++ b/config/arm/arm64_capri_linux_gcc<br>
@@ -0,0 +1,16 @@<br>
+[binaries]<br>
+c = ['ccache', 'aarch64-linux-gnu-gcc']<br>
+cpp = ['ccache', 'aarch64-linux-gnu-g++']<br>
+ar = 'aarch64-linux-gnu-gcc-ar'<br>
+strip = 'aarch64-linux-gnu-strip'<br>
+pkgconfig = 'aarch64-linux-gnu-pkg-config'<br>
+pcap-config = ''<br>
+<br>
+[host_machine]<br>
+system = 'linux'<br>
+cpu_family = 'aarch64'<br>
+cpu = 'armv8-a'<br>
+endian = 'little'<br>
+<br>
+[properties]<br>
+platform = 'capri'<br>
diff --git a/config/arm/arm64_elba_linux_gcc b/config/arm/arm64_elba_linux_gcc<br>
new file mode 100644<br>
index 0000000000..4d891bd5a7<br>
--- /dev/null<br>
+++ b/config/arm/arm64_elba_linux_gcc<br>
@@ -0,0 +1,16 @@<br>
+[binaries]<br>
+c = ['ccache', 'aarch64-linux-gnu-gcc']<br>
+cpp = ['ccache', 'aarch64-linux-gnu-g++']<br>
+ar = 'aarch64-linux-gnu-gcc-ar'<br>
+strip = 'aarch64-linux-gnu-strip'<br>
+pkgconfig = 'aarch64-linux-gnu-pkg-config'<br>
+pcap-config = ''<br>
+<br>
+[host_machine]<br>
+system = 'linux'<br>
+cpu_family = 'aarch64'<br>
+cpu = 'armv8-a'<br>
+endian = 'little'<br>
+<br>
+[properties]<br>
+platform = 'elba'<br>
diff --git a/config/arm/meson.build b/config/arm/meson.build<br>
index 36f21d2259..2326021fed 100644<br>
--- a/config/arm/meson.build<br>
+++ b/config/arm/meson.build<br>
@@ -165,6 +165,33 @@ implementer_cavium = {<br>
   }<br>
}<br>
<br>
+implementer_ionic = {<br>
+    'description': 'AMD Pensando',<br>
+    'flags': [<br>
+        ['RTE_MAX_NUMA_NODES', 1],<br>
+        ['RTE_CACHE_LINE_SIZE', 64],<br>
+        ['RTE_LIBRTE_VHOST_NUMA', false],<br>
+        ['RTE_EAL_NUMA_AWARE_HUGEPAGES', false],<br>
+        ['RTE_LIBRTE_IONIC_PMD_EMBEDDED', true],<br>
+    ],<br>
+    'part_number_config': {<br>
+        '0xc1': {<br>
+            'compiler_options':  ['-mcpu=cortex-a72'],<br>
+            'flags': [<br>
+                ['RTE_MAX_LCORE', 4],<br>
+                ['RTE_LIBRTE_IONIC_PMD_BARRIER_ERRATA', true],<br>
+            ]<br>
+        },<br>
+        '0xc2': {<br>
+            'compiler_options':  ['-mcpu=cortex-a72'],<br>
+            'flags': [<br>
+                ['RTE_MAX_LCORE', 16],<br>
+                ['RTE_LIBRTE_IONIC_PMD_BARRIER_ERRATA', true],<br>
+            ]<br>
+        }<br>
+    }<br>
+}<br>
</blockquote>
<br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
<span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;">Can
 you place it such that it is ordered alphabetically? (I understand that currently things are not ordered alphabetically, I have plans to fix that)</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
</div>
</blockquote>
</div>
<br>
<div>I switched from 'soc_ionic_capri' and 'soc_ionic_elba' to the shorter 'soc_capri' and 'soc_elba', to better match other vendors, and sorted my entries. Please see V2 and let me know if anything else needs to change.</div>
<div><br>
</div>
<div>Thanks!</div>
<div>Andrew</div>
<div><br>
</div>
</body>
</html>