Print this page
NEX-16819 loader UEFI support
Includes work by Toomas Soome <tsoome@me.com>
Upstream commits:
loader: pxe receive cleanup
9475 libefi: Do not return only if ReceiveFilter
installboot: should support efi system partition
8931 boot1.efi: scan all display modes rather than
loader: spinconsole updates
loader: gfx experiment to try GOP Blt() function.
sha1 build test
loader: add sha1 hash calculation
common/sha1: update for loader build
loader: biosdisk rework
uts: 32-bit kernel FB needs mapping in low memory
uts: add diag-device
uts: boot console mirror with diag-device
uts: enable very early console on ttya
kmdb: add diag-device as input/output device
uts: test VGA memory exclusion from mapping
uts: clear boot mapping and protect boot pages test
uts: add dboot map debug printf
uts: need to release FB pages in release_bootstrap()
uts: add screenmap ioctl
uts: update sys/queue.h
loader: add illumos uts/common to include path
loader: tem/gfx font cleanup
loader: vbe checks
uts: gfx_private set KD_TEXT when KD_RESETTEXT is
uts: gfx 8-bit update
loader: gfx 8-bit fix
loader: always set media size from partition.
uts: MB2 support for 32-bit kernel
loader: x86 should have tem 80x25
uts: x86 should have tem 80x25
uts: font update
loader: font update
uts: tem attributes
loader: tem.c comment added
uts: use font module
loader: add font module
loader: build rules for new font setup
uts: gfx_private update for new font structure
uts: early boot update for new font structure
uts: font update
uts: font build rules update for new fonts
uts: tem update to new font structure
loader: module.c needs to include tem_impl.h
uts: gfx_private 8x16 font rework
uts: make font_lookup public
loader: font rework
uts: font rework
9259 libefi: efi_alloc_and_read should check for PMBR
uts: tem utf-8 support
loader: implement tem utf-8 support
loader: tem should be able to display UTF-8
7784 uts: console input should support utf-8
7796 uts: ldterm default to utf-8
uts: do not reset serial console
uts: set up colors even if tem is not console
uts: add type for early boot properties
uts: gfx_private experiment with drm and vga
uts: gfx_private should use setmode drm callback.
uts: identify FB types and set up gfx_private based
loader: replace gop and vesa with framebuffer
uts: boot needs simple tem to support mdb
uts: boot_keyboard should emit esc sequences for
uts: gfx_private FB showuld be written by line
kmdb: set terminal window size
uts: gfx_private needs to keep track of early boot FB
pnglite: move pnglite to usr/src/common
loader: gfx_fb
ficl-sys: add gfx primitives
loader: add illumos.png logo
ficl: add fb-putimage
loader: add png support
loader: add alpha blending for gfx_fb
loader: use term-drawrect for menu frame
ficl: add simple gfx words
uts: provide fb_info via fbgattr dev_specific array.
uts: gfx_private add alpha blending
uts: update sys/ascii.h
uts: tem OSC support (incomplete)
uts: implement env module support and use data from
uts: tem get colors from early boot data
loader: use crc32 from libstand (libz)
loader: optimize for size
loader: pass tem info to the environment
loader: import tem for loader console
loader: UEFI loader needs to set ISADIR based on
loader: need UEFI32 support
8918 loader.efi: add vesa edid support
uts: tem_safe_pix_clear_prom_output() should only
uts: tem_safe_pix_clear_entire_screen() should use
uts: tem_safe_check_first_time() should query cursor
uts: tem implement cls callback & visual_io v4
uts: gfx_vgatext use block cursor for vgatext
uts: gfx_private implement cls callback & visual_io
uts: gfx_private bitmap framebuffer implementation
uts: early start frame buffer console support
uts: font functions should check the input char
uts: font rendering should support 16/24/32bit depths
uts: use smallest font as fallback default.
uts: update terminal dimensions based on selected
7834 uts: vgatext should use gfx_private
uts: add spacing property to 8859-1.bdf
terminfo: add underline for sun-color
terminfo: sun-color has 16 colors
uts: add font load callback type
loader: do not repeat int13 calls with error 0x20 and
8905 loader: add skein/edonr support
8904 common/crypto: make skein and edonr loader
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Revert "NEX-16819 loader UEFI support"
This reverts commit ec06b9fc617b99234e538bf2e7e4d02a24993e0c.
Reverting due to failures in the zfs-tests and the sharefs-tests
NEX-16819 loader UEFI support
Includes work by Toomas Soome <tsoome@me.com>
Upstream commits:
loader: pxe receive cleanup
9475 libefi: Do not return only if ReceiveFilter
installboot: should support efi system partition
8931 boot1.efi: scan all display modes rather than
loader: spinconsole updates
loader: gfx experiment to try GOP Blt() function.
sha1 build test
loader: add sha1 hash calculation
common/sha1: update for loader build
loader: biosdisk rework
uts: 32-bit kernel FB needs mapping in low memory
uts: add diag-device
uts: boot console mirror with diag-device
uts: enable very early console on ttya
kmdb: add diag-device as input/output device
uts: test VGA memory exclusion from mapping
uts: clear boot mapping and protect boot pages test
uts: add dboot map debug printf
uts: need to release FB pages in release_bootstrap()
uts: add screenmap ioctl
uts: update sys/queue.h
loader: add illumos uts/common to include path
loader: tem/gfx font cleanup
loader: vbe checks
uts: gfx_private set KD_TEXT when KD_RESETTEXT is
uts: gfx 8-bit update
loader: gfx 8-bit fix
loader: always set media size from partition.
uts: MB2 support for 32-bit kernel
loader: x86 should have tem 80x25
uts: x86 should have tem 80x25
uts: font update
loader: font update
uts: tem attributes
loader: tem.c comment added
uts: use font module
loader: add font module
loader: build rules for new font setup
uts: gfx_private update for new font structure
uts: early boot update for new font structure
uts: font update
uts: font build rules update for new fonts
uts: tem update to new font structure
loader: module.c needs to include tem_impl.h
uts: gfx_private 8x16 font rework
uts: make font_lookup public
loader: font rework
uts: font rework
libefi: efi_alloc_and_read should check for PMBR
uts: tem utf-8 support
loader: implement tem utf-8 support
loader: tem should be able to display UTF-8
7784 uts: console input should support utf-8
7796 uts: ldterm default to utf-8
uts: do not reset serial console
uts: set up colors even if tem is not console
uts: add type for early boot properties
uts: gfx_private experiment with drm and vga
uts: gfx_private should use setmode drm callback.
uts: identify FB types and set up gfx_private based
loader: replace gop and vesa with framebuffer
uts: boot needs simple tem to support mdb
uts: boot_keyboard should emit esc sequences for
uts: gfx_private FB showuld be written by line
kmdb: set terminal window size
uts: gfx_private needs to keep track of early boot FB
pnglite: move pnglite to usr/src/common
loader: gfx_fb
ficl-sys: add gfx primitives
loader: add illumos.png logo
ficl: add fb-putimage
loader: add png support
loader: add alpha blending for gfx_fb
loader: use term-drawrect for menu frame
ficl: add simple gfx words
uts: provide fb_info via fbgattr dev_specific array.
uts: gfx_private add alpha blending
uts: update sys/ascii.h
uts: tem OSC support (incomplete)
uts: implement env module support and use data from
uts: tem get colors from early boot data
loader: use crc32 from libstand (libz)
loader: optimize for size
loader: pass tem info to the environment
loader: import tem for loader console
loader: UEFI loader needs to set ISADIR based on
loader: need UEFI32 support
8918 loader.efi: add vesa edid support
uts: tem_safe_pix_clear_prom_output() should only
uts: tem_safe_pix_clear_entire_screen() should use
uts: tem_safe_check_first_time() should query cursor
uts: tem implement cls callback & visual_io v4
uts: gfx_vgatext use block cursor for vgatext
uts: gfx_private implement cls callback & visual_io
uts: gfx_private bitmap framebuffer implementation
uts: early start frame buffer console support
uts: font functions should check the input char
uts: font rendering should support 16/24/32bit depths
uts: use smallest font as fallback default.
uts: update terminal dimensions based on selected
7834 uts: vgatext should use gfx_private
uts: add spacing property to 8859-1.bdf
terminfo: add underline for sun-color
terminfo: sun-color has 16 colors
uts: add font load callback type
loader: do not repeat int13 calls with error 0x20 and
8905 loader: add skein/edonr support
8904 common/crypto: make skein and edonr loader
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.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
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 26 # Copyright 2017 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 \
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 78 kdi_subr.o \
79 79 kdi_idt.o \
80 80 kdi_idthdl.o \
81 81 kdi_asm.o \
82 82 lgrpplat.o \
83 83 mach_kdi.o \
84 84 mach_sysconfig.o \
85 85 machdep.o \
86 86 mem_config.o \
87 87 mem_config_stubs.o \
88 88 mem_config_arch.o \
89 89 memlist_new.o \
90 90 memnode.o \
91 91 microcode.o \
92 92 microfind.o \
93 93 mlsetup.o \
94 94 mp_call.o \
95 95 mp_implfuncs.o \
96 96 mp_machdep.o \
97 97 mp_pc.o \
98 98 mp_startup.o \
99 99 memscrub.o \
100 100 mpcore.o \
101 101 notes.o \
102 102 pci_bios.o \
103 103 pci_cfgacc.o \
104 104 pci_cfgacc_x86.o \
105 105 pci_cfgspace.o \
106 106 pci_mech1.o \
107 107 pci_mech1_amd.o \
108 108 pci_mech2.o \
109 109 pci_neptune.o \
110 110 pci_orion.o \
111 111 pmem.o \
112 112 ppage.o \
113 113 pwrnow.o \
114 114 speedstep.o \
115 115 ssp.o \
116 116 startup.o \
117 117 timestamp.o \
118 118 todpc_subr.o \
119 119 trap.o \
120 120 turbo.o \
121 121 vm_machdep.o \
122 122 xpv_platform.o \
123 123 x_call.o
124 124
125 125 #
126 126 # Add the SMBIOS subsystem object files directly to the list of objects
127 127 # built into unix itself; this is all common code except for smb_dev.c.
128 128 #
129 129 CORE_OBJS += $(SMBIOS_OBJS)
130 130
|
↓ open down ↓ |
130 lines elided |
↑ open up ↑ |
131 131 #
132 132 # These get compiled twice:
133 133 # - once in the dboot (direct boot) identity mapped code
134 134 # - once for use during early startup in unix
135 135 #
136 136 BOOT_DRIVER_OBJS = \
137 137 boot_console.o \
138 138 boot_keyboard.o \
139 139 boot_keyboard_table.o \
140 140 boot_vga.o \
141 + boot_fb.o \
141 142 boot_mmu.o \
142 143 dboot_multiboot2.o \
143 144 $(FONT_OBJS)
144 145
145 146 CORE_OBJS += $(BOOT_DRIVER_OBJS)
146 147
147 148 #
148 149 # locore.o is special. It must be the first file relocated so that it
149 150 # it is relocated just where its name implies.
150 151 #
151 152 SPECIAL_OBJS_32 += \
152 153 locore.o \
153 154 fast_trap_asm.o \
154 155 interrupt.o \
155 156 syscall_asm.o
156 157
157 158 SPECIAL_OBJS_64 += \
158 159 locore.o \
159 160 fast_trap_asm.o \
160 161 interrupt.o \
161 162 syscall_asm_amd64.o
162 163
163 164 SPECIAL_OBJS += $(SPECIAL_OBJS_$(CLASS))
164 165
165 166 #
166 167 # Objects that get compiled into the identity mapped PT_LOAD section of unix
167 168 # to handle the earliest part of booting.
168 169 #
169 170 DBOOT_OBJS_32 =
170 171
171 172 DBOOT_OBJS_64 += dboot_elfload.o
172 173
173 174 DBOOT_OBJS += \
174 175 dboot_asm.o \
175 176 dboot_grub.o \
176 177 dboot_printf.o \
177 178 dboot_startkern.o \
178 179 memcpy.o \
179 180 memset.o \
|
↓ open down ↓ |
29 lines elided |
↑ open up ↑ |
180 181 muldiv.o \
181 182 sha1.o \
182 183 string.o \
183 184 $(BOOT_DRIVER_OBJS) \
184 185 $(DBOOT_OBJS_$(CLASS))
185 186
186 187 #
187 188 # driver and misc modules
188 189 #
189 190 GFX_PRIVATE_OBJS += gfx_private.o gfxp_pci.o gfxp_segmap.o \
190 - gfxp_devmap.o gfxp_vgatext.o gfxp_vm.o vgasubr.o
191 + gfxp_devmap.o gfxp_vgatext.o gfxp_vm.o vgasubr.o \
192 + gfxp_fb.o gfxp_bitmap.o
191 193 FIPE_OBJS += fipe_drv.o fipe_pm.o
192 194 IOAT_OBJS += ioat.o ioat_rs.o ioat_ioctl.o ioat_chan.o
193 195 ISANEXUS_OBJS += isa.o dma_engine.o i8237A.o
194 196 PCIE_MISC_OBJS += pcie_acpi.o pciehpc_acpi.o pcie_x86.o
195 197 PCI_E_NEXUS_OBJS += npe.o npe_misc.o
196 198 PCI_E_NEXUS_OBJS += pci_common.o pci_kstats.o pci_tools.o
197 199 PCINEXUS_OBJS += pci.o pci_common.o pci_kstats.o pci_tools.o
198 200 PCPLUSMP_OBJS += apic.o apic_regops.o psm_common.o apic_introp.o \
199 201 mp_platform_common.o mp_platform_misc.o \
200 202 hpet_acpi.o apic_common.o apic_timer.o
201 203 APIX_OBJS += apix.o apic_regops.o psm_common.o apix_intr.o apix_utils.o \
202 204 apix_irm.o mp_platform_common.o hpet_acpi.o apic_common.o \
203 205 apic_timer.o apix_regops.o
204 206
205 207
206 208 ACPI_DRV_OBJS += acpi_drv.o acpi_video.o
207 209 ACPINEX_OBJS += acpinex_drv.o acpinex_event.o
208 210
209 211 CPUDRV_OBJS += \
210 212 cpudrv.o \
211 213 cpudrv_mach.o
212 214
213 215 PPM_OBJS += ppm_subr.o ppm.o ppm_plat.o
214 216
215 217 ACPIPPM_OBJS += acpippm.o acpisleep.o
216 218 ACPIDEV_OBJS += acpidev_drv.o \
217 219 acpidev_scope.o acpidev_device.o \
218 220 acpidev_container.o \
219 221 acpidev_cpu.o \
220 222 acpidev_dr.o \
221 223 acpidev_memory.o \
222 224 acpidev_pci.o \
223 225 acpidev_resource.o \
224 226 acpidev_util.o
225 227
226 228 DRMACH_ACPI_OBJS += drmach_acpi.o dr_util.o drmach_err.o
227 229
228 230 DR_OBJS += dr.o dr_cpu.o dr_err.o dr_io.o dr_mem_acpi.o dr_quiesce.o dr_util.o
229 231
230 232 ROOTNEX_OBJS += rootnex.o immu.o immu_dmar.o immu_dvma.o \
231 233 immu_intrmap.o immu_qinv.o immu_regs.o
232 234
233 235 TZMON_OBJS += tzmon.o
234 236 UPPC_OBJS += uppc.o psm_common.o
235 237 XSVC_OBJS += xsvc.o
236 238 AMD_IOMMU_OBJS += amd_iommu.o amd_iommu_impl.o amd_iommu_acpi.o \
237 239 amd_iommu_cmd.o amd_iommu_log.o amd_iommu_page_tables.o
238 240
239 241 #
240 242 # Build up defines and paths.
241 243 #
242 244 ALL_DEFS += -Di86pc
243 245 INC_PATH += -I$(UTSBASE)/i86pc -I$(SRC)/common
244 246 INC_PATH += -I$(UTSBASE)/i86xpv -I$(UTSBASE)/common/xen
245 247
246 248 #
247 249 # Since the assym files are derived, the dependencies must be explicit for
248 250 # all files including this file. (This is only actually required in the
249 251 # instance when the .nse_depinfo file does not exist.) It may seem that
250 252 # the lint targets should also have a similar dependency, but they don't
251 253 # since only C headers are included when #defined(__lint) is true.
252 254 #
253 255
254 256 ASSYM_DEPS += \
255 257 copy.o \
256 258 desctbls_asm.o \
257 259 ddi_i86_asm.o \
258 260 exception.o \
259 261 fast_trap_asm.o \
260 262 float.o \
261 263 i86_subr.o \
262 264 interrupt.o \
263 265 lock_prim.o \
264 266 locore.o \
265 267 mpcore.o \
266 268 sseblk.o \
267 269 swtch.o \
268 270 syscall_asm.o \
269 271 syscall_asm_amd64.o \
270 272 cpr_wakecode.o
271 273
272 274 CPR_IMPL_OBJS = cpr_impl.o cpr_wakecode.o
273 275
274 276 $(KDI_ASSYM_DEPS:%=$(OBJS_DIR)/%): $(DSF_DIR)/$(OBJS_DIR)/kdi_assym.h
275 277
276 278 ASSYM_DEPS += kdi_asm.o
|
↓ open down ↓ |
76 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX