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 (c) 2012, Joyent, Inc. All rights reserved.
  25 # Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
  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         copy.o          \
  40         copy_subr.o     \
  41         cpc_subr.o      \
  42         ddi_arch.o      \
  43         ddi_i86.o       \
  44         ddi_i86_asm.o   \
  45         desctbls.o      \
  46         desctbls_asm.o  \
  47         exception.o     \
  48         float.o         \
  49         fmsmb.o         \
  50         fpu.o           \
  51         i86_subr.o      \
  52         lock_prim.o     \
  53         ovbcopy.o       \
  54         polled_io.o     \
  55         sseblk.o        \
  56         sundep.o        \
  57         swtch.o         \
  58         sysi86.o
  59 
  60 #
  61 # 64-bit multiply/divide compiler helper routines
  62 # used only for ia32
  63 #
  64 
  65 SPECIAL_OBJS_32 +=      \
  66         muldiv.o
  67 
  68 #
  69 #       Generic-unix Module
  70 #
  71 GENUNIX_OBJS +=         \
  72         archdep.o       \
  73         getcontext.o    \
  74         install_utrap.o \
  75         lwp_private.o   \
  76         prom_enter.o    \
  77         prom_exit.o     \
  78         prom_panic.o    \
  79         sendsig.o       \
  80         syscall.o
  81 
  82 
  83 #
  84 #       PROM Routines
  85 #
  86 GENUNIX_OBJS +=         \
  87         prom_env.o      \
  88         prom_emul.o     \
  89         prom_getchar.o  \
  90         prom_init.o     \
  91         prom_node.o     \
  92         prom_printf.o   \
  93         prom_prop.o     \
  94         prom_putchar.o  \
  95         prom_reboot.o   \
  96         prom_version.o
  97 
  98 #
  99 #       file system modules
 100 #
 101 CORE_OBJS +=            \
 102         prmachdep.o
 103 
 104 #
 105 #       ZFS file system module
 106 #
 107 ZFS_OBJS +=             \
 108         spa_boot.o
 109 
 110 #
 111 #       Decompression code
 112 #
 113 CORE_OBJS += decompress.o
 114 
 115 #
 116 #       Microcode utilities
 117 #
 118 CORE_OBJS += ucode_utils.o
 119 
 120 #
 121 #       Driver modules
 122 #
 123 AGPGART_OBJS += agpgart.o agp_kstat.o
 124 AGPTARGET_OBJS += agptarget.o
 125 AMD64GART_OBJS += amd64_gart.o
 126 ARCMSR_OBJS += arcmsr.o
 127 ATA_OBJS += $(GHD_OBJS) ata_blacklist.o ata_common.o ata_disk.o \
 128         ata_dma.o atapi.o atapi_fsm.o ata_debug.o \
 129         sil3xxx.o
 130 BSCBUS_OBJS += bscbus.o
 131 BSCV_OBJS += bscv.o
 132 CMDK_OBJS += cmdk.o
 133 CMLB_OBJS += cmlb.o
 134 CPUNEX_OBJS += cpunex.o
 135 DADK_OBJS += dadk.o
 136 DCOPY_OBJS += dcopy.o
 137 DNET_OBJS += dnet.o dnet_mii.o
 138 FD_OBJS += fd.o
 139 GDA_OBJS += gda.o
 140 GHD_OBJS += ghd.o ghd_debug.o ghd_dma.o ghd_queue.o ghd_scsa.o \
 141         ghd_scsi.o ghd_timer.o ghd_waitq.o ghd_gcmd.o
 142 I915_OBJS += i915_dma.o i915_drv.o i915_irq.o i915_mem.o \
 143         i915_gem.o i915_gem_debug.o i915_gem_tiling.o
 144 NSKERN_OBJS += nsc_asm.o
 145 PCICFG_OBJS += pcicfg.o
 146 PCI_PCINEXUS_OBJS += pci_pci.o
 147 PCIEB_OBJS += pcieb_x86.o
 148 PIT_BEEP_OBJS += pit_beep.o
 149 POWER_OBJS += power.o
 150 PCI_AUTOCONFIG_OBJS += pci_autoconfig.o pci_boot.o pcie_nvidia.o \
 151                         pci_memlist.o pci_resource.o
 152 RADEON_OBJS += r300_cmdbuf.o radeon_cp.o radeon_drv.o \
 153                         radeon_state.o radeon_irq.o radeon_mem.o
 154 SD_OBJS += sd.o sd_xbuf.o
 155 
 156 HECI_OBJS +=            \
 157         heci_init.o     \
 158         heci_intr.o     \
 159         heci_interface.o \
 160         io_heci.o       \
 161         heci_main.o
 162 
 163 STRATEGY_OBJS += strategy.o
 164 UCODE_OBJS += ucode_drv.o
 165 VGATEXT_OBJS += vgatext.o vgasubr.o
 166 
 167 #
 168 #       Kernel linker
 169 #
 170 KRTLD_OBJS +=           \
 171         bootrd.o        \
 172         ufsops.o        \
 173         hsfs.o          \
 174         doreloc.o       \
 175         kobj_boot.o     \
 176         kobj_convrelstr.o \
 177         kobj_crt.o      \
 178         kobj_isa.o      \
 179         kobj_reloc.o
 180 
 181 #
 182 #       ACPI CA module
 183 #
 184 
 185 # native
 186 ACPICA_OBJS +=  acpica.o acpica_ec.o acpi_enum.o master_ops.o osl.o     \
 187                 osl_ml.o
 188 # debugger
 189 ACPICA_OBJS +=  dbcmds.o dbdisply.o dbexec.o dbfileio.o dbhistry.o      \
 190                 dbinput.o dbmethod.o dbnames.o dbstats.o dbutils.o      \
 191                 dbxface.o dbconvert.o
 192 # disassembler
 193 ACPICA_OBJS +=  dmbuffer.o dmnames.o dmobject.o dmopcode.o dmresrc.o    \
 194                 dmresrcl.o dmresrcs.o dmutils.o dmwalk.o dmdeferred.o   \
 195                 dmresrcl2.o
 196 # dispatcher
 197 ACPICA_OBJS +=  dsargs.o dscontrol.o dsfield.o dsinit.o dsmethod.o      \
 198                 dsmthdat.o dsobject.o dsopcode.o dsutils.o dswexec.o    \
 199                 dswload.o dswload2.o dswscope.o dswstate.o
 200 # events
 201 ACPICA_OBJS +=  evevent.o evglock.o evgpe.o evgpeblk.o evgpeinit.o      \
 202                 evgpeutil.o evmisc.o evregion.o evrgnini.o evsci.o      \
 203                 evxface.o evxfevnt.o evxfgpe.o evxfregn.o evhandler.o
 204 # executer
 205 ACPICA_OBJS +=  exconfig.o exconvrt.o excreate.o exdebug.o exdump.o     \
 206                 exfield.o exfldio.o exmisc.o exmutex.o exnames.o        \
 207                 exoparg1.o exoparg2.o exoparg3.o exoparg6.o exprep.o    \
 208                 exregion.o exresnte.o exresolv.o exresop.o exstore.o    \
 209                 exstoren.o exstorob.o exsystem.o exutils.o
 210 # hardware
 211 ACPICA_OBJS +=  hwacpi.o hwgpe.o hwpci.o hwregs.o hwsleep.o hwtimer.o   \
 212                 hwvalid.o hwxface.o hwesleep.o hwxfsleep.o
 213 # namespace
 214 ACPICA_OBJS +=  nsaccess.o nsalloc.o nsdump.o nsdumpdv.o nseval.o       \
 215                 nsinit.o nsload.o nsnames.o nsobject.o nsparse.o        \
 216                 nspredef.o nsrepair.o nsrepair2.o nssearch.o nsutils.o  \
 217                 nswalk.o nsxfeval.o nsxfname.o nsxfobj.o nsarguments.o  \
 218                 nsconvert.o nsprepkg.o
 219 # parser
 220 ACPICA_OBJS +=  psargs.o psloop.o psopcode.o psparse.o psscope.o        \
 221                 pstree.o psutils.o pswalk.o psxface.o psobject.o psopinfo.o
 222 # resources
 223 ACPICA_OBJS +=  rsaddr.o rscalc.o rscreate.o rsdump.o rsinfo.o rsio.o   \
 224                 rsirq.o rslist.o rsmemory.o rsmisc.o rsutils.o          \
 225                 rsxface.o rsdumpinfo.o rsserial.o
 226 # tables
 227 ACPICA_OBJS +=  tbfadt.o tbfind.o tbinstal.o tbutils.o tbxface.o        \
 228                 tbxfroot.o tbprint.o tbxfload.o
 229 # utilities
 230 ACPICA_OBJS +=  utalloc.o utcache.o utclib.o utcopy.o utdebug.o         \
 231                 utdecode.o utdelete.o uteval.o utglobal.o utids.o       \
 232                 utinit.o utlock.o utmath.o utmisc.o utmutex.o           \
 233                 utobject.o utosi.o utresrc.o utstate.o uttrack.o        \
 234                 utxface.o utxferror.o utaddress.o utbuffer.o uterror.o  \
 235                 utexcep.o utownerid.o utpredef.o utstring.o utxfinit.o  \
 236                 utxfmutex.o
 237 
 238 #
 239 #       misc. modules
 240 #
 241 
 242 AGP_OBJS += agpmaster.o
 243 FBT_OBJS += fbt.o
 244 SDT_OBJS += sdt.o
 245 
 246 #
 247 #       AMD8111 NIC driver module
 248 #
 249 AMD8111S_OBJS += amd8111s_main.o amd8111s_hw.o
 250 
 251 #
 252 #       Pentium Performance Counter BackEnd module
 253 #
 254 P123_PCBE_OBJS = p123_pcbe.o
 255 
 256 #
 257 #       Pentium 4 Performance Counter BackEnd module
 258 #
 259 P4_PCBE_OBJS = p4_pcbe.o
 260 
 261 #
 262 #       AMD Opteron/Athlon64 Performance Counter BackEnd module
 263 #
 264 OPTERON_PCBE_OBJS = opteron_pcbe.o
 265 
 266 #
 267 #       Intel Core Architecture Performance Counter BackEnd module
 268 #
 269 CORE_PCBE_OBJS = core_pcbe.o
 270 
 271 #
 272 #       AMR module
 273 #
 274 AMR_OBJS = amr.o
 275 
 276 #
 277 #       IPMI module
 278 #
 279 IPMI_OBJS +=    ipmi_main.o ipmi.o ipmi_kcs.o
 280 
 281 #
 282 #       IOMMULIB module
 283 #
 284 IOMMULIB_OBJS = iommulib.o
 285 
 286 #
 287 #       Brand modules
 288 #
 289 SN1_BRAND_OBJS  =       sn1_brand.o sn1_brand_asm.o
 290 S10_BRAND_OBJS  =       s10_brand.o s10_brand_asm.o
 291 
 292 #
 293 #       special files
 294 #
 295 MODSTUB_OBJ +=          \
 296         modstubs.o
 297 
 298 BOOTDEV_OBJS +=         \
 299         bootdev.o
 300 
 301 INC_PATH        += -I$(UTSBASE)/intel
 302 
 303 
 304 CPR_INTEL_OBJS +=       cpr_intel.o
 305 
 306 #
 307 # AMD family 0xf memory controller module
 308 #
 309 include $(SRC)/common/mc/mc-amd/Makefile.mcamd
 310 MCAMD_OBJS      += \
 311         $(MCAMD_CMN_OBJS) \
 312         mcamd_drv.o \
 313         mcamd_dimmcfg.o \
 314         mcamd_subr.o \
 315         mcamd_pcicfg.o
 316 
 317 #
 318 # Intel Nehalem memory controller module
 319 #
 320 INTEL_NHM_OBJS += \
 321         nhm_init.o \
 322         mem_addr.o \
 323         intel_nhmdrv.o \
 324         nhm_pci_cfg.o \
 325         dimm_topo.o \
 326         intel_nhm.o
 327 
 328 #
 329 # Intel 5000/5100/5400/7300 chipset memory controller hub (MCH) module
 330 #
 331 INTEL_NB5000_OBJS += \
 332         intel_nb5000.o \
 333         intel_nbdrv.o \
 334         dimm_addr.o \
 335         nb_pci_cfg.o \
 336         nb5000_init.o