qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PULL 0/8] Firmware/edk2 20230918 patches
@ 2023-09-18 13:33 Gerd Hoffmann
  2023-09-18 13:33 ` [PULL 1/8] tests/acpi: allow virt/SSDT.memhp updates Gerd Hoffmann
                   ` (8 more replies)
  0 siblings, 9 replies; 12+ messages in thread
From: Gerd Hoffmann @ 2023-09-18 13:33 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Gerd Hoffmann, Philippe Mathieu-Daudé,
	Ani Sinha, Igor Mammedov

The following changes since commit c5ea91da443b458352c1b629b490ee6631775cb4:

  Merge tag 'pull-trivial-patches' of https://gitlab.com/mjt0k/qemu into staging (2023-09-08 10:06:25 -0400)

are available in the Git repository at:

  https://gitlab.com/kraxel/qemu.git tags/firmware/edk2-20230918-pull-request

for you to fetch changes up to 0ec0767e59261b7a1f59e904020cf52b45380e54:

  tests/acpi: disallow virt/SSDT.memhp updates (2023-09-18 15:27:27 +0200)

----------------------------------------------------------------
edk2: update to edk2-stable202308

v2: include acpi test data updates

----------------------------------------------------------------

Gerd Hoffmann (8):
  tests/acpi: allow virt/SSDT.memhp updates
  edk2: update build script
  edk2: update build config
  edk2: workaround edk-stable202308 bug
  edk2: update submodule to edk2-stable202308
  edk2: update binaries to edk2-stable202308
  tests/acpi: update virt/SSDT.memhp
  tests/acpi: disallow virt/SSDT.memhp updates

 roms/edk2-build.py                     | 202 ++++++++++++++++---------
 pc-bios/edk2-aarch64-code.fd.bz2       | Bin 1508184 -> 1573561 bytes
 pc-bios/edk2-arm-code.fd.bz2           | Bin 1483149 -> 1560966 bytes
 pc-bios/edk2-i386-code.fd.bz2          | Bin 1695318 -> 1770410 bytes
 pc-bios/edk2-i386-secure-code.fd.bz2   | Bin 1922002 -> 2121818 bytes
 pc-bios/edk2-riscv-code.fd.bz2         | Bin 0 -> 1177402 bytes
 pc-bios/edk2-riscv-vars.fd.bz2         | Bin 0 -> 231 bytes
 pc-bios/edk2-riscv.fd.bz2              | Bin 1096418 -> 0 bytes
 pc-bios/edk2-x86_64-code.fd.bz2        | Bin 1796544 -> 1887921 bytes
 pc-bios/edk2-x86_64-microvm.fd.bz2     | Bin 1697788 -> 1782629 bytes
 pc-bios/edk2-x86_64-secure-code.fd.bz2 | Bin 1999841 -> 2200701 bytes
 roms/edk2                              |   2 +-
 roms/edk2-build.config                 |  12 +-
 tests/data/acpi/virt/SSDT.memhp        | Bin 1817 -> 1817 bytes
 14 files changed, 139 insertions(+), 77 deletions(-)
 create mode 100644 pc-bios/edk2-riscv-code.fd.bz2
 create mode 100644 pc-bios/edk2-riscv-vars.fd.bz2
 delete mode 100644 pc-bios/edk2-riscv.fd.bz2

-- 
2.41.0



^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PULL 1/8] tests/acpi: allow virt/SSDT.memhp updates
  2023-09-18 13:33 [PULL 0/8] Firmware/edk2 20230918 patches Gerd Hoffmann
@ 2023-09-18 13:33 ` Gerd Hoffmann
  2023-09-18 13:33 ` [PULL 2/8] edk2: update build script Gerd Hoffmann
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Gerd Hoffmann @ 2023-09-18 13:33 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Gerd Hoffmann, Philippe Mathieu-Daudé,
	Ani Sinha, Igor Mammedov

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 tests/qtest/bios-tables-test-allowed-diff.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index dfb8523c8bf4..e569098abddc 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1 +1,2 @@
 /* List of comma-separated changed AML files to ignore */
+"tests/data/acpi/virt/SSDT.memhp",
-- 
2.41.0



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PULL 2/8] edk2: update build script
  2023-09-18 13:33 [PULL 0/8] Firmware/edk2 20230918 patches Gerd Hoffmann
  2023-09-18 13:33 ` [PULL 1/8] tests/acpi: allow virt/SSDT.memhp updates Gerd Hoffmann
@ 2023-09-18 13:33 ` Gerd Hoffmann
  2023-09-18 13:33 ` [PULL 3/8] edk2: update build config Gerd Hoffmann
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Gerd Hoffmann @ 2023-09-18 13:33 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Gerd Hoffmann, Philippe Mathieu-Daudé,
	Ani Sinha, Igor Mammedov

Sync with latest version from gitlab.com/kraxel/edk2-build-config

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 roms/edk2-build.py | 202 ++++++++++++++++++++++++++++-----------------
 1 file changed, 128 insertions(+), 74 deletions(-)

diff --git a/roms/edk2-build.py b/roms/edk2-build.py
index 870893f7c8e3..e564765aaa71 100755
--- a/roms/edk2-build.py
+++ b/roms/edk2-build.py
@@ -6,6 +6,7 @@
 """
 import os
 import sys
+import time
 import shutil
 import argparse
 import subprocess
@@ -45,19 +46,28 @@ def get_coredir(cfg):
         return os.path.abspath(cfg['global']['core'])
     return os.getcwd()
 
-def get_version(cfg):
+def get_toolchain(cfg, build):
+    if cfg.has_option(build, 'tool'):
+        return cfg[build]['tool']
+    if cfg.has_option('global', 'tool'):
+        return cfg['global']['tool']
+    return 'GCC5'
+
+def get_version(cfg, silent = False):
     coredir = get_coredir(cfg)
     if version_override:
         version = version_override
-        print('')
-        print(f'### version [override]: {version}')
+        if not silent:
+            print('')
+            print(f'### version [override]: {version}')
         return version
     if os.environ.get('RPM_PACKAGE_NAME'):
         version = os.environ.get('RPM_PACKAGE_NAME')
         version += '-' + os.environ.get('RPM_PACKAGE_VERSION')
         version += '-' + os.environ.get('RPM_PACKAGE_RELEASE')
-        print('')
-        print(f'### version [rpmbuild]: {version}')
+        if not silent:
+            print('')
+            print(f'### version [rpmbuild]: {version}')
         return version
     if os.path.exists(coredir + '/.git'):
         cmdline = [ 'git', 'describe', '--tags', '--abbrev=8',
@@ -66,16 +76,17 @@ def get_version(cfg):
                                 stdout = subprocess.PIPE,
                                 check = True)
         version = result.stdout.decode().strip()
-        print('')
-        print(f'### version [git]: {version}')
+        if not silent:
+            print('')
+            print(f'### version [git]: {version}')
         return version
     return None
 
 def pcd_string(name, value):
     return f'{name}=L{value}\\0'
 
-def pcd_version(cfg):
-    version = get_version(cfg)
+def pcd_version(cfg, silent = False):
+    version = get_version(cfg, silent)
     if version is None:
         return []
     return [ '--pcd', pcd_string('PcdFirmwareVersionString', version) ]
@@ -85,49 +96,58 @@ def pcd_release_date():
         return []
     return [ '--pcd', pcd_string('PcdFirmwareReleaseDateString', release_date) ]
 
-def build_message(line, line2 = None):
+def build_message(line, line2 = None, silent = False):
     if os.environ.get('TERM') in [ 'xterm', 'xterm-256color' ]:
         # setxterm  title
         start  = '\x1b]2;'
         end    = '\x07'
         print(f'{start}{rebase_prefix}{line}{end}', end = '')
 
-    print('')
-    print('###')
-    print(f'### {rebase_prefix}{line}')
-    if line2:
-        print(f'### {line2}')
-    print('###', flush = True)
+    if silent:
+        print(f'### {rebase_prefix}{line}', flush = True)
+    else:
+        print('')
+        print('###')
+        print(f'### {rebase_prefix}{line}')
+        if line2:
+            print(f'### {line2}')
+        print('###', flush = True)
 
-def build_run(cmdline, name, section, silent = False):
-    print(cmdline, flush = True)
+def build_run(cmdline, name, section, silent = False, nologs = False):
     if silent:
-        print('### building in silent mode ...', flush = True)
+        logfile = f'{section}.log'
+        if nologs:
+            print(f'### building in silent mode [no log] ...', flush = True)
+        else:
+            print(f'### building in silent mode [{logfile}] ...', flush = True)
+        start = time.time()
         result = subprocess.run(cmdline, check = False,
                                 stdout = subprocess.PIPE,
                                 stderr = subprocess.STDOUT)
-
-        logfile = f'{section}.log'
-        print(f'### writing log to {logfile} ...')
-        with open(logfile, 'wb') as f:
-            f.write(result.stdout)
+        if not nologs:
+            with open(logfile, 'wb') as f:
+                f.write(result.stdout)
 
         if result.returncode:
             print('### BUILD FAILURE')
+            print('### cmdline')
+            print(cmdline)
             print('### output')
             print(result.stdout.decode())
             print(f'### exit code: {result.returncode}')
         else:
-            print('### OK')
+            secs = int(time.time() - start)
+            print(f'### OK ({int(secs/60)}:{secs%60:02d})')
     else:
+        print(cmdline, flush = True)
         result = subprocess.run(cmdline, check = False)
     if result.returncode:
         print(f'ERROR: {cmdline[0]} exited with {result.returncode}'
               f' while building {name}')
         sys.exit(result.returncode)
 
-def build_copy(plat, tgt, dstdir, copy):
-    srcdir = f'Build/{plat}/{tgt}_GCC5'
+def build_copy(plat, tgt, toolchain, dstdir, copy):
+    srcdir = f'Build/{plat}/{tgt}_{toolchain}'
     names = copy.split()
     srcfile = names[0]
     if len(names) > 1:
@@ -156,66 +176,68 @@ def pad_file(dstdir, pad):
     subprocess.run(cmdline, check = True)
 
 # pylint: disable=too-many-branches
-def build_one(cfg, build, jobs = None, silent = False):
+def build_one(cfg, build, jobs = None, silent = False, nologs = False):
+    b = cfg[build]
+
     cmdline  = [ 'build' ]
-    cmdline += [ '-t', 'GCC5' ]
-    cmdline += [ '-p', cfg[build]['conf'] ]
+    cmdline += [ '-t', get_toolchain(cfg, build) ]
+    cmdline += [ '-p', b['conf'] ]
 
-    if (cfg[build]['conf'].startswith('OvmfPkg/') or
-        cfg[build]['conf'].startswith('ArmVirtPkg/')):
-        cmdline += pcd_version(cfg)
+    if (b['conf'].startswith('OvmfPkg/') or
+        b['conf'].startswith('ArmVirtPkg/')):
+        cmdline += pcd_version(cfg, silent)
         cmdline += pcd_release_date()
 
     if jobs:
         cmdline += [ '-n', jobs ]
-    for arch in cfg[build]['arch'].split():
+    for arch in b['arch'].split():
         cmdline += [ '-a', arch ]
-    if 'opts' in cfg[build]:
-        for name in cfg[build]['opts'].split():
+    if 'opts' in b:
+        for name in b['opts'].split():
             section = 'opts.' + name
             for opt in cfg[section]:
                 cmdline += [ '-D', opt + '=' + cfg[section][opt] ]
-    if 'pcds' in cfg[build]:
-        for name in cfg[build]['pcds'].split():
+    if 'pcds' in b:
+        for name in b['pcds'].split():
             section = 'pcds.' + name
             for pcd in cfg[section]:
                 cmdline += [ '--pcd', pcd + '=' + cfg[section][pcd] ]
-    if 'tgts' in cfg[build]:
-        tgts = cfg[build]['tgts'].split()
+    if 'tgts' in b:
+        tgts = b['tgts'].split()
     else:
         tgts = [ 'DEBUG' ]
     for tgt in tgts:
         desc = None
-        if 'desc' in cfg[build]:
-            desc = cfg[build]['desc']
-        build_message(f'building: {cfg[build]["conf"]} ({cfg[build]["arch"]}, {tgt})',
-                      f'description: {desc}')
+        if 'desc' in b:
+            desc = b['desc']
+        build_message(f'building: {b["conf"]} ({b["arch"]}, {tgt})',
+                      f'description: {desc}',
+                      silent = silent)
         build_run(cmdline + [ '-b', tgt ],
-                  cfg[build]['conf'],
+                  b['conf'],
                   build + '.' + tgt,
-                  silent)
+                  silent,
+                  nologs)
 
-        if 'plat' in cfg[build]:
+        if 'plat' in b:
             # copy files
-            for cpy in cfg[build]:
+            for cpy in b:
                 if not cpy.startswith('cpy'):
                     continue
-                build_copy(cfg[build]['plat'],
-                           tgt,
-                           cfg[build]['dest'],
-                           cfg[build][cpy])
+                build_copy(b['plat'], tgt,
+                           get_toolchain(cfg, build),
+                           b['dest'], b[cpy])
             # pad builds
-            for pad in cfg[build]:
+            for pad in b:
                 if not pad.startswith('pad'):
                     continue
-                pad_file(cfg[build]['dest'],
-                         cfg[build][pad])
+                pad_file(b['dest'], b[pad])
 
-def build_basetools(silent = False):
-    build_message('building: BaseTools')
+def build_basetools(silent = False, nologs = False):
+    build_message('building: BaseTools', silent = silent)
     basedir = os.environ['EDK_TOOLS_PATH']
     cmdline = [ 'make', '-C', basedir ]
-    build_run(cmdline, 'BaseTools', 'build.basetools', silent)
+    build_run(cmdline, 'BaseTools', 'build.basetools', silent, nologs)
 
 def binary_exists(name):
     for pdir in os.environ['PATH'].split(':'):
@@ -223,7 +245,7 @@ def binary_exists(name):
             return True
     return False
 
-def prepare_env(cfg):
+def prepare_env(cfg, silent = False):
     """ mimic Conf/BuildEnv.sh """
     workspace = os.getcwd()
     packages = [ workspace, ]
@@ -253,7 +275,7 @@ def prepare_env(cfg):
     toolsdef = coredir + '/Conf/tools_def.txt'
     if not os.path.exists(toolsdef):
         os.makedirs(os.path.dirname(toolsdef), exist_ok = True)
-        build_message('running BaseTools/BuildEnv')
+        build_message('running BaseTools/BuildEnv', silent = silent)
         cmdline = [ 'bash', 'BaseTools/BuildEnv' ]
         subprocess.run(cmdline, cwd = coredir, check = True)
 
@@ -267,20 +289,32 @@ def prepare_env(cfg):
     os.environ['PYTHONHASHSEED'] = '1'
 
     # for cross builds
-    if binary_exists('arm-linux-gnu-gcc'):
+    if binary_exists('arm-linux-gnueabi-gcc'):
+        # ubuntu
+        os.environ['GCC5_ARM_PREFIX'] = 'arm-linux-gnueabi-'
+        os.environ['GCC_ARM_PREFIX'] = 'arm-linux-gnueabi-'
+    elif binary_exists('arm-linux-gnu-gcc'):
+        # fedora
         os.environ['GCC5_ARM_PREFIX'] = 'arm-linux-gnu-'
+        os.environ['GCC_ARM_PREFIX'] = 'arm-linux-gnu-'
     if binary_exists('loongarch64-linux-gnu-gcc'):
         os.environ['GCC5_LOONGARCH64_PREFIX'] = 'loongarch64-linux-gnu-'
+        os.environ['GCC_LOONGARCH64_PREFIX'] = 'loongarch64-linux-gnu-'
 
     hostarch = os.uname().machine
     if binary_exists('aarch64-linux-gnu-gcc') and hostarch != 'aarch64':
         os.environ['GCC5_AARCH64_PREFIX'] = 'aarch64-linux-gnu-'
+        os.environ['GCC_AARCH64_PREFIX'] = 'aarch64-linux-gnu-'
     if binary_exists('riscv64-linux-gnu-gcc') and hostarch != 'riscv64':
         os.environ['GCC5_RISCV64_PREFIX'] = 'riscv64-linux-gnu-'
+        os.environ['GCC_RISCV64_PREFIX'] = 'riscv64-linux-gnu-'
     if binary_exists('x86_64-linux-gnu-gcc') and hostarch != 'x86_64':
         os.environ['GCC5_IA32_PREFIX'] = 'x86_64-linux-gnu-'
         os.environ['GCC5_X64_PREFIX'] = 'x86_64-linux-gnu-'
         os.environ['GCC5_BIN'] = 'x86_64-linux-gnu-'
+        os.environ['GCC_IA32_PREFIX'] = 'x86_64-linux-gnu-'
+        os.environ['GCC_X64_PREFIX'] = 'x86_64-linux-gnu-'
+        os.environ['GCC_BIN'] = 'x86_64-linux-gnu-'
 
 def build_list(cfg):
     for build in cfg.sections():
@@ -303,10 +337,12 @@ def main():
     parser.add_argument('-j', '--jobs', dest = 'jobs', type = str,
                         help = 'allow up to JOBS parallel build jobs',
                         metavar = 'JOBS')
-    parser.add_argument('-m', '--match', dest = 'match', type = str,
+    parser.add_argument('-m', '--match', dest = 'match',
+                        type = str, action = 'append',
                         help = 'only run builds matching INCLUDE (substring)',
                         metavar = 'INCLUDE')
-    parser.add_argument('-x', '--exclude', dest = 'exclude', type = str,
+    parser.add_argument('-x', '--exclude', dest = 'exclude',
+                        type = str, action = 'append',
                         help = 'skip builds matching EXCLUDE (substring)',
                         metavar = 'EXCLUDE')
     parser.add_argument('-l', '--list', dest = 'list',
@@ -316,6 +352,9 @@ def main():
                         action = 'store_true', default = False,
                         help = 'write build output to logfiles, '
                         'write to console only on errors')
+    parser.add_argument('--no-logs', dest = 'nologs',
+                        action = 'store_true', default = False,
+                        help = 'do not write build log files (with --silent)')
     parser.add_argument('--core', dest = 'core', type = str, metavar = 'DIR',
                         help = 'location of the core edk2 repository '
                         '(i.e. where BuildTools are located)')
@@ -323,6 +362,9 @@ def main():
                         type = str, action = 'append', metavar = 'DIR',
                         help = 'location(s) of additional packages '
                         '(can be specified multiple times)')
+    parser.add_argument('-t', '--toolchain', dest = 'toolchain',
+                        type = str, metavar = 'NAME',
+                        help = 'tool chain to be used to build edk2')
     parser.add_argument('--version-override', dest = 'version_override',
                         type = str, metavar = 'VERSION',
                         help = 'set firmware build version')
@@ -335,7 +377,7 @@ def main():
         os.chdir(options.directory)
 
     if not os.path.exists(options.configfile):
-        print('config file "{options.configfile}" not found')
+        print(f'config file "{options.configfile}" not found')
         return 1
 
     cfg = configparser.ConfigParser()
@@ -344,7 +386,7 @@ def main():
 
     if options.list:
         build_list(cfg)
-        return
+        return 0
 
     if not cfg.has_section('global'):
         cfg.add_section('global')
@@ -352,6 +394,8 @@ def main():
         cfg.set('global', 'core', options.core)
     if options.pkgs:
         cfg.set('global', 'pkgs', ' '.join(options.pkgs))
+    if options.toolchain:
+        cfg.set('global', 'tool', options.toolchain)
 
     global version_override
     global release_date
@@ -361,18 +405,28 @@ def main():
     if options.release_date:
         release_date = options.release_date
 
-    prepare_env(cfg)
-    build_basetools(options.silent)
+    prepare_env(cfg, options.silent)
+    build_basetools(options.silent, options.nologs)
     for build in cfg.sections():
         if not build.startswith('build.'):
             continue
-        if options.match and options.match not in build:
-            print(f'# skipping "{build}" (not matching "{options.match}")')
-            continue
-        if options.exclude and options.exclude in build:
-            print(f'# skipping "{build}" (matching "{options.exclude}")')
-            continue
-        build_one(cfg, build, options.jobs, options.silent)
+        if options.match:
+            matching = False
+            for item in options.match:
+                if item in build:
+                    matching = True
+            if not matching:
+                print(f'# skipping "{build}" (not matching "{"|".join(options.match)}")')
+                continue
+        if options.exclude:
+            exclude = False
+            for item in options.exclude:
+                if item in build:
+                    print(f'# skipping "{build}" (matching "{item}")')
+                    exclude = True
+            if exclude:
+                continue
+        build_one(cfg, build, options.jobs, options.silent, options.nologs)
 
     return 0
 
-- 
2.41.0



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PULL 3/8] edk2: update build config
  2023-09-18 13:33 [PULL 0/8] Firmware/edk2 20230918 patches Gerd Hoffmann
  2023-09-18 13:33 ` [PULL 1/8] tests/acpi: allow virt/SSDT.memhp updates Gerd Hoffmann
  2023-09-18 13:33 ` [PULL 2/8] edk2: update build script Gerd Hoffmann
@ 2023-09-18 13:33 ` Gerd Hoffmann
  2023-09-18 13:33 ` [PULL 4/8] edk2: workaround edk-stable202308 bug Gerd Hoffmann
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Gerd Hoffmann @ 2023-09-18 13:33 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Gerd Hoffmann, Philippe Mathieu-Daudé,
	Ani Sinha, Igor Mammedov

risc-v switched to use split code/vars images like the other archs.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 roms/edk2-build.config | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/roms/edk2-build.config b/roms/edk2-build.config
index 66ef9ffcb91f..ffe0d12d0cb7 100644
--- a/roms/edk2-build.config
+++ b/roms/edk2-build.config
@@ -120,5 +120,7 @@ conf = OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc
 arch = RISCV64
 plat = RiscVVirtQemu
 dest = ../pc-bios
-cpy1 = FV/RISCV_VIRT.fd  edk2-riscv.fd
-pad1 = edk2-riscv.fd     32m
+cpy1 = FV/RISCV_VIRT_CODE.fd  edk2-riscv-code.fd
+cpy2 = FV/RISCV_VIRT_VARS.fd  edk2-riscv-vars.fd
+pad1 = edk2-riscv-code.fd     32m
+pad2 = edk2-riscv-vars.fd     32m
-- 
2.41.0



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PULL 4/8] edk2: workaround edk-stable202308 bug
  2023-09-18 13:33 [PULL 0/8] Firmware/edk2 20230918 patches Gerd Hoffmann
                   ` (2 preceding siblings ...)
  2023-09-18 13:33 ` [PULL 3/8] edk2: update build config Gerd Hoffmann
@ 2023-09-18 13:33 ` Gerd Hoffmann
  2023-09-18 13:33 ` [PULL 5/8] edk2: update submodule to edk2-stable202308 Gerd Hoffmann
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Gerd Hoffmann @ 2023-09-18 13:33 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Gerd Hoffmann, Philippe Mathieu-Daudé,
	Ani Sinha, Igor Mammedov

Set PCD to workaround two fixes missing the release.
https://github.com/tianocore/edk2/commit/8b66f9df1bb0fd5ebb743944d41cb33178cf2fdd
https://github.com/tianocore/edk2/commit/020cc9e2e7053bb62247b0babbbe80cb855592e5

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 roms/edk2-build.config | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/roms/edk2-build.config b/roms/edk2-build.config
index ffe0d12d0cb7..bab6a9caebfa 100644
--- a/roms/edk2-build.config
+++ b/roms/edk2-build.config
@@ -26,6 +26,9 @@ DEBUG_PRINT_ERROR_LEVEL  = 0x80000000
 # grub.efi uses EfiLoaderData for code
 PcdDxeNxMemoryProtectionPolicy = 0xC000000000007FD1
 
+[pcds.workaround.202308]
+PcdFirstTimeWakeUpAPsBySipi = FALSE
+
 ####################################################################################
 # i386
 
@@ -57,6 +60,7 @@ desc = ovmf build (64-bit)
 conf = OvmfPkg/OvmfPkgX64.dsc
 arch = X64
 opts = common
+pcds = workaround.202308
 plat = OvmfX64
 dest = ../pc-bios
 cpy1 = FV/OVMF_CODE.fd edk2-x86_64-code.fd
@@ -67,6 +71,7 @@ conf = OvmfPkg/OvmfPkgIa32X64.dsc
 arch = IA32 X64
 opts = common
        ovmf.sb.smm
+pcds = workaround.202308
 plat = Ovmf3264
 dest = ../pc-bios
 cpy1 = FV/OVMF_CODE.fd edk2-x86_64-secure-code.fd
@@ -76,6 +81,7 @@ desc = ovmf build for microvm
 conf = OvmfPkg/Microvm/MicrovmX64.dsc
 arch = X64
 opts = common
+pcds = workaround.202308
 plat = MicrovmX64
 dest = ../pc-bios
 cpy1 = FV/MICROVM.fd  edk2-x86_64-microvm.fd
-- 
2.41.0



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PULL 5/8] edk2: update submodule to edk2-stable202308
  2023-09-18 13:33 [PULL 0/8] Firmware/edk2 20230918 patches Gerd Hoffmann
                   ` (3 preceding siblings ...)
  2023-09-18 13:33 ` [PULL 4/8] edk2: workaround edk-stable202308 bug Gerd Hoffmann
@ 2023-09-18 13:33 ` Gerd Hoffmann
  2023-09-18 13:33 ` [PULL 7/8] tests/acpi: update virt/SSDT.memhp Gerd Hoffmann
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Gerd Hoffmann @ 2023-09-18 13:33 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Gerd Hoffmann, Philippe Mathieu-Daudé,
	Ani Sinha, Igor Mammedov

New stable release was tagged in August 2023,
update the edk2 submodule to it.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 roms/edk2 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/roms/edk2 b/roms/edk2
index f80f052277c8..819cfc6b42a6 160000
--- a/roms/edk2
+++ b/roms/edk2
@@ -1 +1 @@
-Subproject commit f80f052277c88a67c55e107b550f504eeea947d3
+Subproject commit 819cfc6b42a68790a23509e4fcc58ceb70e1965e
-- 
2.41.0



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PULL 7/8] tests/acpi: update virt/SSDT.memhp
  2023-09-18 13:33 [PULL 0/8] Firmware/edk2 20230918 patches Gerd Hoffmann
                   ` (4 preceding siblings ...)
  2023-09-18 13:33 ` [PULL 5/8] edk2: update submodule to edk2-stable202308 Gerd Hoffmann
@ 2023-09-18 13:33 ` Gerd Hoffmann
  2023-09-18 13:33 ` [PULL 8/8] tests/acpi: disallow virt/SSDT.memhp updates Gerd Hoffmann
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 12+ messages in thread
From: Gerd Hoffmann @ 2023-09-18 13:33 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Gerd Hoffmann, Philippe Mathieu-Daudé,
	Ani Sinha, Igor Mammedov

The edk2 update caused an address change:

 DefinitionBlock ("", "SSDT", 1, "BOCHS ", "NVDIMM", 0x00000001)
 {
     Scope (\_SB)
     {
         Device (NVDR)
         {
             Name (_HID, "ACPI0012" /* NVDIMM Root Device */)  // _HID: Hardware ID
             [ ... ]
         }
     }

-    Name (MEMA, 0x43D10000)
+    Name (MEMA, 0x43C90000)
 }

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 tests/data/acpi/virt/SSDT.memhp | Bin 1817 -> 1817 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/tests/data/acpi/virt/SSDT.memhp b/tests/data/acpi/virt/SSDT.memhp
index ef93c44464f1fe38f7e5babd5d67f345cc6363a6..31ff6ac46940a3e304a2d68efabe12bab50be0d7 100644
GIT binary patch
delta 22
dcmbQqH<OPmIM^jblAVEpaqUJfUUsIF&Hz2I1wsG-

delta 22
dcmbQqH<OPmIM^jblAVEpap^`bUUsI7&Hz1t1wsG-

-- 
2.41.0



^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PULL 8/8] tests/acpi: disallow virt/SSDT.memhp updates
  2023-09-18 13:33 [PULL 0/8] Firmware/edk2 20230918 patches Gerd Hoffmann
                   ` (5 preceding siblings ...)
  2023-09-18 13:33 ` [PULL 7/8] tests/acpi: update virt/SSDT.memhp Gerd Hoffmann
@ 2023-09-18 13:33 ` Gerd Hoffmann
  2023-09-19 19:13 ` [PULL 0/8] Firmware/edk2 20230918 patches Stefan Hajnoczi
  2023-11-11 17:19 ` Akihiko Odaki
  8 siblings, 0 replies; 12+ messages in thread
From: Gerd Hoffmann @ 2023-09-18 13:33 UTC (permalink / raw)
  To: qemu-devel
  Cc: Michael S. Tsirkin, Gerd Hoffmann, Philippe Mathieu-Daudé,
	Ani Sinha, Igor Mammedov

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 tests/qtest/bios-tables-test-allowed-diff.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index e569098abddc..dfb8523c8bf4 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1,2 +1 @@
 /* List of comma-separated changed AML files to ignore */
-"tests/data/acpi/virt/SSDT.memhp",
-- 
2.41.0



^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PULL 0/8] Firmware/edk2 20230918 patches
  2023-09-18 13:33 [PULL 0/8] Firmware/edk2 20230918 patches Gerd Hoffmann
                   ` (6 preceding siblings ...)
  2023-09-18 13:33 ` [PULL 8/8] tests/acpi: disallow virt/SSDT.memhp updates Gerd Hoffmann
@ 2023-09-19 19:13 ` Stefan Hajnoczi
  2023-11-11 17:19 ` Akihiko Odaki
  8 siblings, 0 replies; 12+ messages in thread
From: Stefan Hajnoczi @ 2023-09-19 19:13 UTC (permalink / raw)
  To: Gerd Hoffmann
  Cc: qemu-devel, Michael S. Tsirkin, Gerd Hoffmann,
	Philippe Mathieu-Daudé, Ani Sinha, Igor Mammedov

[-- Attachment #1: Type: text/plain, Size: 115 bytes --]

Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/8.2 for any user-visible changes.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PULL 0/8] Firmware/edk2 20230918 patches
  2023-09-18 13:33 [PULL 0/8] Firmware/edk2 20230918 patches Gerd Hoffmann
                   ` (7 preceding siblings ...)
  2023-09-19 19:13 ` [PULL 0/8] Firmware/edk2 20230918 patches Stefan Hajnoczi
@ 2023-11-11 17:19 ` Akihiko Odaki
  2023-11-13 11:09   ` Gerd Hoffmann
  8 siblings, 1 reply; 12+ messages in thread
From: Akihiko Odaki @ 2023-11-11 17:19 UTC (permalink / raw)
  To: Gerd Hoffmann, qemu-devel
  Cc: Michael S. Tsirkin, Philippe Mathieu-Daudé, Ani Sinha,
	Igor Mammedov

On 2023/09/18 22:33, Gerd Hoffmann wrote:
> The following changes since commit c5ea91da443b458352c1b629b490ee6631775cb4:
> 
>    Merge tag 'pull-trivial-patches' of https://gitlab.com/mjt0k/qemu into staging (2023-09-08 10:06:25 -0400)
> 
> are available in the Git repository at:
> 
>    https://gitlab.com/kraxel/qemu.git tags/firmware/edk2-20230918-pull-request
> 
> for you to fetch changes up to 0ec0767e59261b7a1f59e904020cf52b45380e54:
> 
>    tests/acpi: disallow virt/SSDT.memhp updates (2023-09-18 15:27:27 +0200)
> 
> ----------------------------------------------------------------
> edk2: update to edk2-stable202308
> 
> v2: include acpi test data updates
> 
> ----------------------------------------------------------------
> 
> Gerd Hoffmann (8):
>    tests/acpi: allow virt/SSDT.memhp updates
>    edk2: update build script
>    edk2: update build config
>    edk2: workaround edk-stable202308 bug
>    edk2: update submodule to edk2-stable202308
>    edk2: update binaries to edk2-stable202308
>    tests/acpi: update virt/SSDT.memhp
>    tests/acpi: disallow virt/SSDT.memhp updates
> 
>   roms/edk2-build.py                     | 202 ++++++++++++++++---------
>   pc-bios/edk2-aarch64-code.fd.bz2       | Bin 1508184 -> 1573561 bytes
>   pc-bios/edk2-arm-code.fd.bz2           | Bin 1483149 -> 1560966 bytes
>   pc-bios/edk2-i386-code.fd.bz2          | Bin 1695318 -> 1770410 bytes
>   pc-bios/edk2-i386-secure-code.fd.bz2   | Bin 1922002 -> 2121818 bytes
>   pc-bios/edk2-riscv-code.fd.bz2         | Bin 0 -> 1177402 bytes
>   pc-bios/edk2-riscv-vars.fd.bz2         | Bin 0 -> 231 bytes
>   pc-bios/edk2-riscv.fd.bz2              | Bin 1096418 -> 0 bytes
>   pc-bios/edk2-x86_64-code.fd.bz2        | Bin 1796544 -> 1887921 bytes
>   pc-bios/edk2-x86_64-microvm.fd.bz2     | Bin 1697788 -> 1782629 bytes
>   pc-bios/edk2-x86_64-secure-code.fd.bz2 | Bin 1999841 -> 2200701 bytes
>   roms/edk2                              |   2 +-
>   roms/edk2-build.config                 |  12 +-
>   tests/data/acpi/virt/SSDT.memhp        | Bin 1817 -> 1817 bytes
>   14 files changed, 139 insertions(+), 77 deletions(-)
>   create mode 100644 pc-bios/edk2-riscv-code.fd.bz2
>   create mode 100644 pc-bios/edk2-riscv-vars.fd.bz2
>   delete mode 100644 pc-bios/edk2-riscv.fd.bz2
> 

Hi,

This apparently broke EDK2 for AArch64. I tried the following command:
build/qemu-system-aarch64 -drive 
file=build/pc-bios/edk2-aarch64-code.fd,format=raw,if=pflash,readonly=on 
-M virt -cpu max -nographic -cdrom 
Fedora-Silverblue-ostree-aarch64-37-1.7.iso

Below is the output:
BdsDxe: loading Boot0001 "UEFI Misc Device" from PciRoot(0x0)/Pci(0x2,0x0)
BdsDxe: starting Boot0001 "UEFI Misc Device" from PciRoot(0x0)/Pci(0x2,0x0)


Synchronous Exception at 0x0000000043695920
PC 0x000043695920
PC 0x000043697EE4
PC 0x00004369A514
PC 0x00004369B030
PC 0x000043C04288
PC 0x000043C04338
PC 0x000043C051B4
PC 0x000043C02030
PC 0x000047685788 (0x00004767E000+0x00007788) [ 1] DxeCore.dll
PC 0x00004732AECC (0x000047324000+0x00006ECC) [ 2] BdsDxe.dll
PC 0x00004732DFD4 (0x000047324000+0x00009FD4) [ 2] BdsDxe.dll
PC 0x00004768900C (0x00004767E000+0x0000B00C) [ 3] DxeCore.dll
[ 1] 
/home/kraxel/projects/qemu/roms/Build/ArmVirtQemu-AARCH64/DEBUG_GCC5/AARCH64/MdeModulePkg/Core/Dxe/DxeMain/DEBUG/DxeCore.dll
[ 2] 
/home/kraxel/projects/qemu/roms/Build/ArmVirtQemu-AARCH64/DEBUG_GCC5/AARCH64/MdeModulePkg/Universal/BdsDxe/BdsDxe/DEBUG/BdsDxe.dll
[ 3] 
/home/kraxel/projects/qemu/roms/Build/ArmVirtQemu-AARCH64/DEBUG_GCC5/AARCH64/MdeModulePkg/Core/Dxe/DxeMain/DEBUG/DxeCore.dll

   X0 0x0000000043679960   X1 0x0000000000000000   X2 0x000000000000000D 
   X3 0x00000000436A2F70
   X4 0x0000000043679920   X5 0x000000004366B000   X6 0x0000000043677000 
   X7 0x00000000436A20D0
   X8 0x00000000436A20C8   X9 0x00000000436A20D0  X10 0x00000000436A20E0 
  X11 0x00000000436A20D0
  X12 0x0000000043679FFF  X13 0x0000000000000008  X14 0x0000000000000000 
  X15 0x0000000000000000
  X16 0x00000000473962BC  X17 0x00000000E6D79577  X18 0x0000000000000011 
  X19 0x0000000043C83000
  X20 0x0000000000000000  X21 0x0000000046310C98  X22 0x0000000043C972F0 
  X23 0x0000000000000000
  X24 0x0000000043C97000  X25 0x0000000043C973B8  X26 0x0000000043C973C0 
  X27 0x0000000043C973C8
  X28 0x0000000043C973D0   FP 0x000000004767D6A0   LR 0x0000000043697EE4

   V0 0xAFAFAFAFAFAFAFAF AFAFAFAFAFAFAFAF   V1 0x0000000000000004 
0000000000000000
   V2 0x554E65213A544C55 41464544464F544E   V3 0x0000000000000000 
0010000000000000
   V4 0x0000000040000000 0000000000000000   V5 0x4010040140100401 
4010040140100401
   V6 0x0040000000001000 0040000000001000   V7 0x0000000000000000 
0000000000000000
   V8 0x0000000000000000 0000000000000000   V9 0x0000000000000000 
0000000000000000
  V10 0x0000000000000000 0000000000000000  V11 0x0000000000000000 
0000000000000000
  V12 0x0000000000000000 0000000000000000  V13 0x0000000000000000 
0000000000000000
  V14 0x0000000000000000 0000000000000000  V15 0x0000000000000000 
0000000000000000
  V16 0x0000000000000000 0000000000000000  V17 0x0000000000000000 
0000000000000000
  V18 0x0000000000000000 0000000000000000  V19 0x0000000000000000 
0000000000000000
  V20 0x0000000000000000 0000000000000000  V21 0x0000000000000000 
0000000000000000
  V22 0x0000000000000000 0000000000000000  V23 0x0000000000000000 
0000000000000000
  V24 0x0000000000000000 0000000000000000  V25 0x0000000000000000 
0000000000000000
  V26 0x0000000000000000 0000000000000000  V27 0x0000000000000000 
0000000000000000
  V28 0x0000000000000000 0000000000000000  V29 0x0000000000000000 
0000000000000000
  V30 0x0000000000000000 0000000000000000  V31 0x0000000000000000 
0000000000000000

   SP 0x000000004767D6A0  ELR 0x0000000043695920  SPSR 0x60000205  FPSR 
0x00000000
  ESR 0x9600004F          FAR 0x00000000436799D0

  ESR : EC 0x25  IL 0x1  ISS 0x0000004F

Data abort: Permission fault, third level

Stack dump:
   000004767D5A0: 0000000000000000 00000000AFAFAFAF 000000004767D6C0 
0000000043697EDC
   000004767D5C0: 41464544464F544E 554E65213A544C55 0010000000000000 
0000000000000000
   000004767D5E0: 00000000436A2F70 00000000436A2F68 0000036040100401 
00000000436A2B28
   000004767D600: 0040000000001000 0040000000001000 0000000000000000 
0000000000000000
   000004767D620: AFAFAFAFAFAFAFAF AFAFAFAFAFAFAFAF 0000000000000000 
0000000000000004
   000004767D640: 41464544464F544E 554E65213A544C55 0010000000000000 
0000000000000000
   000004767D660: 0000000000000000 0000000040000000 4010040140100401 
4010040140100401
   000004767D680: 0040000000001000 0040000000001000 0000000000000000 
0000000000000000
 > 000004767D6A0: 000000004767D6C0 0000000043697EE4 0000000043677000 
0000000043679960
   000004767D6C0: 000000004767D6F0 000000004369A514 000000000000FC18 
00000000436B2020
   000004767D6E0: 000000F700000000 0000000043679960 000000004767D710 
000000004369B030
   000004767D700: 00000000476830E0 00000000436B2018 000000004767D720 
0000000043C04288
   000004767D720: 000000004767D780 0000000043C04338 0000000000000000 
0000000043C6D000
   000004767D740: 0000000043C83000 0000000046310C98 002A5DF04767D780 
0000000043685000
   000004767D760: 0000000043684000 00000000000002A6 00000000441A1C18 
000000004392A018
   000004767D780: 000000004767D7E0 0000000043C051B4 0000000000000000 
0000000043C02428


Synchronous Exception at 0x0000000043695920
ASSERT [ArmCpuDxe] 
/home/kraxel/projects/qemu/roms/edk2/ArmPkg/Library/DefaultExceptionHandlerLib/AArch64/DefaultExceptionHandler.c(343): 
((BOOLEAN)(0==1))


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PULL 0/8] Firmware/edk2 20230918 patches
  2023-11-11 17:19 ` Akihiko Odaki
