Print this page
8956 Implement KPTI
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/uts/i86pc/Makefile.files
+++ new/usr/src/uts/i86pc/Makefile.files
1 1 #
2 2 # CDDL HEADER START
3 3 #
4 4 # The contents of this file are subject to the terms of the
5 5 # Common Development and Distribution License (the "License").
6 6 # You may not use this file except in compliance with the License.
7 7 #
8 8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 9 # or http://www.opensolaris.org/os/licensing.
10 10 # See the License for the specific language governing permissions
11 11 # and limitations under the License.
12 12 #
13 13 # When distributing Covered Code, include this CDDL HEADER in each
14 14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 15 # If applicable, add the following below this CDDL HEADER, with the
↓ open down ↓ |
15 lines elided |
↑ open up ↑ |
16 16 # fields enclosed by brackets "[]" replaced with your own identifying
17 17 # information: Portions Copyright [yyyy] [name of copyright owner]
18 18 #
19 19 # CDDL HEADER END
20 20 #
21 21
22 22 #
23 23 # Copyright (c) 1992, 2010, Oracle and/or its affiliates. All rights reserved.
24 24 #
25 25 # Copyright (c) 2010, Intel Corporation.
26 -# Copyright 2017 Joyent, Inc.
26 +# Copyright 2018 Joyent, Inc.
27 27 #
28 28 # This Makefile defines file modules in the directory uts/i86pc
29 29 # and its children. These are the source files which are i86pc
30 30 # "implementation architecture" dependent.
31 31 #
32 32
33 33 #
34 34 # object lists
35 35 #
36 36 CORE_OBJS += \
37 37 acpi_stubs.o \
38 38 biosdisk.o \
39 39 bios_call.o \
40 40 cbe.o \
41 41 cmi.o \
42 42 cmi_hw.o \
43 43 cms.o \
44 44 comm_page.o \
45 45 confunix.o \
46 46 cpu_idle.o \
47 47 cpuid.o \
48 48 cpuid_subr.o \
49 49 cpupm.o \
50 50 cpupm_mach.o \
51 51 cpupm_amd.o \
52 52 cpupm_intel.o \
53 53 cpupm_throttle.o \
54 54 cpu_acpi.o \
55 55 dis_tables.o \
56 56 ddi_impl.o \
57 57 dtrace_subr.o \
58 58 dvma.o \
59 59 fpu_subr.o \
60 60 fakebop.o \
61 61 fastboot.o \
62 62 fb_swtch.o \
63 63 graphics.o \
64 64 hardclk.o \
65 65 hat_i86.o \
66 66 hat_kdi.o \
67 67 hment.o \
↓ open down ↓ |
31 lines elided |
↑ open up ↑ |
68 68 hold_page.o \
69 69 hrtimers.o \
70 70 htable.o \
71 71 hypercall.o \
72 72 hypersubr.o \
73 73 i86_mmu.o \
74 74 ibft.o \
75 75 instr_size.o \
76 76 intr.o \
77 77 kboot_mmu.o \
78 - kdi_subr.o \
79 78 kdi_idt.o \
80 79 kdi_idthdl.o \
81 80 kdi_asm.o \
82 81 lgrpplat.o \
83 82 mach_kdi.o \
84 83 mach_sysconfig.o \
85 84 machdep.o \
86 85 mem_config.o \
87 86 mem_config_stubs.o \
88 87 mem_config_arch.o \
89 88 memlist_new.o \
90 89 memnode.o \
91 90 microcode.o \
92 91 microfind.o \
93 92 mlsetup.o \
94 93 mp_call.o \
95 94 mp_implfuncs.o \
96 95 mp_machdep.o \
97 96 mp_pc.o \
98 97 mp_startup.o \
99 98 memscrub.o \
100 99 mpcore.o \
101 100 notes.o \
102 101 pci_bios.o \
103 102 pci_cfgacc.o \
104 103 pci_cfgacc_x86.o \
105 104 pci_cfgspace.o \
106 105 pci_mech1.o \
107 106 pci_mech1_amd.o \
108 107 pci_mech2.o \
109 108 pci_neptune.o \
110 109 pci_orion.o \
111 110 pmem.o \
112 111 ppage.o \
113 112 pwrnow.o \
114 113 speedstep.o \
115 114 ssp.o \
116 115 startup.o \
117 116 timestamp.o \
118 117 todpc_subr.o \
119 118 trap.o \
120 119 turbo.o \
121 120 vm_machdep.o \
122 121 xpv_platform.o \
123 122 x_call.o
124 123
125 124 #
126 125 # Add the SMBIOS subsystem object files directly to the list of objects
127 126 # built into unix itself; this is all common code except for smb_dev.c.
128 127 #
129 128 CORE_OBJS += $(SMBIOS_OBJS)
130 129
131 130 #
132 131 # These get compiled twice:
133 132 # - once in the dboot (direct boot) identity mapped code
134 133 # - once for use during early startup in unix
135 134 #
136 135 BOOT_DRIVER_OBJS = \
137 136 boot_console.o \
138 137 boot_keyboard.o \
139 138 boot_keyboard_table.o \
140 139 boot_vga.o \
141 140 boot_mmu.o \
142 141 dboot_multiboot2.o \
143 142 $(FONT_OBJS)
144 143
145 144 CORE_OBJS += $(BOOT_DRIVER_OBJS)
146 145
147 146 #
148 147 # locore.o is special. It must be the first file relocated so that it
149 148 # it is relocated just where its name implies.
150 149 #
↓ open down ↓ |
62 lines elided |
↑ open up ↑ |
151 150 SPECIAL_OBJS_32 += \
152 151 locore.o \
153 152 fast_trap_asm.o \
154 153 interrupt.o \
155 154 syscall_asm.o
156 155
157 156 SPECIAL_OBJS_64 += \
158 157 locore.o \
159 158 fast_trap_asm.o \
160 159 interrupt.o \
161 - syscall_asm_amd64.o
160 + syscall_asm_amd64.o \
161 + kpti_trampolines.o
162 162
163 163 SPECIAL_OBJS += $(SPECIAL_OBJS_$(CLASS))
164 164
165 165 #
166 166 # Objects that get compiled into the identity mapped PT_LOAD section of unix
167 167 # to handle the earliest part of booting.
168 168 #
169 169 DBOOT_OBJS_32 =
170 170
171 171 DBOOT_OBJS_64 += dboot_elfload.o
172 172
173 173 DBOOT_OBJS += \
174 174 dboot_asm.o \
175 175 dboot_grub.o \
176 176 dboot_printf.o \
177 177 dboot_startkern.o \
178 178 memcpy.o \
179 179 memset.o \
180 180 muldiv.o \
181 181 sha1.o \
182 182 string.o \
183 183 $(BOOT_DRIVER_OBJS) \
184 184 $(DBOOT_OBJS_$(CLASS))
185 185
186 186 #
187 187 # driver and misc modules
188 188 #
189 189 GFX_PRIVATE_OBJS += gfx_private.o gfxp_pci.o gfxp_segmap.o \
190 190 gfxp_devmap.o gfxp_vgatext.o gfxp_vm.o vgasubr.o
191 191 FIPE_OBJS += fipe_drv.o fipe_pm.o
192 192 IOAT_OBJS += ioat.o ioat_rs.o ioat_ioctl.o ioat_chan.o
193 193 ISANEXUS_OBJS += isa.o dma_engine.o i8237A.o
194 194 PCIE_MISC_OBJS += pcie_acpi.o pciehpc_acpi.o pcie_x86.o
195 195 PCI_E_NEXUS_OBJS += npe.o npe_misc.o
196 196 PCI_E_NEXUS_OBJS += pci_common.o pci_kstats.o pci_tools.o
197 197 PCINEXUS_OBJS += pci.o pci_common.o pci_kstats.o pci_tools.o
198 198 PCPLUSMP_OBJS += apic.o apic_regops.o psm_common.o apic_introp.o \
199 199 mp_platform_common.o mp_platform_misc.o \
200 200 hpet_acpi.o apic_common.o apic_timer.o
201 201 APIX_OBJS += apix.o apic_regops.o psm_common.o apix_intr.o apix_utils.o \
202 202 apix_irm.o mp_platform_common.o hpet_acpi.o apic_common.o \
203 203 apic_timer.o apix_regops.o
204 204
205 205
206 206 ACPI_DRV_OBJS += acpi_drv.o acpi_video.o
207 207 ACPINEX_OBJS += acpinex_drv.o acpinex_event.o
208 208
209 209 CPUDRV_OBJS += \
210 210 cpudrv.o \
211 211 cpudrv_mach.o
212 212
213 213 PPM_OBJS += ppm_subr.o ppm.o ppm_plat.o
214 214
215 215 ACPIPPM_OBJS += acpippm.o acpisleep.o
216 216 ACPIDEV_OBJS += acpidev_drv.o \
217 217 acpidev_scope.o acpidev_device.o \
218 218 acpidev_container.o \
219 219 acpidev_cpu.o \
220 220 acpidev_dr.o \
221 221 acpidev_memory.o \
222 222 acpidev_pci.o \
223 223 acpidev_resource.o \
224 224 acpidev_util.o
225 225
226 226 DRMACH_ACPI_OBJS += drmach_acpi.o dr_util.o drmach_err.o
227 227
228 228 DR_OBJS += dr.o dr_cpu.o dr_err.o dr_io.o dr_mem_acpi.o dr_quiesce.o dr_util.o
229 229
230 230 ROOTNEX_OBJS += rootnex.o immu.o immu_dmar.o immu_dvma.o \
231 231 immu_intrmap.o immu_qinv.o immu_regs.o
232 232
233 233 TZMON_OBJS += tzmon.o
234 234 UPPC_OBJS += uppc.o psm_common.o
235 235 XSVC_OBJS += xsvc.o
236 236 AMD_IOMMU_OBJS += amd_iommu.o amd_iommu_impl.o amd_iommu_acpi.o \
237 237 amd_iommu_cmd.o amd_iommu_log.o amd_iommu_page_tables.o
238 238
239 239 #
240 240 # Build up defines and paths.
241 241 #
242 242 ALL_DEFS += -Di86pc
243 243 INC_PATH += -I$(UTSBASE)/i86pc -I$(SRC)/common
244 244 INC_PATH += -I$(UTSBASE)/i86xpv -I$(UTSBASE)/common/xen
245 245
246 246 #
247 247 # Since the assym files are derived, the dependencies must be explicit for
248 248 # all files including this file. (This is only actually required in the
249 249 # instance when the .nse_depinfo file does not exist.) It may seem that
250 250 # the lint targets should also have a similar dependency, but they don't
251 251 # since only C headers are included when #defined(__lint) is true.
252 252 #
253 253
254 254 ASSYM_DEPS += \
255 255 copy.o \
256 256 desctbls_asm.o \
257 257 ddi_i86_asm.o \
258 258 exception.o \
259 259 fast_trap_asm.o \
↓ open down ↓ |
88 lines elided |
↑ open up ↑ |
260 260 float.o \
261 261 i86_subr.o \
262 262 interrupt.o \
263 263 lock_prim.o \
264 264 locore.o \
265 265 mpcore.o \
266 266 sseblk.o \
267 267 swtch.o \
268 268 syscall_asm.o \
269 269 syscall_asm_amd64.o \
270 + kpti_trampolines.o \
270 271 cpr_wakecode.o
271 272
272 273 CPR_IMPL_OBJS = cpr_impl.o cpr_wakecode.o
273 274
274 275 $(KDI_ASSYM_DEPS:%=$(OBJS_DIR)/%): $(DSF_DIR)/$(OBJS_DIR)/kdi_assym.h
275 -
276 -ASSYM_DEPS += kdi_asm.o
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX