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>
re #13842 make clobber leaves trash
| Split |
Close |
| Expand all |
| Collapse all |
--- old/usr/src/uts/i86pc/unix/Makefile
+++ new/usr/src/uts/i86pc/unix/Makefile
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 2008 Sun Microsystems, Inc. All rights reserved.
24 24 # Use is subject to license terms.
25 25 #
26 26 # This makefile drives the production of unix (and unix.o).
27 27 #
28 28 # i86pc implementation architecture dependent
29 29 #
30 30
31 31 #
32 32 # Path to the base of the uts directory tree (usually /usr/src/uts).
33 33 #
34 34 UTSBASE = ../..
35 35
36 36 #
37 37 # Define the module and object file sets.
38 38 #
39 39 UNIX = unix
40 40 DBOOT = dboot
41 41
42 42 OBJECTS = $(SPECIAL_OBJS:%=$(OBJS_DIR)/%) \
43 43 $(CORE_OBJS:%=$(OBJS_DIR)/%) \
44 44 $(KRTLD_OBJS:%=$(OBJS_DIR)/%) \
45 45 $(MACH_NOT_YET_KMODS:%=$(OBJS_DIR)/%)
46 46
47 47 LINTS = $(SPECIAL_OBJS:%.o=$(LINTS_DIR)/%.ln) \
48 48 $(CORE_OBJS:%.o=$(LINTS_DIR)/%.ln) \
49 49 $(KRTLD_OBJS:%.o=$(LINTS_DIR)/%.ln) \
50 50 $(MACH_NOT_YET_KMODS:%.o=$(LINTS_DIR)/%.ln) \
51 51 $(LINTS_DIR)/vers.ln \
52 52 $(LINTS_DIR)/modstubs.ln
53 53
54 54 ROOTMODULE = $(ROOT_PSM_KERN_DIR)/$(UNIX)
55 55
56 56 UNIX_BIN = $(OBJS_DIR)/$(UNIX)
57 57
58 58 LIBS = $(GENLIB)
59 59
60 60 GENUNIX = genunix
61 61 GENUNIX_DIR = ../../intel/$(GENUNIX)
62 62
63 63 LIBOPTS = -L $(GENUNIX_DIR)/$(OBJS_DIR) -l $(GENUNIX)
64 64
65 65 COMMP_CTF_SRC = $(OBJS_DIR)/comm_page_ctf.c
66 66
67 67 CTFEXTRAOBJS = $(OBJS_DIR)/vers.o $(OBJS_DIR)/comm_page_ctf.o
68 68
69 69 DBOOT_OBJS_DIR = dboot/$(OBJS_DIR)
70 70 DBOOT_OBJECTS = $(DBOOT_OBJS:%=$(DBOOT_OBJS_DIR)/%)
71 71 DBOOT_BIN = $(DBOOT_OBJS_DIR)/$(DBOOT)
72 72 DBOOT_O = $(OBJS_DIR)/$(DBOOT).o
73 73 DBOOT_S = $(DBOOT_O:%.o=%.s)
74 74 DBOOT_LINTS = $(DBOOT_OBJS:%.o=$(DBOOT_OBJS_DIR)/%.ln)
75 75 DBOOT_LINT = $(i386_LINT)
76 76 DBOOT_LINTTAGS = -erroff=E_STATIC_UNUSED
77 77
78 78 #
79 79 # Include common rules.
80 80 #
81 81 include $(UTSBASE)/i86pc/Makefile.i86pc
82 82
83 83 #
84 84 # Define targets
85 85 #
86 86 ALL_TARGET = $(UNIX_BIN)
87 87 LINT_TARGET = $(LINT_LIB) $(DBOOT_LINT_LIB)
88 88 INSTALL_TARGET = $(UNIX_BIN) $(ROOTMODULE)
89 89
90 90 #
91 91 # This is UNIX_DIR. Use a short path.
92 92 #
93 93 UNIX_DIR = .
94 94
95 95 #
96 96 # Overrides
97 97 #
98 98 CLEANFILES += \
99 99 $(UNIX_O) $(MODSTUBS_O) \
100 100 $(OBJS_DIR)/vers.c \
101 101 $(OBJS_DIR)/dtracestubs.s \
102 102 $(DTRACESTUBS_O) $(DTRACESTUBS) \
103 103 $(CTFEXTRAOBJS) \
104 104 $(COMMP_CTF_SRC)
|
↓ open down ↓ |
104 lines elided |
↑ open up ↑ |
105 105
106 106 CLEANFILES += \
107 107 $(DBOOT_O) $(DBOOT_S) \
108 108 $(DBOOT_OBJECTS) \
109 109 $(OBJS_DIR)/bios_call_src.o \
110 110 $(OBJS_DIR)/bios_call_src \
111 111 $(OBJS_DIR)/bios_call.s \
112 112 $(DBOOT_BIN)
113 113
114 114 CLEANFILES += \
115 - $(DBOOT_OBJS_DIR)/$(VGATEXT_FONT).c \
116 - $(OBJS_DIR)/$(VGATEXT_FONT).c
115 + $(DBOOT_OBJS_DIR)/$(FONT).c \
116 + $(OBJS_DIR)/$(FONT).c
117 117
118 118 CLEANFILES += \
119 119 $(OBJS_DIR)/fb_swtch_src.o \
120 120 $(OBJS_DIR)/fb_swtch_src \
121 121 $(OBJS_DIR)/fb_swtch.s
122 122
123 123 CLEANFILES += \
124 124 $(ZLIB_OBJS:%.o=$(OBJS_DIR)/%.o) \
125 125 $(ZLIB_OBJS:%.o=$(OBJS_DIR)/%.ln)
126 126
127 127 CLOBBERFILES = $(CLEANFILES) $(UNIX_BIN)
128 128 CLEANLINTFILES += $(LINT_LIB) $(DBOOT_LINT_LIB) $(DBOOT_LINTS)
129 129
130 130 # instr_size needs a special header
131 131 $(OBJS_DIR)/instr_size.o := EXTRA_OPTIONS = -I$(SRC)/common/dis/i386
132 132 $(OBJS_DIR)/instr_size.ln := EXTRA_OPTIONS = -I$(SRC)/common/dis/i386
133 133
134 134 #
135 135 # When performing shadow studio builds, the pre-processed comm page
136 136 # output from gcc can end up confusing studio.
137 137 #
138 138 $(OBJS_DIR)/comm_page_ctf.o := CERRWARN += -_cc=-erroff=E_TKNS_IGNORED_AT_END_OF_DIR
139 139
140 140 CFLAGS += -DDIS_MEM
141 141
142 142 #
143 143 # For now, disable these lint checks; maintainers should endeavor
144 144 # to investigate and remove these for maximum lint coverage.
145 145 # Please do not carry these forward to new Makefiles.
146 146 #
147 147 LINTTAGS += -erroff=E_BAD_PTR_CAST_ALIGN
148 148 LINTTAGS += -erroff=E_SUSPICIOUS_COMPARISON
149 149 LINTTAGS += -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
150 150 LINTTAGS += -erroff=E_STATIC_UNUSED
151 151 LINTTAGS += -erroff=E_PTRDIFF_OVERFLOW
152 152 LINTTAGS += -erroff=E_ASSIGN_NARROW_CONV
153 153
154 154 CERRWARN += -_gcc=-Wno-parentheses
155 155 CERRWARN += -_gcc=-Wno-uninitialized
156 156 CERRWARN += -_gcc=-Wno-char-subscripts
157 157 CERRWARN += -_gcc=-Wno-unused-variable
158 158 CERRWARN += -_gcc=-Wno-unused-function
159 159 CERRWARN += -_gcc=-Wno-unused-label
160 160 CERRWARN += -_gcc=-Wno-type-limits
161 161 CERRWARN += -_gcc=-Wno-clobbered
162 162 CERRWARN += -_gcc=-Wno-empty-body
163 163 CERRWARN += -_gcc=-Wno-unused-value
164 164
165 165 # Ensure that lint sees 'struct cpu' containing a fully declared
166 166 # embedded 'struct machcpu'
167 167 #
168 168 LINTFLAGS += -D_MACHDEP -I../../i86pc
169 169
170 170 #
171 171 # Default build targets.
172 172 #
173 173 .KEEP_STATE:
174 174
175 175 def: $(DEF_DEPS)
176 176
177 177 all: $(ALL_DEPS)
178 178
179 179 clean: $(CLEAN_DEPS)
180 180
181 181 clobber: $(CLOBBER_DEPS)
182 182
183 183 lint: $(LINT_DEPS)
184 184
185 185 clean.lint: $(CLEAN_LINT_DEPS)
186 186
187 187 install: $(INSTALL_DEPS)
188 188
189 189 MAPFILE_32 = $(MAPFILE)
190 190 MAPFILE_64 = $(MAPFILE).amd64
191 191
192 192 MAPFILE_NAME = $(MAPFILE_$(CLASS))
193 193
194 194 $(UNIX_BIN): $(UNIX_O) $(MODSTUBS_O) $(MAPFILE_NAME) \
195 195 $(GENLIB) $(DTRACESTUBS) $(DBOOT_O)
196 196 $(LD) -dy -b -o $@ -e dboot_image -znointerp -M $(MAPFILE_NAME) \
197 197 $(UNIX_O) $(DBOOT_O) $(MODSTUBS_O) $(LIBOPTS) \
198 198 $(DTRACESTUBS)
199 199 $(MBH_PATCH) $(UNIX_BIN)
200 200 $(CTFMERGE_UNIQUIFY_AGAINST_GENUNIX)
201 201 $(POST_PROCESS)
202 202
203 203 $(UNIX_O): $(OBJECTS) $(CTFEXTRAOBJS)
204 204 $(LD) -r -o $@ $(OBJECTS) $(OBJS_DIR)/vers.o
205 205
206 206 $(DBOOT_BIN): $(DBOOT_OBJS_DIR) $(DBOOT_OBJECTS) dboot/Mapfile.dboot
207 207 $(LD) -dn -e _start -M dboot/Mapfile.dboot \
208 208 -o $(DBOOT_BIN) $(DBOOT_OBJECTS)
209 209
210 210 $(DBOOT_O): $(DBOOT_BIN)
211 211 @echo " .data" > $(DBOOT_S)
212 212 @echo " .globl dboot_image" >> $(DBOOT_S)
213 213 @echo "dboot_image:" >> $(DBOOT_S)
214 214 $(ELFEXTRACT) $(DBOOT_BIN) >> $(DBOOT_S)
215 215 $(COMPILE.s) -o $(DBOOT_O) $(DBOOT_S)
216 216
217 217 $(DBOOT_OBJS_DIR):
218 218 -@mkdir -p $@ 2> /dev/null
219 219
220 220 $(COMMP_CTF_SRC): $(UTSBASE)/i86pc/ml/comm_page.s
221 221 $(COMPILE.cpp) -D_GENCTF -o $@ $(UTSBASE)/i86pc/ml/comm_page.s
222 222
223 223 $(OBJS_DIR)/comm_page_ctf.o: $(COMMP_CTF_SRC)
224 224 $(COMPILE.c) -o $@ $<
225 225 $(CTFCONVERT_O)
226 226
227 227 #
228 228 # Special rules for generating assym.h for inclusion in assembly files.
229 229 #
230 230 $(DSF_DIR)/$(OBJS_DIR)/assym.h $(DSF_DIR)/$(OBJS_DIR)/kdi_assym.h: FRC
231 231 @cd $(DSF_DIR); $(MAKE) all.targ
232 232
233 233 #
234 234 # The global lint target builds the kernel lint library (llib-lunix.ln)
235 235 # which is equivalent to a lint of /unix.o. Then all kernel modules for
236 236 # this architecture are linted against the kernel lint library.
237 237 #
238 238 # Note: lint errors in the kernel lint library will be repeated for
239 239 # each module. It is important that the kernel lint library
240 240 # be clean to keep the textual output to a reasonable level.
241 241 #
242 242
243 243 $(LINT_LIB): $(LINT_LIB_DIR) $(LINTS)
244 244 @pwd
245 245 @-$(ECHO) "\n$(UNIX): (library construction):"
246 246 @$(LINT) -o$(UNIX) $(LINTFLAGS) $(LINTS)
247 247 @$(MV) $(@F) $@
248 248
249 249 $(DBOOT_LINT_LIB): $(LINT_LIB_DIR) $(DBOOT_LINTS)
250 250 @pwd
251 251 @-$(ECHO) "\n$(DBOOT): (library construction):"
252 252 @$(LINT) -o$(DBOOT) $(DBOOT_LINTFLAGS) $(DBOOT_LINTS)
253 253 @$(MV) $(@F) $@
254 254
255 255 lintlib: $(LINT_DEPS)
256 256
257 257 #
258 258 # Include common targets.
259 259 #
260 260 include $(UTSBASE)/i86pc/Makefile.targ
|
↓ open down ↓ |
134 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX