@@ -60,19 +60,6 @@ __HEAD
60
60
.long 0x020006e0 ,0x20000050
61
61
62
62
.org 0x200
63
- #
64
- # subroutine to set architecture mode
65
- #
66
- .Lsetmode:
67
- mvi __LC_AR_MODE_ID,1 # set esame flag
68
- slr %r0,%r0 # set cpuid to zero
69
- lhi %r1,2 # mode 2 = esame (dump)
70
- sigp %r1,%r0,0x12 # switch to esame mode
71
- bras %r13 ,0f
72
- .fill 16 ,4 ,0x0
73
- 0: lmh %r0,%r15 ,0 (%r13 ) # clear high-order half of gprs
74
- sam31 # switch to 31 bit addressing mode
75
- br %r14
76
63
77
64
#
78
65
# subroutine to wait for end I/O
@@ -160,7 +147,14 @@ __HEAD
160
147
.long 0x02200050 ,0x00000000
161
148
162
149
iplstart:
163
- bas %r14 ,.Lsetmode # Immediately switch to 64 bit mode
150
+ mvi __LC_AR_MODE_ID,1 # set esame flag
151
+ slr %r0,%r0 # set cpuid to zero
152
+ lhi %r1,2 # mode 2 = esame (dump)
153
+ sigp %r1,%r0,0x12 # switch to esame mode
154
+ bras %r13 ,0f
155
+ .fill 16 ,4 ,0x0
156
+ 0: lmh %r0,%r15 ,0 (%r13 ) # clear high-order half of gprs
157
+ sam31 # switch to 31 bit addressing mode
164
158
lh %r1,0xb8 # test if subchannel number
165
159
bct %r1,.Lnoload # is valid
166
160
l %r1,0xb8 # load ipl subchannel number
@@ -269,71 +263,6 @@ iplstart:
269
263
.align 8
270
264
.Lcpuid: .fill 8 ,1 ,0
271
265
272
- #
273
- # SALIPL loader support. Based on a patch by Rob van der Heij.
274
- # This entry point is called directly from the SALIPL loader and
275
- # doesn't need a builtin ipl record.
276
- #
277
- .org 0x800
278
- ENTRY(start)
279
- stm %r0,%r15 ,0x07b0 # store registers
280
- bas %r14 ,.Lsetmode # Immediately switch to 64 bit mode
281
- basr %r12 ,%r0
282
- .base:
283
- l %r11 ,.parm
284
- l %r8 ,.cmd # pointer to command buffer
285
-
286
- ltr %r9 ,%r9 # do we have SALIPL parameters?
287
- bp .sk8x8
288
-
289
- mvc 0 (64 ,%r8 ),0x00b0 # copy saved registers
290
- xc 64 (240 -64 ,%r8 ),0 (%r8 ) # remainder of buffer
291
- tr 0 (64 ,%r8 ),.lowcase
292
- b .gotr
293
- .sk8x8:
294
- mvc 0 (240 ,%r8 ),0 (%r9 ) # copy iplparms into buffer
295
- .gotr:
296
- slr %r0,%r0
297
- st %r0,INITRD_SIZE+ARCH_OFFSET-PARMAREA(%r11 )
298
- st %r0,INITRD_START+ARCH_OFFSET-PARMAREA(%r11 )
299
- j startup # continue with startup
300
- .cmd: .long COMMAND_LINE # address of command line buffer
301
- .parm: .long PARMAREA
302
- .lowcase:
303
- .byte 0x00 ,0x01 ,0x02 ,0x03 ,0x04 ,0x05 ,0x06 ,0x07
304
- .byte 0x08 ,0x09 ,0x0a ,0x0b ,0x0c ,0x0d ,0x0e ,0x0f
305
- .byte 0x10 ,0x11 ,0x12 ,0x13 ,0x14 ,0x15 ,0x16 ,0x17
306
- .byte 0x18 ,0x19 ,0x1a ,0x1b ,0x1c ,0x1d ,0x1e ,0x1f
307
- .byte 0x20 ,0x21 ,0x22 ,0x23 ,0x24 ,0x25 ,0x26 ,0x27
308
- .byte 0x28 ,0x29 ,0x2a ,0x2b ,0x2c ,0x2d ,0x2e ,0x2f
309
- .byte 0x30 ,0x31 ,0x32 ,0x33 ,0x34 ,0x35 ,0x36 ,0x37
310
- .byte 0x38 ,0x39 ,0x3a ,0x3b ,0x3c ,0x3d ,0x3e ,0x3f
311
- .byte 0x40 ,0x41 ,0x42 ,0x43 ,0x44 ,0x45 ,0x46 ,0x47
312
- .byte 0x48 ,0x49 ,0x4a ,0x4b ,0x4c ,0x4d ,0x4e ,0x4f
313
- .byte 0x50 ,0x51 ,0x52 ,0x53 ,0x54 ,0x55 ,0x56 ,0x57
314
- .byte 0x58 ,0x59 ,0x5a ,0x5b ,0x5c ,0x5d ,0x5e ,0x5f
315
- .byte 0x60 ,0x61 ,0x62 ,0x63 ,0x64 ,0x65 ,0x66 ,0x67
316
- .byte 0x68 ,0x69 ,0x6a ,0x6b ,0x6c ,0x6d ,0x6e ,0x6f
317
- .byte 0x70 ,0x71 ,0x72 ,0x73 ,0x74 ,0x75 ,0x76 ,0x77
318
- .byte 0x78 ,0x79 ,0x7a ,0x7b ,0x7c ,0x7d ,0x7e ,0x7f
319
-
320
- .byte 0x80 ,0x81 ,0x82 ,0x83 ,0x84 ,0x85 ,0x86 ,0x87
321
- .byte 0x88 ,0x89 ,0x8a ,0x8b ,0x8c ,0x8d ,0x8e ,0x8f
322
- .byte 0x90 ,0x91 ,0x92 ,0x93 ,0x94 ,0x95 ,0x96 ,0x97
323
- .byte 0x98 ,0x99 ,0x9a ,0x9b ,0x9c ,0x9d ,0x9e ,0x9f
324
- .byte 0xa0 ,0xa1 ,0xa2 ,0xa3 ,0xa4 ,0xa5 ,0xa6 ,0xa7
325
- .byte 0xa8 ,0xa9 ,0xaa ,0xab ,0xac ,0xad ,0xae ,0xaf
326
- .byte 0xb0 ,0xb1 ,0xb2 ,0xb3 ,0xb4 ,0xb5 ,0xb6 ,0xb7
327
- .byte 0xb8 ,0xb9 ,0xba ,0xbb ,0xbc ,0xbd ,0xbe ,0xbf
328
- .byte 0xc0 ,0x81 ,0x82 ,0x83 ,0x84 ,0x85 ,0x86 ,0x87 # .abcdefg
329
- .byte 0x88 ,0x89 ,0xca ,0xcb ,0xcc ,0xcd ,0xce ,0xcf # hi
330
- .byte 0xd0 ,0x91 ,0x92 ,0x93 ,0x94 ,0x95 ,0x96 ,0x97 # .jklmnop
331
- .byte 0x98 ,0x99 ,0xda ,0xdb ,0xdc ,0xdd ,0xde ,0xdf # qr
332
- .byte 0xe0 ,0xe1 ,0xa2 ,0xa3 ,0xa4 ,0xa5 ,0xa6 ,0xa7 # ..stuvwx
333
- .byte 0xa8 ,0xa9 ,0xea ,0xeb ,0xec ,0xed ,0xee ,0xef # yz
334
- .byte 0xf0 ,0xf1 ,0xf2 ,0xf3 ,0xf4 ,0xf5 ,0xf6 ,0xf7
335
- .byte 0xf8 ,0xf9 ,0xfa ,0xfb ,0xfc ,0xfd ,0xfe ,0xff
336
-
337
266
#
338
267
# startup-code at 0x10000, running in absolute addressing mode
339
268
# this is called either by the ipl loader or directly by PSW restart
0 commit comments