xref: /illumos-gate/usr/src/uts/i86xpv/Makefile.files (revision bd97c7ce)
1843e1988Sjohnlev#
2843e1988Sjohnlev# CDDL HEADER START
3843e1988Sjohnlev#
4843e1988Sjohnlev# The contents of this file are subject to the terms of the
5843e1988Sjohnlev# Common Development and Distribution License (the "License").
6843e1988Sjohnlev# You may not use this file except in compliance with the License.
7843e1988Sjohnlev#
8843e1988Sjohnlev# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9843e1988Sjohnlev# or http://www.opensolaris.org/os/licensing.
10843e1988Sjohnlev# See the License for the specific language governing permissions
11843e1988Sjohnlev# and limitations under the License.
12843e1988Sjohnlev#
13843e1988Sjohnlev# When distributing Covered Code, include this CDDL HEADER in each
14843e1988Sjohnlev# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15843e1988Sjohnlev# If applicable, add the following below this CDDL HEADER, with the
16843e1988Sjohnlev# fields enclosed by brackets "[]" replaced with your own identifying
17843e1988Sjohnlev# information: Portions Copyright [yyyy] [name of copyright owner]
18843e1988Sjohnlev#
19843e1988Sjohnlev# CDDL HEADER END
20843e1988Sjohnlev#
21843e1988Sjohnlev
22843e1988Sjohnlev#
235cd376e8SJimmy Vetayases# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
24843e1988Sjohnlev#
25a9cc46cfSRobert Mustacchi# Copyright 2019 Joyent, Inc.
26d32f26eeSAndy Fiddaman# Copyright 2023 Oxide Computer Company
2774ecdb51SJohn Levon#
28e4b86885SCheng Sean Ye
29843e1988Sjohnlev#	This Makefile defines file modules in the directory uts/i86xpv
30843e1988Sjohnlev#	and its children. These are the source files which are i86xpv
31843e1988Sjohnlev#	"implementation architecture" dependent.
32843e1988Sjohnlev#
33843e1988Sjohnlev
34843e1988Sjohnlev#
35843e1988Sjohnlev#	object lists
36843e1988Sjohnlev#
37843e1988SjohnlevCORE_OBJS +=			\
382df1fe9cSrandyf	acpi_stubs.o		\
39843e1988Sjohnlev	balloon.o		\
40843e1988Sjohnlev	biosdisk.o		\
41843e1988Sjohnlev	cbe.o			\
42843e1988Sjohnlev	cmi.o			\
4320c794b3Sgavinm	cmi_hw.o		\
4420c794b3Sgavinm	cms.o			\
45843e1988Sjohnlev	confunix.o		\
46843e1988Sjohnlev	cpuid.o			\
47e4b86885SCheng Sean Ye	cpuid_subr.o		\
48843e1988Sjohnlev	cpupm.o			\
490e751525SEric Saxe	cpupm_mach.o		\
50843e1988Sjohnlev	dis_tables.o		\
51843e1988Sjohnlev	ddi_impl.o		\
52843e1988Sjohnlev	dtrace_subr.o		\
53843e1988Sjohnlev	dvma.o			\
54843e1988Sjohnlev	fakebop.o		\
55843e1988Sjohnlev	fpu_subr.o		\
5619397407SSherry Moore	fastboot.o		\
5719397407SSherry Moore	fb_swtch.o		\
58843e1988Sjohnlev	graphics.o		\
59843e1988Sjohnlev	hardclk.o		\
60843e1988Sjohnlev	hat_i86.o		\
61843e1988Sjohnlev	hat_kdi.o		\
62843e1988Sjohnlev	hment.o			\
63843e1988Sjohnlev	hold_page.o		\
64843e1988Sjohnlev	hrtimers.o		\
65843e1988Sjohnlev	htable.o		\
66843e1988Sjohnlev	i86_mmu.o		\
676cefaae1SJack Meng	ibft.o			\
68843e1988Sjohnlev	instr_size.o		\
69843e1988Sjohnlev	intr.o			\
70843e1988Sjohnlev	kboot_mmu.o		\
71843e1988Sjohnlev	kdi_idt.o		\
72843e1988Sjohnlev	kdi_idthdl.o		\
73843e1988Sjohnlev	kdi_asm.o		\
74843e1988Sjohnlev	lgrpplat.o		\
75843e1988Sjohnlev	mach_kdi.o		\
76843e1988Sjohnlev	mach_sysconfig.o	\
77843e1988Sjohnlev	machdep.o		\
78a9cc46cfSRobert Mustacchi	md_clear.o		\
79843e1988Sjohnlev	mem_config_stubs.o	\
80843e1988Sjohnlev	memnode.o		\
81843e1988Sjohnlev	mlsetup.o		\
82843e1988Sjohnlev	mp_call.o		\
83843e1988Sjohnlev	mp_implfuncs.o		\
84843e1988Sjohnlev	mp_machdep.o		\
85843e1988Sjohnlev	mp_startup.o		\
86843e1988Sjohnlev	memscrub.o		\
87843e1988Sjohnlev	notes.o			\
88843e1988Sjohnlev	pci_bios.o		\
89c0da6274SZhi-Jun Robin Fu	pci_cfgacc.o		\
90c0da6274SZhi-Jun Robin Fu	pci_cfgacc_x86.o	\
91843e1988Sjohnlev	pci_cfgspace.o		\
92843e1988Sjohnlev	pci_mech1.o		\
93843e1988Sjohnlev	pci_mech2.o		\
94843e1988Sjohnlev	pci_neptune.o		\
95843e1988Sjohnlev	pci_orion.o		\
96843e1988Sjohnlev	pmem.o			\
97843e1988Sjohnlev	ppage.o			\
989e3aeadeSAndy Fiddaman	prom_reboot.o		\
999e3aeadeSAndy Fiddaman	prom_panic.o		\
100843e1988Sjohnlev	startup.o		\
1016a59053bSAlex Wilson	ssp.o			\
102843e1988Sjohnlev	xpv_timestamp.o		\
103843e1988Sjohnlev	todpc_subr.o		\
104843e1988Sjohnlev	trap.o			\
105843e1988Sjohnlev	vm_machdep.o		\
106843e1988Sjohnlev	x_call.o
107843e1988Sjohnlev
108843e1988Sjohnlev#
109843e1988Sjohnlev#	Add the SMBIOS subsystem object files directly to the list of objects
110843e1988Sjohnlev#	built into unix itself; this is all common code except for smb_dev.c.
111843e1988Sjohnlev#
112843e1988SjohnlevCORE_OBJS += $(SMBIOS_OBJS)
113843e1988Sjohnlev
114843e1988Sjohnlev#
115843e1988Sjohnlev# These get compiled twice:
11682bb7c22SToomas Soome# - once in the dboot (direct boot) identity mapped code
117843e1988Sjohnlev# - once for use during early startup in unix
118843e1988Sjohnlev#
119843e1988SjohnlevBOOT_DRIVER_OBJS =		\
120843e1988Sjohnlev	boot_console.o		\
121843e1988Sjohnlev	boot_keyboard.o		\
122843e1988Sjohnlev	boot_keyboard_table.o	\
123843e1988Sjohnlev	boot_mmu.o		\
124843e1988Sjohnlev	boot_vga.o		\
1258e6d016fSToomas Soome	boot_fb.o		\
126898c3fecSToomas Soome	boot_xconsole.o		\
1271738dd6eSToomas Soome	dboot_multiboot2.o	\
128898c3fecSToomas Soome	$(FONT_OBJS)
129843e1988Sjohnlev
130843e1988SjohnlevCORE_OBJS += $(BOOT_DRIVER_OBJS)
131843e1988Sjohnlev
132843e1988Sjohnlev#
133843e1988Sjohnlev# Extra XEN files separated out for now.
134843e1988Sjohnlev#
135843e1988SjohnlevCORE_OBJS +=			\
136843e1988Sjohnlev	cpr_driver.o		\
137843e1988Sjohnlev	evtchn.o		\
138843e1988Sjohnlev	gnttab.o		\
139843e1988Sjohnlev	hypercall.o		\
140843e1988Sjohnlev	hyperevent.o		\
141843e1988Sjohnlev	hypersubr.o		\
142843e1988Sjohnlev	mp_xen.o		\
143843e1988Sjohnlev	panic_asm.o		\
144843e1988Sjohnlev	xenguest.o		\
145843e1988Sjohnlev	xenbus_client.o		\
146843e1988Sjohnlev	xenbus_comms.o		\
147843e1988Sjohnlev	xenbus_probe.o		\
148843e1988Sjohnlev	xenbus_xs.o		\
149843e1988Sjohnlev	xen_machdep.o		\
150843e1988Sjohnlev	xen_mmu.o		\
151843e1988Sjohnlev	xpv_panic.o		\
152843e1988Sjohnlev	xvdi.o
153843e1988Sjohnlev
154843e1988Sjohnlev#
155843e1988Sjohnlev#	locore.o is special. It must be the first file relocated so that it
156843e1988Sjohnlev#	it is relocated just where its name implies.
157843e1988Sjohnlev#
1589b0bb795SJohn LevonSPECIAL_OBJS +=			\
159843e1988Sjohnlev	locore.o		\
160843e1988Sjohnlev	fast_trap_asm.o		\
161843e1988Sjohnlev	interrupt.o		\
16282bb7c22SToomas Soome	syscall_asm_amd64.o	\
16374ecdb51SJohn Levon	kpti_trampolines.o
164843e1988Sjohnlev
165843e1988Sjohnlev#
166843e1988Sjohnlev# object files used to boot into full kernel
167843e1988Sjohnlev#
168843e1988SjohnlevDBOOT_OBJS_32 =	muldiv.o
169843e1988Sjohnlev
170843e1988SjohnlevDBOOT_OBJS_64 =
171843e1988Sjohnlev
172843e1988SjohnlevDBOOT_OBJS +=			\
173843e1988Sjohnlev	dboot_asm.o		\
174843e1988Sjohnlev	dboot_printf.o		\
175843e1988Sjohnlev	dboot_startkern.o	\
176843e1988Sjohnlev	dboot_xen.o		\
177843e1988Sjohnlev	hypercall.o		\
178843e1988Sjohnlev	hypersubr.o		\
179843e1988Sjohnlev	memcpy.o		\
180843e1988Sjohnlev	memset.o		\
181843e1988Sjohnlev	string.o		\
182843e1988Sjohnlev	$(BOOT_DRIVER_OBJS)	\
183843e1988Sjohnlev	$(DBOOT_OBJS_$(CLASS))
184843e1988Sjohnlev
185843e1988Sjohnlev#
186843e1988Sjohnlev#			driver & misc modules
187843e1988Sjohnlev#
188c6c65e54SdmBALLOON_OBJS += balloon_drv.o
18917169044SbrutusDOMCAPS_OBJS += domcaps.o
190843e1988SjohnlevEVTCHN_OBJS += evtchn_dev.o
191843e1988SjohnlevGFX_PRIVATE_OBJS += gfx_private.o gfxp_pci.o gfxp_segmap.o \
19230165b7fSToomas Soome		    gfxp_devmap.o gfxp_vgatext.o gfxp_vm.o vgasubr.o \
19382bb7c22SToomas Soome		    gfxp_fb.o gfxp_bitmap.o
19417169044SbrutusIOAT_OBJS += ioat.o ioat_rs.o ioat_ioctl.o ioat_chan.o
19517169044SbrutusISANEXUS_OBJS += isa.o dma_engine.o i8237A.o
196843e1988SjohnlevPCI_E_NEXUS_OBJS += npe.o npe_misc.o
197843e1988SjohnlevPCI_E_NEXUS_OBJS += pci_common.o pci_kstats.o pci_tools.o
198*bd97c7ceSRobert MustacchiPCI_PRD_OBJS += pci_prd_i86pc.o pci_memlist.o
199843e1988SjohnlevPCINEXUS_OBJS += pci.o pci_common.o pci_kstats.o pci_tools.o
200843e1988SjohnlevPRIVCMD_OBJS += seg_mf.o privcmd.o privcmd_hcall.o
201843e1988SjohnlevROOTNEX_OBJS += rootnex.o
202843e1988SjohnlevXPVTOD_OBJS += xpvtod.o
203843e1988SjohnlevXPV_AUTOCONFIG_OBJS += xpv_autoconfig.o
2047ff178cdSJimmy VetayasesXPV_PSM_OBJS += xpv_psm.o mp_platform_common.o mp_platform_xpv.o \
2057ff178cdSJimmy Vetayases		apic_regops.o psm_common.o xpv_intr.o
206cc7a88b5SmrjXPV_UPPC_OBJS += xpv_uppc.o psm_common.o
207843e1988SjohnlevXENBUS_OBJS += xenbus_dev.o
208843e1988SjohnlevXENCONS_OBJS += xencons.o
209843e1988SjohnlevXPVD_OBJS += xpvd.o
2107eea693dSMark JohnsonXPVTAP_OBJS += xpvtap.o blk_common.o seg_mf.o
211843e1988SjohnlevXNB_OBJS += xnb.o
212843e1988SjohnlevXNBE_OBJS += xnbe.o
213843e1988SjohnlevXNBO_OBJS += xnbo.o
214843e1988SjohnlevXNBU_OBJS += xnbu.o
215843e1988SjohnlevXNF_OBJS += xnf.o
216843e1988SjohnlevXSVC_OBJS += xsvc.o
217843e1988SjohnlevXDF_OBJS += xdf.o
218843e1988SjohnlevXDB_OBJS += xdb.o
219c7158ae9StariqXDT_OBJS += xdt.o
220843e1988Sjohnlev
221843e1988Sjohnlev#
222843e1988Sjohnlev#	Build up defines and paths.
223843e1988Sjohnlev#
224551bc2a6SmrjINC_PATH	+= -I$(UTSBASE)/i86xpv -I$(UTSBASE)/i86pc -I$(SRC)/common \
225551bc2a6Smrj	-I$(UTSBASE)/common/xen
226843e1988Sjohnlev
227843e1988Sjohnlev#
228843e1988Sjohnlev# Since the assym files are derived, the dependencies must be explicit for
2290aaef2f5SRichard Lowe# all files including this file.
230843e1988Sjohnlev#
231843e1988Sjohnlev
232455e370cSJohn LevonASSYM_DEPS      +=		\
233843e1988Sjohnlev	copy.o			\
234843e1988Sjohnlev	desctbls_asm.o		\
235843e1988Sjohnlev	ddi_i86_asm.o		\
236843e1988Sjohnlev	exception.o		\
237843e1988Sjohnlev	fast_trap_asm.o		\
238843e1988Sjohnlev	float.o			\
239843e1988Sjohnlev	hyperevent.o		\
240843e1988Sjohnlev	i86_subr.o		\
241843e1988Sjohnlev	kdi_asm.o		\
242843e1988Sjohnlev	interrupt.o		\
243843e1988Sjohnlev	lock_prim.o		\
244843e1988Sjohnlev	locore.o		\
245843e1988Sjohnlev	panic_asm.o		\
246843e1988Sjohnlev	sseblk.o		\
247843e1988Sjohnlev	swtch.o			\
248843e1988Sjohnlev	syscall_asm_amd64.o
249843e1988Sjohnlev
250843e1988Sjohnlev$(KDI_ASSYM_DEPS:%=$(OBJS_DIR)/%):	$(DSF_DIR)/$(OBJS_DIR)/kdi_assym.h
251