* [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).