octeon: native driver for Marvell Octeon SoC

Type: feature
Change-Id: I6898625c4e8854f777407dac3159e4c639a54860
Signed-off-by: Monendra Singh Kushwaha <kmonendra@marvell.com>
Signed-off-by: Damjan Marion <damarion@cisco.com>
diff --git a/build/external/Makefile b/build/external/Makefile
index fb3cd94..1e1f5da 100644
--- a/build/external/Makefile
+++ b/build/external/Makefile
@@ -35,6 +35,7 @@
 endif
 
 ARCH_X86_64=$(filter x86_64,$(shell uname -m))
+AARCH64=$(filter aarch64,$(shell uname -m))
 
 include packages.mk
 include packages/ipsec-mb.mk
@@ -42,13 +43,14 @@
 include packages/rdma-core.mk
 include packages/dpdk.mk
 include packages/xdp-tools.mk
+include packages/octeon-roc.mk
 
 .PHONY: clean
 clean:
 	@rm -rf $(B) $(I)
 
 .PHONY: install
-install: $(if $(ARCH_X86_64), ipsec-mb-install) dpdk-install rdma-core-install quicly-install xdp-tools-install
+install: $(if $(ARCH_X86_64), ipsec-mb-install) dpdk-install rdma-core-install quicly-install xdp-tools-install $(if $(AARCH64), octeon-roc-install)
 
 .PHONY: config
 config: $(if $(ARCH_X86_64), ipsec-mb-config) dpdk-config rdma-core-config quicly-build
diff --git a/build/external/packages/octeon-roc.mk b/build/external/packages/octeon-roc.mk
new file mode 100644
index 0000000..4bdeabe
--- /dev/null
+++ b/build/external/packages/octeon-roc.mk
@@ -0,0 +1,26 @@
+# Copyright (c) 2023 Marvell.
+# SPDX-License-Identifier: Apache-2.0
+# https://spdx.org/licenses/Apache-2.0.html
+
+octeon-roc_version             := 0.2
+octeon-roc_tarball             := octeon-roc-v$(octeon-roc_version).tar.gz
+octeon-roc_tarball_md5sum      := a72bb3b27fd3bbaf58aadd99514620e1
+
+octeon-roc_tarball_strip_dirs  := 1
+octeon-roc_url                 := https://github.com/MarvellEmbeddedProcessors/marvell-vpp/archive/refs/tags/$(octeon-roc_tarball)
+
+define  octeon-roc_config_cmds
+	@true
+endef
+
+define  octeon-roc_build_cmds
+	@cd ${octeon-roc_src_dir} && rm -f $(octeon-roc_build_log) && $(CMAKE) ${octeon-roc_src_dir} -DCMAKE_INSTALL_PREFIX='$(octeon-roc_install_dir)' >> $(octeon-roc_build_log)
+	@$(MAKE) -C ${octeon-roc_src_dir} >> $(octeon-roc_build_log)
+endef
+
+define  octeon-roc_install_cmds
+	@$(MAKE) -C ${octeon-roc_src_dir} install >> $(octeon-roc_install_log)
+endef
+
+$(eval $(call package,octeon-roc))
+