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