On Sat Feb 22, 2025 at 11:59 AM CET, Aurelien Jarno wrote:
> Starting with version 6.13.3-1~exp1, the riscv64 kernel is shipped as a
> EFI binary with the payload compressed with zstd (using the EFI_ZBOOT
> config option). In addition to breaking non-EFI systems, this change

Breaks non-EFI systems. Isn't that like 95+% of arm64 boards?

On Mon Feb 24, 2025 at 7:18 PM CET, Aurelien Jarno wrote:
> Let me summarize the situation for external reviewers.
> ...
> I was told ... Debian Installer does not support non-UEFI

Wrong.

> The situation worsened when I realized that the changes do not even work
> on a real riscv64 board installed using the standard Debian installer:

Testing on real hardware seems useful ...

> Sure this has been tested as mentioned in the MR [2], but it appears

The MR indicates it has been tested with QEMU.
Someone said: "arm64 build *looks* good to me" (emphasis mine)

If it was tested on real hardware it would have said so and mentioned
on which hardware. It doesn't, so it's safe to assume it was NOT tested
on real hardware.

> that booting a kernel with QEMU + EDK2 is not comparable to booting a
> kernel with a real board + U-Boot + Grub.

Indeed. You can configure QEMU to have the features you want/need. That
does not mean that all real boards support that.

> At this stage I have not seen a strong arguments for the original
> commit. The reason that have been given a posteriori are:
> - Smaller images, so often faster load times. 

That's due to compression. You can have compression without EFI.

> - Feature parity between architectures.
> - Fullfils the interface (U)EFI and works fine in edk2.

Right. EDK2. This is a joke, right?

Looking at https://github.com/edk2-porting I see the following repos:
- edk2-rk3588 ("EDK2 UEFI firmware for Rockchip RK3588 platforms")
- edk2-msm ("Broken edk2 port for Qualcomm platforms xD")

So there is *partial* support for some rk3588 based devices and broken
support for (some?) Qualcomm based devices. That's it.
Looking at the contributors for edk2-rk3588 I see there are *3* people
with more then 10 commits ... and one indicates he's inactive.
I haven't found any other indication it has some real momentum.

> I don't believe the above reasons are  enough to enforce UEFI only
> kernel and break the boot on existing boards. In addition the "forky

So I *actually* tested it on my Pine64 Quartz64 Model A board (rk3566)
by upgrading Debian's 6.13.2 kernel (which works) to the 6.13.4 kernel.
FWIW/FTR: My Q64-A board has a self-compiled U-Boot 2024.10-rc6.

Aurelien indicated he wanted this bug to be about RISC-V, so I'll just
attach my serial log in case ppl want to see that.

TL;DR: My U-Boot found out that it CAN'T load Debian's 6.13.4 kernel and
tries the next one till it finds one which it can boot ...
which was my 6.13 kernel (without EFI_ZBOOT).

On Sun Feb 23, 2025 at 10:07 PM CET, Aurelien Jarno wrote:
> On 2025-02-23 21:45, Bastian Blank wrote:
>> Please re-assign to the bootloader package.
>
> I disagree. The bootloader is u-boot and while it might be fixable at
> this level, debian should be bootable on the original firmware.

Most people use the bootloader/U-Boot that was shipped with the product
and never update it. I can understand why as the goal of the bootloader
is to boot the device, so when it does that ... why upgrade?

https://bugs.debian.org/1095745 is about broken backward compatibility
and that is a *kernel* bug.

My 0.02

> [2] https://salsa.debian.org/kernel-team/linux/-/merge_requests/1362
DDR 2d653b3476 typ 24/01/20-15:04:19,fwver: v1.21
ln
LP4/4x derate en, other dram:1x trefi
ddrconfig:7
LPDDR4X, 324MHz
BW=32 Col=10 Bk=8 CS0 Row=17 CS1 Row=17 CS=2 Die BW=8 Size=8192MB

change to: 324MHz
PHY drv:clk:36,ca:36,DQ:29,odt:0
vrefinner:24%, vrefout:41%
dram drv:40,odt:0
clk skew:0x61
rx vref: 34.4%
tx vref: 40.0%

