I found workaround.Rebuilt bootx64.efi with path equal to "boot.cfg" instead of "esp:/EFI/NetBSD/boot.cfg".
It works with this adjustment. So bootx64.efi has problem with above path on this machine.I am not familiar with history of this efiboot development and how in current code object "esp:" is created,
but it seems that run-time function open() has problem.open() should return error due to invalid path and not hang. Maybe it can help to add in C code some test like:
if(files on "esp:..." are readable) { use open("esp:/EFI/NetBSD/boot.cfg",..) } else { use open("boot.cfg",...) or printf(error message) }This HW (HP Compaq Elite 8300 CMT) is quite old (16years), it supports as BIOS as EFI boot and it seems that also some mix of both.
On 2/19/25 09:19, Martin Husemann wrote:
On Tue, Feb 18, 2025 at 07:05:36PM +0100, Peter Skvarka wrote:and hangs inside of open(). open() uses config path from: #define EFIBOOTCFG_FILENAME "esp:/EFI/NetBSD/boot.cfg" it is seen on my printf messages. I have present valid boot.cfg there. When I remove boot.cfg the result is the same, it hangs inside of open() Why open() is not work on that older machine ? Any ideas ?That sounds like a bug in your UEFI firmware. Maybe it does not like the exact file system format the ESP uses? You could try saving the contents, reformatting with various newfs_msdos options (especially -F 12 ... 32) and restoring the content. Martin