1 #
   2 # CDDL HEADER START
   3 #
   4 # The contents of this file are subject to the terms of the
   5 # Common Development and Distribution License (the "License").
   6 # You may not use this file except in compliance with the License.
   7 #
   8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9 # or http://www.opensolaris.org/os/licensing.
  10 # See the License for the specific language governing permissions
  11 # and limitations under the License.
  12 #
  13 # When distributing Covered Code, include this CDDL HEADER in each
  14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15 # If applicable, add the following below this CDDL HEADER, with the
  16 # fields enclosed by brackets "[]" replaced with your own identifying
  17 # information: Portions Copyright [yyyy] [name of copyright owner]
  18 #
  19 # CDDL HEADER END
  20 #
  21 
  22 #
  23 # Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
  24 # Copyright 2019 Joyent, Inc.
  25 # Copyright 2018 Nexenta Systems, Inc.
  26 # Copyright 2019 Peter Tribble.
  27 #
  28 
  29 #
  30 #       This Makefile defines all file modules and build rules for the
  31 # directory uts/intel and its children. These are the source files which
  32 # are specific to x86 processor architectures.
  33 #
  34 
  35 #
  36 #       Core (unix) objects
  37 #
  38 CORE_OBJS +=            \
  39         arch_kdi.o      \
  40         comm_page_util.o \
  41         copy.o          \
  42         copy_subr.o     \
  43         cpc_subr.o      \
  44         ddi_arch.o      \
  45         ddi_i86.o       \
  46         ddi_i86_asm.o   \
  47         desctbls.o      \
  48         desctbls_asm.o  \
  49         exception.o     \
  50         float.o         \
  51         fmsmb.o         \
  52         fpu.o           \
  53         i86_subr.o      \
  54         lock_prim.o     \
  55         ovbcopy.o       \
  56         polled_io.o     \
  57         retpoline.o     \
  58         sseblk.o        \
  59         sundep.o        \
  60         swtch.o         \
  61         sysi86.o
  62 
  63 DBOOT_OBJS +=           \
  64         retpoline.o
  65 
  66 #
  67 # 64-bit multiply/divide compiler helper routines
  68 # used only for ia32
  69 #
  70 
  71 SPECIAL_OBJS_32 +=      \
  72         muldiv.o
  73 
  74 #
  75 #       Generic-unix Module
  76 #
  77 GENUNIX_OBJS +=         \
  78         archdep.o       \
  79         getcontext.o    \
  80         install_utrap.o \
  81         lwp_private.o   \
  82         prom_enter.o    \
  83         prom_exit.o     \
  84         prom_panic.o    \
  85         sendsig.o       \
  86         syscall.o
  87 
  88 
  89 #
  90 #       PROM Routines
  91 #
  92 GENUNIX_OBJS +=         \
  93         prom_env.o      \
  94         prom_emul.o     \
  95         prom_getchar.o  \
  96         prom_init.o     \
  97         prom_node.o     \
  98         prom_printf.o   \
  99         prom_prop.o     \
 100         prom_putchar.o  \
 101         prom_reboot.o   \
 102         prom_version.o
 103 
 104 #
 105 #       file system modules
 106 #
 107 CORE_OBJS +=            \
 108         prmachdep.o
 109 
 110 #
 111 #       ZFS file system module
 112 #
 113 ZFS_OBJS +=             \
 114         spa_boot.o
 115 
 116 #
 117 #       Decompression code
 118 #
 119 CORE_OBJS += decompress.o
 120 
 121 #
 122 #       Microcode utilities
 123 #
 124 CORE_OBJS += ucode_utils.o
 125 
 126 #
 127 #       Driver modules
 128 #
 129 ARCMSR_OBJS += arcmsr.o
 130 ATA_OBJS += $(GHD_OBJS) ata_blacklist.o ata_common.o ata_disk.o \
 131         ata_dma.o atapi.o atapi_fsm.o ata_debug.o \
 132         sil3xxx.o
 133 CMDK_OBJS += cmdk.o
 134 CMLB_OBJS += cmlb.o
 135 CPUNEX_OBJS += cpunex.o
 136 DADK_OBJS += dadk.o
 137 DCOPY_OBJS += dcopy.o
 138 DNET_OBJS += dnet.o dnet_mii.o
 139 FD_OBJS += fd.o
 140 GDA_OBJS += gda.o
 141 GHD_OBJS += ghd.o ghd_debug.o ghd_dma.o ghd_queue.o ghd_scsa.o \
 142         ghd_scsi.o ghd_timer.o ghd_waitq.o ghd_gcmd.o
 143 I915_OBJS += i915_dma.o i915_drv.o i915_irq.o i915_mem.o \
 144         i915_gem.o i915_gem_debug.o i915_gem_tiling.o
 145 NSKERN_OBJS += nsc_asm.o
 146 PCICFG_OBJS += pcicfg.o
 147 PCI_PCINEXUS_OBJS += pci_pci.o
 148 PCIEB_OBJS += pcieb_x86.o
 149 PIT_BEEP_OBJS += pit_beep.o
 150 POWER_OBJS += power.o
 151 PCI_AUTOCONFIG_OBJS += pci_autoconfig.o pci_boot.o pcie_nvidia.o \
 152                         pci_memlist.o pci_resource.o
 153 RADEON_OBJS += r300_cmdbuf.o radeon_cp.o radeon_drv.o \
 154                         radeon_state.o radeon_irq.o radeon_mem.o
 155 SD_OBJS += sd.o sd_xbuf.o
 156 
 157 STRATEGY_OBJS += strategy.o
 158 UCODE_OBJS += ucode_drv.o
 159 VGATEXT_OBJS += vgatext.o
 160 
 161 #
 162 #       Kernel linker
 163 #
 164 KRTLD_OBJS +=           \
 165         bootfsops.o     \
 166         bootrd.o        \
 167         bootrd_cpio.o   \
 168         ufsops.o        \
 169         hsfs.o          \
 170         doreloc.o       \
 171         kobj_boot.o     \
 172         kobj_convrelstr.o \
 173         kobj_crt.o      \
 174         kobj_isa.o      \
 175         kobj_reloc.o
 176 
 177 #
 178 #       misc. modules
 179 #
 180 ACPICA_OBJS     += \
 181                    dmbuffer.o dmcstyle.o dmdeferred.o dmnames.o dmopcode.o \
 182                    dmresrc.o dmresrcl.o dmresrcl2.o dmresrcs.o dmutils.o \
 183                    dmwalk.o \
 184                    \
 185                    dsargs.o dscontrol.o dsdebug.o dsfield.o dsinit.o \
 186                    dsmethod.o dsmthdat.o dsobject.o dsopcode.o dsutils.o \
 187                    dswexec.o dswload.o dswload2.o dswscope.o dswstate.o \
 188                    dspkginit.o \
 189                    \
 190                    evevent.o evglock.o evgpe.o evgpeblk.o evgpeinit.o \
 191                    evgpeutil.o evhandler.o evmisc.o evregion.o evrgnini.o \
 192                    evsci.o evxface.o evxfevnt.o evxfgpe.o evxfregn.o \
 193                    \
 194                    exconcat.o exconfig.o exconvrt.o excreate.o exdebug.o \
 195                    exdump.o exfield.o exfldio.o exmisc.o exmutex.o exnames.o \
 196                    exoparg1.o exoparg2.o exoparg3.o exoparg6.o exprep.o \
 197                    exregion.o exresnte.o exresolv.o exresop.o exstore.o \
 198                    exstoren.o exstorob.o exsystem.o extrace.o exutils.o \
 199                    \
 200                    hwacpi.o hwesleep.o hwgpe.o hwpci.o hwregs.o hwsleep.o \
 201                    hwtimer.o hwvalid.o hwxface.o hwxfsleep.o \
 202                    \
 203                    psargs.o psloop.o psobject.o psopcode.o psopinfo.o \
 204                    psparse.o psscope.o pstree.o psutils.o pswalk.o psxface.o \
 205                    \
 206                    nsaccess.o nsalloc.o nsarguments.o nsconvert.o nsdump.o \
 207                    nsdumpdv.o nseval.o nsinit.o nsload.o nsnames.o nsobject.o \
 208                    nsparse.o nspredef.o nsprepkg.o nsrepair.o nsrepair2.o \
 209                    nssearch.o nsutils.o nswalk.o nsxfeval.o nsxfname.o \
 210                    nsxfobj.o \
 211                    \
 212                    rsaddr.o rscalc.o rscreate.o rsdump.o rsdumpinfo.o \
 213                    rsinfo.o rsio.o rsirq.o rslist.o rsmemory.o rsmisc.o \
 214                    rsserial.o rsutils.o rsxface.o \
 215                    \
 216                    tbdata.o tbfadt.o tbfind.o tbinstal.o tbprint.o tbutils.o \
 217                    tbxface.o tbxfload.o tbxfroot.o \
 218                    \
 219                    utaddress.o utalloc.o utascii.o utbuffer.o utcache.o \
 220                    utclib.o utcopy.o utdebug.o utdecode.o utdelete.o \
 221                    uterror.o uteval.o utexcep.o utglobal.o uthex.o utids.o \
 222                    utinit.o utlock.o utmath.o utmisc.o utmutex.o utnonansi.o \
 223                    utobject.o utosi.o utownerid.o utpredef.o utresrc.o \
 224                    utstate.o utstring.o uttrack.o utuuid.o utxface.o \
 225                    utxferror.o utxfinit.o utxfmutex.o utresdecode.o \
 226                    utstrsuppt.o utstrtoul64.o \
 227                    \
 228                    acpi_enum.o acpica_ec.o acpica.o ahids.o master_ops.o \
 229                    osl_ml.o osl.o
 230 
 231 
 232 FBT_OBJS += fbt.o
 233 SDT_OBJS += sdt.o
 234 
 235 #
 236 #       AMD8111 NIC driver module
 237 #
 238 AMD8111S_OBJS += amd8111s_main.o amd8111s_hw.o
 239 
 240 #
 241 #       Pentium 4 Performance Counter BackEnd module
 242 #
 243 P4_PCBE_OBJS = p4_pcbe.o
 244 
 245 #
 246 #       AMD Opteron/Athlon64 Performance Counter BackEnd module
 247 #
 248 OPTERON_PCBE_OBJS = opteron_pcbe.o
 249 
 250 #
 251 #       Intel Core Architecture Performance Counter BackEnd module
 252 #
 253 CORE_PCBE_OBJS = core_pcbe.o
 254 
 255 #
 256 #       AMR module
 257 #
 258 AMR_OBJS = amr.o
 259 
 260 #
 261 #       IPMI module
 262 IPMI_OBJS +=    ipmi_main.o ipmi.o ipmi_kcs.o
 263 
 264 #
 265 #       IOMMULIB module
 266 #
 267 IOMMULIB_OBJS = iommulib.o
 268 
 269 #
 270 #       Brand modules
 271 #
 272 SN1_BRAND_OBJS  =       sn1_brand.o sn1_brand_asm.o
 273 S10_BRAND_OBJS  =       s10_brand.o s10_brand_asm.o
 274 
 275 #
 276 #       special files
 277 #
 278 MODSTUB_OBJ +=          \
 279         modstubs.o
 280 
 281 BOOTDEV_OBJS +=         \
 282         bootdev.o
 283 
 284 INC_PATH        += -I$(UTSBASE)/intel
 285 
 286 
 287 CPR_INTEL_OBJS +=       cpr_intel.o
 288 
 289 #
 290 # AMD family 0xf memory controller module
 291 #
 292 include $(SRC)/common/mc/mc-amd/Makefile.mcamd
 293 MCAMD_OBJS      += \
 294         $(MCAMD_CMN_OBJS) \
 295         mcamd_drv.o \
 296         mcamd_dimmcfg.o \
 297         mcamd_subr.o \
 298         mcamd_pcicfg.o
 299 
 300 #
 301 # Intel Nehalem memory controller module
 302 #
 303 INTEL_NHM_OBJS += \
 304         nhm_init.o \
 305         mem_addr.o \
 306         intel_nhmdrv.o \
 307         nhm_pci_cfg.o \
 308         dimm_topo.o \
 309         intel_nhm.o
 310 
 311 #
 312 # Intel 5000/5100/5400/7300 chipset memory controller hub (MCH) module
 313 #
 314 INTEL_NB5000_OBJS += \
 315         intel_nb5000.o \
 316         intel_nbdrv.o \
 317         dimm_addr.o \
 318         nb_pci_cfg.o \
 319         nb5000_init.o
 320 
 321 #
 322 # VMware VMXNET3 virtual network device
 323 #
 324 VMXNET3S_OBJS = vmxnet3_main.o \
 325                 vmxnet3_rx.o \
 326                 vmxnet3_tx.o \
 327                 vmxnet3_utils.o
 328 
 329 #
 330 # VMware PVSCSI SCSI Controller
 331 #
 332 PVSCSI_OBJS =   pvscsi.o
 333 
 334 #
 335 # Intel Temperature Module
 336 #
 337 CORETEMP_OBJS = coretemp.o
 338 
 339 #
 340 # AMD Family 17 northbridge driver
 341 #
 342 AMDF17NBDF_OBJS = amdf17nbdf.o
 343 
 344 #
 345 # Intel Platform Controller Hub Temperature Module
 346 #
 347 PCHTEMP_OBJS = pchtemp.o
 348 
 349 #
 350 # AMD Family 10h-16h temperature driver
 351 #
 352 AMDNBTEMP_OBJS = amdnbtemp.o