change to: 528MHz
PHY drv:clk:36,ca:36,DQ:29,odt:0
vrefinner:24%, vrefout:41%
dram drv:40,odt:0
clk skew:0x58
rx vref: 34.4%
tx vref: 40.0%

change to: 780MHz
PHY drv:clk:36,ca:36,DQ:29,odt:60
vrefinner:16%, vrefout:41%
dram drv:40,odt:0
clk skew:0x58
rx vref: 16.6%
tx vref: 40.0%

change to: 1056MHz(final freq)
PHY drv:clk:36,ca:36,DQ:29,odt:60
vrefinner:16%, vrefout:22%
dram drv:40,odt:80
clk skew:0x36
WG�8�## Checking hash(es) for config config-1 ... OK
## Checking hash(es) for Image atf-1 ... sha256+ OK
## Checking hash(es) for Image u-boot ... sha256+ OK
## Checking hash(es) for Image fdt-1 ... sha256+ OK
## Checking hash(es) for Image atf-2 ... sha256+ OK
## Checking hash(es) for Image atf-3 ... sha256+ OK
## Checking hash(es) for Image atf-4 ... sha256+ OK
## Checking hash(es) for Image atf-5 ... sha256+ OK
## Checking hash(es) for Image atf-6 ... sha256+ OK
INFO:    Preloader serial: 2
NOTICE:  BL31: v2.3():v2.3-645-g8cea6ab0b:cl, fwver: v1.44
NOTICE:  BL31: Built : 16:36:43, Sep 19 2023
INFO:    GICv3 without legacy support detected.
INFO:    ARM GICv3 driver initialized in EL3
INFO:    pmu v1 is valid 220114
INFO:    l3 cache partition cfg-0
INFO:    dfs DDR fsp_param[0].freq_mhz= 1056MHz
INFO:    dfs DDR fsp_param[1].freq_mhz= 324MHz
INFO:    dfs DDR fsp_param[2].freq_mhz= 528MHz
INFO:    dfs DDR fsp_param[3].freq_mhz= 780MHz
INFO:    Using opteed sec cpu_context!
INFO:    boot cpu mask: 0
INFO:    BL31: Initializing runtime services
WARNING: No OPTEE provided by BL2 boot loader, Booting device without OPTEE 
initialization. SMC`s destined for OPTEE will return SMC_UNK
ERROR:   Error initializing runtime service opteed_fast
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0xa00000
INFO:    SPSR = 0x3c9


U-Boot 2024.10-rc6-00001-g6ae26229b09f (Oct 01 2024 - 17:15:24 +0200)

Model: Pine64 Quartz64 Model A
DRAM:  8 GiB (effective 7.7 GiB)
PMIC:  RK817 (on=0x40, off=0x00)
Core:  320 devices, 26 uclasses, devicetree: separate
MMC:   mmc@fe2b0000: 1, mmc@fe2c0000: 2, mmc@fe310000: 0
Loading Environment from nowhere... OK
In:    serial@fe660000
Out:   serial@fe660000
Err:   serial@fe660000
Model: Pine64 Quartz64 Model A
Net:   No ethernet found.
Hit any key to stop autoboot:  0
Scanning for bootflows in all bootdevs
Seq  Method       State   Uclass    Part  Name                      Filename
---  -----------  ------  --------  ----  ------------------------  
----------------
Scanning global bootmeth 'efi_mgr':
Card did not respond to voltage select! : -110
Card did not respond to voltage select! : -110
No EFI system partition
No EFI system partition
Failed to persist EFI variables
No EFI system partition
Failed to persist EFI variables
No EFI system partition
Failed to persist EFI variables
  0  efi_mgr      ready   (none)       0  <NULL>
** Booting bootflow '<NULL>' with efi_mgr
Loading Boot0000 'mmc 0' failed
EFI boot manager: Cannot load any image
Boot failed (err=-14)
Scanning bootdev 'mmc@fe2b0000.bootdev':
Card did not respond to voltage select! : -110
Scanning bootdev 'mmc@fe310000.bootdev':
  1  extlinux     ready   mmc          5  m...@fe310000.bootdev.part 
/boot/extlinux/extlinux.conf
** Booting bootflow 'mmc@fe310000.bootdev.part_5' with extlinux
U-Boot menu
1:      Debian GNU/Linux trixie/sid 6.13-arm64
2:      Debian GNU/Linux trixie/sid 6.13-arm64 (rescue target)
3:      Debian GNU/Linux trixie/sid 6.13+unreleased-arm64-cknow
4:      Debian GNU/Linux trixie/sid 6.13+unreleased-arm64-cknow (rescue target)
5:      Debian GNU/Linux trixie/sid 6.13-rc2+unreleased-arm64-cknow
6:      Debian GNU/Linux trixie/sid 6.13-rc2+unreleased-arm64-cknow (rescue 
target)
7:      Debian GNU/Linux trixie/sid 6.12.8-arm64
8:      Debian GNU/Linux trixie/sid 6.12.8-arm64 (rescue target)
Enter choice: 1:        Debian GNU/Linux trixie/sid 6.13-arm64
Retrieving file: /boot/vmlinuz-6.13-arm64
Retrieving file: /boot/initrd.img-6.13-arm64
append: root=UUID=024bfeaf-e7f8-45f4-b6eb-ccc2c679f52e ignore_loglevel ro 
rootwait earlycon console=tty0 console=ttyS2,1500000n8 fw_devlink=off
Retrieving file: /usr/lib/linux-image-6.13-arm64/rockchip/rk3566-quartz64-a.dtb
Bad Linux ARM64 Image magic!
2:      Debian GNU/Linux trixie/sid 6.13-arm64 (rescue target)
Retrieving file: /boot/vmlinuz-6.13-arm64
Retrieving file: /boot/initrd.img-6.13-arm64
append: root=UUID=024bfeaf-e7f8-45f4-b6eb-ccc2c679f52e ignore_loglevel ro 
rootwait earlycon console=tty0 console=ttyS2,1500000n8 fw_devlink=off single
Retrieving file: /usr/lib/linux-image-6.13-arm64/rockchip/rk3566-quartz64-a.dtb
Bad Linux ARM64 Image magic!
3:      Debian GNU/Linux trixie/sid 6.13+unreleased-arm64-cknow
Retrieving file: /boot/vmlinuz-6.13+unreleased-arm64-cknow
Retrieving file: /boot/initrd.img-6.13+unreleased-arm64-cknow
append: root=UUID=024bfeaf-e7f8-45f4-b6eb-ccc2c679f52e ignore_loglevel ro 
rootwait earlycon console=tty0 console=ttyS2,1500000n8 fw_devlink=off
Retrieving file: 
/usr/lib/linux-image-6.13+unreleased-arm64-cknow/rockchip/rk3566-quartz64-a.dtb
## Flattened Device Tree blob at 12000000
   Booting using the fdt blob at 0x12000000
Working FDT set to 12000000
   Loading Ramdisk to eaac9000, end eceadef8 ... OK
   Loading Device Tree to 00000000eaab8000, end 00000000eaac8fd6 ... OK
Working FDT set to eaab8000

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x412fd050]
[    0.000000] Linux version 6.13+unreleased-arm64-cknow 
(debian-ker...@lists.debian.org) (aarch64-linux-gnu-gcc-14 (Debian 14.2.0-12) 
14.2.0, GNU ld (GNU Binutils for Debian) 2.43.50.20250
108) #1 SMP Debian 6.13-1~cknow (2025-01-24)
[    0.000000] KASLR enabled
[    0.000000] Machine model: Pine64 Quartz64 Model A
[    0.000000] printk: debug: ignoring loglevel setting.
[    0.000000] efi: UEFI not found.
[    0.000000] earlycon: uart0 at MMIO32 0x00000000fe660000 (options 
'1500000n8')
[    0.000000] printk: legacy bootconsole [uart0] enabled

Attachment: signature.asc
Description: PGP signature

Reply via email to