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 2016, Joyent, Inc.
  25 # Copyright 2016 Nexenta Systems, Inc.
  26 #
  27 
  28 #
  29 #       This Makefile defines all file modules and build rules for the
  30 # directory uts/intel and its children. These are the source files which
  31 # are specific to x86 processor architectures.
  32 #
  33 
  34 #
  35 #       Core (unix) objects
  36 #
  37 CORE_OBJS +=            \
  38         arch_kdi.o      \
  39         comm_page_util.o \
  40         copy.o          \
  41         copy_subr.o     \
  42         cpc_subr.o      \
  43         ddi_arch.o      \
  44         ddi_i86.o       \
  45         ddi_i86_asm.o   \
  46         desctbls.o      \
  47         desctbls_asm.o  \
  48         exception.o     \
  49         float.o         \
  50         fmsmb.o         \
  51         fpu.o           \
  52         i86_subr.o      \
  53         lock_prim.o     \
  54         ovbcopy.o       \
  55         polled_io.o     \
  56         sseblk.o        \
  57         sundep.o        \
  58         swtch.o         \
  59         sysi86.o
  60 
  61 #
  62 # 64-bit multiply/divide compiler helper routines
  63 # used only for ia32
  64 #
  65 
  66 SPECIAL_OBJS_32 +=      \
  67         muldiv.o
  68 
  69 #
  70 #       Generic-unix Module
  71 #
  72 GENUNIX_OBJS +=         \
  73         archdep.o       \
  74         getcontext.o    \
  75         install_utrap.o \
  76         lwp_private.o   \
  77         prom_enter.o    \
  78         prom_exit.o     \
  79         prom_panic.o    \
  80         sendsig.o       \
  81         syscall.o
  82 
  83 
  84 #
  85 #       PROM Routines
  86 #
  87 GENUNIX_OBJS +=         \
  88         prom_env.o      \
  89         prom_emul.o     \
  90         prom_getchar.o  \
  91         prom_init.o     \
  92         prom_node.o     \
  93         prom_printf.o   \
  94         prom_prop.o     \
  95         prom_putchar.o  \
  96         prom_reboot.o   \
  97         prom_version.o
  98 
  99 #
 100 #       file system modules
 101 #
 102 CORE_OBJS +=            \
 103         prmachdep.o
 104  
 105 LX_CGROUP_OBJS +=       \
 106         cgrps_node.o    \
 107         cgrps_vfsops.o  \
 108         cgrps_vnops.o
 109 
 110 LX_DEVFS_OBJS +=        \
 111         lxd_attrdb.o    \
 112         lxd_node.o      \
 113         lxd_vfsops.o    \
 114         lxd_vnops.o
 115 
 116 LX_PROC_OBJS += \
 117         lx_prsubr.o     \
 118         lx_prvfsops.o   \
 119         lx_prvnops.o
 120 
 121 LX_SYS_OBJS +=  \
 122         lx_syssubr.o    \
 123         lx_sysvfsops.o  \
 124         lx_sysvnops.o
 125 
 126 LX_AUTOFS_OBJS +=       \
 127         lx_autofs.o
 128 
 129 #
 130 #       ZFS file system module
 131 #
 132 ZFS_OBJS +=             \
 133         spa_boot.o
 134 
 135 #
 136 #       Decompression code
 137 #
 138 CORE_OBJS += decompress.o
 139 
 140 #
 141 #       Microcode utilities
 142 #
 143 CORE_OBJS += ucode_utils.o
 144 
 145 #
 146 #       Driver modules
 147 #
 148 AGPGART_OBJS += agpgart.o agp_kstat.o
 149 AGPTARGET_OBJS += agptarget.o
 150 AMD64GART_OBJS += amd64_gart.o
 151 ARCMSR_OBJS += arcmsr.o
 152 ATA_OBJS += $(GHD_OBJS) ata_blacklist.o ata_common.o ata_disk.o \
 153         ata_dma.o atapi.o atapi_fsm.o ata_debug.o \
 154         sil3xxx.o
 155 BSCBUS_OBJS += bscbus.o
 156 BSCV_OBJS += bscv.o
 157 CMDK_OBJS += cmdk.o
 158 CMLB_OBJS += cmlb.o
 159 CPUNEX_OBJS += cpunex.o
 160 DADK_OBJS += dadk.o
 161 DCOPY_OBJS += dcopy.o
 162 DNET_OBJS += dnet.o dnet_mii.o
 163 FD_OBJS += fd.o
 164 GDA_OBJS += gda.o
 165 GHD_OBJS += ghd.o ghd_debug.o ghd_dma.o ghd_queue.o ghd_scsa.o \
 166         ghd_scsi.o ghd_timer.o ghd_waitq.o ghd_gcmd.o
 167 I915_OBJS += i915_dma.o i915_drv.o i915_irq.o i915_mem.o \
 168         i915_gem.o i915_gem_debug.o i915_gem_tiling.o
 169 NSKERN_OBJS += nsc_asm.o
 170 PCICFG_OBJS += pcicfg.o
 171 PCI_PCINEXUS_OBJS += pci_pci.o
 172 PCIEB_OBJS += pcieb_x86.o
 173 PIT_BEEP_OBJS += pit_beep.o
 174 POWER_OBJS += power.o
 175 PCI_AUTOCONFIG_OBJS += pci_autoconfig.o pci_boot.o pcie_nvidia.o \
 176                         pci_memlist.o pci_resource.o
 177 RADEON_OBJS += r300_cmdbuf.o radeon_cp.o radeon_drv.o \
 178                         radeon_state.o radeon_irq.o radeon_mem.o
 179 SD_OBJS += sd.o sd_xbuf.o
 180 
 181 HECI_OBJS +=            \
 182         heci_init.o     \
 183         heci_intr.o     \
 184         heci_interface.o \
 185         io_heci.o       \
 186         heci_main.o
 187 
 188 STRATEGY_OBJS += strategy.o
 189 UCODE_OBJS += ucode_drv.o
 190 VGATEXT_OBJS += vgatext.o vgasubr.o
 191 
 192 #
 193 #       Kernel linker
 194 #
 195 KRTLD_OBJS +=           \
 196         bootfsops.o     \
 197         bootrd.o        \
 198         ufsops.o        \
 199         hsfs.o          \
 200         doreloc.o       \
 201         kobj_boot.o     \
 202         kobj_convrelstr.o \
 203         kobj_crt.o      \
 204         kobj_isa.o      \
 205         kobj_reloc.o
 206 
 207 #
 208 #       misc. modules
 209 #
 210 ACPICA_OBJS     += \
 211                    dmbuffer.o dmcstyle.o dmdeferred.o dmnames.o dmopcode.o \
 212                    dmresrc.o dmresrcl.o dmresrcl2.o dmresrcs.o dmutils.o \
 213                    dmwalk.o \
 214                    \
 215                    dsargs.o dscontrol.o dsdebug.o dsfield.o dsinit.o \
 216                    dsmethod.o dsmthdat.o dsobject.o dsopcode.o dsutils.o \
 217                    dswexec.o dswload.o dswload2.o dswscope.o dswstate.o \
 218                    \
 219                    evevent.o evglock.o evgpe.o evgpeblk.o evgpeinit.o \
 220                    evgpeutil.o evhandler.o evmisc.o evregion.o evrgnini.o \
 221                    evsci.o evxface.o evxfevnt.o evxfgpe.o evxfregn.o \
 222                    \
 223                    exconcat.o exconfig.o exconvrt.o excreate.o exdebug.o \
 224                    exdump.o exfield.o exfldio.o exmisc.o exmutex.o exnames.o \
 225                    exoparg1.o exoparg2.o exoparg3.o exoparg6.o exprep.o \
 226                    exregion.o exresnte.o exresolv.o exresop.o exstore.o \
 227                    exstoren.o exstorob.o exsystem.o extrace.o exutils.o \
 228                    \
 229                    hwacpi.o hwesleep.o hwgpe.o hwpci.o hwregs.o hwsleep.o \
 230                    hwtimer.o hwvalid.o hwxface.o hwxfsleep.o \
 231                    \
 232                    psargs.o psloop.o psobject.o psopcode.o psopinfo.o \
 233                    psparse.o psscope.o pstree.o psutils.o pswalk.o psxface.o \
 234                    \
 235                    nsaccess.o nsalloc.o nsarguments.o nsconvert.o nsdump.o \
 236                    nsdumpdv.o nseval.o nsinit.o nsload.o nsnames.o nsobject.o \
 237                    nsparse.o nspredef.o nsprepkg.o nsrepair.o nsrepair2.o \
 238                    nssearch.o nsutils.o nswalk.o nsxfeval.o nsxfname.o \
 239                    nsxfobj.o \
 240                    \
 241                    rsaddr.o rscalc.o rscreate.o rsdump.o rsdumpinfo.o \
 242                    rsinfo.o rsio.o rsirq.o rslist.o rsmemory.o rsmisc.o \
 243                    rsserial.o rsutils.o rsxface.o \
 244                    \
 245                    tbdata.o tbfadt.o tbfind.o tbinstal.o tbprint.o tbutils.o \
 246                    tbxface.o tbxfload.o tbxfroot.o \
 247                    \
 248                    utaddress.o utalloc.o utascii.o utbuffer.o utcache.o \
 249                    utclib.o utcopy.o utdebug.o utdecode.o utdelete.o \
 250                    uterror.o uteval.o utexcep.o utglobal.o uthex.o utids.o \
 251                    utinit.o utlock.o utmath.o utmisc.o utmutex.o utnonansi.o \
 252                    utobject.o utosi.o utownerid.o utpredef.o utprint.o \
 253                    utresrc.o utstate.o utstring.o uttrack.o utuuid.o utxface.o \
 254                    utxferror.o utxfinit.o utxfmutex.o \
 255                    \
 256                    acpi_enum.o acpica_ec.o acpica.o ahids.o master_ops.o \
 257                    osl_ml.o osl.o
 258 
 259 
 260 AGP_OBJS += agpmaster.o
 261 FBT_OBJS += fbt.o
 262 SDT_OBJS += sdt.o
 263 
 264 #
 265 #       AMD8111 NIC driver module
 266 #
 267 AMD8111S_OBJS += amd8111s_main.o amd8111s_hw.o
 268 
 269 #
 270 #       Pentium Performance Counter BackEnd module
 271 #
 272 P123_PCBE_OBJS = p123_pcbe.o
 273 
 274 #
 275 #       Pentium 4 Performance Counter BackEnd module
 276 #
 277 P4_PCBE_OBJS = p4_pcbe.o
 278 
 279 #
 280 #       AMD Opteron/Athlon64 Performance Counter BackEnd module
 281 #
 282 OPTERON_PCBE_OBJS = opteron_pcbe.o
 283 
 284 #
 285 #       Intel Core Architecture Performance Counter BackEnd module
 286 #
 287 CORE_PCBE_OBJS = core_pcbe.o
 288 
 289 #
 290 #       AMR module
 291 #
 292 AMR_OBJS = amr.o
 293 
 294 #
 295 #       IPMI module
 296 IPMI_OBJS +=    ipmi_main.o ipmi.o ipmi_kcs.o
 297 
 298 #
 299 #       IOMMULIB module
 300 #
 301 IOMMULIB_OBJS = iommulib.o
 302 
 303 #
 304 #       Brand modules
 305 #
 306 SN1_BRAND_OBJS  =       sn1_brand.o sn1_brand_asm.o
 307 S10_BRAND_OBJS  =       s10_brand.o s10_brand_asm.o
 308 LX_BRAND_OBJS  =                \
 309         lx_access.o             \
 310         lx_aio.o                \
 311         lx_archdep.o            \
 312         lx_auxv.o               \
 313         lx_brand.o              \
 314         lx_brk.o                \
 315         lx_chmod.o              \
 316         lx_chown.o              \
 317         lx_clone.o              \
 318         lx_close.o              \
 319         lx_cpu.o                \
 320         lx_dup.o                \
 321         lx_errno.o              \
 322         lx_epoll.o              \
 323         lx_fadvise.o            \
 324         lx_fallocate.o          \
 325         lx_fcntl.o              \
 326         lx_futex.o              \
 327         lx_getcwd.o             \
 328         lx_getdents.o           \
 329         lx_getpid.o             \
 330         lx_getrandom.o          \
 331         lx_id.o                 \
 332         lx_ioctl.o              \
 333         lx_ioprio.o             \
 334         lx_kill.o               \
 335         lx_link.o               \
 336         lx_lseek.o              \
 337         lx_misc.o               \
 338         lx_miscsys.o            \
 339         lx_mkdir.o              \
 340         lx_modify_ldt.o         \
 341         lx_mount.o              \
 342         lx_open.o               \
 343         lx_personality.o        \
 344         lx_pgrp.o               \
 345         lx_pid.o                \
 346         lx_pipe.o               \
 347         lx_poll.o               \
 348         lx_prctl.o              \
 349         lx_ptrace.o             \
 350         lx_rename.o             \
 351         lx_rlimit.o             \
 352         lx_rw.o                 \
 353         lx_sched.o              \
 354         lx_signal.o             \
 355         lx_signum.o             \
 356         lx_socket.o             \
 357         lx_stat.o               \
 358         lx_sync.o               \
 359         lx_syscall.o            \
 360         lx_sysinfo.o            \
 361         lx_thread_area.o        \
 362         lx_timer.o              \
 363         lx_umask.o              \
 364         lx_uname.o              \
 365         lx_wait.o               \
 366         lx_xattr.o
 367 
 368 #
 369 #       special files
 370 #
 371 MODSTUB_OBJ +=          \
 372         modstubs.o
 373 
 374 BOOTDEV_OBJS +=         \
 375         bootdev.o
 376 
 377 INC_PATH        += -I$(UTSBASE)/intel
 378 
 379 
 380 CPR_INTEL_OBJS +=       cpr_intel.o
 381 
 382 #
 383 # AMD family 0xf memory controller module
 384 #
 385 include $(SRC)/common/mc/mc-amd/Makefile.mcamd
 386 MCAMD_OBJS      += \
 387         $(MCAMD_CMN_OBJS) \
 388         mcamd_drv.o \
 389         mcamd_dimmcfg.o \
 390         mcamd_subr.o \
 391         mcamd_pcicfg.o
 392 
 393 #
 394 # Intel Nehalem memory controller module
 395 #
 396 INTEL_NHM_OBJS += \
 397         nhm_init.o \
 398         mem_addr.o \
 399         intel_nhmdrv.o \
 400         nhm_pci_cfg.o \
 401         dimm_topo.o \
 402         intel_nhm.o
 403 
 404 #
 405 # Intel 5000/5100/5400/7300 chipset memory controller hub (MCH) module
 406 #
 407 INTEL_NB5000_OBJS += \
 408         intel_nb5000.o \
 409         intel_nbdrv.o \
 410         dimm_addr.o \
 411         nb_pci_cfg.o \
 412         nb5000_init.o
 413 
 414 #
 415 # VMware VMXNET3 virtual network device
 416 #
 417 VMXNET3S_OBJS = vmxnet3_main.o \
 418                 vmxnet3_rx.o \
 419                 vmxnet3_tx.o \
 420                 vmxnet3_utils.o
 421 
 422 #
 423 # VMware PVSCSI SCSI Controller
 424 #
 425 PVSCSI_OBJS =   pvscsi.o