1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * S390 kdump lowlevel functions (new kernel) 4 * 5 * Copyright IBM Corp. 2011 6 * Author(s): Michael Holzheu <holzheu@linux.vn 7 */ 8 9 #include <asm/sigp.h> 10 11 #define DATAMOVER_ADDR 0x4000 12 #define COPY_PAGE_ADDR 0x6000 13 14 #ifdef CONFIG_CRASH_DUMP 15 16 # 17 # kdump entry (new kernel - not yet relocated) 18 # 19 # Note: This code has to be position independe 20 # 21 22 SYM_CODE_START_LOCAL(startup_kdump) 23 lhi %r1,2 24 sigp %r1,%r0,SIGP_SET_ARCHITECTURE 25 sam64 26 basr %r13,0 27 .Lbase: 28 larl %r2,.Lbase_addr 29 lg %r2,0(%r2) 30 clgr %r2,%r13 31 jne .Lrelocate 32 lghi %r2,0 33 brasl %r14,startup_kdump_relocated 34 35 .Lrelocate: 36 larl %r4,startup 37 lg %r2,0x418(%r4) 38 lg %r3,0x420(%r4) 39 40 larl %r10,.Lcopy_start 41 lghi %r8,DATAMOVER_ADDR 42 mvc 0(256,%r8),0(%r10) 43 44 agr %r8,%r2 45 mvc 0(256,%r8),0(%r10) 46 47 lghi %r14,DATAMOVER_ADDR 48 basr %r14,%r14 49 .Lbase_addr: 50 .quad .Lbase 51 52 # 53 # kdump data mover code (runs at address DATAM 54 # 55 # r2: kdump base address 56 # r3: kdump size 57 # 58 .Lcopy_start: 59 basr %r13,0 60 0: 61 lgr %r11,%r2 62 lgr %r12,%r2 63 agr %r12,%r3 64 65 lghi %r5,0 66 lghi %r10,COPY_PAGE_ADDR 67 1: 68 mvc 0(256,%r10),0(%r5) 69 mvc 0(256,%r5),0(%r11) 70 mvc 0(256,%r11),0(%r10) 71 aghi %r11,256 72 aghi %r5,256 73 clgr %r11,%r12 74 jl 1b 75 76 lg %r14,.Lstartup_kdump-0b(%r13) 77 basr %r14,%r14 78 .Lstartup_kdump: 79 .long 0x00000000,0x00000000 + startu 80 .Lcopy_end: 81 82 # 83 # Startup of kdump (relocated new kernel) 84 # 85 .balign 2 86 startup_kdump_relocated: 87 basr %r13,0 88 0: lpswe .Lrestart_psw-0b(%r13) 89 SYM_CODE_END(startup_kdump) 90 .balign 8 91 .Lrestart_psw: 92 .quad 0x0000000080000000,0x000000000 93 #else 94 SYM_CODE_START_LOCAL(startup_kdump) 95 larl %r13,startup_kdump_crash 96 lpswe 0(%r13) 97 SYM_CODE_END(startup_kdump) 98 .balign 8 99 startup_kdump_crash: 100 .quad 0x0002000080000000,0x000000000 101 #endif /* CONFIG_CRASH_DUMP */
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.