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/i86xpv/Makefile.files
          +++ new/usr/src/uts/i86xpv/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) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
  24   24  #
  25   25  
  26   26  #       This Makefile defines file modules in the directory uts/i86xpv
  27   27  #       and its children. These are the source files which are i86xpv
  28   28  #       "implementation architecture" dependent.
  29   29  #
  30   30  
  31   31  #
  32   32  #       object lists
  33   33  #
  34   34  CORE_OBJS +=                    \
  35   35          acpi_stubs.o            \
  36   36          balloon.o               \
  37   37          biosdisk.o              \
  38   38          cbe.o                   \
  39   39          cmi.o                   \
  40   40          cmi_hw.o                \
  41   41          cms.o                   \
  42   42          confunix.o              \
  43   43          cpuid.o                 \
  44   44          cpuid_subr.o            \
  45   45          cpupm.o                 \
  46   46          cpupm_mach.o            \
  47   47          dis_tables.o            \
  48   48          ddi_impl.o              \
  49   49          dtrace_subr.o           \
  50   50          dvma.o                  \
  51   51          fakebop.o               \
  52   52          fpu_subr.o              \
  53   53          fastboot.o              \
  54   54          fb_swtch.o              \
  55   55          graphics.o              \
  56   56          hardclk.o               \
  57   57          hat_i86.o               \
  58   58          hat_kdi.o               \
  59   59          hment.o                 \
  60   60          hold_page.o             \
  61   61          hrtimers.o              \
  62   62          htable.o                \
  63   63          i86_mmu.o               \
  64   64          ibft.o                  \
  65   65          instr_size.o            \
  66   66          intr.o                  \
  67   67          kboot_mmu.o             \
  68   68          kdi_subr.o              \
  69   69          kdi_idt.o               \
  70   70          kdi_idthdl.o            \
  71   71          kdi_asm.o               \
  72   72          lgrpplat.o              \
  73   73          mach_kdi.o              \
  74   74          mach_sysconfig.o        \
  75   75          machdep.o               \
  76   76          mem_config_stubs.o      \
  77   77          memnode.o               \
  78   78          microcode.o             \
  79   79          mlsetup.o               \
  80   80          mp_call.o               \
  81   81          mp_implfuncs.o          \
  82   82          mp_machdep.o            \
  83   83          mp_startup.o            \
  84   84          memscrub.o              \
  85   85          notes.o                 \
  86   86          pci_bios.o              \
  87   87          pci_cfgacc.o            \
  88   88          pci_cfgacc_x86.o        \
  89   89          pci_cfgspace.o          \
  90   90          pci_mech1.o             \
  91   91          pci_mech2.o             \
  92   92          pci_neptune.o           \
  93   93          pci_orion.o             \
  94   94          pmem.o                  \
  95   95          ppage.o                 \
  96   96          startup.o               \
  97   97          ssp.o                   \
  98   98          xpv_timestamp.o         \
  99   99          todpc_subr.o            \
 100  100          trap.o                  \
 101  101          vm_machdep.o            \
 102  102          x_call.o
 103  103  
 104  104  #
 105  105  #       Add the SMBIOS subsystem object files directly to the list of objects
 106  106  #       built into unix itself; this is all common code except for smb_dev.c.
 107  107  #
 108  108  CORE_OBJS += $(SMBIOS_OBJS)
 109  109  
 110  110  #
  
    | 
      ↓ open down ↓ | 
    110 lines elided | 
    
      ↑ open up ↑ | 
  
 111  111  # These get compiled twice:
 112  112  # - once in the dboot (direct boot) identity mapped code 
 113  113  # - once for use during early startup in unix
 114  114  #
 115  115  BOOT_DRIVER_OBJS =              \
 116  116          boot_console.o          \
 117  117          boot_keyboard.o         \
 118  118          boot_keyboard_table.o   \
 119  119          boot_mmu.o              \
 120  120          boot_vga.o              \
      121 +        boot_fb.o               \
 121  122          boot_xconsole.o         \
 122  123          dboot_multiboot2.o      \
 123  124          $(FONT_OBJS)
 124  125  
 125  126  CORE_OBJS += $(BOOT_DRIVER_OBJS)
 126  127  
 127  128  #
 128  129  # Extra XEN files separated out for now.
 129  130  #
 130  131  CORE_OBJS +=                    \
 131  132          cpr_driver.o            \
 132  133          evtchn.o                \
 133  134          gnttab.o                \
 134  135          hypercall.o             \
 135  136          hyperevent.o            \
 136  137          hypersubr.o             \
 137  138          mp_xen.o                \
 138  139          panic_asm.o             \
 139  140          xenguest.o              \
 140  141          xenbus_client.o         \
 141  142          xenbus_comms.o          \
 142  143          xenbus_probe.o          \
 143  144          xenbus_xs.o             \
 144  145          xen_machdep.o           \
 145  146          xen_mmu.o               \
 146  147          xpv_panic.o             \
 147  148          xvdi.o
 148  149  
 149  150  #
 150  151  #       locore.o is special. It must be the first file relocated so that it
 151  152  #       it is relocated just where its name implies.
 152  153  #
 153  154  SPECIAL_OBJS_32 +=              \
 154  155          locore.o                \
 155  156          fast_trap_asm.o         \
 156  157          interrupt.o             \
 157  158          syscall_asm.o
 158  159  
 159  160  SPECIAL_OBJS_64 +=              \
 160  161          locore.o                \
 161  162          fast_trap_asm.o         \
 162  163          interrupt.o             \
 163  164          syscall_asm_amd64.o
 164  165  
 165  166  SPECIAL_OBJS += $(SPECIAL_OBJS_$(CLASS))
 166  167  
 167  168  #
 168  169  # object files used to boot into full kernel
 169  170  #
 170  171  DBOOT_OBJS_32 = muldiv.o
 171  172  
 172  173  DBOOT_OBJS_64 =
 173  174  
 174  175  DBOOT_OBJS +=                   \
 175  176          dboot_asm.o             \
 176  177          dboot_printf.o          \
 177  178          dboot_startkern.o       \
 178  179          dboot_xen.o             \
 179  180          hypercall.o             \
 180  181          hypersubr.o             \
 181  182          memcpy.o                \
 182  183          memset.o                \
 183  184          string.o                \
  
    | 
      ↓ open down ↓ | 
    53 lines elided | 
    
      ↑ open up ↑ | 
  
 184  185          $(BOOT_DRIVER_OBJS)     \
 185  186          $(DBOOT_OBJS_$(CLASS))
 186  187  
 187  188  #
 188  189  #                       driver & misc modules
 189  190  #
 190  191  BALLOON_OBJS += balloon_drv.o
 191  192  DOMCAPS_OBJS += domcaps.o
 192  193  EVTCHN_OBJS += evtchn_dev.o
 193  194  GFX_PRIVATE_OBJS += gfx_private.o gfxp_pci.o gfxp_segmap.o \
 194      -                    gfxp_devmap.o gfxp_vgatext.o gfxp_vm.o vgasubr.o
      195 +                    gfxp_devmap.o gfxp_vgatext.o gfxp_vm.o vgasubr.o \
      196 +                    gfxp_fb.o gfxp_bitmap.o
 195  197  IOAT_OBJS += ioat.o ioat_rs.o ioat_ioctl.o ioat_chan.o
 196  198  ISANEXUS_OBJS += isa.o dma_engine.o i8237A.o
 197  199  PCI_E_NEXUS_OBJS += npe.o npe_misc.o
 198  200  PCI_E_NEXUS_OBJS += pci_common.o pci_kstats.o pci_tools.o
 199  201  PCINEXUS_OBJS += pci.o pci_common.o pci_kstats.o pci_tools.o
 200  202  PRIVCMD_OBJS += seg_mf.o privcmd.o privcmd_hcall.o
 201  203  ROOTNEX_OBJS += rootnex.o
 202  204  XPVTOD_OBJS += xpvtod.o
 203  205  XPV_AUTOCONFIG_OBJS += xpv_autoconfig.o
 204  206  XPV_PSM_OBJS += xpv_psm.o mp_platform_common.o mp_platform_xpv.o \
 205  207                  apic_regops.o psm_common.o xpv_intr.o
 206  208  XPV_UPPC_OBJS += xpv_uppc.o psm_common.o
 207  209  XENBUS_OBJS += xenbus_dev.o
 208  210  XENCONS_OBJS += xencons.o
 209  211  XPVD_OBJS += xpvd.o
 210  212  XPVTAP_OBJS += xpvtap.o blk_common.o seg_mf.o
 211  213  XNB_OBJS += xnb.o
 212  214  XNBE_OBJS += xnbe.o
 213  215  XNBO_OBJS += xnbo.o
 214  216  XNBU_OBJS += xnbu.o
 215  217  XNF_OBJS += xnf.o
 216  218  XSVC_OBJS += xsvc.o
 217  219  XDF_OBJS += xdf.o
 218  220  XDB_OBJS += xdb.o
 219  221  XDT_OBJS += xdt.o
 220  222  
 221  223  #
 222  224  #       Build up defines and paths.
 223  225  #
 224  226  INC_PATH        += -I$(UTSBASE)/i86xpv -I$(UTSBASE)/i86pc -I$(SRC)/common \
 225  227          -I$(UTSBASE)/common/xen
 226  228  
 227  229  #
 228  230  # Since the assym files are derived, the dependencies must be explicit for
 229  231  # all files including this file. (This is only actually required in the
 230  232  # instance when the .nse_depinfo file does not exist.) It may seem that
 231  233  # the lint targets should also have a similar dependency, but they don't
 232  234  # since only C headers are included when #defined(__lint) is true.
 233  235  #
 234  236  
 235  237  ASSYM_DEPS      +=              \
 236  238          copy.o                  \
 237  239          desctbls_asm.o          \
 238  240          ddi_i86_asm.o           \
 239  241          exception.o             \
 240  242          fast_trap_asm.o         \
 241  243          float.o                 \
 242  244          hyperevent.o            \
 243  245          i86_subr.o              \
 244  246          kdi_asm.o               \
 245  247          interrupt.o             \
 246  248          lock_prim.o             \
 247  249          locore.o                \
 248  250          panic_asm.o             \
 249  251          sseblk.o                \
 250  252          swtch.o                 \
 251  253          syscall_asm.o           \
 252  254          syscall_asm_amd64.o
 253  255  
 254  256  $(KDI_ASSYM_DEPS:%=$(OBJS_DIR)/%):      $(DSF_DIR)/$(OBJS_DIR)/kdi_assym.h
 255  257  
 256  258  ASSYM_DEPS += kdi_asm.o
  
    | 
      ↓ open down ↓ | 
    52 lines elided | 
    
      ↑ open up ↑ | 
  
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX