-
Notifications
You must be signed in to change notification settings - Fork 6
/
README.SAMPLES.ELF.txt
187 lines (155 loc) · 9.51 KB
/
README.SAMPLES.ELF.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
Copyright (C) 2015 Harold Grovesteen
This file is part of SATK.
SATK is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
SATK is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with SATK. If not, see <http://www.gnu.org/licenses/>.
SATK ELF Samples
The 'samples' directory contains examples and tests of various SATK components.
All device types have not been tested in all settings. All devices have been tested
but not in all CPU architectures. All CPU architectures have been tested but not
with all devices. The FBA device type has been tested the most.
The tool kit has changed focus to the use of the assembler supplied by the tool kit
for the purpose of building bare-metal programs. These directories should be
considered as stabilized and additional development is not likely to occur further
unless a contributor is inclined to work in this space.
The following directories are provided with ELF related samples:
decklodr Tests loading an ELF embedded within an object deck of emulated card
images. The object contains the usual TXT records, etc. The TXT
records contain the ELF executable itself.
embedded Builds and tests various device type images created from an IPL ELF
executable that includes an embedded boot loader.
The device image contains
- a boot loader targeting various CPU architectures that
- enters a program it loads from the device.
external Builds and tests various device type images created from:
- an IPL ELF executable targeting various CPU architectures and
- a loader from a separate IPL ELF executable, for example as
found in the embedded directory.
ihandlers Builds an IPL ELF that tests the HAL interrupt handler processes in
different CPU architectures loaded from an FBA device.
iplelf Builds and tests various device type images containing:
- an IPL ELF executable and
- its direct IPL in various CPU architectures.
textseg Builds and tests various device type images containing:
- a TEXT segment from an IPL ELF executable and
- its direct IPL in various CPU architectures.
Common code and any bash scripts are in the samples/xxxx directory to which they
apply. Each class of devices will have its own sub-directory. Each CPU
architecture has its own subdirectory for the device type. The CPU architecture
directory has two sub directories: build and test. The IPL ELF executable is
built within the 'build' directory and the IPL ready device is test results are in
the 'test' directory. The CPU architecture will be: s370, s370bc, s390 or s390x.
The supported device classes are: card, cdrom, ckd, fba and tape. SATK builds
the device images.
This is the directory structure used for example with a fba device. The SATK
bash functions use a single module name to identify most of the build files. In
the sample below the module name is 'module'. In some cases, files related to
more than one module may be present.
fba/<CPU-arch>/hercules.<env>.<date>.<time>.log - Hercules test console log
module.3310 - IPL ready device of type 3310 (from iplmed.py)
hercules....log - Hercules test log file (from hercules)
<CPU-arch>.conf - Hercules configuration file
<CPU-arch>.rc - Hercules RC file
build/module - IPL ELF executable (from GNU ld)
module.exe.txt - IPL ELF executable content (from objdump)
module.lst - Assembler listing (from GNU as)
module.lds - Linkage editor statements (from ipldpp.py)
module.map - Linkage editor map (from GNU ld)
module.o - IPL ELF object (from GNU as)
module.obj.txt - IPL ELF object content (from objdump)
The test matrices provided below describe the level of testing done and whether
the particular device/CPU architecture combination is included with the tool kit
repository. 'tested' indicates the combination has been built and tested external
to SATK. 'SATK' indicates the combination is available in the repository.
The remainder of this file contains notes about specific sample directories.
embedded directory
------------------
The embedded directory uses the module name 'embed'.
Devices built to IPL a boot loader which then loads the program from the device use
the name 'embed.<device_type>'.
Test/availability matrix for loading an IPL ELF by its embedded boot strap loader.
+----------------------------------------------------------+
| Device | CPU architecture |
| Type |---------------------------------------------+
| | s370bc | s370 | s390 | s390x |
+------------+-----------+---------+------------+----------+
| card | -- | -- | -- | -- |
+------------+-----------+---------+------------+----------+
| cdrom | -- | -- | -- | -- |
+------------+-----------+---------+------------+----------+
| ckd | -- | -- | -- | -- |
+------------+-----------+---------+------------+----------+
| fba | SATK | SATK | SATK | SATK |
+------------+-----------+---------+------------+----------+
| tape | -- | -- | -- | -- |
+------------+-----------+---------+------------+----------+
external directory
------------------
The external directory uses the module name 'extrnal'.
Devices built to IPL a boot loader (sourced from a separate IPL ELF) then loading
the program from the device use the name 'extrnal.<device_type>'.
Test/availability matrix for loading an IPL ELF by its embedded boot strap loader.
+----------------------------------------------------------+
| Device | CPU architecture |
| Type |---------------------------------------------+
| | s370bc | s370 | s390 | s390x |
+------------+-----------+---------+------------+----------+
| card | -- | -- | -- | -- |
+------------+-----------+---------+------------+----------+
| cdrom | -- | -- | -- | -- |
+------------+-----------+---------+------------+----------+
| ckd | -- | -- | -- | -- |
+------------+-----------+---------+------------+----------+
| fba | SATK | SATK | SATK | SATK |
+------------+-----------+---------+------------+----------+
| tape | -- | -- | -- | -- |
+------------+-----------+---------+------------+----------+
iplelf directory
----------------
The textseg directory uses the module name 'iplelf'.
Devices built to directly IPL the program's complete IPL ELF uses the name
'iplelf.<device_type>'.
Test/availability matrix for IPL ELF loaded directly by the IPL function.
+----------------------------------------------------------+
| Device | CPU architecture |
| Type |---------------------------------------------+
| | s370bc | s370 | s390 | s390x |
+------------+-----------+---------+------------+----------+
| card | -- | -- | -- | -- |
+------------+-----------+---------+------------+----------+
| cdrom | -- | -- | -- | -- |
+------------+-----------+---------+------------+----------+
| ckd | -- | -- | -- | -- |
+------------+-----------+---------+------------+----------+
| fba | SATK | SATK | SATK | SATK |
+------------+-----------+---------+------------+----------+
| tape | -- | -- | -- | -- |
+------------+-----------+---------+------------+----------+
textseg directory
-----------------
The textseg directory uses the module name 'textseg'.
Devices built to directly IPL the program's TEXT segment use the name
'textseg.<device_type>'.
Test/availability matrix for IPL ELF loaded directly by the IPL function.
+----------------------------------------------------------+
| Device | CPU architecture |
| Type |---------------------------------------------+
| | s370bc | s370 | s390 | s390x |
+------------+-----------+---------+------------+----------+
| card | -- | -- | -- | -- |
+------------+-----------+---------+------------+----------+
| cdrom | -- | -- | -- | -- |
+------------+-----------+---------+------------+----------+
| ckd | -- | -- | -- | -- |
+------------+-----------+---------+------------+----------+
| fba | SATK | SATK | SATK | SATK |
+------------+-----------+---------+------------+----------+
| tape | -- | -- | -- | -- |
+------------+-----------+---------+------------+----------+