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/common/sys/consdev.h
+++ new/usr/src/uts/common/sys/consdev.h
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 2009 Sun Microsystems, Inc. All rights reserved.
24 24 * Use is subject to license terms.
25 25 */
26 26
27 27 #ifndef _SYS_CONSDEV_H
28 28 #define _SYS_CONSDEV_H
29 29
30 30 #include <sys/isa_defs.h>
31 31 #include <sys/dditypes.h>
32 32
33 33 #ifdef __cplusplus
34 34 extern "C" {
35 35 #endif
36 36
37 37
38 38 #if defined(_KERNEL) || defined(_KMDB)
39 39
40 40 /*
41 41 * Paths to console devices
42 42 */
43 43 #define CONSKBD_PATH "/pseudo/conskbd@0:conskbd"
44 44 #define CONSMS_PATH "/pseudo/consms@0:mouse"
45 45 #define WC_PATH "/pseudo/wc@0:wscons"
46 46 #define IWSCN_PATH "/pseudo/iwscn@0:iwscn"
47 47 #define CVC_PATH "/pseudo/cvc@0:cvc"
48 48
49 49 /*
50 50 * Console redirection.
51 51 */
52 52 extern dev_t rconsdev; /* real (underlying) console */
53 53 extern struct vnode *rconsvp; /* pointer to vnode for that device */
54 54
55 55 /*
56 56 * Virtual Serial Console redirection.
57 57 */
58 58 extern struct vnode *vsconsvp; /* pointer to vnode for virtual console */
59 59
60 60 /*
|
↓ open down ↓ |
60 lines elided |
↑ open up ↑ |
61 61 * Mouse, keyboard, and frame buffer configuration information.
62 62 *
63 63 * XXX: Assumes a single mouse/keyboard/frame buffer triple.
64 64 */
65 65 extern dev_t mousedev; /* default mouse device */
66 66 extern dev_t kbddev; /* default (actual) keyboard device */
67 67 extern dev_t stdindev; /* default standard input device */
68 68 extern dev_t fbdev; /* default framebuffer device */
69 69 extern struct vnode *fbvp; /* pointer to vnode for that device */
70 70 extern dev_info_t *fbdip; /* pointer to dev_info for fbdev (optional) */
71 +extern dev_t diagdev; /* default diag device (optional) */
71 72
72 73 extern int consmode; /* CONS_FW or CONS_KFB */
73 74 extern int cons_tem_disable;
74 75 #define CONS_FW 0
75 76 #define CONS_KFB 1
76 77
77 78 /*
78 79 * Workstation console redirection.
79 80 *
80 81 * The workstation console device is the multiplexor that hooks keyboard and
81 82 * frame buffer together into a single tty-like device. Access to it is
82 83 * through the redirecting driver, so that frame buffer output can be
83 84 * redirected to other devices. wsconsvp names the redirecting access point,
84 85 * and rwsconsvp names the workstation console itself.
85 86 *
86 87 * XXX: Assumes a single workstation console.
87 88 */
88 89 extern struct vnode *wsconsvp; /* vnode for redirecting ws cons access */
89 90 extern struct vnode *rwsconsvp; /* vnode for underlying workstation console */
90 91
91 92 /*
92 93 * Generic console ioctls.
93 94 *
94 95 * On systems without OBP, all potential console devices should implement these.
95 96 *
96 97 * On systems with OBP, all potential console devices should implement
97 98 * the ABORTENABLE ioctls. All potential console devices that cannot share
98 99 * their hardware with OBP should implement the POLLEDIO ioctls.
99 100 */
100 101 #define _CONSIOC (('C'<<24)|('O'<<16)|('N'<<8))
101 102
102 103 /*
103 104 * Get the structure of function pointers to be used for polled I/O
104 105 *
105 106 * struct cons_polledio *polledio;
106 107 * struct strioctl str;
107 108 *
108 109 * str.ic_cmd = CONS_OPENPOLLEDIO;
109 110 * str.ic_timout = INFTIM;
110 111 * str.ic_len = sizeof (polledio);
111 112 * str.ic_dp = (char *)&polledio;
112 113 * ioctl(fd, I_STR, &str);
113 114 */
114 115 #define CONSOPENPOLLEDIO (_CONSIOC|0)
115 116
116 117 /*
117 118 * Get the current state of abort enable
118 119 * enable = ioctl(fd, CONSGETABORTENABLE, 0)
119 120 */
120 121 #define CONSGETABORTENABLE (_CONSIOC|1)
121 122
122 123 /*
123 124 * Set the current state of abort enable
124 125 * ioctl(fd, CONSSETABORTENABLE, boolean_t)
125 126 */
126 127 #define CONSSETABORTENABLE (_CONSIOC|2)
127 128
128 129 /*
129 130 * Undo anything that was done with CONSOPENPOLLEDIO
130 131 * ioctl(fd, CONSCLOSEPOLLEDIO, 0)
131 132 */
132 133 #define CONSCLOSEPOLLEDIO (_CONSIOC|3)
133 134
134 135 /*
135 136 * Set the type simulated by hardwares
136 137 * ioctl(fd, CONSSETKBDTYPE, kbdtype)
137 138 * kbdtype:
138 139 * KB_PC or KB_USB
139 140 */
140 141 #define CONSSETKBDTYPE (_CONSIOC|4)
141 142
142 143 #define CONSPOLLEDIO_V0 0
143 144 #define CONSPOLLEDIO_V1 1
144 145
145 146 typedef int kbtrans_key_t;
146 147
147 148 enum keystate { KEY_PRESSED = 0, KEY_RELEASED = 1 };
148 149
149 150
150 151 /*
151 152 * Opaque state structure for driver state. Each driver has its own
152 153 * implementation (with different names!), and casts to/from this.
153 154 * This allows better type-checking than "void *", helping to ensure
154 155 * that the structure passed in is the structure used in the callback.
155 156 */
156 157 typedef struct __cons_polledio_arg *cons_polledio_arg_t;
157 158
158 159 /*
159 160 * This is the structure that is used to handle polled I/O. It is filled
160 161 * in by a lower driver, passed up, and eventually registered with the
161 162 * debugger that needs to do polled I/O.
162 163 */
163 164 typedef struct cons_polledio {
164 165
165 166 /*
166 167 * version of this structure
167 168 */
168 169 unsigned cons_polledio_version;
169 170
170 171 /*
171 172 * Argument that is passed to the following routines.
172 173 */
173 174 cons_polledio_arg_t cons_polledio_argument;
174 175
175 176 /*
176 177 * Pointer to the routine and its argument that handles putting
177 178 * characters out to the polled device.
178 179 */
179 180 void (*cons_polledio_putchar)(cons_polledio_arg_t,
180 181 uchar_t);
181 182
182 183 /*
183 184 * Pointer to the routine and its argument that handles getting
184 185 * characters from the polled device. This routine is blocking.
185 186 */
186 187 int (*cons_polledio_getchar)(cons_polledio_arg_t);
187 188
188 189 /*
189 190 * Pointer to the routine and its argument that checks to see
190 191 * if a character is pending input. This routine is non-blocking.
191 192 */
192 193 boolean_t (*cons_polledio_ischar)(cons_polledio_arg_t);
193 194
194 195 /*
195 196 * Initialize the polled subsystem. This routine is called once
196 197 * per mode change from non-polled to polled mode.
197 198 */
198 199 void (*cons_polledio_enter)(cons_polledio_arg_t);
199 200
200 201 /*
201 202 * Restore the non-polled subsystem. This routine is called once
202 203 * per mode change from non-polled to polled mode.
203 204 */
204 205 void (*cons_polledio_exit)(cons_polledio_arg_t);
205 206
206 207
207 208 /* Routine to set the LED's in polled mode */
208 209 void (*cons_polledio_setled)(cons_polledio_arg_t, int);
209 210
210 211 /* Routine to indicate that a scande is available in polled mode */
211 212 boolean_t (*cons_polledio_keycheck)(
212 213 cons_polledio_arg_t,
213 214 kbtrans_key_t *, enum keystate *);
214 215 } cons_polledio_t;
215 216
216 217 extern cons_polledio_t *cons_polledio;
217 218
218 219 /*
219 220 * Workstation Console
220 221 */
221 222 #define _WCIOC (('W'<<24)|('C'<<16))
222 223 #define WC_OPEN_FB (_WCIOC | 0)
223 224 #define WC_CLOSE_FB (_WCIOC | 1)
224 225
225 226 #endif /* _KERNEL || _KMDB */
226 227
227 228 #ifdef __cplusplus
228 229 }
229 230 #endif
230 231
231 232 #endif /* _SYS_CONSDEV_H */
|
↓ open down ↓ |
151 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX