[PATCH] makedumpfile: mips64: Replace hardcoded values with macros
Chetan Kankotiya
ckankoti at cisco.com
Wed Sep 14 03:13:35 PDT 2022
Replace hardcoded values of PAGE_OFFSET, XKPHS start and end address,
and _MAX_PHYSMEM_BITS with macros that may differ based on kernel-defined
values for different MIPS SoCs. We can override these macros to align
with kernel values at compile time.
Signed-off-by: Chetan Kankotiya <ckankoti at cisco.com>
---
arch/mips64.c | 4 ++--
makedumpfile.h | 17 +++++++++++++++++
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/arch/mips64.c b/arch/mips64.c
index d541c3e..ab45b6e 100644
--- a/arch/mips64.c
+++ b/arch/mips64.c
@@ -52,7 +52,7 @@ get_machdep_info_mips64(void)
int
get_versiondep_info_mips64(void)
{
- info->page_offset = 0x9800000000000000ULL;
+ info->page_offset = _PAGE_OFFSET;
DEBUG_MSG("page_offset : %lx\n", info->page_offset);
@@ -79,7 +79,7 @@ vaddr_to_paddr_mips64(unsigned long vaddr)
/*
* XKPHYS
*/
- if (vaddr >= 0x9000000000000000ULL && vaddr < 0xc000000000000000ULL)
+ if (vaddr >= _XKPHYS_START_ADDR && vaddr < _XKPHYS_END_ADDR)
return vaddr & ((1ULL << MAX_PHYSMEM_BITS()) - 1);
if (SYMBOL(swapper_pg_dir) == NOT_FOUND_SYMBOL) {
diff --git a/makedumpfile.h b/makedumpfile.h
index 2084ed5..49b9242 100644
--- a/makedumpfile.h
+++ b/makedumpfile.h
@@ -965,8 +965,25 @@ typedef unsigned long pgd_t;
#ifdef __mips64__ /* mips64 */
#define KVBASE PAGE_OFFSET
+
+#ifndef _XKPHYS_START_ADDR
+#define _XKPHYS_START_ADDR 0x9000000000000000ULL /* _LOONGSON_XKPHYS_START_ADDR */
+#endif
+
+#ifndef _XKPHYS_END_ADDR
+#define _XKPHYS_END_ADDR 0xc000000000000000ULL /* _LOONGSON_XKPHYS_END_ADDR */
+#endif
+
+#ifndef _PAGE_OFFSET
+#define _PAGE_OFFSET 0x9800000000000000ULL
+#endif
+
#define _SECTION_SIZE_BITS (28)
+
+#ifndef _MAX_PHYSMEM_BITS
#define _MAX_PHYSMEM_BITS (48)
+#endif
+
#define _PAGE_PRESENT (1 << 0)
#define _PAGE_HUGE (1 << 4)
--
2.26.2.Cisco
More information about the kexec
mailing list