For posterity, the problem still stands as of now (the latest Ubuntu 22.04 and all latest packages). It in fact exists and in fact steadily reproduces. It is no longer convenient for me to reproduce it in person. 1. Remove the previously activated safety guard. # dpkg --set-selections < grub-common install > grub-efi-riscv64-bin install > grub-efi-riscv64 install > grub2-common install > u-boot-nezha install > ENDOFTEXT 2. Let the broken updates install. # apt-get update && apt-get dist-upgrade Hit:1 http://ports.ubuntu.com/ubuntu-ports jammy InRelease Get:2 http://ports.ubuntu.com/ubuntu-ports jammy-updates InRelease [119 kB] Get:3 http://ports.ubuntu.com/ubuntu-ports jammy-backports InRelease [109 kB] Get:4 http://ports.ubuntu.com/ubuntu-ports jammy-security InRelease [110 kB] Get:5 http://ports.ubuntu.com/ubuntu-ports jammy-updates/main riscv64 Packages [619 kB] Get:6 http://ports.ubuntu.com/ubuntu-ports jammy-updates/main Translation-en [245 kB] Get:7 http://ports.ubuntu.com/ubuntu-ports jammy-updates/restricted Translation-en [179 kB] Fetched 1380 kB in 16s (88.2 kB/s) Reading package lists... Done Reading package lists... Done Building dependency tree... Done Reading state information... Done Calculating upgrade... Done The following packages will be upgraded: grub-common grub-efi-riscv64 grub-efi-riscv64-bin grub2-common linux-libc-dev u-boot-nezha 6 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 4567 kB/5871 kB of archives. After this operation, 55.3 kB of additional disk space will be used. Do you want to continue? [Y/n] Get:1 http://ports.ubuntu.com/ubuntu-ports jammy-updates/main riscv64 grub2-common riscv64 2.06-2ubuntu7.2 [674 kB] Get:2 http://ports.ubuntu.com/ubuntu-ports jammy-updates/main riscv64 grub-common riscv64 2.06-2ubuntu7.2 [2090 kB] Get:3 http://ports.ubuntu.com/ubuntu-ports jammy-updates/main riscv64 grub-efi-riscv64 riscv64 2.06-2ubuntu7.2 [57.4 kB] Get:4 http://ports.ubuntu.com/ubuntu-ports jammy-updates/main riscv64 grub-efi-riscv64-bin riscv64 2.06-2ubuntu7.2 [1078 kB] Get:5 http://ports.ubuntu.com/ubuntu-ports jammy-updates/universe riscv64 u-boot-nezha all 2022.04+git20220405.7446a472-0ubuntu0.3 [667 kB] Fetched 4567 kB in 2s (2563 kB/s) Preconfiguring packages ... (Reading database ... 123067 files and directories currently installed.) Preparing to unpack .../0-grub2-common_2.06-2ubuntu7.2_riscv64.deb ... Unpacking grub2-common (2.06-2ubuntu7.2) over (2.06-2ubuntu7.1) ... Preparing to unpack .../1-grub-common_2.06-2ubuntu7.2_riscv64.deb ... Unpacking grub-common (2.06-2ubuntu7.2) over (2.06-2ubuntu7.1) ... Preparing to unpack .../2-grub-efi-riscv64_2.06-2ubuntu7.2_riscv64.deb ... Unpacking grub-efi-riscv64 (2.06-2ubuntu7.2) over (2.06-2ubuntu7.1) ... Preparing to unpack .../3-grub-efi-riscv64-bin_2.06-2ubuntu7.2_riscv64.deb ... Unpacking grub-efi-riscv64-bin (2.06-2ubuntu7.2) over (2.06-2ubuntu7.1) ... Preparing to unpack .../4-linux-libc-dev_5.15.0-88.98_riscv64.deb ... Unpacking linux-libc-dev:riscv64 (5.15.0-88.98) over (5.15.0-87.97) ... Preparing to unpack .../5-u-boot-nezha_2022.04+git20220405.7446a472-0ubuntu0.3_all.deb ... Unpacking u-boot-nezha (2022.04+git20220405.7446a472-0ubuntu0.3) over (2022.04+git20220405.7446a472-0ubuntu0.2) ... Setting up linux-libc-dev:riscv64 (5.15.0-88.98) ... Setting up grub-common (2.06-2ubuntu7.2) ... Installing new version of config file /etc/grub.d/20_linux_xen ... Setting up grub-efi-riscv64-bin (2.06-2ubuntu7.2) ... Setting up u-boot-nezha (2022.04+git20220405.7446a472-0ubuntu0.3) ... 2029+0 records in 2029+0 records out 1038848 bytes (1.0 MB, 1014 KiB) copied, 0.386448 s, 2.7 MB/s Setting up grub2-common (2.06-2ubuntu7.2) ... Setting up grub-efi-riscv64 (2.06-2ubuntu7.2) ... Trying to migrate /boot/efi into esp config Installing grub to /boot/efi. Installing for riscv64-efi platform. grub-install: warning: EFI variables cannot be set on this system. grub-install: warning: You will have to complete the GRUB setup manually. Installation finished. No error reported. Sourcing file `/etc/default/grub' Sourcing file `/etc/default/grub.d/cmdline.cfg' Sourcing file `/etc/default/grub.d/init-select.cfg' Generating grub configuration file ... Found linux image: /boot/vmlinuz-5.19.0-1015-allwinner Found initrd image: /boot/initrd.img-5.19.0-1015-allwinner Found linux image: /boot/vmlinuz-5.19.0-1014-allwinner Found initrd image: /boot/initrd.img-5.19.0-1014-allwinner Warning: os-prober will not be executed to detect other bootable partitions. Systems on them will not be added to the GRUB boot configuration. Check GRUB_DISABLE_OS_PROBER documentation entry. Adding boot menu entry for UEFI Firmware Settings ... done Processing triggers for man-db (2.10.2-1) ... Processing triggers for install-info (6.8-4build1) ... Scanning processes... Scanning candidates... Scanning processor microcode... Scanning linux images... Running kernel seems to be up-to-date. Failed to check for processor microcode upgrades. Restarting services... Service restarts being deferred: systemctl restart cron.service /etc/needrestart/restart.d/dbus.service systemctl restart networkd-dispatcher.service systemctl restart systemd-logind.service systemctl restart unattended-upgrades.service No containers need to be restarted. No user sessions are running outdated binaries. No VM guests are running outdated hypervisor (qemu) binaries on this host. 3. Reboot and watch the bootloader unable to boot. [1979133.770531] reboot: Restarting system [27]HELLO! BOOT0 is starting! [29]BOOT0 commit : 20220228+g0ad88b [33]set pll start [35]periph0 has been enabled [38]set pll end [39]board init ok [41]DRAM only have internal ZQ!! [44]get_pmu_exist() = -1 [46]ddr_efuse_type: 0x0 [49][AUTO DEBUG] two rank and full DQ! [53]ddr_efuse_type: 0x0 [56][AUTO DEBUG] rank 0 row = 15 [59][AUTO DEBUG] rank 0 bank = 8 [62][AUTO DEBUG] rank 0 page size = 2 KB [65][AUTO DEBUG] rank 1 row = 15 [68][AUTO DEBUG] rank 1 bank = 8 [71][AUTO DEBUG] rank 1 page size = 2 KB [75]rank1 config same as rank0 [78]DRAM BOOT DRIVE INFO: V0.24 [81]DRAM CLK = 792 MHz [83]DRAM Type = 3 (2:DDR2,3:DDR3) [86]DRAMC ZQ value: 0x7b7bfb [89]DRAM ODT value: 0x42. [91]ddr_efuse_type: 0x0 [94]DRAM SIZE =1024 M [98]DRAM simple test OK. [100]dram size =1024 [102]card no is 0 [103]sdcard 0 line count 4 [106][mmc]: mmc driver ver 2021-04-2 16:45 [115][mmc]: Wrong media type 0x0 [118][mmc]: ***Try SD card 0*** [127][mmc]: HSSDR52/SDR25 4 bit [129][mmc]: 50000000 Hz [132][mmc]: 118900 MB [134][mmc]: ***SD/MMC 0 init OK!!!*** [182]Loading boot-pkg Succeed(index=1). [185]Entry_name = opensbi [188]Entry_name = dtb [191]Entry_name = u-boot [195]Adding DRAM info to DTB. [200]Jump to second Boot. OpenSBI v1.3 ____ _____ ____ _____ / __ \ / ____| _ \_ _| | | | |_ __ ___ _ __ | (___ | |_) || | | | | | '_ \ / _ \ '_ \ \___ \| _ < | | | |__| | |_) | __/ | | |____) | |_) || |_ \____/| .__/ \___|_| |_|_____/|___/_____| | | |_| Platform Name : Allwinner D1 Nezha Platform Features : medeleg Platform HART Count : 1 Platform IPI Device : aclint-mswi Platform Timer Device : aclint-mtimer @ 24000000Hz Platform Console Device : uart8250 Platform HSM Device : sun20i-d1-ppu Platform PMU Device : Platform Reboot Device : sunxi-wdt-reset Platform Shutdown Device : --- Platform Suspend Device : --- Platform CPPC Device : --- Firmware Base : 0x40000000 Firmware Size : 194 KB Firmware RW Offset : 0x20000 Firmware RW Size : 66 KB Firmware Heap Offset : 0x28000 Firmware Heap Size : 34 KB (total), 2 KB (reserved), 9 KB (used), 22 KB (free) Firmware Scratch Size : 4096 B (total), 760 B (used), 3336 B (free) Runtime SBI Version : 1.0 Domain0 Name : root Domain0 Boot HART : 0 Domain0 HARTs : 0* Domain0 Region00 : 0x0000000014008000-0x000000001400bfff M: (I,R,W) S/U: () Domain0 Region01 : 0x0000000014000000-0x0000000014007fff M: (I,R,W) S/U: () Domain0 Region02 : 0x0000000040000000-0x000000004001ffff M: (R,X) S/U: () Domain0 Region03 : 0x0000000040020000-0x000000004003ffff M: (R,W) S/U: () Domain0 Region04 : 0x0000000000000000-0xffffffffffffffff M: (R,W,X) S/U: (R,W,X) Domain0 Next Address : 0x000000004a000000 Domain0 Next Arg1 : 0x0000000044000000 Domain0 Next Mode : S-mode Domain0 SysReset : yes Domain0 SysSuspend : yes Boot HART ID : 0 Boot HART Domain : root Boot HART Priv Version : v1.11 Boot HART Base ISA : rv64imafdcvx Boot HART ISA Extensions : time Boot HART PMP Count : 8 Boot HART PMP Granularity : 2048 Boot HART PMP Address Bits: 38 Boot HART MHPM Count : 29 Boot HART MIDELEG : 0x0000000000020222 Boot HART MEDELEG : 0x000000000000b109 U-Boot 2022.04 (Jul 20 2023 - 09:56:44 +0000) CPU: rv64imafdc Model: Allwinner D1 Nezha DRAM: 1 GiB sunxi_set_gate: (CLK#24) unhandled Core: 56 devices, 20 uclasses, devicetree: board MMC: mmc@4020000: 0, mmc@4021000: 1 Loading Environment from nowhere... OK In: serial@2500000 Out: serial@2500000 Err: serial@2500000 Net: Warning: ethernet@4500000 (eth0) using random MAC address - d2:04:33:be:08:f3 eth0: ethernet@4500000 Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... libfdt fdt_check_header(): FDT_ERR_BADMAGIC Scanning disk mmc@4020000.blk... Scanning disk mmc@4021000.blk... Disk mmc@4021000.blk not ready Found 7 disks ** Unable to read file ubootefi.var ** Failed to load EFI variables BootOrder not defined EFI boot manager: Cannot load any image Scanning mmc 0:f... libfdt fdt_check_header(): FDT_ERR_BADMAGIC BootOrder not defined EFI boot manager: Cannot load any image Found EFI removable media binary efi/boot/bootriscv64.efi Invalid FAT entry ** Unable to read file efi/boot/bootriscv64.efi ** Failed to load 'efi/boot/bootriscv64.efi' libfdt fdt_check_header(): FDT_ERR_BADMAGIC No UEFI binary known at 0x40080000 EFI LOAD FAILED: continuing... starting USB... Bus usb@4101000: USB EHCI 1.00 Bus usb@4101400: USB OHCI 1.0 Bus usb@4200000: USB EHCI 1.00 Bus usb@4200400: USB OHCI 1.0 scanning bus usb@4101000 for devices... 1 USB Device(s) found scanning bus usb@4101400 for devices... 1 USB Device(s) found scanning bus usb@4200000 for devices... 1 USB Device(s) found scanning bus usb@4200400 for devices... 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found Device 0: unknown device BOOTP broadcast 1 BOOTP broadcast 2 BOOTP broadcast 3 BOOTP broadcast 4 BOOTP broadcast 5 BOOTP broadcast 6 BOOTP broadcast 7 BOOTP broadcast 8 BOOTP broadcast 9 BOOTP broadcast 10 BOOTP broadcast 11 BOOTP broadcast 12 BOOTP broadcast 13 BOOTP broadcast 14 BOOTP broadcast 15 BOOTP broadcast 16 BOOTP broadcast 17 Retry time exceeded; starting again missing environment variable: pxeuuid Retrieving file: pxelinux.cfg/01-d2-04-33-be-08-f3 *** ERROR: `serverip' not set Retrieving file: pxelinux.cfg/00000000 *** ERROR: `serverip' not set Retrieving file: pxelinux.cfg/0000000 *** ERROR: `serverip' not set Retrieving file: pxelinux.cfg/000000 *** ERROR: `serverip' not set Retrieving file: pxelinux.cfg/00000 *** ERROR: `serverip' not set Retrieving file: pxelinux.cfg/0000 *** ERROR: `serverip' not set Retrieving file: pxelinux.cfg/000 *** ERROR: `serverip' not set Retrieving file: pxelinux.cfg/00 *** ERROR: `serverip' not set Retrieving file: pxelinux.cfg/0 *** ERROR: `serverip' not set Retrieving file: pxelinux.cfg/default-riscv-sunxi-sunxi *** ERROR: `serverip' not set Retrieving file: pxelinux.cfg/default-riscv-sunxi *** ERROR: `serverip' not set Retrieving file: pxelinux.cfg/default-riscv *** ERROR: `serverip' not set Retrieving file: pxelinux.cfg/default *** ERROR: `serverip' not set Config file not found BOOTP broadcast 1 BOOTP broadcast 2 BOOTP broadcast 3 BOOTP broadcast 4 BOOTP broadcast 5 BOOTP broadcast 6 BOOTP broadcast 7