From a46c28310238ba0a505dd310dbd5eb1bd2e8f804 Mon Sep 17 00:00:00 2001 From: Lindsay Zhou Date: Sat, 7 Sep 2024 10:44:03 +0800 Subject: [PATCH] fix: implicit conversion and implicit function declaration errors on gcc14 --- arch/riscv/lib/bootm.c | 6 ++-- .../light-c910/lpddr4/src/ddr_common_func.c | 1 + .../light-c910/lpddr4/src/ddr_retention.c | 1 + board/thead/light-c910/spl.c | 28 +++++++++---------- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/arch/riscv/lib/bootm.c b/arch/riscv/lib/bootm.c index 837154d6..f92b0893 100644 --- a/arch/riscv/lib/bootm.c +++ b/arch/riscv/lib/bootm.c @@ -110,7 +110,7 @@ void next_stage(void) bool has_reset_sample(ulong dtb_addr) { int node_offset; - node_offset = fdt_path_offset(dtb_addr, "/soc/reset-sample"); + node_offset = fdt_path_offset((void *)dtb_addr, "/soc/reset-sample"); if (node_offset < 0) { printf("## fdt has no reset_sample\n"); return false; @@ -160,8 +160,8 @@ static void boot_jump_linux(bootm_headers_t *images, int flag) announce_and_cleanup(fake); - _load_start = kernel; - _dtb_addr = images->ft_addr; + _load_start = (ulong)kernel; + _dtb_addr = (ulong)(images->ft_addr); _dyn_info_addr = (ulong)&opensbi_info; if (!has_reset_sample(_dtb_addr)) { opensbi_info.magic = FW_DYNAMIC_INFO_MAGIC_VALUE; diff --git a/board/thead/light-c910/lpddr4/src/ddr_common_func.c b/board/thead/light-c910/lpddr4/src/ddr_common_func.c index 64ec848d..d3150dba 100644 --- a/board/thead/light-c910/lpddr4/src/ddr_common_func.c +++ b/board/thead/light-c910/lpddr4/src/ddr_common_func.c @@ -3,6 +3,7 @@ #include "../include/common_lib.h" #include "../include/ddr_common_func.h" #include "../include/ddr_retention.h" +#include "../include/pinmux.h" DDR_SYSREG_REG_SW_REG_S ddr_sysreg; diff --git a/board/thead/light-c910/lpddr4/src/ddr_retention.c b/board/thead/light-c910/lpddr4/src/ddr_retention.c index bfbe0bf9..e6fca4c5 100644 --- a/board/thead/light-c910/lpddr4/src/ddr_retention.c +++ b/board/thead/light-c910/lpddr4/src/ddr_retention.c @@ -1,6 +1,7 @@ #include "../include/common_lib.h" #include "../include/ddr_common_func.h" #include "../include/ddr_retention.h" +#include "../include/pinmux.h" /* /// data structure to store register address, value pairs diff --git a/board/thead/light-c910/spl.c b/board/thead/light-c910/spl.c index 9eaa4c7f..0b902f53 100644 --- a/board/thead/light-c910/spl.c +++ b/board/thead/light-c910/spl.c @@ -338,37 +338,37 @@ int boundary_verify(unsigned long boundary) { phys_addr_t verify_addr4 = (phys_addr_t)boundary + CONFIG_SYS_SDRAM_BASE; // verify data accessing result firstly - writel(MAGIC_DATA2, verify_addr); + writel(MAGIC_DATA2, (void *)verify_addr); invalidate_dcache_range(verify_addr, verify_addr + CONFIG_SYS_CACHELINE_SIZE); - if (readl(verify_addr) != MAGIC_DATA2) { + if (readl((void *)verify_addr) != MAGIC_DATA2) { printf("ddr rw test failed\n"); return -1; } - writel(MAGIC_DATA, verify_addr); // writing at beginning + writel(MAGIC_DATA, (void *)verify_addr); // writing at beginning invalidate_dcache_range(verify_addr, verify_addr + CONFIG_SYS_CACHELINE_SIZE); - if (readl(verify_addr) != MAGIC_DATA) { + if (readl((void *)verify_addr) != MAGIC_DATA) { printf("ddr rw test failed\n"); return -1; } - writel(MAGIC_DATA2, verify_addr2); // writing at one-quarter addr - writel(MAGIC_DATA3, verify_addr3); // writing at half addr + writel(MAGIC_DATA2, (void *)verify_addr2); // writing at one-quarter addr + writel(MAGIC_DATA3, (void *)verify_addr3); // writing at half addr invalidate_dcache_range(verify_addr, verify_addr + CONFIG_SYS_CACHELINE_SIZE); invalidate_dcache_range(verify_addr2, verify_addr2 + CONFIG_SYS_CACHELINE_SIZE); invalidate_dcache_range(verify_addr3, verify_addr3 + CONFIG_SYS_CACHELINE_SIZE); if (boundary == (unsigned long)MAXIMAL_DDR_DENSITY_MB * UNIT_MB) { // boundary by design - if ((readl(verify_addr) == MAGIC_DATA) && - (readl(verify_addr2) == MAGIC_DATA2) && - (readl(verify_addr3) == MAGIC_DATA3)) + if ((readl((void *)verify_addr) == MAGIC_DATA) && + (readl((void *)verify_addr2) == MAGIC_DATA2) && + (readl((void *)verify_addr3) == MAGIC_DATA3)) return 0; } else { - writel(MAGIC_DATA4, verify_addr4); // writing out of boundary + writel(MAGIC_DATA4, (void *)verify_addr4); // writing out of boundary invalidate_dcache_range(verify_addr4, verify_addr4 + CONFIG_SYS_CACHELINE_SIZE); - if ((readl(verify_addr) == MAGIC_DATA4) && // overwrite by verify_addr4 - (readl(verify_addr2) == MAGIC_DATA2) && - (readl(verify_addr3) == MAGIC_DATA3) && - (readl(verify_addr4) == MAGIC_DATA4)) + if ((readl((void *)verify_addr) == MAGIC_DATA4) && // overwrite by verify_addr4 + (readl((void *)verify_addr2) == MAGIC_DATA2) && + (readl((void *)verify_addr3) == MAGIC_DATA3) && + (readl((void *)verify_addr4) == MAGIC_DATA4)) return 0; }