Files
s390-tools/zipl/boot/eckd1b.S
Michael Holzheu b627b8d8e1 Initial s390-tools-2.0.0 import
This commit is based on the s390-tools-1.39.0 version.

Changes on top of s390-tools-1.39.0:

 - Add MIT license to all source files
 - Add LICENSE file
 - Transform REAMDE to README.md (markdown)
 - Add AUTHORS.md file
 - Add CONTRIBUTING.md file
 - Move changelog from README to CHANGELOG.md file

Reviewed-by: Stefan Haberland <sth@linux.vnet.ibm.com>
Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
2017-08-21 10:55:40 +02:00

187 lines
6.0 KiB
ArmAsm

#
# IPL stage 1b loader for ECKD
#
# Copyright IBM Corp. 2012, 2017
#
# s390-tools is free software; you can redistribute it and/or modify
# it under the terms of the MIT license. See LICENSE for details.
#
#
# Stage 1b is loaded to 0xe000-0xe400 and is used to load stage 2 with
# seek/search/tic/read CCWs. Currently stage 1b can load up to 16
# blocks and therefore 8 KiB stage 2 code with 512 byte block size.
#
.globl _start
_start:
.long 0x07000000+.Lseek1,0x60000006 # seek
.Lsearch1:
.long 0x31000000+.Lseek1+2,0x60000005 # search
.long 0x08000000+.Lsearch1,0x00000000 # tic back until found
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek2,0x60000006 # seek
.Lsearch2:
.long 0x31000000+.Lseek2+2,0x60000005 # search
.long 0x08000000+.Lsearch2,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek3,0x60000006 # seek
.Lsearch3:
.long 0x31000000+.Lseek3+2,0x60000005 # search
.long 0x08000000+.Lsearch3,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek4,0x60000006 # seek
.Lsearch4:
.long 0x31000000+.Lseek4+2,0x60000005 # search
.long 0x08000000+.Lsearch4,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek5,0x60000006 # seek
.Lsearch5:
.long 0x31000000+.Lseek5+2,0x60000005 # search
.long 0x08000000+.Lsearch5,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek6,0x60000006 # seek
.Lsearch6:
.long 0x31000000+.Lseek6+2,0x60000005 # search
.long 0x08000000+.Lsearch6,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek7,0x60000006 # seek
.Lsearch7:
.long 0x31000000+.Lseek7+2,0x60000005 # search
.long 0x08000000+.Lsearch7,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek8,0x60000006 # seek
.Lsearch8:
.long 0x31000000+.Lseek8+2,0x60000005 # search
.long 0x08000000+.Lsearch8,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek9,0x60000006 # seek
.Lsearch9:
.long 0x31000000+.Lseek9+2,0x60000005 # search
.long 0x08000000+.Lsearch9,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek10,0x60000006 # seek
.Lsearch10:
.long 0x31000000+.Lseek10+2,0x60000005 # search
.long 0x08000000+.Lsearch10,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek11,0x60000006 # seek
.Lsearch11:
.long 0x31000000+.Lseek11+2,0x60000005 # search
.long 0x08000000+.Lsearch11,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek12,0x60000006 # seek
.Lsearch12:
.long 0x31000000+.Lseek12+2,0x60000005 # search
.long 0x08000000+.Lsearch12,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek13,0x60000006 # seek
.Lsearch13:
.long 0x31000000+.Lseek13+2,0x60000005 # search
.long 0x08000000+.Lsearch13,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek14,0x60000006 # seek
.Lsearch14:
.long 0x31000000+.Lseek14+2,0x60000005 # search
.long 0x08000000+.Lsearch14,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek15,0x60000006 # seek
.Lsearch15:
.long 0x31000000+.Lseek15+2,0x60000005 # search
.long 0x08000000+.Lsearch15,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek16,0x60000006 # seek
.Lsearch16:
.long 0x31000000+.Lseek16+2,0x60000005 # search
.long 0x08000000+.Lsearch16,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek17,0x60000006 # seek
.Lsearch17:
.long 0x31000000+.Lseek17+2,0x60000005 # search
.long 0x08000000+.Lsearch17,0x00000000 # tic back until found
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek18,0x60000006 # seek
.Lsearch18:
.long 0x31000000+.Lseek18+2,0x60000005 # search
.long 0x08000000+.Lsearch18,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek19,0x60000006 # seek
.Lsearch19:
.long 0x31000000+.Lseek19+2,0x60000005 # search
.long 0x08000000+.Lsearch19,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek20,0x60000006 # seek
.Lsearch20:
.long 0x31000000+.Lseek20+2,0x60000005 # search
.long 0x08000000+.Lsearch20,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek21,0x60000006 # seek
.Lsearch21:
.long 0x31000000+.Lseek21+2,0x60000005 # search
.long 0x08000000+.Lsearch21,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek22,0x60000006 # seek
.Lsearch22:
.long 0x31000000+.Lseek22+2,0x60000005 # search
.long 0x08000000+.Lsearch22,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek23,0x60000006 # seek
.Lsearch23:
.long 0x31000000+.Lseek23+2,0x60000005 # search
.long 0x08000000+.Lsearch23,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.long 0x07000000+.Lseek24,0x60000006 # seek
.Lsearch24:
.long 0x31000000+.Lseek24+2,0x60000005 # search
.long 0x08000000+.Lsearch24,0x00000000 # tic back
.long 0x06000000,0x40000000 # read
.Lseek1:
.long 0,0
.Lseek2:
.long 0,0
.Lseek3:
.long 0,0
.Lseek4:
.long 0,0
.Lseek5:
.long 0,0
.Lseek6:
.long 0,0
.Lseek7:
.long 0,0
.Lseek8:
.long 0,0
.Lseek9:
.long 0,0
.Lseek10:
.long 0,0
.Lseek11:
.long 0,0
.Lseek12:
.long 0,0
.Lseek13:
.long 0,0
.Lseek14:
.long 0,0
.Lseek15:
.long 0,0
.Lseek16:
.long 0,0
.Lseek17:
.long 0,0
.Lseek18:
.long 0,0
.Lseek19:
.long 0,0
.Lseek20:
.long 0,0
.Lseek21:
.long 0,0
.Lseek22:
.long 0,0
.Lseek23:
.long 0,0
.Lseek24:
.long 0,0
.org 1024 # Stage 1b should have 1024 byte
.Lend: