1 | # $Id: Makefile.kmk 104823 2024-05-31 06:02:56Z vboxsync $
|
---|
2 | ## @file
|
---|
3 | # VirtualBox Validation Kit - Bootsector Tests for Test Drivers or standalone testing.
|
---|
4 | #
|
---|
5 |
|
---|
6 | #
|
---|
7 | # Copyright (C) 2006-2023 Oracle and/or its affiliates.
|
---|
8 | #
|
---|
9 | # This file is part of VirtualBox base platform packages, as
|
---|
10 | # available from https://www.virtualbox.org.
|
---|
11 | #
|
---|
12 | # This program is free software; you can redistribute it and/or
|
---|
13 | # modify it under the terms of the GNU General Public License
|
---|
14 | # as published by the Free Software Foundation, in version 3 of the
|
---|
15 | # License.
|
---|
16 | #
|
---|
17 | # This program is distributed in the hope that it will be useful, but
|
---|
18 | # WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
---|
20 | # General Public License for more details.
|
---|
21 | #
|
---|
22 | # You should have received a copy of the GNU General Public License
|
---|
23 | # along with this program; if not, see <https://www.gnu.org/licenses>.
|
---|
24 | #
|
---|
25 | # The contents of this file may alternatively be used under the terms
|
---|
26 | # of the Common Development and Distribution License Version 1.0
|
---|
27 | # (CDDL), a copy of it is provided in the "COPYING.CDDL" file included
|
---|
28 | # in the VirtualBox distribution, in which case the provisions of the
|
---|
29 | # CDDL are applicable instead of those of the GPL.
|
---|
30 | #
|
---|
31 | # You may elect to license modified versions of this file under the
|
---|
32 | # terms and conditions of either the GPL or the CDDL or both.
|
---|
33 | #
|
---|
34 | # SPDX-License-Identifier: GPL-3.0-only OR CDDL-1.0
|
---|
35 | #
|
---|
36 |
|
---|
37 | SUB_DEPTH = ../../../..
|
---|
38 | include $(KBUILD_PATH)/subheader.kmk
|
---|
39 |
|
---|
40 |
|
---|
41 | #
|
---|
42 | # Make sure our Config.kmk gets included when kmk is running from a parent directory.
|
---|
43 | #
|
---|
44 | ifndef VBOX_BOOTSECTORS_CONFIG_KMK_INCLUDED
|
---|
45 | include $(PATH_SUB_CURRENT)/Config.kmk
|
---|
46 | endif
|
---|
47 |
|
---|
48 |
|
---|
49 | #
|
---|
50 | # Include sub-makefile.
|
---|
51 | #
|
---|
52 | # The VBOX_WITH_BS3KIT feature requires NASM 2.12 and either MSVC or gcc
|
---|
53 | # with ms_abi function attribute (gcc v4.4+, MSVC default).
|
---|
54 | # Some 32-bit gcc compilers come without 64-bit support (e.g. EL5).
|
---|
55 | #
|
---|
56 | if defined(VBOX_WITH_OPEN_WATCOM)
|
---|
57 | if1of ($(KBUILD_TARGET), win)
|
---|
58 | VBOX_WITH_BS3KIT = 1
|
---|
59 | else if $(VBOX_GCC_VERSION_CC) >= 40400 # ms_abi was added in 4.4
|
---|
60 | if1of ($(KBUILD_TARGET), linux)
|
---|
61 | ifneq ($(VBOX_GCC_m64),)
|
---|
62 | VBOX_WITH_BS3KIT = 1
|
---|
63 | endif
|
---|
64 | endif
|
---|
65 | endif
|
---|
66 | ifdef VBOX_WITH_BS3KIT
|
---|
67 | include $(PATH_SUB_CURRENT)/bs3kit/Makefile.kmk
|
---|
68 | endif
|
---|
69 | endif
|
---|
70 |
|
---|
71 |
|
---|
72 | #
|
---|
73 | # Boot Sector "Linker" tool.
|
---|
74 | #
|
---|
75 | TOOL_VBoxBootSectorLd = Joins one or more BS2 object files into a floppy img.
|
---|
76 | TOOL_VBoxBootSectorLd_LINK_MISCBIN_OUTPUT =
|
---|
77 | TOOL_VBoxBootSectorLd_LINK_MISCBIN_DEPEND =
|
---|
78 | TOOL_VBoxBootSectorLd_LINK_MISCBIN_DEPORD = $(VBoxBs2Linker_1_TARGET)
|
---|
79 | define TOOL_VBoxBootSectorLd_LINK_MISCBIN_CMDS
|
---|
80 | $(VBoxBs2Linker_1_TARGET) -o $(out) $(objs) $(othersrc)
|
---|
81 | endef
|
---|
82 |
|
---|
83 | BLDPROGS += VBoxBs2Linker
|
---|
84 | VBoxBs2Linker_TEMPLATE = VBoxBldProg
|
---|
85 | VBoxBs2Linker_SOURCES = VBoxBs2Linker.cpp
|
---|
86 |
|
---|
87 |
|
---|
88 | #
|
---|
89 | # Tool for converting an assembly object file into a header.
|
---|
90 | #
|
---|
91 | BLDPROGS += VBoxBs3Obj2Hdr
|
---|
92 | VBoxBs3Obj2Hdr_TEMPLATE = VBoxBldProg
|
---|
93 | VBoxBs3Obj2Hdr_SOURCES = VBoxBs3Obj2Hdr.cpp
|
---|
94 |
|
---|
95 |
|
---|
96 | #
|
---|
97 | # Makes a boot sector test image.
|
---|
98 | #
|
---|
99 | TEMPLATE_VBoxBsTestImg = kBuild tool config for building boot sector stuff.
|
---|
100 | TEMPLATE_VBoxBsTestImg_INST = $(INST_VALIDATIONKIT)bootsectors/
|
---|
101 | TEMPLATE_VBoxBsTestImg_BINSUFF = .img
|
---|
102 | TEMPLATE_VBoxBsTestImg_MODE = 0644
|
---|
103 | TEMPLATE_VBoxBsTestImg_ASTOOL = YASM
|
---|
104 | TEMPLATE_VBoxBsTestImg_ASFLAGS = -f bin -P $(VBOX_PATH_BOOTSECTORS_SRC)/bootsector2-first.mac $(VBOX_YASM_Wno-segreg-in-64bit) --mapfile
|
---|
105 | TEMPLATE_VBoxBsTestImg_ASDEFS = ASM_FORMAT_BIN
|
---|
106 | TEMPLATE_VBoxBsTestImg_INCS = \
|
---|
107 | . \
|
---|
108 | ../../VMM/testcase/Instructions
|
---|
109 | TEMPLATE_VBoxBsTestImg_LDTOOL = VBoxBootSectorLd
|
---|
110 |
|
---|
111 |
|
---|
112 | #
|
---|
113 | # The boot sector tests.
|
---|
114 | #
|
---|
115 | MISCBINS += bootsector-shutdown
|
---|
116 | bootsector-shutdown_TEMPLATE = VBoxBsTestImg
|
---|
117 | bootsector-shutdown_SOURCES = bootsector-shutdown.asm
|
---|
118 |
|
---|
119 | MISCBINS += bootsector-pae
|
---|
120 | bootsector-pae_TEMPLATE = VBoxBsTestImg
|
---|
121 | bootsector-pae_SOURCES = bootsector-pae.asm
|
---|
122 |
|
---|
123 | MISCBINS += bootsector-empty
|
---|
124 | bootsector-empty_TEMPLATE = VBoxBsTestImg
|
---|
125 | bootsector-empty_SOURCES = bootsector-empty.asm
|
---|
126 |
|
---|
127 | MISCBINS += bootsector2-test1
|
---|
128 | bootsector2-test1_TEMPLATE = VBoxBsTestImg
|
---|
129 | bootsector2-test1_SOURCES = bootsector2-test1.asm
|
---|
130 |
|
---|
131 | MISCBINS += bootsector2-cpu-hidden-regs-1
|
---|
132 | bootsector2-cpu-hidden-regs-1_TEMPLATE = VBoxBsTestImg
|
---|
133 | bootsector2-cpu-hidden-regs-1_SOURCES = bootsector2-cpu-hidden-regs-1.asm
|
---|
134 |
|
---|
135 | MISCBINS += bootsector2-cpu-instr-1
|
---|
136 | bootsector2-cpu-instr-1_TEMPLATE = VBoxBsTestImg
|
---|
137 | bootsector2-cpu-instr-1_SOURCES = bootsector2-cpu-instr-1.asm
|
---|
138 |
|
---|
139 | MISCBINS += bootsector2-cpu-pf-1
|
---|
140 | bootsector2-cpu-pf-1_TEMPLATE = VBoxBsTestImg
|
---|
141 | bootsector2-cpu-pf-1_SOURCES = bootsector2-cpu-pf-1.asm
|
---|
142 |
|
---|
143 | MISCBINS += bootsector2-cpu-xcpt-1
|
---|
144 | bootsector2-cpu-xcpt-1_TEMPLATE = VBoxBsTestImg
|
---|
145 | bootsector2-cpu-xcpt-1_SOURCES = bootsector2-cpu-xcpt-1.asm
|
---|
146 |
|
---|
147 | MISCBINS += bootsector2-cpu-xcpt-2
|
---|
148 | bootsector2-cpu-xcpt-2_TEMPLATE = VBoxBsTestImg
|
---|
149 | bootsector2-cpu-xcpt-2_SOURCES = bootsector2-cpu-xcpt-2.asm
|
---|
150 |
|
---|
151 | MISCBINS += bootsector2-cpu-a20-1
|
---|
152 | bootsector2-cpu-a20-1_TEMPLATE = VBoxBsTestImg
|
---|
153 | bootsector2-cpu-a20-1_SOURCES = bootsector2-cpu-a20-1.asm
|
---|
154 |
|
---|
155 | MISCBINS += bootsector2-cpu-basic-1
|
---|
156 | bootsector2-cpu-basic-1_TEMPLATE = VBoxBsTestImg
|
---|
157 | bootsector2-cpu-basic-1_SOURCES = bootsector2-cpu-basic-1.asm
|
---|
158 |
|
---|
159 | MISCBINS += bootsector2-cpu-ac-loop
|
---|
160 | bootsector2-cpu-ac-loop_TEMPLATE = VBoxBsTestImg
|
---|
161 | bootsector2-cpu-ac-loop_SOURCES = bootsector2-cpu-ac-loop.asm
|
---|
162 |
|
---|
163 | MISCBINS += bootsector2-cpu-db-loop
|
---|
164 | bootsector2-cpu-db-loop_TEMPLATE = VBoxBsTestImg
|
---|
165 | bootsector2-cpu-db-loop_SOURCES = bootsector2-cpu-db-loop.asm
|
---|
166 |
|
---|
167 | MISCBINS += bootsector2-boot-registers-1
|
---|
168 | bootsector2-boot-registers-1_TEMPLATE = VBoxBsTestImg
|
---|
169 | bootsector2-boot-registers-1_SOURCES = bootsector2-boot-registers-1.asm
|
---|
170 |
|
---|
171 | MISCBINS += bootsector2-triple-fault-1
|
---|
172 | bootsector2-triple-fault-1_TEMPLATE = VBoxBsTestImg
|
---|
173 | bootsector2-triple-fault-1_SOURCES = bootsector2-triple-fault-1.asm
|
---|
174 |
|
---|
175 |
|
---|
176 | ifeq ($(USERNAME),birdxx)
|
---|
177 | if1of ($(KBUILD_HOST).$(KBUILD_HOST_ARCH), win.amd64)
|
---|
178 | #
|
---|
179 | # Generated instruction tests (work in progress).
|
---|
180 | #
|
---|
181 |
|
---|
182 | VBOX_PATH_VBINSTST = $(PATH_ROOT)/src/VBox/VMM/testcase/Instructions
|
---|
183 | VBOX_VBINSTST_GEN = $(VBOX_PATH_VBINSTST)/InstructionTestGen.py
|
---|
184 | VBOX_BOOTSECTOR2_VBINSTST_AMD64_GEN = $(VBOX_BLD_PYTHON) $(VBOX_VBINSTST_GEN) \
|
---|
185 | --split 3 --target bs2-r0-64 --output-base $(bootsectors_0_OUTDIR)/VBInsTst-64 --test-size tiny
|
---|
186 | VBOX_BOOTSECTOR2_VBINSTST_AMD64_FILES = $(shell $(VBOX_BOOTSECTOR2_VBINSTST_AMD64_GEN) --makefile-mode)
|
---|
187 |
|
---|
188 | #$$(bootsectors_0_OUTDIR)/VBInsTst.ts + $$(VBOX_BOOTSECTOR2_VBINSTST_AMD64_FILES): $(VBOX_VBINSTST_GEN) | $$(dir $$@)
|
---|
189 | # $(VBOX_BOOTSECTOR2_VBINSTST_AMD64_GEN)
|
---|
190 | # $(APPEND) -t $@
|
---|
191 | #
|
---|
192 | #bootsectors_SOURCES += $(bootsectors_0_OUTDIR)/bootsector2-vbinstst-1.img
|
---|
193 | #bootsectors_CLEAN += $(VBOX_BOOTSECTOR2_VBINSTST_AMD64_FILES)
|
---|
194 | #
|
---|
195 | #$$(bootsectors_0_OUTDIR)/bootsector2-vbinstst-1.img: \
|
---|
196 | # $(PATH_SUB_CURRENT)/bootsector2-vbinstst-64-1.asm \
|
---|
197 | # $$(bootsectors_0_OUTDIR)/VBInsTst-64.asm
|
---|
198 | # $(TOOL_$(VBOX_ASTOOL)_AS) -f bin -D ASM_FORMAT_BIN -I $(dir $@) -I $(PATH_ROOT)/include -I $(VBOX_PATH_VBINSTST) -o $@ -L nasm -l $@.lst $<
|
---|
199 |
|
---|
200 | MISCBINS += bootsector2-vbinstst-kernel
|
---|
201 | bootsector2-vbinstst-kernel_TEMPLATE = VBoxBsTestImg
|
---|
202 | bootsector2-vbinstst-kernel_SOURCES = \
|
---|
203 | bootsector2-vbinstst-kernel.asm
|
---|
204 |
|
---|
205 |
|
---|
206 | MISCBINS += bootsector2-vbinstst-64-1
|
---|
207 | bootsector2-vbinstst-64-1_TEMPLATE = VBoxBsTestImg
|
---|
208 | bootsector2-vbinstst-64-1_DEFS = \
|
---|
209 | BS2_BIG_IMAGE_LM64 \
|
---|
210 | BS2_BIG_IMAGE_GEN_SOURCE_FILE=bs2-vbinstst-64-1.asm \
|
---|
211 | BS2_BIG_IMAGE_GEN_TEST_NAME=\"bs2-vbinstst-64-1\"
|
---|
212 | bootsector2-vbinstst-64-1_INCS = $(bootsector2-vbinstst-64-1_0_OUTDIR)/
|
---|
213 | bootsector2-vbinstst-64-1_SOURCES = \
|
---|
214 | bootsector2-vbinstst-kernel.asm \
|
---|
215 | bootsector2-vbinstst-big-template.asm
|
---|
216 | bootsector2-vbinstst-64-1_INTERMEDIATES = \
|
---|
217 | $(bootsector2-vbinstst-64-1_0_OUTDIR)/bs2-vbinstst-64-1.asm
|
---|
218 | bootsector2-vbinstst-64-1_CLEAN = \
|
---|
219 | $(bootsector2-vbinstst-64-1_0_OUTDIR)/bs2-vbinstst-64-1.asm
|
---|
220 |
|
---|
221 | $$(bootsector2-vbinstst-64-1_0_OUTDIR)/bs2-vbinstst-64-1.asm: $(VBOX_VBINSTST_GEN) | $$(dir $$@)
|
---|
222 | $(REDIRECT) -0 /dev/null -- $(VBOX_BLD_PYTHON) $(VBOX_VBINSTST_GEN) --target bs2-r0-64-big --output-base $(basename $@) --test-size medium
|
---|
223 |
|
---|
224 | MISCBINS += bootsector2-vbinstst-32-1
|
---|
225 | bootsector2-vbinstst-32-1_TEMPLATE = VBoxBsTestImg
|
---|
226 | bootsector2-vbinstst-32-1_DEFS = \
|
---|
227 | BS2_BIG_IMAGE_PP32 \
|
---|
228 | BS2_BIG_IMAGE_GEN_SOURCE_FILE=bs2-vbinstst-32-1.asm \
|
---|
229 | BS2_BIG_IMAGE_GEN_TEST_NAME=\"bs2-vbinstst-32-1\"
|
---|
230 | bootsector2-vbinstst-32-1_INCS = $(bootsector2-vbinstst-32-1_0_OUTDIR)/
|
---|
231 | bootsector2-vbinstst-32-1_SOURCES = \
|
---|
232 | bootsector2-vbinstst-kernel.asm \
|
---|
233 | bootsector2-vbinstst-big-template.asm
|
---|
234 | bootsector2-vbinstst-32-1_INTERMEDIATES = \
|
---|
235 | $(bootsector2-vbinstst-32-1_0_OUTDIR)/bs2-vbinstst-32-1.asm
|
---|
236 | bootsector2-vbinstst-32-1_CLEAN = \
|
---|
237 | $(bootsector2-vbinstst-32-1_0_OUTDIR)/bs2-vbinstst-32-1.asm
|
---|
238 |
|
---|
239 | $$(bootsector2-vbinstst-32-1_0_OUTDIR)/bs2-vbinstst-32-1.asm: $(VBOX_VBINSTST_GEN) | $$(dir $$@)
|
---|
240 | $(REDIRECT) -0 /dev/null -- $(VBOX_BLD_PYTHON) $(VBOX_VBINSTST_GEN) --target bs2-r0-32-big --output-base $(basename $@) --test-size medium
|
---|
241 |
|
---|
242 | endif
|
---|
243 | endif # bird-only
|
---|
244 |
|
---|
245 |
|
---|
246 | ifdef VBOX_WITH_BS3KIT
|
---|
247 | #
|
---|
248 | # Bs3kit
|
---|
249 | #
|
---|
250 |
|
---|
251 | #
|
---|
252 | # APIC
|
---|
253 | #
|
---|
254 | MISCBINS += bs3-apic-1
|
---|
255 | bs3-apic-1_TEMPLATE = VBoxBS3KitImg
|
---|
256 | bs3-apic-1_SOURCES = \
|
---|
257 | bs3kit/bs3-first-rm.asm \
|
---|
258 | bs3-apic-1.c \
|
---|
259 | bs3-apic-1-32.c32
|
---|
260 |
|
---|
261 |
|
---|
262 | # CPU basics #2 (first being bootsector2-cpu-basic-1).
|
---|
263 | MISCBINS += bs3-cpu-basic-2
|
---|
264 | bs3-cpu-basic-2_TEMPLATE = VBoxBS3KitImg
|
---|
265 | bs3-cpu-basic-2_INCS = .
|
---|
266 | bs3-cpu-basic-2_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-cpu-basic-2-template.c
|
---|
267 | bs3-cpu-basic-2_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-cpu-basic-2-template.c
|
---|
268 | bs3-cpu-basic-2_SOURCES = \
|
---|
269 | bs3kit/bs3-first-rm.asm \
|
---|
270 | bs3-cpu-basic-2.c \
|
---|
271 | bs3-cpu-basic-2-x0.c \
|
---|
272 | bs3-cpu-basic-2-32.c32 \
|
---|
273 | bs3-cpu-basic-2-pf.c32 \
|
---|
274 | bs3kit/bs3-cmn-instantiate-x0.c16 \
|
---|
275 | bs3kit/bs3-cmn-instantiate.c32 \
|
---|
276 | bs3kit/bs3-cmn-instantiate.c64 \
|
---|
277 | bs3-cpu-basic-2-asm.asm
|
---|
278 | bs3-cpu-basic-2-template.o:: \
|
---|
279 | $$(bs3-cpu-basic-2_0_OUTDIR)/bs3kit/bs3-cmn-instantiate-x0.o16 \
|
---|
280 | $$(bs3-cpu-basic-2_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \
|
---|
281 | $$(bs3-cpu-basic-2_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \
|
---|
282 | $$(bs3-cpu-basic-2_0_OUTDIR)/bs3-cpu-basic-2-asm.o16
|
---|
283 |
|
---|
284 | # CPU basics #3 (first being bootsector2-cpu-basic-1).
|
---|
285 | MISCBINS += bs3-cpu-basic-3
|
---|
286 | bs3-cpu-basic-3_TEMPLATE = VBoxBS3KitImgBig
|
---|
287 | bs3-cpu-basic-3_INCS = .
|
---|
288 | bs3-cpu-basic-3_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-cpu-basic-3-cmn-template.c
|
---|
289 | #bs3-cpu-basic-3_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-cpu-basic-3-mode-template.c
|
---|
290 | bs3-cpu-basic-3_SOURCES = \
|
---|
291 | bs3kit/bs3-first-rm.asm \
|
---|
292 | bs3-cpu-basic-3.c \
|
---|
293 | bs3kit/bs3-cmn-instantiate-x0.c16 \
|
---|
294 | bs3kit/bs3-cmn-instantiate.c32 \
|
---|
295 | bs3kit/bs3-cmn-instantiate.c64 \
|
---|
296 | bs3-cpu-basic-3-asm.asm \
|
---|
297 | $(bs3-cpu-basic-3-high_1_TARGET)
|
---|
298 | bs3-cpu-basic-3-cmn-template.o:: \
|
---|
299 | $$(bs3-cpu-basic-3_0_OUTDIR)/bs3kit/bs3-cmn-instantiate-x0.o16 \
|
---|
300 | $$(bs3-cpu-basic-3_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \
|
---|
301 | $$(bs3-cpu-basic-3_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \
|
---|
302 | $$(bs3-cpu-basic-3_0_OUTDIR)/bs3-cpu-basic-3-asm.o16
|
---|
303 |
|
---|
304 | MISCBINS += bs3-cpu-basic-3-high
|
---|
305 | bs3-cpu-basic-3-high_TEMPLATE = VBoxBS3KitHighImg
|
---|
306 | bs3-cpu-basic-3-high_INCS = . $(bs3-cpu-basic-3-high_0_OUTDIR)
|
---|
307 | bs3-cpu-basic-3-high_SOURCES = \
|
---|
308 | bs3kit/bs3-first-high-image.asm \
|
---|
309 | bs3-cpu-basic-3-high-asm.asm
|
---|
310 | bs3-cpu-basic-3-high_INTERMEDIATES = $(bs3-cpu-basic-3-high_0_OUTDIR)/bs3-cpu-basic-3-high-lea64.inc
|
---|
311 | bs3-cpu-basic-3-high_CLEANS = $(bs3-cpu-basic-3-high_0_OUTDIR)/bs3-cpu-basic-3-high-lea64.inc
|
---|
312 | $$(bs3-cpu-basic-3-high_0_OUTDIR)/bs3-cpu-basic-3-high-lea64.inc: \
|
---|
313 | $(PATH_SUB_CURRENT)/bs3-cpu-basic-3-high-lea64.py | $$(dir $$@)
|
---|
314 | $(call MSG_GENERATE,bs3-cpu-basic-3-high,$@)
|
---|
315 | $(QUIET)$(REDIRECT) -0 /dev/null -- $(TIME) $(VBOX_BLD_PYTHON) "$<" "$@"
|
---|
316 |
|
---|
317 | #
|
---|
318 | # CPU weird stuff #1.
|
---|
319 | #
|
---|
320 | MISCBINS += bs3-cpu-weird-1
|
---|
321 | bs3-cpu-weird-1_TEMPLATE = VBoxBS3KitImg
|
---|
322 | bs3-cpu-weird-1_INCS = .
|
---|
323 | bs3-cpu-weird-1_SOURCES = \
|
---|
324 | bs3kit/bs3-first-rm.asm \
|
---|
325 | bs3-cpu-weird-1.c \
|
---|
326 | bs3-cpu-weird-1-x0.c \
|
---|
327 | bs3-cpu-weird-1-asm.asm
|
---|
328 |
|
---|
329 | #
|
---|
330 | # 64-bit CPU state #1.
|
---|
331 | #
|
---|
332 | MISCBINS += bs3-cpu-state64-1
|
---|
333 | bs3-cpu-state64-1_TEMPLATE = VBoxBS3KitImg
|
---|
334 | bs3-cpu-state64-1_INCS = .
|
---|
335 | bs3-cpu-state64-1_SOURCES = \
|
---|
336 | bs3kit/bs3-first-init-all-lm64.asm \
|
---|
337 | bs3-cpu-state64-1.c64 \
|
---|
338 | bs3-cpu-state64-1-asm.asm
|
---|
339 |
|
---|
340 | #
|
---|
341 | # FPU state corruption checker.
|
---|
342 | #
|
---|
343 | MISCBINS += bs3-fpustate-1
|
---|
344 | bs3-fpustate-1_TEMPLATE = VBoxBS3KitImg
|
---|
345 | bs3-fpustate-1_INCS = .
|
---|
346 | bs3-fpustate-1_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-fpustate-1-template.c
|
---|
347 | bs3-fpustate-1_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-fpustate-1-template.c
|
---|
348 | bs3-fpustate-1_SOURCES = \
|
---|
349 | bs3kit/bs3-first-rm.asm \
|
---|
350 | bs3-fpustate-1.c \
|
---|
351 | bs3kit/bs3-cmn-instantiate.c16 \
|
---|
352 | bs3kit/bs3-cmn-instantiate.c32 \
|
---|
353 | bs3kit/bs3-cmn-instantiate.c64 \
|
---|
354 | bs3-fpustate-1-asm.asm
|
---|
355 | bs3-fpustate-1-template.o:: \
|
---|
356 | $$(bs3-fpustate-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o16 \
|
---|
357 | $$(bs3-fpustate-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \
|
---|
358 | $$(bs3-fpustate-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \
|
---|
359 | $$(bs3-fpustate-1_0_OUTDIR)/bs3-fpustate-1-asm.o16
|
---|
360 |
|
---|
361 | #
|
---|
362 | # CPU instruction decoding experiments.
|
---|
363 | #
|
---|
364 | MISCBINS += bs3-cpu-decoding-1
|
---|
365 | bs3-cpu-decoding-1_TEMPLATE = VBoxBS3KitImg
|
---|
366 | bs3-cpu-decoding-1_INCS = .
|
---|
367 | bs3-cpu-decoding-1_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-cpu-decoding-1-template.c
|
---|
368 | bs3-cpu-decoding-1_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-cpu-decoding-1-template.c
|
---|
369 | bs3-cpu-decoding-1_SOURCES = \
|
---|
370 | bs3kit/bs3-first-init-all-pp32.asm \
|
---|
371 | bs3-cpu-decoding-1.c32 \
|
---|
372 | bs3-cpu-decoding-1-asm.asm
|
---|
373 | # bs3kit/bs3-cmn-instantiate.c16 \
|
---|
374 | # bs3kit/bs3-cmn-instantiate.c32 \
|
---|
375 | # bs3kit/bs3-cmn-instantiate.c64
|
---|
376 | bs3-cpu-decoding-1-template.o:: \
|
---|
377 | $$(bs3-cpu-decoding-1_0_OUTDIR)/bs3-cpu-decoding-1-asm.o16
|
---|
378 | # $$(bs3-cpu-decoding-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o16 \
|
---|
379 | # $$(bs3-cpu-decoding-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \
|
---|
380 | # $$(bs3-cpu-decoding-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \
|
---|
381 |
|
---|
382 |
|
---|
383 | #
|
---|
384 | # CPU instructions #2 (first being bootsector2-cpu-instr-1).
|
---|
385 | #
|
---|
386 | MISCBINS += bs3-cpu-instr-2
|
---|
387 | bs3-cpu-instr-2_TEMPLATE = VBoxBS3KitImg
|
---|
388 | bs3-cpu-instr-2_INCS = . $(bs3-cpu-instr-2_0_OUTDIR)
|
---|
389 | bs3-cpu-instr-2_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-cpu-instr-2-template.c
|
---|
390 | bs3-cpu-instr-2_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-cpu-instr-2-template.c
|
---|
391 | bs3-cpu-instr-2_SOURCES = \
|
---|
392 | bs3kit/bs3-first-rm.asm \
|
---|
393 | bs3-cpu-instr-2.c \
|
---|
394 | bs3-cpu-instr-2-asm.asm \
|
---|
395 | bs3-cpu-instr-2-data16.c16 \
|
---|
396 | bs3-cpu-instr-2-data16-amd.c16 \
|
---|
397 | bs3-cpu-instr-2-data16-intel.c16 \
|
---|
398 | bs3-cpu-instr-2-data64.c64 \
|
---|
399 | bs3-cpu-instr-2-data64-amd.c64 \
|
---|
400 | bs3-cpu-instr-2-data64-intel.c64 \
|
---|
401 | bs3kit/bs3-cmn-instantiate-x0.c16 \
|
---|
402 | bs3kit/bs3-cmn-instantiate.c32 \
|
---|
403 | bs3kit/bs3-cmn-instantiate.c64
|
---|
404 | bs3-cpu-instr-2_CLEANS = $(bs3-cpu-instr-2_0_OUTDIR)/bs3-cpu-instr-2-asm-auto.h
|
---|
405 |
|
---|
406 | bs3-cpu-instr-2_bs3kit/bs3-cmn-instantiate-x0.c16_DEPS = $(bs3-cpu-instr-2_0_OUTDIR)/bs3-cpu-instr-2-asm-auto.h
|
---|
407 | bs3-cpu-instr-2_bs3kit/bs3-cmn-instantiate.c32_DEPS = $(bs3-cpu-instr-2_0_OUTDIR)/bs3-cpu-instr-2-asm-auto.h
|
---|
408 | bs3-cpu-instr-2_bs3kit/bs3-cmn-instantiate.c64_DEPS = $(bs3-cpu-instr-2_0_OUTDIR)/bs3-cpu-instr-2-asm-auto.h
|
---|
409 |
|
---|
410 | $$(bs3-cpu-instr-2_0_OUTDIR)/bs3-cpu-instr-2-asm-auto.h: \
|
---|
411 | $$(VBoxBs3Obj2Hdr_1_TARGET) $$(bs3-cpu-instr-2_0_OUTDIR)/bs3-cpu-instr-2-asm.o16
|
---|
412 | $(VBoxBs3Obj2Hdr_1_TARGET) --output "$@" "$(bs3-cpu-instr-2_0_OUTDIR)/bs3-cpu-instr-2-asm.o16"
|
---|
413 |
|
---|
414 | bs3-cpu-instr-2-template.o:: \
|
---|
415 | $$(bs3-cpu-instr-2_0_OUTDIR)/bs3kit/bs3-cmn-instantiate-x0.o16 \
|
---|
416 | $$(bs3-cpu-instr-2_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \
|
---|
417 | $$(bs3-cpu-instr-2_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \
|
---|
418 | $$(bs3-cpu-instr-2_0_OUTDIR)/bs3-cpu-instr-2-asm.o16
|
---|
419 |
|
---|
420 |
|
---|
421 |
|
---|
422 | BLDPROGS.amd64 += bs3-cpu-instr-2-gen
|
---|
423 | bs3-cpu-instr-2-gen_TEMPLATE = VBoxAdvBldProg
|
---|
424 | bs3-cpu-instr-2-gen_SOURCES = \
|
---|
425 | bs3-cpu-instr-2-gen.cpp \
|
---|
426 | bs3-cpu-instr-2-gen-asm.asm
|
---|
427 |
|
---|
428 | #
|
---|
429 | # CPU instructions #3 - SSE, ++.
|
---|
430 | #
|
---|
431 | MISCBINS += bs3-cpu-instr-3
|
---|
432 | bs3-cpu-instr-3_TEMPLATE = VBoxBS3KitImg
|
---|
433 | bs3-cpu-instr-3_INCS = . $(bs3-cpu-instr-3_0_OUTDIR)
|
---|
434 | bs3-cpu-instr-3_SOURCES = \
|
---|
435 | bs3kit/bs3-first-init-all-pe32.asm \
|
---|
436 | bs3-cpu-instr-3.c32 \
|
---|
437 | bs3-cpu-instr-3-asm.asm
|
---|
438 | bs3-cpu-instr-3.c32_DEPS = $(bs3-cpu-instr-3_0_OUTDIR)/bs3-cpu-instr-3-asm-auto.h
|
---|
439 | bs3-cpu-instr-3_CLEANS = $(bs3-cpu-instr-3_0_OUTDIR)/bs3-cpu-instr-3-asm-auto.h
|
---|
440 |
|
---|
441 | $$(bs3-cpu-instr-3_0_OUTDIR)/bs3-cpu-instr-3-asm-auto.h: \
|
---|
442 | $$(VBoxBs3Obj2Hdr_1_TARGET) $$(bs3-cpu-instr-3_0_OUTDIR)/bs3-cpu-instr-3-asm.o16
|
---|
443 | $(VBoxBs3Obj2Hdr_1_TARGET) --output "$@" "$(bs3-cpu-instr-3_0_OUTDIR)/bs3-cpu-instr-3-asm.o16"
|
---|
444 |
|
---|
445 | bs3-cpu-instr-3-template.o:: \
|
---|
446 | $$(bs3-cpu-instr-3_0_OUTDIR)/bs3-cpu-instr-3-asm.o16
|
---|
447 |
|
---|
448 | #
|
---|
449 | # CPU instructions #4 - SSE, AVX, ++ FPU instructions.
|
---|
450 | #
|
---|
451 | MISCBINS += bs3-cpu-instr-4
|
---|
452 | bs3-cpu-instr-4_TEMPLATE = VBoxBS3KitImg
|
---|
453 | bs3-cpu-instr-4_INCS = . $(bs3-cpu-instr-4_0_OUTDIR)
|
---|
454 | bs3-cpu-instr-4_SOURCES = \
|
---|
455 | bs3kit/bs3-first-init-all-pe32.asm \
|
---|
456 | bs3-cpu-instr-4.c32 \
|
---|
457 | bs3-cpu-instr-4-asm.asm
|
---|
458 | bs3-cpu-instr-4.c32_DEPS = $(bs3-cpu-instr-4_0_OUTDIR)/bs3-cpu-instr-4-asm-auto.h
|
---|
459 | bs3-cpu-instr-4_CLEANS = $(bs3-cpu-instr-4_0_OUTDIR)/bs3-cpu-instr-4-asm-auto.h
|
---|
460 |
|
---|
461 | $$(bs3-cpu-instr-4_0_OUTDIR)/bs3-cpu-instr-4-asm-auto.h: \
|
---|
462 | $$(VBoxBs3Obj2Hdr_1_TARGET) $$(bs3-cpu-instr-4_0_OUTDIR)/bs3-cpu-instr-4-asm.o16
|
---|
463 | $(VBoxBs3Obj2Hdr_1_TARGET) --output "$@" "$(bs3-cpu-instr-4_0_OUTDIR)/bs3-cpu-instr-4-asm.o16"
|
---|
464 |
|
---|
465 | bs3-cpu-instr-4-template.o:: \
|
---|
466 | $$(bs3-cpu-instr-4_0_OUTDIR)/bs3-cpu-instr-4-asm.o16
|
---|
467 |
|
---|
468 | #
|
---|
469 | # CPU generated instruction tests #1
|
---|
470 | #
|
---|
471 | MISCBINS += bs3-cpu-generated-1
|
---|
472 | bs3-cpu-generated-1_TEMPLATE = VBoxBS3KitImg
|
---|
473 | bs3-cpu-generated-1_INCS = .
|
---|
474 | bs3-cpu-generated-1_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-cpu-generated-1-template.c
|
---|
475 | bs3-cpu-generated-1_SOURCES = \
|
---|
476 | bs3kit/bs3-first-rm.asm \
|
---|
477 | bs3-cpu-generated-1.c \
|
---|
478 | bs3-cpu-generated-1-asm.asm \
|
---|
479 | bs3kit/bs3-cmn-instantiate-x0.c16 \
|
---|
480 | bs3kit/bs3-cmn-instantiate.c32 \
|
---|
481 | bs3kit/bs3-cmn-instantiate.c64 \
|
---|
482 | $(bs3-cpu-generated-1_0_OUTDIR)/bs3-cpu-generated-1-data.c16
|
---|
483 | bs3-cpu-generated-1_CLEAN = $(bs3-cpu-generated-1_0_OUTDIR)/bs3-cpu-generated-1-data.c16
|
---|
484 |
|
---|
485 | bs3-cpu-generated-1-template.o:: \
|
---|
486 | $$(bs3-cpu-generated-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate-x0.o16 \
|
---|
487 | $$(bs3-cpu-generated-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o32 \
|
---|
488 | $$(bs3-cpu-generated-1_0_OUTDIR)/bs3kit/bs3-cmn-instantiate.o64 \
|
---|
489 | $$(bs3-cpu-generated-1_0_OUTDIR)/bs3-cpu-generated-1-asm.o16
|
---|
490 |
|
---|
491 | $$(bs3-cpu-generated-1_0_OUTDIR)/bs3-cpu-generated-1-data.c16: \
|
---|
492 | $(PATH_SUB_CURRENT)/bs3-cpu-generated-1-data.py \
|
---|
493 | $(PATH_SUB_CURRENT)/../../VMM/VMMAll/IEMAllInstPython.py \
|
---|
494 | $(PATH_SUB_CURRENT)/../../VMM/VMMAll/IEMAllInst*.cpp.h \
|
---|
495 | | $$(dir $$@)
|
---|
496 | $(REDIRECT) -0 /dev/null -- $(VBOX_BLD_PYTHON) $< $@
|
---|
497 |
|
---|
498 | #
|
---|
499 | # Memory allocation.
|
---|
500 | #
|
---|
501 | MISCBINS += bs3-memalloc-1
|
---|
502 | bs3-memalloc-1_TEMPLATE = VBoxBS3KitImg
|
---|
503 | bs3-memalloc-1_INCS = .
|
---|
504 | bs3-memalloc-1_SOURCES = \
|
---|
505 | bs3kit/bs3-first-init-all-lm64.asm \
|
---|
506 | bs3-memalloc-1.c64
|
---|
507 |
|
---|
508 |
|
---|
509 | #
|
---|
510 | # Timer Interrupts
|
---|
511 | #
|
---|
512 | MISCBINS += bs3-timers-1
|
---|
513 | bs3-timers-1_TEMPLATE = VBoxBS3KitImg
|
---|
514 | bs3-timers-1_INCS = .
|
---|
515 | bs3-timers-1_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-timers-1-template.c
|
---|
516 | bs3-timers-1_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-timers-1-template.c
|
---|
517 | bs3-timers-1_SOURCES = \
|
---|
518 | bs3kit/bs3-first-rm.asm \
|
---|
519 | bs3-timers-1.c \
|
---|
520 | bs3-timers-1-x0.c \
|
---|
521 | bs3-timers-1-asm.asm
|
---|
522 |
|
---|
523 | #
|
---|
524 | # Timing
|
---|
525 | #
|
---|
526 | MISCBINS += bs3-timing-1
|
---|
527 | bs3-timing-1_TEMPLATE = VBoxBS3KitImg
|
---|
528 | bs3-timing-1_INCS = .
|
---|
529 | bs3-timing-1_DEFS = BS3_CMN_INSTANTIATE_FILE1=bs3-timing-1-template.c
|
---|
530 | bs3-timing-1_DEFS += BS3_MODE_INSTANTIATE_FILE1=bs3-timing-1-template.c
|
---|
531 | bs3-timing-1_SOURCES = \
|
---|
532 | bs3kit/bs3-first-rm.asm \
|
---|
533 | bs3-timing-1.c \
|
---|
534 | bs3-timing-1-32.c32
|
---|
535 |
|
---|
536 | #
|
---|
537 | # Lock contention and interruption.
|
---|
538 | #
|
---|
539 | MISCBINS += bs3-locking-1
|
---|
540 | bs3-locking-1_TEMPLATE = VBoxBS3KitImg
|
---|
541 | bs3-locking-1_INCS = .
|
---|
542 | bs3-locking-1_SOURCES = \
|
---|
543 | bs3kit/bs3-first-rm.asm \
|
---|
544 | bs3-locking-1.c
|
---|
545 |
|
---|
546 | endif # VBOX_WITH_BS3KIT
|
---|
547 |
|
---|
548 |
|
---|
549 | #
|
---|
550 | # Executable version of the bs3-timing-1 bootsector.
|
---|
551 | #
|
---|
552 | PROGRAMS += bs3-timing-1-exe
|
---|
553 | bs3-timing-1-exe_TEMPLATE = VBoxValidationKitR3
|
---|
554 | bs3-timing-1-exe_NAME = bs3-timing-1
|
---|
555 | bs3-timing-1-exe_SOURCES = bs3-timing-1-exe.c
|
---|
556 |
|
---|
557 |
|
---|
558 | #
|
---|
559 | # pylint
|
---|
560 | #
|
---|
561 | VBOX_VALIDATIONKIT_PYTHON_SOURCES += $(wildcard $(PATH_SUB_CURRENT)/*.py)
|
---|
562 | $(evalcall def_vbox_validationkit_process_python_sources)
|
---|
563 |
|
---|
564 | include $(FILE_KBUILD_SUB_FOOTER)
|
---|
565 |
|
---|