Date: Mon, 19 Feb 2018 15:32:55 -0700 From: Warner Losh <imp@bsdimp.com> To: Devin Teske <dteske@freebsd.org> Cc: Kyle Evans <kevans@freebsd.org>, =?UTF-8?Q?Juan_Ram=C3=B3n_Molina_Menor?= <listjm@club.fr>, FreeBSD Current <freebsd-current@freebsd.org> Subject: Re: ACPI panic on boot with new Lua loader and other minor issues Message-ID: <CANCZdfqLxkFb3k5nZW34m-GS48WNwio1ueJLU0vgX0-N7Br36g@mail.gmail.com> In-Reply-To: <6EB9705C-92AC-4952-B1F6-642DCD4701F1@freebsd.org> References: <2AFF3AE4-8740-4776-9D8D-7D709EE051C6@gmail.com> <1b9e58fe-2616-b04b-13c2-fee78a33ad6e@club.fr> <CACNAnaFNv5LwDv3Z2dgPe%2Bb%2B3La%2B%2B-4CPNECug5XCdaTT_uo3A@mail.gmail.com> <6EB9705C-92AC-4952-B1F6-642DCD4701F1@freebsd.org>
index | next in thread | previous in thread | raw e-mail
On Mon, Feb 19, 2018 at 2:57 PM, Devin Teske <dteske@freebsd.org> wrote:
>
>
> > On Feb 19, 2018, at 2:21 PM, Kyle Evans <kevans@freebsd.org> wrote:
> >
> > It seems that the Forth loader might be doing something sneaky and
> > replacing the standard common "boot" with a Forth boot that handles
> > this a lot better. CC'ing dteske@ so they can confirm.
>
> I can indeed confirm this as fact.
>
> Not able to help much because I am driving cross-country (San Francisco to
> Orlando) right now with the spouse and dog.
>
> We get back March 3rd, but I will be checking-in from time to time for
> sporadic responses during downtime.
>
The command in loader.4th is defined as:
: boot
0= if ( interpreted ) get_arguments then
\ Unload only if a path was passed
dup if
>r over r> swap
c@ [char] - <> if
0 1 unload drop
else
s" kernelname" getenv? if ( a kernel has been loaded )
try-menu-unset
bootmsg 1 boot exit
then
load_kernel_and_modules
?dup if exit then
try-menu-unset
bootmsg 0 1 boot exit
then
else
s" kernelname" getenv? if ( a kernel has been loaded )
try-menu-unset
bootmsg 1 boot exit
then
load_kernel_and_modules
?dup if exit then
try-menu-unset
bootmsg 0 1 boot exit
then
load_kernel_and_modules
?dup 0= if bootmsg 0 1 boot then
;
The thing to know here is when you see 'boot' as part of above script, it's
calling the 'boot' cli command, not itself recursively.
I can help do more interpretation of the details if you need Kyle. Not sure
how much to spell out, but the brief pseudo code is:
If there were any arguments that didn't start with '-', unload.
otherwise if kernelname is in in the environment, run the 'menu-unset'
forth word if it exists, print the boot message and boot.
Otherwise load the kernel and modules, run the 'menu-unset' forth word
(if it exists), print the boot message and boot with kernelname
Otherwise load the kernel and modules, run the 'menu-unset' forth word (if
it exists), print the boot message and boot with kernelname
if all that fails, load the kernel and modules and if that works boot them.
Warner
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfqLxkFb3k5nZW34m-GS48WNwio1ueJLU0vgX0-N7Br36g>
