uboot-mediatek: add noncached_set_region prototype to fix build

Building uboot-mediatek fails with GCC-14, uboot v2024.10 and
CONFIG_SYS_NONCACHED_MEMORY defined with error:
cmd/cache.c: In function 'do_dcache':
cmd/cache.c:57:25: error: implicit declaration of function
	'noncached_set_region' [-Wimplicit-function-declaration]

This is caused by upstream commit 7d6cee2cd0e2e2507aca1e3a6fe0e2cb241a116e
("cmd: cache: Remove weak functions") as this removes weak functions in
favor of arch-specific definitions.

This patch adds the function prototype for `noncached_set_region` to
arch-specific header for ARM. It also adds an include in cmd/cache.c to
make the function available there.

Fixes: #16697
Fixes: f8c22c9bff ("uboot-mediatek: update to U-Boot 2024.10")
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
[@dangowrt refreshed patch]
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
Jonas Jelonek 2024-10-15 20:52:35 +02:00 committed by Daniel Golle
parent 7e51d6a4c8
commit 92ca322dd1

View File

@ -0,0 +1,43 @@
From aab8e6cf7afbbcef60593c6b1795fa5d8e78e597 Mon Sep 17 00:00:00 2001
From: Jonas Jelonek <jelonek.jonas@gmail.com>
Date: Tue, 15 Oct 2024 20:02:25 +0200
Subject: [PATCH] arm: provide noncached_set_region prototype to fix build
Due to the removal of weak functions in 7d6cee2cd0 ("cmd: cache: Remove
weak function"), uboot fails to compile after updating to v2024.10 for
mediatek target in OpenWrt with GCC-14 with error:
cmd/cache.c: In function 'do_dcache':
cmd/cache.c:57:25: error: implicit declaration of function
'noncached_set_region' [-Wimplicit-function-declaration]
Thus, provide a prototype in arm's include/asm/system.h to fix a build
error in cmd/cache.c, since related prototypes are also located there.
Also add an include of asm/system.h in cmd/cache.c have the function
available there.
Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
---
arch/arm/include/asm/system.h | 1 +
cmd/cache.c | 1 +
2 files changed, 2 insertions(+)
--- a/arch/arm/include/asm/system.h
+++ b/arch/arm/include/asm/system.h
@@ -658,6 +658,7 @@ void mmu_set_region_dcache_behaviour(phy
* Return: 0 if OK
*/
int noncached_init(void);
+void noncached_set_region(void);
phys_addr_t noncached_alloc(size_t size, size_t align);
#endif /* CONFIG_SYS_NONCACHED_MEMORY */
--- a/cmd/cache.c
+++ b/cmd/cache.c
@@ -10,6 +10,7 @@
#include <command.h>
#include <cpu_func.h>
#include <linux/compiler.h>
+#include <asm/system.h>
static int parse_argv(const char *);