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/i86pc/Makefile.files
          +++ new/usr/src/uts/i86pc/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) 1992, 2010, Oracle and/or its affiliates. All rights reserved.
  24   24  #
  25   25  # Copyright (c) 2010, Intel Corporation.
  26   26  # Copyright 2017 Joyent, Inc.
  27   27  #
  28   28  #       This Makefile defines file modules in the directory uts/i86pc
  29   29  #       and its children. These are the source files which are i86pc
  30   30  #       "implementation architecture" dependent.
  31   31  #
  32   32  
  33   33  #
  34   34  #       object lists
  35   35  #
  36   36  CORE_OBJS +=                    \
  37   37          acpi_stubs.o            \
  38   38          biosdisk.o              \
  39   39          bios_call.o             \
  40   40          cbe.o                   \
  41   41          cmi.o                   \
  42   42          cmi_hw.o                \
  43   43          cms.o                   \
  44   44          comm_page.o             \
  45   45          confunix.o              \
  46   46          cpu_idle.o              \
  47   47          cpuid.o                 \
  48   48          cpuid_subr.o            \
  49   49          cpupm.o                 \
  50   50          cpupm_mach.o            \
  51   51          cpupm_amd.o             \
  52   52          cpupm_intel.o           \
  53   53          cpupm_throttle.o        \
  54   54          cpu_acpi.o              \
  55   55          dis_tables.o            \
  56   56          ddi_impl.o              \
  57   57          dtrace_subr.o           \
  58   58          dvma.o                  \
  59   59          fpu_subr.o              \
  60   60          fakebop.o               \
  61   61          fastboot.o              \
  62   62          fb_swtch.o              \
  63   63          graphics.o              \
  64   64          hardclk.o               \
  65   65          hat_i86.o               \
  66   66          hat_kdi.o               \
  67   67          hment.o                 \
  68   68          hold_page.o             \
  69   69          hrtimers.o              \
  70   70          htable.o                \
  71   71          hypercall.o             \
  72   72          hypersubr.o             \
  73   73          i86_mmu.o               \
  74   74          ibft.o                  \
  75   75          instr_size.o            \
  76   76          intr.o                  \
  77   77          kboot_mmu.o             \
  78   78          kdi_subr.o              \
  79   79          kdi_idt.o               \
  80   80          kdi_idthdl.o            \
  81   81          kdi_asm.o               \
  82   82          lgrpplat.o              \
  83   83          mach_kdi.o              \
  84   84          mach_sysconfig.o        \
  85   85          machdep.o               \
  86   86          mem_config.o            \
  87   87          mem_config_stubs.o      \
  88   88          mem_config_arch.o       \
  89   89          memlist_new.o           \
  90   90          memnode.o               \
  91   91          microcode.o             \
  92   92          microfind.o             \
  93   93          mlsetup.o               \
  94   94          mp_call.o               \
  95   95          mp_implfuncs.o          \
  96   96          mp_machdep.o            \
  97   97          mp_pc.o                 \
  98   98          mp_startup.o            \
  99   99          memscrub.o              \
 100  100          mpcore.o                \
 101  101          notes.o                 \
 102  102          pci_bios.o              \
 103  103          pci_cfgacc.o            \
 104  104          pci_cfgacc_x86.o        \
 105  105          pci_cfgspace.o          \
 106  106          pci_mech1.o             \
 107  107          pci_mech1_amd.o         \
 108  108          pci_mech2.o             \
 109  109          pci_neptune.o           \
 110  110          pci_orion.o             \
 111  111          pmem.o                  \
 112  112          ppage.o                 \
 113  113          pwrnow.o                \
 114  114          speedstep.o             \
 115  115          ssp.o                   \
 116  116          startup.o               \
 117  117          timestamp.o             \
 118  118          todpc_subr.o            \
 119  119          trap.o                  \
 120  120          turbo.o                 \
 121  121          vm_machdep.o            \
 122  122          xpv_platform.o          \
 123  123          x_call.o
 124  124  
 125  125  #
 126  126  #       Add the SMBIOS subsystem object files directly to the list of objects
 127  127  #       built into unix itself; this is all common code except for smb_dev.c.
 128  128  #
 129  129  CORE_OBJS += $(SMBIOS_OBJS)
 130  130  
  
    | 
      ↓ open down ↓ | 
    130 lines elided | 
    
      ↑ open up ↑ | 
  
 131  131  #
 132  132  # These get compiled twice:
 133  133  # - once in the dboot (direct boot) identity mapped code
 134  134  # - once for use during early startup in unix
 135  135  #
 136  136  BOOT_DRIVER_OBJS =              \
 137  137          boot_console.o          \
 138  138          boot_keyboard.o         \
 139  139          boot_keyboard_table.o   \
 140  140          boot_vga.o              \
      141 +        boot_fb.o               \
 141  142          boot_mmu.o              \
 142  143          dboot_multiboot2.o      \
 143  144          $(FONT_OBJS)
 144  145  
 145  146  CORE_OBJS += $(BOOT_DRIVER_OBJS)
 146  147  
 147  148  #
 148  149  #       locore.o is special. It must be the first file relocated so that it
 149  150  #       it is relocated just where its name implies.
 150  151  #
 151  152  SPECIAL_OBJS_32 +=              \
 152  153          locore.o                \
 153  154          fast_trap_asm.o         \
 154  155          interrupt.o             \
 155  156          syscall_asm.o
 156  157  
 157  158  SPECIAL_OBJS_64 +=              \
 158  159          locore.o                \
 159  160          fast_trap_asm.o         \
 160  161          interrupt.o             \
 161  162          syscall_asm_amd64.o
 162  163  
 163  164  SPECIAL_OBJS += $(SPECIAL_OBJS_$(CLASS))
 164  165  
 165  166  #
 166  167  # Objects that get compiled into the identity mapped PT_LOAD section of unix
 167  168  # to handle the earliest part of booting.
 168  169  #
 169  170  DBOOT_OBJS_32 =
 170  171  
 171  172  DBOOT_OBJS_64 += dboot_elfload.o
 172  173  
 173  174  DBOOT_OBJS +=                   \
 174  175          dboot_asm.o             \
 175  176          dboot_grub.o            \
 176  177          dboot_printf.o          \
 177  178          dboot_startkern.o       \
 178  179          memcpy.o                \
 179  180          memset.o                \
  
    | 
      ↓ open down ↓ | 
    29 lines elided | 
    
      ↑ open up ↑ | 
  
 180  181          muldiv.o                \
 181  182          sha1.o                  \
 182  183          string.o                \
 183  184          $(BOOT_DRIVER_OBJS)     \
 184  185          $(DBOOT_OBJS_$(CLASS))
 185  186  
 186  187  #
 187  188  #                       driver and misc modules
 188  189  #
 189  190  GFX_PRIVATE_OBJS        += gfx_private.o gfxp_pci.o gfxp_segmap.o \
 190      -                           gfxp_devmap.o gfxp_vgatext.o gfxp_vm.o vgasubr.o
      191 +                           gfxp_devmap.o gfxp_vgatext.o gfxp_vm.o vgasubr.o \
      192 +                           gfxp_fb.o gfxp_bitmap.o
 191  193  FIPE_OBJS += fipe_drv.o fipe_pm.o
 192  194  IOAT_OBJS += ioat.o ioat_rs.o ioat_ioctl.o ioat_chan.o
 193  195  ISANEXUS_OBJS += isa.o dma_engine.o i8237A.o
 194  196  PCIE_MISC_OBJS += pcie_acpi.o pciehpc_acpi.o pcie_x86.o
 195  197  PCI_E_NEXUS_OBJS += npe.o npe_misc.o
 196  198  PCI_E_NEXUS_OBJS += pci_common.o pci_kstats.o pci_tools.o
 197  199  PCINEXUS_OBJS += pci.o pci_common.o pci_kstats.o pci_tools.o
 198  200  PCPLUSMP_OBJS += apic.o apic_regops.o psm_common.o apic_introp.o        \
 199  201                          mp_platform_common.o mp_platform_misc.o         \
 200  202                          hpet_acpi.o apic_common.o apic_timer.o
 201  203  APIX_OBJS += apix.o apic_regops.o psm_common.o apix_intr.o apix_utils.o \
 202  204                  apix_irm.o mp_platform_common.o hpet_acpi.o apic_common.o \
 203  205                  apic_timer.o apix_regops.o
 204  206  
 205  207  
 206  208  ACPI_DRV_OBJS   += acpi_drv.o acpi_video.o
 207  209  ACPINEX_OBJS    += acpinex_drv.o acpinex_event.o
 208  210  
 209  211  CPUDRV_OBJS     += \
 210  212          cpudrv.o \
 211  213          cpudrv_mach.o
 212  214  
 213  215  PPM_OBJS        += ppm_subr.o ppm.o ppm_plat.o
 214  216  
 215  217  ACPIPPM_OBJS    += acpippm.o acpisleep.o
 216  218  ACPIDEV_OBJS += acpidev_drv.o \
 217  219          acpidev_scope.o acpidev_device.o \
 218  220          acpidev_container.o \
 219  221          acpidev_cpu.o \
 220  222          acpidev_dr.o \
 221  223          acpidev_memory.o \
 222  224          acpidev_pci.o \
 223  225          acpidev_resource.o \
 224  226          acpidev_util.o
 225  227  
 226  228  DRMACH_ACPI_OBJS += drmach_acpi.o dr_util.o drmach_err.o
 227  229  
 228  230  DR_OBJS += dr.o dr_cpu.o dr_err.o dr_io.o dr_mem_acpi.o dr_quiesce.o dr_util.o
 229  231  
 230  232  ROOTNEX_OBJS += rootnex.o immu.o immu_dmar.o immu_dvma.o \
 231  233                  immu_intrmap.o immu_qinv.o immu_regs.o
 232  234  
 233  235  TZMON_OBJS      += tzmon.o
 234  236  UPPC_OBJS += uppc.o psm_common.o
 235  237  XSVC_OBJS += xsvc.o
 236  238  AMD_IOMMU_OBJS +=       amd_iommu.o amd_iommu_impl.o amd_iommu_acpi.o \
 237  239                          amd_iommu_cmd.o amd_iommu_log.o amd_iommu_page_tables.o
 238  240  
 239  241  #
 240  242  #       Build up defines and paths.
 241  243  #
 242  244  ALL_DEFS        += -Di86pc
 243  245  INC_PATH        += -I$(UTSBASE)/i86pc -I$(SRC)/common
 244  246  INC_PATH        += -I$(UTSBASE)/i86xpv -I$(UTSBASE)/common/xen
 245  247  
 246  248  #
 247  249  # Since the assym files are derived, the dependencies must be explicit for
 248  250  # all files including this file. (This is only actually required in the
 249  251  # instance when the .nse_depinfo file does not exist.) It may seem that
 250  252  # the lint targets should also have a similar dependency, but they don't
 251  253  # since only C headers are included when #defined(__lint) is true.
 252  254  #
 253  255  
 254  256  ASSYM_DEPS      +=              \
 255  257          copy.o                  \
 256  258          desctbls_asm.o          \
 257  259          ddi_i86_asm.o           \
 258  260          exception.o             \
 259  261          fast_trap_asm.o         \
 260  262          float.o                 \
 261  263          i86_subr.o              \
 262  264          interrupt.o             \
 263  265          lock_prim.o             \
 264  266          locore.o                \
 265  267          mpcore.o                \
 266  268          sseblk.o                \
 267  269          swtch.o                 \
 268  270          syscall_asm.o           \
 269  271          syscall_asm_amd64.o     \
 270  272          cpr_wakecode.o
 271  273  
 272  274  CPR_IMPL_OBJS   = cpr_impl.o    cpr_wakecode.o
 273  275  
 274  276  $(KDI_ASSYM_DEPS:%=$(OBJS_DIR)/%):      $(DSF_DIR)/$(OBJS_DIR)/kdi_assym.h
 275  277  
 276  278  ASSYM_DEPS += kdi_asm.o
  
    | 
      ↓ open down ↓ | 
    76 lines elided | 
    
      ↑ open up ↑ | 
  
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX