xref: /linux/arch/s390/kernel/vmcore_info.c (revision 8838a1a2d219a86ab05e679c73f68dd75a25aca5)
1 // SPDX-License-Identifier: GPL-2.0-only
2 
3 #include <linux/vmcore_info.h>
4 #include <linux/mm.h>
5 #include <asm/abs_lowcore.h>
6 #include <asm/sections.h>
7 #include <asm/setup.h>
8 
9 void arch_crash_save_vmcoreinfo(void)
10 {
11 	struct lowcore *abs_lc;
12 
13 	VMCOREINFO_SYMBOL(lowcore_ptr);
14 	VMCOREINFO_SYMBOL(high_memory);
15 	VMCOREINFO_LENGTH(lowcore_ptr, NR_CPUS);
16 	vmcoreinfo_append_str("SAMODE31=%lx\n", (unsigned long)__samode31);
17 	vmcoreinfo_append_str("EAMODE31=%lx\n", (unsigned long)__eamode31);
18 	vmcoreinfo_append_str("IDENTITYBASE=%lx\n", __identity_base);
19 	vmcoreinfo_append_str("KERNELOFFSET=%lx\n", kaslr_offset());
20 	vmcoreinfo_append_str("KERNELOFFPHYS=%lx\n", __kaslr_offset_phys);
21 	abs_lc = get_abs_lowcore();
22 	abs_lc->vmcore_info = paddr_vmcoreinfo_note();
23 	put_abs_lowcore(abs_lc);
24 }
25