17c478bd9Sstevel@tonic-gate# 27c478bd9Sstevel@tonic-gate# CDDL HEADER START 37c478bd9Sstevel@tonic-gate# 47c478bd9Sstevel@tonic-gate# The contents of this file are subject to the terms of the 54ab75253Smrj# Common Development and Distribution License (the "License"). 64ab75253Smrj# You may not use this file except in compliance with the License. 77c478bd9Sstevel@tonic-gate# 87c478bd9Sstevel@tonic-gate# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 97c478bd9Sstevel@tonic-gate# or http://www.opensolaris.org/os/licensing. 107c478bd9Sstevel@tonic-gate# See the License for the specific language governing permissions 117c478bd9Sstevel@tonic-gate# and limitations under the License. 127c478bd9Sstevel@tonic-gate# 137c478bd9Sstevel@tonic-gate# When distributing Covered Code, include this CDDL HEADER in each 147c478bd9Sstevel@tonic-gate# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 157c478bd9Sstevel@tonic-gate# If applicable, add the following below this CDDL HEADER, with the 167c478bd9Sstevel@tonic-gate# fields enclosed by brackets "[]" replaced with your own identifying 177c478bd9Sstevel@tonic-gate# information: Portions Copyright [yyyy] [name of copyright owner] 187c478bd9Sstevel@tonic-gate# 197c478bd9Sstevel@tonic-gate# CDDL HEADER END 207c478bd9Sstevel@tonic-gate# 214ab75253Smrj 227c478bd9Sstevel@tonic-gate# 238d7fafffSZhi-Jun Robin Fu# Copyright (c) 1992, 2010, Oracle and/or its affiliates. All rights reserved. 247c478bd9Sstevel@tonic-gate# 2541afdfa7SKrishnendu Sadhukhan - Sun Microsystems# Copyright (c) 2010, Intel Corporation. 26fe7a23c8SAndy Fiddaman# Copyright 2019 OmniOS Community Edition (OmniOSce) Association. 27575694f6SJason King# Copyright 2020 Joyent, Inc. 28b4ceea05SDan Cross# Copyright 2021 Oxide Computer Company 29*04ddeddaSJason King# Copyright 2021 Jason King 3041afdfa7SKrishnendu Sadhukhan - Sun Microsystems# 31fb9f9b97Skupfer# This Makefile defines file modules in the directory uts/i86pc 32fb9f9b97Skupfer# and its children. These are the source files which are i86pc 337c478bd9Sstevel@tonic-gate# "implementation architecture" dependent. 347c478bd9Sstevel@tonic-gate# 357c478bd9Sstevel@tonic-gate 367c478bd9Sstevel@tonic-gate# 377c478bd9Sstevel@tonic-gate# object lists 387c478bd9Sstevel@tonic-gate# 397c478bd9Sstevel@tonic-gateCORE_OBJS += \ 402df1fe9cSrandyf acpi_stubs.o \ 417c478bd9Sstevel@tonic-gate biosdisk.o \ 42ae115bc7Smrj bios_call.o \ 437c478bd9Sstevel@tonic-gate cbe.o \ 447aec1d6eScindi cmi.o \ 4520c794b3Sgavinm cmi_hw.o \ 4620c794b3Sgavinm cms.o \ 472428aad8SPatrick Mooney comm_page.o \ 487c478bd9Sstevel@tonic-gate confunix.o \ 490e751525SEric Saxe cpu_idle.o \ 507c478bd9Sstevel@tonic-gate cpuid.o \ 51e4b86885SCheng Sean Ye cpuid_subr.o \ 525cff7825Smh cpupm.o \ 530e751525SEric Saxe cpupm_mach.o \ 540e751525SEric Saxe cpupm_amd.o \ 550e751525SEric Saxe cpupm_intel.o \ 560e751525SEric Saxe cpupm_throttle.o \ 570e751525SEric Saxe cpu_acpi.o \ 587c478bd9Sstevel@tonic-gate dis_tables.o \ 597c478bd9Sstevel@tonic-gate ddi_impl.o \ 607c478bd9Sstevel@tonic-gate dtrace_subr.o \ 617c478bd9Sstevel@tonic-gate dvma.o \ 62ae115bc7Smrj fpu_subr.o \ 63ae115bc7Smrj fakebop.o \ 6419397407SSherry Moore fastboot.o \ 6519397407SSherry Moore fb_swtch.o \ 667c478bd9Sstevel@tonic-gate graphics.o \ 67ae115bc7Smrj hardclk.o \ 687c478bd9Sstevel@tonic-gate hat_i86.o \ 697c478bd9Sstevel@tonic-gate hat_kdi.o \ 70761dea5eSPatrick Mooney hma.o \ 71761dea5eSPatrick Mooney hma_asm.o \ 72a32a1f37SRobert Mustacchi hma_fpu.o \ 737c478bd9Sstevel@tonic-gate hment.o \ 74ae115bc7Smrj hold_page.o \ 7521bcbe6eSJason King hpet_acpi.o \ 767c478bd9Sstevel@tonic-gate hrtimers.o \ 777c478bd9Sstevel@tonic-gate htable.o \ 78349b53ddSStuart Maybee hypercall.o \ 79349b53ddSStuart Maybee hypersubr.o \ 80ae115bc7Smrj i86_mmu.o \ 816cefaae1SJack Meng ibft.o \ 827c478bd9Sstevel@tonic-gate instr_size.o \ 837c478bd9Sstevel@tonic-gate intr.o \ 84ae115bc7Smrj kboot_mmu.o \ 85ae115bc7Smrj kdi_idt.o \ 86ae115bc7Smrj kdi_idthdl.o \ 87ae115bc7Smrj kdi_asm.o \ 887c478bd9Sstevel@tonic-gate lgrpplat.o \ 897c478bd9Sstevel@tonic-gate mach_kdi.o \ 907c478bd9Sstevel@tonic-gate mach_sysconfig.o \ 917c478bd9Sstevel@tonic-gate machdep.o \ 92a9cc46cfSRobert Mustacchi md_clear.o \ 93a3114836SGerry Liu mem_config.o \ 947c478bd9Sstevel@tonic-gate mem_config_stubs.o \ 95a3114836SGerry Liu mem_config_arch.o \ 96a3114836SGerry Liu memlist_new.o \ 977c478bd9Sstevel@tonic-gate memnode.o \ 982449e17fSsherrym microcode.o \ 997c478bd9Sstevel@tonic-gate mlsetup.o \ 1007c478bd9Sstevel@tonic-gate mp_call.o \ 1017c478bd9Sstevel@tonic-gate mp_implfuncs.o \ 1027c478bd9Sstevel@tonic-gate mp_machdep.o \ 103ae115bc7Smrj mp_pc.o \ 1047c478bd9Sstevel@tonic-gate mp_startup.o \ 1057c478bd9Sstevel@tonic-gate memscrub.o \ 1067c478bd9Sstevel@tonic-gate mpcore.o \ 1077c478bd9Sstevel@tonic-gate notes.o \ 10875bcd456Sjg pci_bios.o \ 109c0da6274SZhi-Jun Robin Fu pci_cfgacc.o \ 110c0da6274SZhi-Jun Robin Fu pci_cfgacc_x86.o \ 111c88420b3Sdmick pci_cfgspace.o \ 112c88420b3Sdmick pci_mech1.o \ 1138d7fafffSZhi-Jun Robin Fu pci_mech1_amd.o \ 114c88420b3Sdmick pci_mech2.o \ 115c88420b3Sdmick pci_neptune.o \ 116c88420b3Sdmick pci_orion.o \ 1177c478bd9Sstevel@tonic-gate pmem.o \ 1187c478bd9Sstevel@tonic-gate ppage.o \ 1190e751525SEric Saxe pwrnow.o \ 120c3377ee9SJohn Levon smt.o \ 1210e751525SEric Saxe speedstep.o \ 1226a59053bSAlex Wilson ssp.o \ 1237c478bd9Sstevel@tonic-gate startup.o \ 1247c478bd9Sstevel@tonic-gate timestamp.o \ 125ae115bc7Smrj todpc_subr.o \ 12621bcbe6eSJason King tscc_hpet.o \ 127575694f6SJason King tscc_pit.o \ 128*04ddeddaSJason King tscc_vmware.o \ 1297c478bd9Sstevel@tonic-gate trap.o \ 1305951ced0SHans Rosenfeld turbo.o \ 1317c478bd9Sstevel@tonic-gate vm_machdep.o \ 132349b53ddSStuart Maybee xpv_platform.o \ 1337c478bd9Sstevel@tonic-gate x_call.o 1347c478bd9Sstevel@tonic-gate 13584ab085aSmws# 13684ab085aSmws# Add the SMBIOS subsystem object files directly to the list of objects 13784ab085aSmws# built into unix itself; this is all common code except for smb_dev.c. 13884ab085aSmws# 13984ab085aSmwsCORE_OBJS += $(SMBIOS_OBJS) 14084ab085aSmws 141ae115bc7Smrj# 142ae115bc7Smrj# These get compiled twice: 14306bbe1e0Sedp# - once in the dboot (direct boot) identity mapped code 144ae115bc7Smrj# - once for use during early startup in unix 145ae115bc7Smrj# 146ae115bc7SmrjBOOT_DRIVER_OBJS = \ 147ae115bc7Smrj boot_console.o \ 148ae115bc7Smrj boot_keyboard.o \ 149ae115bc7Smrj boot_keyboard_table.o \ 150ae115bc7Smrj boot_vga.o \ 1518e6d016fSToomas Soome boot_fb.o \ 152898c3fecSToomas Soome boot_mmu.o \ 1531738dd6eSToomas Soome dboot_multiboot2.o \ 154898c3fecSToomas Soome $(FONT_OBJS) 155ae115bc7Smrj 156ae115bc7SmrjCORE_OBJS += $(BOOT_DRIVER_OBJS) 157ae115bc7Smrj 1587c478bd9Sstevel@tonic-gate# 1597c478bd9Sstevel@tonic-gate# locore.o is special. It must be the first file relocated so that it 1607c478bd9Sstevel@tonic-gate# it is relocated just where its name implies. 1617c478bd9Sstevel@tonic-gate# 1629b0bb795SJohn LevonSPECIAL_OBJS += \ 1637c478bd9Sstevel@tonic-gate locore.o \ 1647c478bd9Sstevel@tonic-gate fast_trap_asm.o \ 1657c478bd9Sstevel@tonic-gate interrupt.o \ 16674ecdb51SJohn Levon syscall_asm_amd64.o \ 16774ecdb51SJohn Levon kpti_trampolines.o 1687c478bd9Sstevel@tonic-gate 1697c478bd9Sstevel@tonic-gate# 170ae115bc7Smrj# Objects that get compiled into the identity mapped PT_LOAD section of unix 171ae115bc7Smrj# to handle the earliest part of booting. 1727c478bd9Sstevel@tonic-gate# 173ae115bc7SmrjDBOOT_OBJS_32 = 1747c478bd9Sstevel@tonic-gate 175ae115bc7SmrjDBOOT_OBJS_64 += dboot_elfload.o 1767c478bd9Sstevel@tonic-gate 177ae115bc7SmrjDBOOT_OBJS += \ 178843e1988Sjohnlev dboot_asm.o \ 179ae115bc7Smrj dboot_grub.o \ 180ae115bc7Smrj dboot_printf.o \ 181843e1988Sjohnlev dboot_startkern.o \ 182ae115bc7Smrj memcpy.o \ 183ae115bc7Smrj memset.o \ 184ae115bc7Smrj muldiv.o \ 185e65d07eeSKeith Wesolowski sha1.o \ 186ae115bc7Smrj string.o \ 187ae115bc7Smrj $(BOOT_DRIVER_OBJS) \ 188ae115bc7Smrj $(DBOOT_OBJS_$(CLASS)) 1897c478bd9Sstevel@tonic-gate 190ae115bc7Smrj# 191ae115bc7Smrj# driver and misc modules 192ae115bc7Smrj# 193ae115bc7SmrjGFX_PRIVATE_OBJS += gfx_private.o gfxp_pci.o gfxp_segmap.o \ 19430165b7fSToomas Soome gfxp_devmap.o gfxp_vgatext.o gfxp_vm.o vgasubr.o \ 19582bb7c22SToomas Soome gfxp_fb.o gfxp_bitmap.o 196eca2601cSRandy FishelFIPE_OBJS += fipe_drv.o fipe_pm.o 19717169044SbrutusIOAT_OBJS += ioat.o ioat_rs.o ioat_ioctl.o ioat_chan.o 198ae115bc7SmrjISANEXUS_OBJS += isa.o dma_engine.o i8237A.o 19926947304SEvan YanPCIE_MISC_OBJS += pcie_acpi.o pciehpc_acpi.o pcie_x86.o 20006bbe1e0SedpPCI_E_NEXUS_OBJS += npe.o npe_misc.o 201ae115bc7SmrjPCI_E_NEXUS_OBJS += pci_common.o pci_kstats.o pci_tools.o 202ae115bc7SmrjPCINEXUS_OBJS += pci.o pci_common.o pci_kstats.o pci_tools.o 2030e751525SEric SaxePCPLUSMP_OBJS += apic.o apic_regops.o psm_common.o apic_introp.o \ 20441afdfa7SKrishnendu Sadhukhan - Sun Microsystems mp_platform_common.o mp_platform_misc.o \ 20521bcbe6eSJason King apic_common.o apic_timer.o 2067ff178cdSJimmy VetayasesAPIX_OBJS += apix.o apic_regops.o psm_common.o apix_intr.o apix_utils.o \ 20721bcbe6eSJason King apix_irm.o mp_platform_common.o apic_common.o \ 208583cd330SHans Rosenfeld apic_timer.o apix_regops.o 2097ff178cdSJimmy Vetayases 210507c3241Smlf 2112d6b5ea7SGuoli ShuACPI_DRV_OBJS += acpi_drv.o acpi_video.o 212a3114836SGerry LiuACPINEX_OBJS += acpinex_drv.o acpinex_event.o 2137aec1d6eScindi 2147f606aceSMark HaywoodCPUDRV_OBJS += \ 2157f606aceSMark Haywood cpudrv.o \ 2160e751525SEric Saxe cpudrv_mach.o 2177f606aceSMark Haywood 2185cff7825SmhPPM_OBJS += ppm_subr.o ppm.o ppm_plat.o 2195cff7825Smh 2202df1fe9cSrandyfACPIPPM_OBJS += acpippm.o acpisleep.o 221b72d5b75SMichael CorcoranACPIDEV_OBJS += acpidev_drv.o \ 222b72d5b75SMichael Corcoran acpidev_scope.o acpidev_device.o \ 223b72d5b75SMichael Corcoran acpidev_container.o \ 224b72d5b75SMichael Corcoran acpidev_cpu.o \ 225a3114836SGerry Liu acpidev_dr.o \ 226b72d5b75SMichael Corcoran acpidev_memory.o \ 227a3114836SGerry Liu acpidev_pci.o \ 228b72d5b75SMichael Corcoran acpidev_resource.o \ 229672fc84aSRobert Mustacchi acpidev_usbport.o \ 230b72d5b75SMichael Corcoran acpidev_util.o 2312df1fe9cSrandyf 232a3114836SGerry LiuDRMACH_ACPI_OBJS += drmach_acpi.o dr_util.o drmach_err.o 233a3114836SGerry Liu 234a3114836SGerry LiuDR_OBJS += dr.o dr_cpu.o dr_err.o dr_io.o dr_mem_acpi.o dr_quiesce.o dr_util.o 235a3114836SGerry Liu 2363a634bfcSVikram HegdeROOTNEX_OBJS += rootnex.o immu.o immu_dmar.o immu_dvma.o \ 2373a634bfcSVikram Hegde immu_intrmap.o immu_qinv.o immu_regs.o 2383a634bfcSVikram Hegde 239ae115bc7SmrjTZMON_OBJS += tzmon.o 2407c478bd9Sstevel@tonic-gateUPPC_OBJS += uppc.o psm_common.o 241ae115bc7SmrjXSVC_OBJS += xsvc.o 2426732dbb3SVikram HegdeAMD_IOMMU_OBJS += amd_iommu.o amd_iommu_impl.o amd_iommu_acpi.o \ 2436732dbb3SVikram Hegde amd_iommu_cmd.o amd_iommu_log.o amd_iommu_page_tables.o 2444c87aefeSPatrick MooneyVMM_OBJS += vmm.o \ 2454c87aefeSPatrick Mooney vmm_sol_dev.o \ 2464c87aefeSPatrick Mooney vmm_host.o \ 2474c87aefeSPatrick Mooney vmm_instruction_emul.o \ 2484c87aefeSPatrick Mooney vmm_ioport.o \ 2494c87aefeSPatrick Mooney vmm_lapic.o \ 2504c87aefeSPatrick Mooney vmm_mem.o \ 2514c87aefeSPatrick Mooney vmm_stat.o \ 2524c87aefeSPatrick Mooney vmm_util.o \ 2534c87aefeSPatrick Mooney x86.o \ 254eb9a1df2SHans Rosenfeld iommu.o \ 2554c87aefeSPatrick Mooney vatpic.o \ 2564c87aefeSPatrick Mooney vatpit.o \ 2574c87aefeSPatrick Mooney vhpet.o \ 2584c87aefeSPatrick Mooney vioapic.o \ 2594c87aefeSPatrick Mooney vlapic.o \ 2604c87aefeSPatrick Mooney vrtc.o \ 2614c87aefeSPatrick Mooney vpmtmr.o \ 2624c87aefeSPatrick Mooney ept.o \ 2634c87aefeSPatrick Mooney vmcs.o \ 2644c87aefeSPatrick Mooney vmx_msr.o \ 2654c87aefeSPatrick Mooney vmx.o \ 2664c87aefeSPatrick Mooney vmx_support.o \ 267eb9a1df2SHans Rosenfeld vtd.o \ 268eb9a1df2SHans Rosenfeld vtd_sol.o \ 2694c87aefeSPatrick Mooney svm.o \ 2704c87aefeSPatrick Mooney svm_msr.o \ 2714c87aefeSPatrick Mooney npt.o \ 2724c87aefeSPatrick Mooney vmcb.o \ 2734c87aefeSPatrick Mooney svm_support.o \ 2744c87aefeSPatrick Mooney amdv.o \ 275b4ceea05SDan Cross vmm_gpt.o \ 276b57f5d3eSPatrick Mooney seg_vmm.o \ 277b57f5d3eSPatrick Mooney vmm_reservoir.o \ 2784c87aefeSPatrick Mooney vmm_sol_vm.o \ 2794c87aefeSPatrick Mooney vmm_sol_glue.o \ 2804c87aefeSPatrick Mooney vmm_sol_ept.o \ 2814c87aefeSPatrick Mooney vmm_sol_rvi.o \ 2824c87aefeSPatrick Mooney vmm_support.o \ 2834c87aefeSPatrick Mooney vmm_zsd.o 2844c87aefeSPatrick Mooney 285b22a70abSPatrick MooneyVIONA_OBJS += viona_main.o \ 286b22a70abSPatrick Mooney viona_ring.o \ 287b22a70abSPatrick Mooney viona_rx.o \ 288b22a70abSPatrick Mooney viona_tx.o \ 289b22a70abSPatrick Mooney viona_hook.o \ 290fc1821feSrugrat 291eb9a1df2SHans RosenfeldPPT_OBJS += ppt.o 292eb9a1df2SHans Rosenfeld 2937c478bd9Sstevel@tonic-gate# 2947c478bd9Sstevel@tonic-gate# Build up defines and paths. 2957c478bd9Sstevel@tonic-gate# 2967c478bd9Sstevel@tonic-gateALL_DEFS += -Di86pc 297ae115bc7SmrjINC_PATH += -I$(UTSBASE)/i86pc -I$(SRC)/common 298349b53ddSStuart MaybeeINC_PATH += -I$(UTSBASE)/i86xpv -I$(UTSBASE)/common/xen 2997c478bd9Sstevel@tonic-gate 3007c478bd9Sstevel@tonic-gate# 301ae115bc7Smrj# Since the assym files are derived, the dependencies must be explicit for 3027c478bd9Sstevel@tonic-gate# all files including this file. (This is only actually required in the 303fe7a23c8SAndy Fiddaman# instance when the .nse_depinfo file does not exist.) 3047c478bd9Sstevel@tonic-gate# 305ae115bc7Smrj 306672fc84aSRobert MustacchiASSYM_DEPS += \ 3077c478bd9Sstevel@tonic-gate copy.o \ 3087c478bd9Sstevel@tonic-gate desctbls_asm.o \ 3097c478bd9Sstevel@tonic-gate ddi_i86_asm.o \ 3107c478bd9Sstevel@tonic-gate exception.o \ 3117c478bd9Sstevel@tonic-gate fast_trap_asm.o \ 3127c478bd9Sstevel@tonic-gate float.o \ 3137c478bd9Sstevel@tonic-gate i86_subr.o \ 3147c478bd9Sstevel@tonic-gate interrupt.o \ 3157c478bd9Sstevel@tonic-gate lock_prim.o \ 3167c478bd9Sstevel@tonic-gate locore.o \ 3177c478bd9Sstevel@tonic-gate mpcore.o \ 3187c478bd9Sstevel@tonic-gate sseblk.o \ 3197c478bd9Sstevel@tonic-gate swtch.o \ 3202df1fe9cSrandyf syscall_asm_amd64.o \ 32174ecdb51SJohn Levon kpti_trampolines.o \ 3222df1fe9cSrandyf cpr_wakecode.o 3232df1fe9cSrandyf 3242df1fe9cSrandyfCPR_IMPL_OBJS = cpr_impl.o cpr_wakecode.o 325ae115bc7Smrj 326ae115bc7Smrj$(KDI_ASSYM_DEPS:%=$(OBJS_DIR)/%): $(DSF_DIR)/$(OBJS_DIR)/kdi_assym.h 327eb00b1c8SRobert Mustacchi 328eb00b1c8SRobert Mustacchi# 329eb00b1c8SRobert Mustacchi# Intel Integrated Memory Controller 330eb00b1c8SRobert Mustacchi# (Sandy Bridge - Cascade Lake) 331eb00b1c8SRobert Mustacchi# 332eb00b1c8SRobert MustacchiIMC_OBJS = imc.o imc_decode.o imc_dump.o 333eb00b1c8SRobert MustacchiIMCSTUB_OBJS = imcstub.o 334