diff options
Diffstat (limited to 'source/a/elilo')
-rwxr-xr-x | source/a/elilo/elilo.SlackBuild | 11 | ||||
-rw-r--r-- | source/a/elilo/elilo.zeroes.cc_blob_address.diff | 40 |
2 files changed, 49 insertions, 2 deletions
diff --git a/source/a/elilo/elilo.SlackBuild b/source/a/elilo/elilo.SlackBuild index 33809d721..4f88c2f0e 100755 --- a/source/a/elilo/elilo.SlackBuild +++ b/source/a/elilo/elilo.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2013, 2014, 2016, 2017, 2018, 2019 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2013, 2014, 2016, 2017, 2018, 2019, 2022 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=elilo VERSION=${VERSION:-$(echo $PKGNAM*.tar.?z* | rev | cut -f 2 -d - | rev)} -BUILD=${BUILD:-12} +BUILD=${BUILD:-13} if [ -z "$ARCH" ]; then case "$( uname -m )" in @@ -75,6 +75,9 @@ tar xvf elilo-${VERSION}-source.tar.gz || exit 1 # things, as the loaders themselves seldom need to be rebuilt. Besides, # elilo can be rather fragile, so we don't want to rebuild it without a # good reason and risk breaking it. +# +# These EFI binaries were built with Slackware 14.2. Newer compilers might +# cause bloat, or other issues. tar xvf $CWD/elilo.loader.binaries.tar.xz || exit 1 chown -R root:root . @@ -91,6 +94,10 @@ grep -r -l StrnCpy * | xargs sed -i "s/StrnCpy/elilo_StrnCpy/g" # Increase kernel size limit from 8MB to 16MB (nobody will ever need more than 640K ;-): zcat $CWD/elilo.double.kernel.size.limit.diff.gz | patch -p1 --verbose || exit 1 +# Disable the Confidential Computing blob which was leading to boot failures +# with the 5.19.0 kernel and the EFI stub enabled: +zcat $CWD/elilo.zeroes.cc_blob_address.diff.gz | patch -p1 --verbose || exit 1 + # We will build the tools from source. # However, we will package the pre-built EFI binaries, since we would # like to include both 32-bit and 64-bit x86 EFI loaders in the diff --git a/source/a/elilo/elilo.zeroes.cc_blob_address.diff b/source/a/elilo/elilo.zeroes.cc_blob_address.diff new file mode 100644 index 000000000..5c98d7561 --- /dev/null +++ b/source/a/elilo/elilo.zeroes.cc_blob_address.diff @@ -0,0 +1,40 @@ +diff -Naur elilo-3.16-source.orig/x86_64/sysdeps.h elilo-3.16-source/x86_64/sysdeps.h +--- elilo-3.16-source.orig/x86_64/sysdeps.h 2012-11-19 19:01:04.000000000 -0200 ++++ elilo-3.16-source/x86_64/sysdeps.h 2022-08-05 15:51:02.700147207 -0300 +@@ -184,7 +184,12 @@ + /* 0xA0 */ UINT16 mca_info_len; /* LDR */ + /* 0xA2 */ UINT8 mca_info_buf[0x10]; /* LDR */ + +-/* 0xB2 */ UINT8 pad_4[0x10E]; /* unused */ ++/* 0xB2 */ UINT8 pad_41[0x8A]; /* unused */ ++ ++/* Confidential Computing Blob */ ++/* 0x13C */ UINT32 cc_blob_address; /* LDR */ ++ ++/* 0x140 */ UINT8 pad_42[0x80]; /* unused */ + + /* EFI boot loader signature. */ + /* 0x1C0 */ UINT8 efi_loader_sig[4]; /* LDR */ +diff -Naur elilo-3.16-source.orig/x86_64/system.c elilo-3.16-source/x86_64/system.c +--- elilo-3.16-source.orig/x86_64/system.c 2013-03-29 16:03:15.000000000 -0300 ++++ elilo-3.16-source/x86_64/system.c 2022-08-05 15:50:45.772968102 -0300 +@@ -684,6 +684,11 @@ + ZeroMem(bp->s.hd1_info, sizeof bp->s.hd1_info); + + /* ++ * Disable Confidential Computing blob ++ */ ++ bp->s.cc_blob_address = 0; ++ ++ /* + * Memory info. + */ + +@@ -826,6 +831,7 @@ + CHECK_OFFSET(hd1_info, 0x90, L""); + CHECK_OFFSET(mca_info_len, 0xA0, L"%xh"); + CHECK_OFFSET(mca_info_buf, 0xA2, L""); ++ CHECK_OFFSET(cc_blob_address, 0x13C, L"%xh"); + CHECK_OFFSET(efi_loader_sig, 0x1C0, L"'%-4.4a'"); + CHECK_OFFSET(efi_sys_tbl, 0x1C4, L"%xh"); + CHECK_OFFSET(efi_mem_desc_size, 0x1C8, L"%xh"); |