This feature depends on the kernel being relocatable.
Enable using single kernel image for kdump, and then no longer need to
build two kernels (production kernel and capture kernel share a single
kernel image).
Also enable CONFIG_CRASH_DUMP in loongson3_defconfig.
Signed-off-by: Youling Tang <tangyouling@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
 
 config CRASH_DUMP
        bool "Build kdump crash kernel"
+       select RELOCATABLE
        help
          Generate crash dump after being started by kexec. This should
          be normally only set in special crash dump kernels which are
 
          For more details see Documentation/admin-guide/kdump/kdump.rst
 
-config PHYSICAL_START
-       hex "Physical address where the kernel is loaded"
-       default "0x90000000a0000000"
-       depends on CRASH_DUMP
-       help
-         This gives the XKPRANGE address where the kernel is loaded.
-         If you plan to use kernel for capturing the crash dump change
-         this value to start of the reserved region (the "X" value as
-         specified in the "crashkernel=YM@XM" command line boot parameter
-         passed to the panic-ed kernel).
-
 config RELOCATABLE
        bool "Relocatable kernel"
        help
 
 cflags-y += -ffreestanding
 cflags-y += $(call cc-option, -mno-check-zero-division)
 
-ifndef CONFIG_PHYSICAL_START
 load-y         = 0x9000000000200000
-else
-load-y         = $(CONFIG_PHYSICAL_START)
-endif
 bootvars-y     = VMLINUX_LOAD_ADDRESS=$(load-y)
 
 drivers-$(CONFIG_PCI)          += arch/loongarch/pci/
 
 CONFIG_NR_CPUS=64
 CONFIG_NUMA=y
 CONFIG_KEXEC=y
+CONFIG_CRASH_DUMP=y
 CONFIG_SUSPEND=y
 CONFIG_HIBERNATION=y
 CONFIG_ACPI=y
 
 #define ISA_IOSIZE     SZ_16K
 #define IO_SPACE_LIMIT (PCI_IOSIZE - 1)
 
+#define PHYS_LINK_KADDR        PHYSADDR(VMLINUX_LOAD_ADDRESS)
+
 #endif /* _ASM_ADDRSPACE_H */
 
        .org    0x8
        .dword  kernel_entry            /* Kernel entry point */
        .dword  _end - _text            /* Kernel image effective size */
-       .quad   0                       /* Kernel image load offset from start of RAM */
+       .quad   PHYS_LINK_KADDR         /* Kernel image load offset from start of RAM */
        .org    0x38                    /* 0x20 ~ 0x37 reserved */
        .long   LINUX_PE_MAGIC
        .long   pe_header - _head       /* Offset to the PE header */