Print this page
    
12195 acpidump failed under EFI
    
      
        | Split | 
	Close | 
      
      | Expand all | 
      | Collapse all | 
    
    
          --- old/usr/src/uts/intel/sys/bootinfo.h
          +++ new/usr/src/uts/intel/sys/bootinfo.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
  
    | 
      ↓ open down ↓ | 
    16 lines elided | 
    
      ↑ open up ↑ | 
  
  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 +/*
       28 + * Copyright 2020 Joyent, Inc.
       29 + */
       30 +
  27   31  #ifndef _SYS_BOOTINFO_H
  28   32  #define _SYS_BOOTINFO_H
  29   33  
  30   34  #ifdef  __cplusplus
  31   35  extern "C" {
  32   36  #endif
  33   37  
  34   38  /*
  35   39   * This is used by bootfs and dboot.  It should be at least as large as the
  36   40   * number of modules that bootloaders (e.g., grub) can support.  This figure
  37   41   * has been chosen to match grub's value exactly.
  38   42   */
  39   43  #define MAX_BOOT_MODULES        99
  40   44  
  41   45  /*
  42   46   * The 32-bit kernel loader code needs to build several structures that the
  43   47   * kernel is expecting. They will contain native sized pointers for the
  44   48   * target kernel.
  45   49   */
  46   50  
  47   51  #if defined(_BOOT_TARGET_amd64)
  48   52  
  49   53  typedef uint64_t native_ptr_t;
  50   54  
  51   55  #elif defined(_BOOT_TARGET_i386)
  52   56  
  53   57  typedef uint32_t native_ptr_t;
  54   58  
  55   59  #elif defined(_KERNEL)
  56   60  
  57   61  typedef void *native_ptr_t;
  58   62  
  59   63  #endif
  60   64  
  61   65  typedef enum boot_module_type {
  62   66          BMT_ROOTFS,
  63   67          BMT_FILE,
  64   68          BMT_HASH,
  65   69          BMT_ENV,
  66   70          BMT_FONT
  67   71  } boot_module_type_t;
  68   72  
  69   73  struct boot_memlist {
  70   74          uint64_t        addr;
  71   75          uint64_t        size;
  72   76          native_ptr_t    next;
  73   77          native_ptr_t    prev;
  74   78  };
  75   79  
  76   80  /*
  77   81   * The kernel needs to know how to find its modules.
  78   82   */
  79   83  struct boot_modules {
  80   84          native_ptr_t            bm_addr;
  81   85          native_ptr_t            bm_name;
  82   86          native_ptr_t            bm_hash;
  83   87          uint32_t                bm_size;
  84   88          boot_module_type_t      bm_type;
  85   89  };
  86   90  
  87   91  /* To help to identify UEFI system. */
  88   92  typedef enum uefi_arch_type {
  89   93          XBI_UEFI_ARCH_NONE,
  90   94          XBI_UEFI_ARCH_32,
  91   95          XBI_UEFI_ARCH_64
  92   96  } uefi_arch_type_t;
  93   97  /*
  94   98   *
  95   99   */
  96  100  #pragma pack(1)
  97  101  struct xboot_info {
  98  102          uint64_t        bi_next_paddr;  /* next physical address not used */
  99  103          native_ptr_t    bi_next_vaddr;  /* next virtual address not used */
 100  104          native_ptr_t    bi_cmdline;
 101  105          native_ptr_t    bi_phys_install;
 102  106          native_ptr_t    bi_rsvdmem;
 103  107          native_ptr_t    bi_pcimem;
 104  108          native_ptr_t    bi_modules;
 105  109          uint32_t        bi_module_cnt;
 106  110          uint32_t        bi_use_largepage;       /* MMU uses large pages */
 107  111          uint32_t        bi_use_pae;     /* MMU uses PAE mode (8 byte PTES) */
 108  112          uint32_t        bi_use_nx;      /* MMU uses NX bit in PTEs */
 109  113          uint32_t        bi_use_pge;     /* MMU uses Page Global Enable */
 110  114          native_ptr_t    bi_pt_window;
  
    | 
      ↓ open down ↓ | 
    74 lines elided | 
    
      ↑ open up ↑ | 
  
 111  115          native_ptr_t    bi_pte_to_pt_window;
 112  116          native_ptr_t    bi_kseg_size;   /* size used for kernel nucleus pages */
 113  117          uint64_t        bi_top_page_table;
 114  118  #if defined(__xpv)
 115  119          native_ptr_t    bi_xen_start_info;
 116  120          native_ptr_t    bi_shared_info;         /* VA for shared_info */
 117  121  #else
 118  122          native_ptr_t    bi_mb_info;             /* multiboot 1 or 2 info */
 119  123          int             bi_mb_version;          /* multiboot version */
 120  124          native_ptr_t    bi_acpi_rsdp;
      125 +        native_ptr_t    bi_acpi_rsdp_copy;
 121  126          native_ptr_t    bi_smbios;
 122  127          native_ptr_t    bi_uefi_systab;
 123  128          uefi_arch_type_t bi_uefi_arch;
 124  129  #endif
 125  130          native_ptr_t    bi_framebuffer;
 126  131  };
 127  132  #pragma pack()
 128  133  
 129  134  #ifdef  __cplusplus
 130  135  }
 131  136  #endif
 132  137  
 133  138  #endif  /* _SYS_BOOTINFO_H */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX