Subject: [bug#77148] [PATCH 5/9] gnu: ovmf-aarch64: Update installed firmware.

From: Maxim Cournoyer <[email-masked]>
Date: Mon, 24 Mar 2025 09:28:40 +0900

Hi,

Efraim Flashner <[email-masked]> writes:

> On Sat, Mar 22, 2025 at 04:10:46PM +0900, Maxim Cournoyer wrote:
>> Hi,
>> 
>> Efraim Flashner <[email-masked]> writes:
>> 
>> > * gnu/packages/firmware.scm (ovmf-aarch64)[arguments]: Adjust the
>> > 'install phase to install another binary and to truncate the file to the
>> > expected length.
>> >
>> > Change-Id: I53958d5f2ca392e1033630e1dfd29d86c25a74fc
>> > ---
>> >  gnu/packages/firmware.scm | 11 ++++++++---
>> >  1 file changed, 8 insertions(+), 3 deletions(-)
>> >
>> > diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
>> > index e7d2e390acc..049fd9246fb 100644
>> > --- a/gnu/packages/firmware.scm
>> > +++ b/gnu/packages/firmware.scm
>> > @@ -1190,9 +1190,14 @@ (define-public ovmf-aarch64
>> >                   (lambda _
>> >                     (let ((fmw (string-append #$output "/share/firmware")))
>> >                      (mkdir-p fmw)
>> > -                    (copy-file (string-append "Build/ArmVirtQemu-AARCH64/"
>> > -                                              "RELEASE_GCC/FV/QEMU_EFI.fd")
>> > -                               (string-append fmw "/ovmf_aarch64.bin"))))))))))))
>> > +                    (with-directory-excursion "Build/ArmVirtQemu-AARCH64/RELEASE_GCC/FV"
>> > +                      ;; Make the files the desired length and then install them
>> > +                      (truncate-file "QEMU_EFI.fd" (* 64 1024 1024))
>> > +                      (truncate-file "QEMU_VARS.fd" (* 64 1024 1024))
>> > +                      (copy-file "QEMU_VARS.fd"
>> > +                                 (string-append fmw "/ovmf_vars_aarch64.bin"))
>> > +                      (copy-file "QEMU_EFI.fd"
>> > +                                 (string-append fmw "/ovmf_aarch64.bin")))))))))))))
>> 
>> It's surprising that the firmware files must be truncated; does it not
>> work if we leave them at their original size (and what would that be?).
>> Expounding the explanatory comment would help.
>
> ovmf_aarch64.bin is currently 2097152 bytes (2.0 Mb). I'll try to find
> an actual explanation somewhere, but Debian also uses truncate on their
> files¹
>
> ¹ https://sources.debian.org/src/edk2/2024.11-5/debian/rules/#L249

That would mean that the truncate to 64 MiB is not useful?  I guess it's
an historical thing that can be removed then, unless you find a
satisfying explanation.

-- 
Thanks,
Maxim