cache: Check dcache availability before calling cache functions

When the data cache (dcache) is disabled, calling related
status functions can lead to compilation errors due to
undefined references.

Adding a !CONFIG_IS_ENABLED(SYS_DCACHE_OFF) check before
invoking dcache_status() (used in common/memsize.c:get_ram_size())
and mmu_status() (from arch/arm/include/asm/io.h).

Without this check, builds with dcache disabled will fail to compile.

Signed-off-by: Boon Khai Ng <boon.khai.ng@altera.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
Boon Khai Ng
2025-08-14 11:17:40 +08:00
committed by Tien Fong Chee
parent c4e9554015
commit 38d49808d4
2 changed files with 20 additions and 13 deletions

View File

@@ -386,12 +386,14 @@ void __memcpy_fromio(void *to, const volatile void __iomem *from, size_t count)
count--;
}
if (mmu_status()) {
while (count >= 8) {
*(u64 *)to = __raw_readq(from);
from += 8;
to += 8;
count -= 8;
if (!CONFIG_IS_ENABLED(SYS_DCACHE_OFF)) {
if (mmu_status()) {
while (count >= 8) {
*(u64 *)to = __raw_readq(from);
from += 8;
to += 8;
count -= 8;
}
}
}
@@ -416,12 +418,14 @@ void __memcpy_toio(volatile void __iomem *to, const void *from, size_t count)
count--;
}
if (mmu_status()) {
while (count >= 8) {
__raw_writeq(*(u64 *)from, to);
from += 8;
to += 8;
count -= 8;
if (!CONFIG_IS_ENABLED(SYS_DCACHE_OFF)) {
if (mmu_status()) {
while (count >= 8) {
__raw_writeq(*(u64 *)from, to);
from += 8;
to += 8;
count -= 8;
}
}
}

View File

@@ -52,7 +52,10 @@ long get_ram_size(long *base, long maxsize)
long val;
long size;
int i = 0;
int dcache_en = dcache_status();
int dcache_en = 0;
if (!CONFIG_IS_ENABLED(SYS_DCACHE_OFF))
dcache_en = dcache_status();
for (cnt = (maxsize / sizeof(long)) >> 1; cnt > 0; cnt >>= 1) {
addr = base + cnt; /* pointer arith! */