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/man/man5/loader.5.man.txt
          +++ new/usr/src/man/man5/loader.5.man.txt
↓ open down ↓ 23 lines elided ↑ open up ↑
  24   24       language is roughly divided in two main components.  The smaller one is a
  25   25       set of commands designed for direct use by the casual user, called
  26   26       "builtin commands" for historical reasons.  The main drive behind these
  27   27       commands is user-friendliness.  The bigger component is an ANS Forth
  28   28       compatible Forth interpreter based on FICL, by John Sadler.
  29   29  
  30   30       During initialization, loader will probe for a console and set the
  31   31       console variable, or set it to serial console ("ttya" - "ttyd") if the
  32   32       previous boot stage used that.  If multiple consoles are selected, they
  33   33       will be listed separated by commas.  Then, devices are probed, currdev
  34      -     and loaddev are set, and COLUMNS, LINES, and ISADIR are set.  Next, FICL
  35      -     is initialized, the builtin words are added to its vocabulary.  The inner
  36      -     interpreter loader will use with FICL is then set to interpret, which is
  37      -     FICL's default.  After that, /boot/loader.rc is processed if available.
  38      -     These files are processed through the include command, which reads all of
  39      -     them into memory before processing them, making disk changes possible.
       34 +     and loaddev are set, and screen-#cols, screen-#rows, and ISADIR are set.
       35 +     Next, FICL is initialized, the builtin words are added to its vocabulary.
       36 +     The inner interpreter loader will use with FICL is then set to interpret,
       37 +     which is FICL's default.  After that, /boot/loader.rc is processed if
       38 +     available.  These files are processed through the include command, which
       39 +     reads all of them into memory before processing them, making disk changes
       40 +     possible.
  40   41  
  41   42       At this point, if an autoboot has not been tried, and if autoboot_delay
  42   43       is not set to "NO" (not case sensitive), then an autoboot will be tried.
  43   44       If the system gets past this point, prompt will be set and loader will
  44   45       engage interactive mode.  Please note that historically even when
  45   46       autoboot_delay is set to "0" user will be able to interrupt autoboot
  46   47       process by pressing some key on the console while kernel and modules are
  47   48       being loaded.  In some cases such behaviour may be undesirable, to
  48   49       prevent it set autoboot_delay to "-1", in this case loader will engage
  49   50       interactive mode only if autoboot has failed.
↓ open down ↓ 62 lines elided ↑ open up ↑
 112  113  
 113  114       lsdev [-v]
 114  115               Lists all of the devices from which it may be possible to load
 115  116               modules.  If -v is specified, more details are printed.
 116  117  
 117  118       lsmod [-v]
 118  119               Displays loaded modules.  If -v is specified, more details are
 119  120               shown.
 120  121  
 121  122       more file [file ...]
 122      -             Display the files specified, with a pause at each LINES
      123 +             Display the files specified, with a pause at each screen-#rows
 123  124               displayed.
 124  125  
 125  126       read [-t seconds] [-p prompt] [variable]
 126  127               Reads a line of input from the terminal, storing it in variable
 127  128               if specified.  A timeout can be specified with -t, though it will
 128  129               be canceled at the first key pressed.  A prompt may also be
 129  130               displayed through the -p flag.
 130  131  
 131  132       reboot  Immediately reboots the system.
 132  133  
↓ open down ↓ 76 lines elided ↑ open up ↑
 209  210       console   Defines the current console or consoles.  Multiple consoles may
 210  211                 be specified.  In that case, the first listed console will
 211  212                 become the default console for the kernel(1M).
 212  213  
 213  214       currdev   Selects the default device.  Syntax for devices is odd.
 214  215  
 215  216       interpret
 216  217                 Has the value "ok" if the Forth's current state is
 217  218                 interpreting.
 218  219  
 219      -     LINES     Define the number of lines on the screen, to be used by the
      220 +     screen-#rows
      221 +               Define the number of lines on the screen, to be used by the
 220  222                 pager.
 221  223  
 222  224       module_path
 223  225                 Sets the list of directories which will be searched for modules
 224  226                 named in a load command or implicitly required by a dependency.
 225  227                 The default value for this variable is
 226  228                 "/platform/i86pc/${ISADIR}"
 227  229  
 228  230       prompt    Value of loader's prompt.  Defaults to "${interpret}".  If
 229  231                 variable prompt is unset, the default prompt is `>'.
↓ open down ↓ 248 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX