public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-devel] Debugging EFI Runtime crash when trying to update DBX for Secure Boot in Linux (fwupdmgr update)
@ 2024-12-02 21:25 Rebecca Cran
  2024-12-02 23:29 ` Pedro Falcato via groups.io
  2024-12-03  9:13 ` Ard Biesheuvel via groups.io
  0 siblings, 2 replies; 5+ messages in thread
From: Rebecca Cran @ 2024-12-02 21:25 UTC (permalink / raw)
  To: devel@edk2.groups.io; +Cc: Doug Flick

I've set up Secure Boot for my firmware, but I'm having problems when 
trying to have fwupdmgr install a DBX update.

Since I've run into problems setting up arm64_DBXUpdate.bin from 
uefi.org or DefaultDbx.bin from a build of secureboot_objects I'm 
generating my own certificate and installing that as dbxDefault just so 
that the variable exists.

I reset the entire SPI-NOR to default (i.e. deleting any existing 
variables), then enable Secure Boot in UiApp and boot openSUSE. When I 
run fwupmgr update, I get:

localhost:~ # fwupdmgr update
Devices with no available firmware updates:
  • System Firmware
  • WD BLACK SN850X 4000GB
╔══════════════════════════════════════════════════════════════════════════════╗
║ Upgrade UEFI dbx from 0 to 
26?                                               ║
╠══════════════════════════════════════════════════════════════════════════════╣
║ Insecure versions of the Microsoft Windows boot manager affected by 
Black    ║
║ Lotus were added to the list of forbidden signatures due to a 
discovered     ║
║ security problem.This updates the dbx to the latest release from 
Microsoft.  ║
║ ║
║ Before installing the update, fwupd will check for any affected 
executables  ║
║ in the ESP and will refuse to update if it finds any boot binaries 
signed    ║
║ with any of the forbidden signatures.Applying this update may also 
cause     ║
║ some Windows install media to not start 
correctly.                           ║
║ ║
╚══════════════════════════════════════════════════════════════════════════════╝
Perform operation? [Y|n]: y
Downloading…             [ - ]

Decompressing… [***************************************]

Authenticating… [***************************************]

Waiting… [***************************************]

Writing… [***************************************]

Restarting device… [                                       ]

Writing… [                                       ]

Decompressing… [                                       ]

Writing…                 [

[   53.309930][  T360] [Firmware Bug]: Unable to handle paging request 
in EFI runtime service
                                      ]
failed to write data to efivarfs: Error writing to file descriptor: 
Input/output error


And dmesg shows:

[   53.309930] [    T360] [Firmware Bug]: Unable to handle paging 
request in EFI runtime service
[   53.321038] [   T2422] ------------[ cut here ]------------
[   53.321047] [   T2422] WARNING: CPU: 42 PID: 2422 at 
drivers/firmware/efi/runtime-wrappers.c:341 __efi_queue_work+0xe4/0x120
[   53.321062] [   T2422] Modules linked in: af_packet nft_fib_inet 
nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reject_ipv4 
nf_reject_ipv6 nft_reject nft_ct nft_chain_nat ebtable_nat 
ebtable_broute rfkill ip6table_nat ip6table_mangle ip6table_raw 
ip6table_security iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 
nf_defrag_ipv4 iptable_mangle iptable_raw iptable_security 
ebtable_filter ebtables ip6table_filter ip6_tables qrtr nf_tables 
iptable_filter binfmt_misc joydev cdc_subset cdc_ether usbnet cdc_acm 
mii nls_iso8859_1 nls_cp437 vfat fat snd_usb_audio snd_usbmidi_lib 
snd_hwdep snd_ump snd_rawmidi uas snd_seq_device usb_storage mc snd_pcm 
sd_mod scsi_dh_emc snd_timer scsi_dh_rdac scsi_dh_alua snd hid_generic 
sg soundcore scsi_mod usbhid scsi_common acpi_ipmi ipmi_ssif 
ipmi_devintf tiny_power_button igb arm_spe_pmu ipmi_msghandler button 
arm_cmn acpiphp_ampere_altra arm_dmc620_pmu arm_dsu_pmu cppc_cpufreq 
nvme_fabrics fuse nvme_keyring loop efi_pstore dm_mod nfnetlink 
dmi_sysfs ip_tables x_tables aes_ce_blk aes_ce_cipher
[   53.321224] [   T2422]  crct10dif_ce xhci_pci xhci_pci_renesas 
polyval_ce polyval_generic ghash_ce gf128mul xhci_hcd sm4 sha2_ce nvme 
sha256_arm64 usbcore sha1_ce nvme_core sbsa_gwdt ast nvme_auth 
i2c_algo_bit usb_common xgene_hwmon gpio_dwapb btrfs blake2b_generic 
libcrc32c xor xor_neon raid6_pq i2c_dev efivarfs
[   53.321279] [   T2422] CPU: 42 UID: 0 PID: 2422 Comm: fwupd Tainted: 
G          I        6.11.8-1-default #1 openSUSE Tumbleweed 
1400000003000000474e5500ae3eced04b985462
[   53.321290] [   T2422] Tainted: [I]=FIRMWARE_WORKAROUND
[   53.321293] [   T2422] Hardware name: Adlink Ampere Altra Developer 
Platform/COM-HPC-Carrier, BIOS TianoCore 24.12.02-01 (SYS: 
2.10.20230517) 12/02/2024
[   53.321296] [   T2422] pstate: 60400009 (nZCv daif +PAN -UAO -TCO 
-DIT -SSBS BTYPE=--)
[   53.321303] [   T2422] pc : __efi_queue_work+0xe4/0x120
[   53.321308] [   T2422] lr : __efi_queue_work+0xd0/0x120
[   53.321312] [   T2422] sp : ffff80008583b940
[   53.321315] [   T2422] x29: ffff80008583b940 x28: ffff07ff8bcc4500 
x27: 0000000000000000
[   53.321324] [   T2422] x26: 0000000000001208 x25: ffff07ff94859c00 
x24: 0000000000000067
[   53.321332] [   T2422] x23: ffff07ff94859800 x22: ffff07ff94859c00 
x21: 0000000000001202
[   53.321339] [   T2422] x20: ffffaa255f9655a8 x19: ffffaa255f965548 
x18: 0000000000000001
[   53.321345] [   T2422] x17: ffff07ff90946340 x16: ffffaa255d6b3198 
x15: 000000000000037d
[   53.321352] [   T2422] x14: 0000000000000001 x13: 0000000000000000 
x12: 0000000000000800
[   53.321359] [   T2422] x11: 071c71c71c71c71c x10: 0000000000001bc0 x9 
: ffffaa255da39d18
[   53.321366] [   T2422] x8 : ffff07ff8bcc6120 x7 : 0000000000000000 x6 
: 00000000000003e8
[   53.321372] [   T2422] x5 : 00000000410fd0c0 x4 : 0000000000300001 x3 
: 0000000000000000
[   53.321379] [   T2422] x2 : 0000000000000000 x1 : 8000000000000015 x0 
: 8000000000000015
[   53.321385] [   T2422] Call trace:
[   53.321388] [   T2422]  __efi_queue_work+0xe4/0x120
[   53.321392] [   T2422]  virt_efi_set_variable+0x74/0xe0
[   53.321398] [   T2422]  efivar_set_variable_locked+0x7c/0x100
[   53.321402] [   T2422]  efivar_entry_set_get_size+0x9c/0x170 
[efivarfs 1400000003000000474e55008e4f4f0ee8473f7a]
[   53.321414] [   T2422]  efivarfs_file_write+0x140/0x2e0 [efivarfs 
1400000003000000474e55008e4f4f0ee8473f7a]
[   53.321421] [   T2422]  vfs_write+0xdc/0x370
[   53.321427] [   T2422]  ksys_write+0x78/0x120
[   53.321431] [   T2422]  __arm64_sys_write+0x24/0x40
[   53.321435] [   T2422]  invoke_syscall+0x6c/0x100
[   53.321443] [   T2422]  el0_svc_common.constprop.0+0xc8/0xf0
[   53.321450] [   T2422]  do_el0_svc+0x24/0x38
[   53.321457] [   T2422]  el0_svc+0x3c/0x170
[   53.321464] [   T2422]  el0t_64_sync_handler+0x120/0x130
[   53.321470] [   T2422]  el0t_64_sync+0x1a8/0x1b0
[   53.321475] [   T2422] ---[ end trace 0000000000000000 ]---
[   53.321489] [   T2422] efi: EFI Runtime Services are disabled!


I have no idea how to go about debugging why the SetVariable call is 
causing the crash. Is it likely to be the way I've got dbxDefault set 
up, or does anyone know how I could debug it further?


Rebecca





-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120855): https://edk2.groups.io/g/devel/message/120855
Mute This Topic: https://groups.io/mt/109889108/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



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

* Re: [edk2-devel] Debugging EFI Runtime crash when trying to update DBX for Secure Boot in Linux (fwupdmgr update)
  2024-12-02 21:25 [edk2-devel] Debugging EFI Runtime crash when trying to update DBX for Secure Boot in Linux (fwupdmgr update) Rebecca Cran
@ 2024-12-02 23:29 ` Pedro Falcato via groups.io
  2024-12-02 23:39   ` Rebecca Cran
  2024-12-03  9:13 ` Ard Biesheuvel via groups.io
  1 sibling, 1 reply; 5+ messages in thread
From: Pedro Falcato via groups.io @ 2024-12-02 23:29 UTC (permalink / raw)
  To: devel, rebecca; +Cc: Doug Flick

On Mon, Dec 2, 2024 at 9:25 PM Rebecca Cran via groups.io
<rebecca=bsdio.com@groups.io> wrote:
>
> I've set up Secure Boot for my firmware, but I'm having problems when
> trying to have fwupdmgr install a DBX update.
>
> Since I've run into problems setting up arm64_DBXUpdate.bin from
> uefi.org or DefaultDbx.bin from a build of secureboot_objects I'm
> generating my own certificate and installing that as dbxDefault just so
> that the variable exists.
>
> I reset the entire SPI-NOR to default (i.e. deleting any existing
> variables), then enable Secure Boot in UiApp and boot openSUSE. When I
> run fwupmgr update, I get:
>
> localhost:~ # fwupdmgr update
> Devices with no available firmware updates:
>   • System Firmware
>   • WD BLACK SN850X 4000GB
> ╔══════════════════════════════════════════════════════════════════════════════╗
> ║ Upgrade UEFI dbx from 0 to
> 26?                                               ║
> ╠══════════════════════════════════════════════════════════════════════════════╣
> ║ Insecure versions of the Microsoft Windows boot manager affected by
> Black    ║
> ║ Lotus were added to the list of forbidden signatures due to a
> discovered     ║
> ║ security problem.This updates the dbx to the latest release from
> Microsoft.  ║
> ║ ║
> ║ Before installing the update, fwupd will check for any affected
> executables  ║
> ║ in the ESP and will refuse to update if it finds any boot binaries
> signed    ║
> ║ with any of the forbidden signatures.Applying this update may also
> cause     ║
> ║ some Windows install media to not start
> correctly.                           ║
> ║ ║
> ╚══════════════════════════════════════════════════════════════════════════════╝
> Perform operation? [Y|n]: y
> Downloading…             [ - ]
>
> Decompressing… [***************************************]
>
> Authenticating… [***************************************]
>
> Waiting… [***************************************]
>
> Writing… [***************************************]
>
> Restarting device… [                                       ]
>
> Writing… [                                       ]
>
> Decompressing… [                                       ]
>
> Writing…                 [
>
> [   53.309930][  T360] [Firmware Bug]: Unable to handle paging request
> in EFI runtime service
>                                       ]
> failed to write data to efivarfs: Error writing to file descriptor:
> Input/output error
>
>
> And dmesg shows:
>
> [   53.309930] [    T360] [Firmware Bug]: Unable to handle paging
> request in EFI runtime service
> [   53.321038] [   T2422] ------------[ cut here ]------------
> [   53.321047] [   T2422] WARNING: CPU: 42 PID: 2422 at
> drivers/firmware/efi/runtime-wrappers.c:341 __efi_queue_work+0xe4/0x120
> [   53.321062] [   T2422] Modules linked in: af_packet nft_fib_inet
> nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reject_ipv4
> nf_reject_ipv6 nft_reject nft_ct nft_chain_nat ebtable_nat
> ebtable_broute rfkill ip6table_nat ip6table_mangle ip6table_raw
> ip6table_security iptable_nat nf_nat nf_conntrack nf_defrag_ipv6
> nf_defrag_ipv4 iptable_mangle iptable_raw iptable_security
> ebtable_filter ebtables ip6table_filter ip6_tables qrtr nf_tables
> iptable_filter binfmt_misc joydev cdc_subset cdc_ether usbnet cdc_acm
> mii nls_iso8859_1 nls_cp437 vfat fat snd_usb_audio snd_usbmidi_lib
> snd_hwdep snd_ump snd_rawmidi uas snd_seq_device usb_storage mc snd_pcm
> sd_mod scsi_dh_emc snd_timer scsi_dh_rdac scsi_dh_alua snd hid_generic
> sg soundcore scsi_mod usbhid scsi_common acpi_ipmi ipmi_ssif
> ipmi_devintf tiny_power_button igb arm_spe_pmu ipmi_msghandler button
> arm_cmn acpiphp_ampere_altra arm_dmc620_pmu arm_dsu_pmu cppc_cpufreq
> nvme_fabrics fuse nvme_keyring loop efi_pstore dm_mod nfnetlink
> dmi_sysfs ip_tables x_tables aes_ce_blk aes_ce_cipher
> [   53.321224] [   T2422]  crct10dif_ce xhci_pci xhci_pci_renesas
> polyval_ce polyval_generic ghash_ce gf128mul xhci_hcd sm4 sha2_ce nvme
> sha256_arm64 usbcore sha1_ce nvme_core sbsa_gwdt ast nvme_auth
> i2c_algo_bit usb_common xgene_hwmon gpio_dwapb btrfs blake2b_generic
> libcrc32c xor xor_neon raid6_pq i2c_dev efivarfs
> [   53.321279] [   T2422] CPU: 42 UID: 0 PID: 2422 Comm: fwupd Tainted:
> G          I        6.11.8-1-default #1 openSUSE Tumbleweed
> 1400000003000000474e5500ae3eced04b985462
> [   53.321290] [   T2422] Tainted: [I]=FIRMWARE_WORKAROUND
> [   53.321293] [   T2422] Hardware name: Adlink Ampere Altra Developer
> Platform/COM-HPC-Carrier, BIOS TianoCore 24.12.02-01 (SYS:
> 2.10.20230517) 12/02/2024
> [   53.321296] [   T2422] pstate: 60400009 (nZCv daif +PAN -UAO -TCO
> -DIT -SSBS BTYPE=--)
> [   53.321303] [   T2422] pc : __efi_queue_work+0xe4/0x120
> [   53.321308] [   T2422] lr : __efi_queue_work+0xd0/0x120
> [   53.321312] [   T2422] sp : ffff80008583b940
> [   53.321315] [   T2422] x29: ffff80008583b940 x28: ffff07ff8bcc4500
> x27: 0000000000000000
> [   53.321324] [   T2422] x26: 0000000000001208 x25: ffff07ff94859c00
> x24: 0000000000000067
> [   53.321332] [   T2422] x23: ffff07ff94859800 x22: ffff07ff94859c00
> x21: 0000000000001202
> [   53.321339] [   T2422] x20: ffffaa255f9655a8 x19: ffffaa255f965548
> x18: 0000000000000001
> [   53.321345] [   T2422] x17: ffff07ff90946340 x16: ffffaa255d6b3198
> x15: 000000000000037d
> [   53.321352] [   T2422] x14: 0000000000000001 x13: 0000000000000000
> x12: 0000000000000800
> [   53.321359] [   T2422] x11: 071c71c71c71c71c x10: 0000000000001bc0 x9
> : ffffaa255da39d18
> [   53.321366] [   T2422] x8 : ffff07ff8bcc6120 x7 : 0000000000000000 x6
> : 00000000000003e8
> [   53.321372] [   T2422] x5 : 00000000410fd0c0 x4 : 0000000000300001 x3
> : 0000000000000000
> [   53.321379] [   T2422] x2 : 0000000000000000 x1 : 8000000000000015 x0
> : 8000000000000015
> [   53.321385] [   T2422] Call trace:
> [   53.321388] [   T2422]  __efi_queue_work+0xe4/0x120
> [   53.321392] [   T2422]  virt_efi_set_variable+0x74/0xe0
> [   53.321398] [   T2422]  efivar_set_variable_locked+0x7c/0x100
> [   53.321402] [   T2422]  efivar_entry_set_get_size+0x9c/0x170
> [efivarfs 1400000003000000474e55008e4f4f0ee8473f7a]
> [   53.321414] [   T2422]  efivarfs_file_write+0x140/0x2e0 [efivarfs
> 1400000003000000474e55008e4f4f0ee8473f7a]
> [   53.321421] [   T2422]  vfs_write+0xdc/0x370
> [   53.321427] [   T2422]  ksys_write+0x78/0x120
> [   53.321431] [   T2422]  __arm64_sys_write+0x24/0x40
> [   53.321435] [   T2422]  invoke_syscall+0x6c/0x100
> [   53.321443] [   T2422]  el0_svc_common.constprop.0+0xc8/0xf0
> [   53.321450] [   T2422]  do_el0_svc+0x24/0x38
> [   53.321457] [   T2422]  el0_svc+0x3c/0x170
> [   53.321464] [   T2422]  el0t_64_sync_handler+0x120/0x130
> [   53.321470] [   T2422]  el0t_64_sync+0x1a8/0x1b0
> [   53.321475] [   T2422] ---[ end trace 0000000000000000 ]---
> [   53.321489] [   T2422] efi: EFI Runtime Services are disabled!
>
>
> I have no idea how to go about debugging why the SetVariable call is
> causing the crash. Is it likely to be the way I've got dbxDefault set
> up, or does anyone know how I could debug it further?

Since this seems to be a dev board, don't you have the symbols for
your firmware? :)


-- 
Pedro


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120856): https://edk2.groups.io/g/devel/message/120856
Mute This Topic: https://groups.io/mt/109889108/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



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

* Re: [edk2-devel] Debugging EFI Runtime crash when trying to update DBX for Secure Boot in Linux (fwupdmgr update)
  2024-12-02 23:29 ` Pedro Falcato via groups.io
@ 2024-12-02 23:39   ` Rebecca Cran
  2024-12-02 23:47     ` Pedro Falcato via groups.io
  0 siblings, 1 reply; 5+ messages in thread
From: Rebecca Cran @ 2024-12-02 23:39 UTC (permalink / raw)
  To: Pedro Falcato, devel; +Cc: Doug Flick

On 12/2/24 4:29 PM, Pedro Falcato wrote:

> On Mon, Dec 2, 2024 at 9:25 PM Rebecca Cran via groups.io
> <rebecca=bsdio.com@groups.io> wrote:
>>
>> I have no idea how to go about debugging why the SetVariable call is
>> causing the crash. Is it likely to be the way I've got dbxDefault set
>> up, or does anyone know how I could debug it further?
> Since this seems to be a dev board, don't you have the symbols for
> your firmware? :)

I do have symbols, but I assumed JTAG debugging code once the OS is 
running is a bit more complicated than in the DXE phase.

I'll give it a try though.


-- 

Rebecca



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120857): https://edk2.groups.io/g/devel/message/120857
Mute This Topic: https://groups.io/mt/109889108/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



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

* Re: [edk2-devel] Debugging EFI Runtime crash when trying to update DBX for Secure Boot in Linux (fwupdmgr update)
  2024-12-02 23:39   ` Rebecca Cran
@ 2024-12-02 23:47     ` Pedro Falcato via groups.io
  0 siblings, 0 replies; 5+ messages in thread
From: Pedro Falcato via groups.io @ 2024-12-02 23:47 UTC (permalink / raw)
  To: Rebecca Cran; +Cc: devel, Doug Flick

On Mon, Dec 2, 2024 at 11:39 PM Rebecca Cran <rebecca@bsdio.com> wrote:
>
> On 12/2/24 4:29 PM, Pedro Falcato wrote:
>
> > On Mon, Dec 2, 2024 at 9:25 PM Rebecca Cran via groups.io
> > <rebecca=bsdio.com@groups.io> wrote:
> >>
> >> I have no idea how to go about debugging why the SetVariable call is
> >> causing the crash. Is it likely to be the way I've got dbxDefault set
> >> up, or does anyone know how I could debug it further?
> > Since this seems to be a dev board, don't you have the symbols for
> > your firmware? :)
>
> I do have symbols, but I assumed JTAG debugging code once the OS is
> running is a bit more complicated than in the DXE phase.

FWIW, I wasn't implying fancy debugging but rather something as simple
as getting the crash IP and symbolizing that (etc)

--
Pedro


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120858): https://edk2.groups.io/g/devel/message/120858
Mute This Topic: https://groups.io/mt/109889108/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



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

* Re: [edk2-devel] Debugging EFI Runtime crash when trying to update DBX for Secure Boot in Linux (fwupdmgr update)
  2024-12-02 21:25 [edk2-devel] Debugging EFI Runtime crash when trying to update DBX for Secure Boot in Linux (fwupdmgr update) Rebecca Cran
  2024-12-02 23:29 ` Pedro Falcato via groups.io
@ 2024-12-03  9:13 ` Ard Biesheuvel via groups.io
  1 sibling, 0 replies; 5+ messages in thread
From: Ard Biesheuvel via groups.io @ 2024-12-03  9:13 UTC (permalink / raw)
  To: devel, rebecca; +Cc: Doug Flick

On Mon, 2 Dec 2024 at 22:25, Rebecca Cran <rebecca@bsdio.com> wrote:
>
> I've set up Secure Boot for my firmware, but I'm having problems when
> trying to have fwupdmgr install a DBX update.
>
> Since I've run into problems setting up arm64_DBXUpdate.bin from
> uefi.org or DefaultDbx.bin from a build of secureboot_objects I'm
> generating my own certificate and installing that as dbxDefault just so
> that the variable exists.
>
> I reset the entire SPI-NOR to default (i.e. deleting any existing
> variables), then enable Secure Boot in UiApp and boot openSUSE. When I
> run fwupmgr update, I get:
>
> localhost:~ # fwupdmgr update
> Devices with no available firmware updates:
>   • System Firmware
>   • WD BLACK SN850X 4000GB
> ╔══════════════════════════════════════════════════════════════════════════════╗
> ║ Upgrade UEFI dbx from 0 to
> 26?                                               ║
> ╠══════════════════════════════════════════════════════════════════════════════╣
> ║ Insecure versions of the Microsoft Windows boot manager affected by
> Black    ║
> ║ Lotus were added to the list of forbidden signatures due to a
> discovered     ║
> ║ security problem.This updates the dbx to the latest release from
> Microsoft.  ║
> ║ ║
> ║ Before installing the update, fwupd will check for any affected
> executables  ║
> ║ in the ESP and will refuse to update if it finds any boot binaries
> signed    ║
> ║ with any of the forbidden signatures.Applying this update may also
> cause     ║
> ║ some Windows install media to not start
> correctly.                           ║
> ║ ║
> ╚══════════════════════════════════════════════════════════════════════════════╝
> Perform operation? [Y|n]: y
> Downloading…             [ - ]
>
> Decompressing… [***************************************]
>
> Authenticating… [***************************************]
>
> Waiting… [***************************************]
>
> Writing… [***************************************]
>
> Restarting device… [                                       ]
>
> Writing… [                                       ]
>
> Decompressing… [                                       ]
>
> Writing…                 [
>
> [   53.309930][  T360] [Firmware Bug]: Unable to handle paging request
> in EFI runtime service
>                                       ]
> failed to write data to efivarfs: Error writing to file descriptor:
> Input/output error
>
>
> And dmesg shows:
>
> [   53.309930] [    T360] [Firmware Bug]: Unable to handle paging
> request in EFI runtime service
> [   53.321038] [   T2422] ------------[ cut here ]------------
> [   53.321047] [   T2422] WARNING: CPU: 42 PID: 2422 at
> drivers/firmware/efi/runtime-wrappers.c:341 __efi_queue_work+0xe4/0x120
> [   53.321062] [   T2422] Modules linked in: af_packet nft_fib_inet
> nft_fib_ipv4 nft_fib_ipv6 nft_fib nft_reject_inet nf_reject_ipv4
> nf_reject_ipv6 nft_reject nft_ct nft_chain_nat ebtable_nat
> ebtable_broute rfkill ip6table_nat ip6table_mangle ip6table_raw
> ip6table_security iptable_nat nf_nat nf_conntrack nf_defrag_ipv6
> nf_defrag_ipv4 iptable_mangle iptable_raw iptable_security
> ebtable_filter ebtables ip6table_filter ip6_tables qrtr nf_tables
> iptable_filter binfmt_misc joydev cdc_subset cdc_ether usbnet cdc_acm
> mii nls_iso8859_1 nls_cp437 vfat fat snd_usb_audio snd_usbmidi_lib
> snd_hwdep snd_ump snd_rawmidi uas snd_seq_device usb_storage mc snd_pcm
> sd_mod scsi_dh_emc snd_timer scsi_dh_rdac scsi_dh_alua snd hid_generic
> sg soundcore scsi_mod usbhid scsi_common acpi_ipmi ipmi_ssif
> ipmi_devintf tiny_power_button igb arm_spe_pmu ipmi_msghandler button
> arm_cmn acpiphp_ampere_altra arm_dmc620_pmu arm_dsu_pmu cppc_cpufreq
> nvme_fabrics fuse nvme_keyring loop efi_pstore dm_mod nfnetlink
> dmi_sysfs ip_tables x_tables aes_ce_blk aes_ce_cipher
> [   53.321224] [   T2422]  crct10dif_ce xhci_pci xhci_pci_renesas
> polyval_ce polyval_generic ghash_ce gf128mul xhci_hcd sm4 sha2_ce nvme
> sha256_arm64 usbcore sha1_ce nvme_core sbsa_gwdt ast nvme_auth
> i2c_algo_bit usb_common xgene_hwmon gpio_dwapb btrfs blake2b_generic
> libcrc32c xor xor_neon raid6_pq i2c_dev efivarfs
> [   53.321279] [   T2422] CPU: 42 UID: 0 PID: 2422 Comm: fwupd Tainted:
> G          I        6.11.8-1-default #1 openSUSE Tumbleweed
> 1400000003000000474e5500ae3eced04b985462
> [   53.321290] [   T2422] Tainted: [I]=FIRMWARE_WORKAROUND
> [   53.321293] [   T2422] Hardware name: Adlink Ampere Altra Developer
> Platform/COM-HPC-Carrier, BIOS TianoCore 24.12.02-01 (SYS:
> 2.10.20230517) 12/02/2024
> [   53.321296] [   T2422] pstate: 60400009 (nZCv daif +PAN -UAO -TCO
> -DIT -SSBS BTYPE=--)
> [   53.321303] [   T2422] pc : __efi_queue_work+0xe4/0x120
> [   53.321308] [   T2422] lr : __efi_queue_work+0xd0/0x120
> [   53.321312] [   T2422] sp : ffff80008583b940
> [   53.321315] [   T2422] x29: ffff80008583b940 x28: ffff07ff8bcc4500
> x27: 0000000000000000
> [   53.321324] [   T2422] x26: 0000000000001208 x25: ffff07ff94859c00
> x24: 0000000000000067
> [   53.321332] [   T2422] x23: ffff07ff94859800 x22: ffff07ff94859c00
> x21: 0000000000001202
> [   53.321339] [   T2422] x20: ffffaa255f9655a8 x19: ffffaa255f965548
> x18: 0000000000000001
> [   53.321345] [   T2422] x17: ffff07ff90946340 x16: ffffaa255d6b3198
> x15: 000000000000037d
> [   53.321352] [   T2422] x14: 0000000000000001 x13: 0000000000000000
> x12: 0000000000000800
> [   53.321359] [   T2422] x11: 071c71c71c71c71c x10: 0000000000001bc0 x9
> : ffffaa255da39d18
> [   53.321366] [   T2422] x8 : ffff07ff8bcc6120 x7 : 0000000000000000 x6
> : 00000000000003e8
> [   53.321372] [   T2422] x5 : 00000000410fd0c0 x4 : 0000000000300001 x3
> : 0000000000000000
> [   53.321379] [   T2422] x2 : 0000000000000000 x1 : 8000000000000015 x0
> : 8000000000000015
> [   53.321385] [   T2422] Call trace:
> [   53.321388] [   T2422]  __efi_queue_work+0xe4/0x120
> [   53.321392] [   T2422]  virt_efi_set_variable+0x74/0xe0
> [   53.321398] [   T2422]  efivar_set_variable_locked+0x7c/0x100
> [   53.321402] [   T2422]  efivar_entry_set_get_size+0x9c/0x170
> [efivarfs 1400000003000000474e55008e4f4f0ee8473f7a]
> [   53.321414] [   T2422]  efivarfs_file_write+0x140/0x2e0 [efivarfs
> 1400000003000000474e55008e4f4f0ee8473f7a]
> [   53.321421] [   T2422]  vfs_write+0xdc/0x370
> [   53.321427] [   T2422]  ksys_write+0x78/0x120
> [   53.321431] [   T2422]  __arm64_sys_write+0x24/0x40
> [   53.321435] [   T2422]  invoke_syscall+0x6c/0x100
> [   53.321443] [   T2422]  el0_svc_common.constprop.0+0xc8/0xf0
> [   53.321450] [   T2422]  do_el0_svc+0x24/0x38
> [   53.321457] [   T2422]  el0_svc+0x3c/0x170
> [   53.321464] [   T2422]  el0t_64_sync_handler+0x120/0x130
> [   53.321470] [   T2422]  el0t_64_sync+0x1a8/0x1b0
> [   53.321475] [   T2422] ---[ end trace 0000000000000000 ]---
> [   53.321489] [   T2422] efi: EFI Runtime Services are disabled!
>
>
> I have no idea how to go about debugging why the SetVariable call is
> causing the crash. Is it likely to be the way I've got dbxDefault set
> up, or does anyone know how I could debug it further?
>
>

This is definitely going to be tricky to debug.

If this firmware does not have the Altra/eMAG bug, i.e., if you *don't* see

EFI stub: Working around broken SetVirtualAddressMap()

on the console right before Linux boots, the runtime services will be
mapped 1:1 wrt their boot time mappings, and so it should be possible
to load the boot time symbols and use them for debugging SetVariable()
at runtime.

Alternatively, if you have multiple UARTs, you could use a separate
one for DEBUG output and keep it enabled while running under the OS.
You will need to create a runtime mapping for it in this case, similar
to e.g., how the PL031 driver creates a mapping for its MMIO registers
so that the GetTime boot services can access them. Note that you will
need to hide this UART from the OS description too.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120860): https://edk2.groups.io/g/devel/message/120860
Mute This Topic: https://groups.io/mt/109889108/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



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

end of thread, other threads:[~2024-12-03  9:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-02 21:25 [edk2-devel] Debugging EFI Runtime crash when trying to update DBX for Secure Boot in Linux (fwupdmgr update) Rebecca Cran
2024-12-02 23:29 ` Pedro Falcato via groups.io
2024-12-02 23:39   ` Rebecca Cran
2024-12-02 23:47     ` Pedro Falcato via groups.io
2024-12-03  9:13 ` Ard Biesheuvel via groups.io

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox