diff --git a/target/Makefile b/target/Makefile index 7ad26c717..83f9c4b09 100644 --- a/target/Makefile +++ b/target/Makefile @@ -7,9 +7,14 @@ curdir:=target $(curdir)/subtargets:=install -$(curdir)/builddirs:=linux sdk imagebuilder toolchain +$(curdir)/builddirs:=linux sdk imagebuilder toolchain llvm-bpf $(curdir)/builddirs-default:=linux -$(curdir)/builddirs-install:=linux $(if $(CONFIG_SDK),sdk) $(if $(CONFIG_IB),imagebuilder) $(if $(CONFIG_MAKE_TOOLCHAIN),toolchain) +$(curdir)/builddirs-install:=\ + linux \ + $(if $(CONFIG_SDK),sdk) \ + $(if $(CONFIG_IB),imagebuilder) \ + $(if $(CONFIG_MAKE_TOOLCHAIN),toolchain) \ + $(if $(CONFIG_SDK_LLVM_BPF),llvm-bpf) $(curdir)/sdk/install:=$(curdir)/linux/install $(curdir)/imagebuilder/install:=$(curdir)/linux/install diff --git a/target/linux/ipq60xx/patches-5.15/0902-5.15-arm64-provide-dma-cache-routines-with-same-API-as-32.patch b/target/linux/ipq60xx/patches-5.15/0902-5.15-arm64-provide-dma-cache-routines-with-same-API-as-32.patch new file mode 100644 index 000000000..b5f7e2367 --- /dev/null +++ b/target/linux/ipq60xx/patches-5.15/0902-5.15-arm64-provide-dma-cache-routines-with-same-API-as-32.patch @@ -0,0 +1,29 @@ +From a2f32cec773113a9d0a80f0b20947da9bc29f3bd Mon Sep 17 00:00:00 2001 +From: Simon Casey +Date: Wed, 2 Feb 2022 20:17:21 +0100 +Subject: [PATCH] Update + 902-arm64-provide-dma-cache-routines-with-same-API-as-32.patch for kernel + 5.15 + +--- + arch/arm64/include/asm/cacheflush.h | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/arch/arm64/include/asm/cacheflush.h ++++ b/arch/arm64/include/asm/cacheflush.h +@@ -110,6 +110,15 @@ static inline void flush_icache_range(un + extern void __dma_map_area(const void *, size_t, int); + extern void __dma_unmap_area(const void *, size_t, int); + extern void __dma_flush_area(const void *, size_t); ++extern void __dma_inv_area(const void *start, const void *end); ++extern void __dma_clean_area(const void *start, const void *end); ++ ++#define dmac_flush_range(start, end) \ ++ __dma_flush_area(start, (void *)(end) - (void *)(start)) ++#define dmac_inv_range(start, end) \ ++ __dma_inv_area(start, end) ++#define dmac_clean_range(start, end) \ ++ __dma_clean_area(start, end) + + /* + * Copy user data from/to a page which is mapped into a different diff --git a/target/linux/ipq60xx/patches-5.15/0903-5.15-arm64-mm-export-__dma_inv_area-and-__dma_clean_area.patch b/target/linux/ipq60xx/patches-5.15/0903-5.15-arm64-mm-export-__dma_inv_area-and-__dma_clean_area.patch new file mode 100644 index 000000000..e96e9bd70 --- /dev/null +++ b/target/linux/ipq60xx/patches-5.15/0903-5.15-arm64-mm-export-__dma_inv_area-and-__dma_clean_area.patch @@ -0,0 +1,56 @@ +From 6fae2dc7f45d14b5341e9929b5c5fef60596ed4f Mon Sep 17 00:00:00 2001 +From: Simon Casey +Date: Wed, 2 Feb 2022 20:25:38 +0100 +Subject: [PATCH] Update + 903-arm64-mm-export-__dma_inv_area-and-__dma_clean_area.patch for kernel 5.15 + +--- + arch/arm64/include/asm/cacheflush.h | 4 ++-- + arch/arm64/mm/cache.S | 4 ++-- + arch/arm64/mm/flush.c | 2 ++ + 3 files changed, 6 insertions(+), 4 deletions(-) + +--- a/arch/arm64/include/asm/cacheflush.h ++++ b/arch/arm64/include/asm/cacheflush.h +@@ -110,8 +110,8 @@ static inline void flush_icache_range(un + extern void __dma_map_area(const void *, size_t, int); + extern void __dma_unmap_area(const void *, size_t, int); + extern void __dma_flush_area(const void *, size_t); +-extern void __dma_inv_area(const void *start, const void *end); +-extern void __dma_clean_area(const void *start, const void *end); ++extern void __dma_inv_area(const void *, const void *); ++extern void __dma_clean_area(const void *, const void *); + + #define dmac_flush_range(start, end) \ + __dma_flush_area(start, (void *)(end) - (void *)(start)) +--- a/arch/arm64/mm/cache.S ++++ b/arch/arm64/mm/cache.S +@@ -140,7 +140,7 @@ SYM_FUNC_END(dcache_clean_pou) + * - start - kernel start address of region + * - end - kernel end address of region + */ +-SYM_FUNC_START_LOCAL(__dma_inv_area) ++SYM_FUNC_START(__dma_inv_area) + SYM_FUNC_START_PI(dcache_inval_poc) + /* FALLTHROUGH */ + +@@ -178,7 +178,7 @@ SYM_FUNC_END(__dma_inv_area) + * - start - virtual start address of region + * - end - virtual end address of region + */ +-SYM_FUNC_START_LOCAL(__dma_clean_area) ++SYM_FUNC_START(__dma_clean_area) + SYM_FUNC_START_PI(dcache_clean_poc) + /* FALLTHROUGH */ + +--- a/arch/arm64/mm/flush.c ++++ b/arch/arm64/mm/flush.c +@@ -77,6 +77,8 @@ EXPORT_SYMBOL(flush_dcache_page); + * Additional functions defined in assembly. + */ + EXPORT_SYMBOL(caches_clean_inval_pou); ++EXPORT_SYMBOL(__dma_inv_area); ++EXPORT_SYMBOL(__dma_clean_area); + + #ifdef CONFIG_ARCH_HAS_PMEM_API + void arch_wb_cache_pmem(void *addr, size_t size) diff --git a/tools/Makefile b/tools/Makefile index 2a4aa93a4..3a4fb8ddc 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -163,7 +163,8 @@ $(curdir)/ := .config prereq $(curdir)/install: $(curdir)/compile -tools_enabled = $(foreach tool,$(sort $(tools-y) $(tools-)),$(if $(filter $(tool),$(tools-y)),y,n)) +tools_config = CONFIG_SDK_LLVM_BPF +tools_enabled = $(foreach tool,$(sort $(tools-y) $(tools-)),$(if $(filter $(tool),$(tools-y)),y,n))$(foreach c,$(tools_config),$(if $($(c)),y,n)) $(eval $(call stampfile,$(curdir),tools,compile,,_$(subst $(space),,$(tools_enabled)),$(STAGING_DIR_HOST))) $(eval $(call stampfile,$(curdir),tools,check,$(TMP_DIR)/.build,,$(STAGING_DIR_HOST))) $(eval $(call subdir,$(curdir))) diff --git a/tools/llvm-bpf/Makefile b/tools/llvm-bpf/Makefile index 527b35782..775e1af89 100644 --- a/tools/llvm-bpf/Makefile +++ b/tools/llvm-bpf/Makefile @@ -7,12 +7,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=llvm-project -PKG_VERSION:=13.0.0 +PKG_VERSION:=14.0.6 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).src.tar.xz PKG_SOURCE_URL:=https://github.com/llvm/llvm-project/releases/download/llvmorg-$(PKG_VERSION) -PKG_HASH:=6075ad30f1ac0e15f07c1bf062c1e1268c241d674f11bd32cdf0e040c71f2bf3 +PKG_HASH:=8b3cfd7bc695bd6cea0f37f53f0981f34f87496e79e2529874fd03a2f9dd3a8a HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)-$(PKG_VERSION).src