Skip to content
  1. Aug 06, 2020
  2. Aug 05, 2020
  3. Aug 04, 2020
  4. Aug 03, 2020
  5. Aug 01, 2020
    • Laszlo Ersek's avatar
      OvmfPkg: fix DEC spec violation introduced by Bhyve addition · e557442e
      Laszlo Ersek authored
      
      
      Sean reports that having two DEC files under OvmfPkg violates the DEC
      spec:
      
      > An EDK II Package (directory) is a directory that contains an EDK II
      > package declaration (DEC) file. Only one DEC file is permitted per
      > directory. EDK II Packages cannot be nested within other EDK II
      > Packages.
      
      This issue originates from commit 656419f9 ("Add BhyvePkg, to support
      the bhyve hypervisor", 2020-07-31).
      
      Remedy the problem as follows. (Note that these steps are not split to
      multiple patches in order to keep Bhyve buildable across the transition.)
      
      (1) Delete "OvmfPkg/Bhyve/BhyvePkg.dec".
      
      (2) Point the [Packages] sections of the Bhyve-specific AcpiPlatformDxe,
          BhyveRfbDxe, and BhyveFwCtlLib INF files to "OvmfPkg.dec".
      
      (3) Migrate the artifacts that "BhyvePkg.dec" used to have on top of
          "OvmfPkg.dec" as follows:
      
      (3a) Merge the copyright notices from Rebecca Cran and Pluribus Networks
           into "OvmfPkg.dec".
      
      (3b) Merge the "BhyveFwCtlLib" class header definition into "OvmfPkg.dec".
      
      (3c) Merge value 0x2F8 for the fixed PcdDebugIoPort into
           "BhyvePkgX64.dsc".
      
      (4) Unnest the the Include/Library/ and Library/ subtrees from under
          OvmfPkg/Bhyve to the corresponding, preexistent subtrees in OvmfPkg.
          The goal is to keep the [Includes] section in the "OvmfPkg.dec" file
          unchanged, plus simplify references in "BhyvePkgX64.dsc". Non-library
          modules remain under "OvmfPkg/Bhyve/".
      
      (4a) The BhyveFwCtlLib class header, and sole instance, are already
           uniquely named, so their movements need not involve file renames.
      
      (4b) Rename the Bhyve-specific PlatformBootManagerLib instance to
           PlatformBootManagerLibBhyve, in additon to moving it, for
           distinguishing it from OvmfPkg's preexistent lib instance. Apply the
           name change to all three of the lib instance directory name, the INF
           file, and the BASE_NAME define in the INF file.
      
      (4c) Update lib class resolutions in "BhyvePkgX64.dsc" accordingly.
      
      (5) Replace the "ACPI table storage" FILE_GUID in
          "OvmfPkg/Bhyve/AcpiTables/AcpiTables.inf" with a new GUID, and
          open-code the "ACPI table storage" GUID in the "ACPITABLE" FDF rule
          instead, replacing $(NAMED_GUID). This step is necessary because CI
          requires unique FILE_GUIDs over all INF files, and OVMF's original
          "AcpiTables.inf" already uses the "ACPI table storage" GUID as
          FILE_GUID.
      
      Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>
      Cc: Jordan Justen <jordan.l.justen@intel.com>
      Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
      Cc: Rebecca Cran <rebecca@bsdio.com>
      Cc: Sean Brogan <spbrogan@outlook.com>
      Fixes: 656419f9
      Reported-by: default avatarSean Brogan <spbrogan@outlook.com>
      Signed-off-by: default avatarLaszlo Ersek <lersek@redhat.com>
      Message-Id: <20200801155024.16439-1-lersek@redhat.com>
      Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
      Reviewed-by: default avatarRebecca Cran <rebecca@bsdio.com>
      e557442e
  6. Jul 31, 2020
  7. Jul 29, 2020
  8. Jul 28, 2020
Loading