[PATCHv2 1/2] CONFIG_SYS_NONCACHED_MEMORY: Move prototypes to include/cpu_func.h for consistency

Currently, a number of generic cache related functions have their common prototype declared in include/cpu_func.h. Move the current set of noncached functions there as well to match.
Signed-off-by: Tom Rini trini@konsulko.com --- Changes in v2: - New patch because of build failures noticed on v1. --- arch/arm/include/asm/system.h | 16 ---------------- arch/mips/include/asm/system.h | 14 -------------- include/cpu_func.h | 13 +++++++++++++ 3 files changed, 13 insertions(+), 30 deletions(-)
diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h index 2237d7d00668..8a932d4e192d 100644 --- a/arch/arm/include/asm/system.h +++ b/arch/arm/include/asm/system.h @@ -656,22 +656,6 @@ void mmu_set_region_dcache_behaviour_phys(phys_addr_t virt, phys_addr_t phys, void mmu_set_region_dcache_behaviour(phys_addr_t start, size_t size, enum dcache_option option);
-#ifdef CONFIG_SYS_NONCACHED_MEMORY -/** - * noncached_init() - Initialize non-cached memory region - * - * Initialize non-cached memory area. This memory region will be typically - * located right below the malloc() area and mapped uncached in the MMU. - * - * It is called during the generic post-relocation init sequence. - * - * Return: 0 if OK - */ -int noncached_init(void); - -phys_addr_t noncached_alloc(size_t size, size_t align); -#endif /* CONFIG_SYS_NONCACHED_MEMORY */ - #endif /* __ASSEMBLY__ */
#endif diff --git a/arch/mips/include/asm/system.h b/arch/mips/include/asm/system.h index 89a2ac209fce..00699c4c11a5 100644 --- a/arch/mips/include/asm/system.h +++ b/arch/mips/include/asm/system.h @@ -286,20 +286,6 @@ static inline void instruction_hazard_barrier(void) /* 1MB granularity */ #define MMU_SECTION_SHIFT 20 #define MMU_SECTION_SIZE (1 << MMU_SECTION_SHIFT) - -/** - * noncached_init() - Initialize non-cached memory region - * - * Initialize non-cached memory area. This memory region will be typically - * located right below the malloc() area and be accessed from KSEG1. - * - * It is called during the generic post-relocation init sequence. - * - * Return: 0 if OK - */ -int noncached_init(void); - -phys_addr_t noncached_alloc(size_t size, size_t align); #endif /* CONFIG_SYS_NONCACHED_MEMORY */
#endif /* _ASM_SYSTEM_H */ diff --git a/include/cpu_func.h b/include/cpu_func.h index 45e8a0a05778..dba7d102e897 100644 --- a/include/cpu_func.h +++ b/include/cpu_func.h @@ -69,6 +69,19 @@ void flush_dcache_range(unsigned long start, unsigned long stop); void invalidate_dcache_range(unsigned long start, unsigned long stop); void invalidate_dcache_all(void); void invalidate_icache_all(void); +/** + * noncached_init() - Initialize non-cached memory region + * + * Initialize non-cached memory area. This memory region will be typically + * located right below the malloc() area and mapped uncached in the MMU. + * + * It is called during the generic post-relocation init sequence. + * + * Return: 0 if OK + */ +int noncached_init(void); + +phys_addr_t noncached_alloc(size_t size, size_t align);
enum { /* Disable caches (else flush caches but leave them active) */

From: Jonas Jelonek jelonek.jonas@gmail.com
Due to the removal of weak functions in 7d6cee2cd0 ("cmd: cache: Remove weak function"), U-Boot 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 include/cpu_func.h to fix a build error in cmd/cache.c, since related prototypes are also located there.
The issue occured after the update of uboot-mediatek in OpenWrt to v2024.10, in combination with GCC-14 toolchain. It was reported and discussed in https://github.com/openwrt/openwrt/issues/16697, and temporarily fixed with https://github.com/openwrt/openwrt/commit/92ca322dd1f48158b8829fec59319a12e4....
Signed-off-by: Jonas Jelonek jelonek.jonas@gmail.com Link: https://github.com/openwrt/openwrt/issues/16697 Link: https://github.com/openwrt/openwrt/commit/92ca322dd1f48158b8829fec59319a12e4... Fixes: 7d6cee2cd0 ("cmd: cache: Remove weak function") Signed-off-by: Tom Rini trini@konsulko.com --- Changes in v2: Move to cpu_func.h instead of <asm/system.h>. We do this because not all architectures which compile cmd/cache.c have <asm/system.h>. --- include/cpu_func.h | 1 + 1 file changed, 1 insertion(+)
diff --git a/include/cpu_func.h b/include/cpu_func.h index dba7d102e897..7e81c4364a73 100644 --- a/include/cpu_func.h +++ b/include/cpu_func.h @@ -80,6 +80,7 @@ void invalidate_icache_all(void); * Return: 0 if OK */ int noncached_init(void); +void noncached_set_region(void);
phys_addr_t noncached_alloc(size_t size, size_t align);

On Tue, 22 Oct 2024 10:31:17 -0600, Tom Rini wrote:
Currently, a number of generic cache related functions have their common prototype declared in include/cpu_func.h. Move the current set of noncached functions there as well to match.
Applied to u-boot/master, thanks!
participants (1)
-
Tom Rini