Re: Loader can't find /boot/ua/loader.lua on UFS after main-n255828-18054d0220c

From: Filippo Moretti <filippomore_at_yahoo.com>
Date: Mon, 06 Jun 2022 09:46:21 UTC
 
Is it now safe to attempt updating current with UFS?SincerelyFilippo
    On Wednesday, June 1, 2022 at 01:07:20 AM GMT+2, Warner Losh <imp@bsdimp.com> wrote:  
 
 

On Tue, May 31, 2022 at 3:55 PM Olivier Cochard-Labbé <olivier@freebsd.org> wrote:

Same problem here:- I'm building FreeBSD head on a builder machine, and NFS mounting its /usr/src and /usr/obj to 4 others
Results:- 2 of them, UEFI+ZFS machines works great ((Thinkpad T420 and AMD Epyc with Tyan motherboard)- 2 of them, BIOS+UFS machines meet this "can't find /boot/ua/loader.lua" (HP microserver and PC Engines APU2)
I had to boot from an USB stick, mounting the system partition and "cp boot/loader_4th.old boot/loader".

Kirk found that the boot loader defines MAXPHYS to be 128k, which only is for the BIOS loader since it's 32-bit. UEFIis 64-bits and just works because it's define to 1MB. So the UEFI machines with ZFS are doubly safe. Kirk has a changethat relaxes the check and I think we should do this
diff --git a/sys/sys/param.h b/sys/sys/param.h
index 1f720ed31142..8cd9616e872e 100644
--- a/sys/sys/param.h
+++ b/sys/sys/param.h
@@ -176,7 +176,7 @@
 #define DFLTPHYS       (64 * 1024)     /* default max raw I/O transfer size */
 #endif
 #ifndef MAXPHYS                                /* max raw I/O transfer size */
-#ifdef __ILP32__
+#if defined(__ILP32__) && !defined(_STANDALONE) /* Always 1M for loader */
 #define MAXPHYS                (128 * 1024)
 #else
 #define MAXPHYS                (1024 * 1024)

as well to ensure that the loader always assumes a larger MAXPHYS (though I'd kinda like the loader to notdefine it at all, but that is a longer conversation after reflection not a quick fix to get people back up andrunning).
Warner