@ 2023-11-13 11:09   ` Gerd Hoffmann
  2023-11-17 16:00     ` Akihiko Odaki
  0 siblings, 1 reply; 12+ messages in thread
From: Gerd Hoffmann @ 2023-11-13 11:09 UTC (permalink / raw)
  To: Akihiko Odaki
  Cc: qemu-devel, Michael S. Tsirkin, Philippe Mathieu-Daudé,
	Ani Sinha, Igor Mammedov

> Hi,
> 
> This apparently broke EDK2 for AArch64. I tried the following command:
> build/qemu-system-aarch64 -drive
> file=build/pc-bios/edk2-aarch64-code.fd,format=raw,if=pflash,readonly=on -M
> virt -cpu max -nographic -cdrom Fedora-Silverblue-ostree-aarch64-37-1.7.iso

https://bugzilla.redhat.com/show_bug.cgi?id=2113005

tl:dr:  shim is broken, and recent edk2 starting to expose
EFI_MEMORY_ATTRIBUTE_PROTOCOL makes the bug visible (without
the protocol the buggy code path is never taken).

take care,
  Gerd



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PULL 0/8] Firmware/edk2 20230918 patches
  2023-11-13 11:09   ` Gerd Hoffmann
@ 2023-11-17 16:00     ` Akihiko Odaki
  0 siblings, 0 replies; 12+ messages in thread
From: Akihiko Odaki @ 2023-11-17 16:00 UTC (permalink / raw)
  To: Gerd Hoffmann
  Cc: qemu-devel, Michael S. Tsirkin, Philippe Mathieu-Daudé,
	Ani Sinha, Igor Mammedov



On 2023/11/13 20:09, Gerd Hoffmann wrote:
>> Hi,
>>
>> This apparently broke EDK2 for AArch64. I tried the following command:
>> build/qemu-system-aarch64 -drive
>> file=build/pc-bios/edk2-aarch64-code.fd,format=raw,if=pflash,readonly=on -M
>> virt -cpu max -nographic -cdrom Fedora-Silverblue-ostree-aarch64-37-1.7.iso
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=2113005
> 
> tl:dr:  shim is broken, and recent edk2 starting to expose
> EFI_MEMORY_ATTRIBUTE_PROTOCOL makes the bug visible (without
> the protocol the buggy code path is never taken).
> 
> take care,
>    Gerd
> 

That's unfortunate. Thanks for the info.

Regards,
Akihiko Odaki


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2023-11-17 16:01 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-18 13:33 [PULL 0/8] Firmware/edk2 20230918 patches Gerd Hoffmann
2023-09-18 13:33 ` [PULL 1/8] tests/acpi: allow virt/SSDT.memhp updates Gerd Hoffmann
2023-09-18 13:33 ` [PULL 2/8] edk2: update build script Gerd Hoffmann
2023-09-18 13:33 ` [PULL 3/8] edk2: update build config Gerd Hoffmann
2023-09-18 13:33 ` [PULL 4/8] edk2: workaround edk-stable202308 bug Gerd Hoffmann
2023-09-18 13:33 ` [PULL 5/8] edk2: update submodule to edk2-stable202308 Gerd Hoffmann
2023-09-18 13:33 ` [PULL 7/8] tests/acpi: update virt/SSDT.memhp Gerd Hoffmann
2023-09-18 13:33 ` [PULL 8/8] tests/acpi: disallow virt/SSDT.memhp updates Gerd Hoffmann
2023-09-19 19:13 ` [PULL 0/8] Firmware/edk2 20230918 patches Stefan Hajnoczi
2023-11-11 17:19 ` Akihiko Odaki
2023-11-13 11:09   ` Gerd Hoffmann
2023-11-17 16:00     ` Akihiko Odaki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).