Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 09 Feb 2017 17:31:28 +0200
From:      Toomas Soome <tsoome@me.com>
To:        Karl Denninger <karl@denninger.net>
Cc:        freebsd-current@freebsd.org
Subject:   Re: Crochet build for Pi3 fails to boot on r313441 (and later), works on r313109
Message-ID:  <0B4B40AA-E654-4A71-92B0-D8E6CD234B63@me.com>
In-Reply-To: <5128b9a9-1186-8c6c-6227-e5e8a087cf89@denninger.net>
References:  <517ab0d5-412a-35dd-7d0d-d8297af43b46@denninger.net> <4a6f872b-cee1-57e5-7a72-a1d445f9926f@denninger.net> <F4D44CDD-BEF6-4E21-848A-745B88440617@me.com> <5128b9a9-1186-8c6c-6227-e5e8a087cf89@denninger.net>

next in thread | previous in thread | raw e-mail | index | archive | help

> On 9. veebr 2017, at 17:05, Karl Denninger <karl@denninger.net> wrote:
>=20
>=20
> On 2/9/2017 08:58, Toomas Soome wrote:
>>> On 9. veebr 2017, at 16:36, Karl Denninger <karl@denninger.net> =
<mailto:karl@denninger.net> wrote:
>>>=20
>>>=20
>>> On 2/8/2017 16:18, Karl Denninger wrote:
>>>> r313441 blows up on the Pi3 in /boot/loader.efi with:
>>>>=20
>>>> FreeBSD/arm64 EFI loader, Revision 1.1
>>>> (Tue Feb  7 15:15:52 CST 2017 freebsd@NewFS.denninger.net =
<mailto:freebsd@NewFS.denninger.net>)
>>>> Failed to start image provided by UFS (14)
>>>> "Synchronous Abort" handler, esr 0x96000004
>>>> ELR:     3af62cec
>>>> LR:      3af61d60
>>>> x0 : 0000000000000001 x1 : 0000000000000001
>>>> x2 : 000000003afeb000 x3 : 000000000000003f
>>>> x4 : 0000000000000020 x5 : 0000000000000010
>>>> x6 : 0000000000000000 x7 : 0000000039b260a4
>>>> x8 : 000000003af61d48 x9 : 000000000000000d
>>>> x10: 0000000000000030 x11: 0000000000000000
>>>> x12: 0000000000000000 x13: 0000000000000002
>>>> x14: 0000000000000000 x15: 0000000000000000
>>>> x16: 0000000000000000 x17: 0000000000000000
>>>> x18: 000000003ab30df8 x19: 0000000037a16008
>>>> x20: 0000000000000000 x21: 0000000000000000
>>>> x22: 0000000039b28000 x23: 0000000039b1d49c
>>>> x24: 0000000039b28850 x25: 000000003ab3d740
>>>> x26: 000000003af839a0 x27: 0000000039b2e3e8
>>>> x28: 0000000000000000 x29: 000000003ab2ef60
>>>>=20
>>>> Resetting CPU ...
>>>>=20
>>>> If you copy in a loader.efi from an earlier build (e.g. r313109) =
then the system boots but complains about SMP problems, fails to start =
any of the other CPUs (although it sees them) and panics before it =
reaches a login prompt with what appears to be a problem reading the SD =
card (I also get a couple of lor's in here too..... not sure if those =
are "real" or false positives)
>>>>=20
>>>> B
>>> This has been isolated to r313333 in sys/boot/efi; reverting the EFI
>>> loader to a previous revision stops the crash.
>>>=20
>>> Filed here: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D216940=
 <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D216940>; =
<https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D216940>; =
<https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D216940>;
>>>=20
>> Does it still crash with r313442? I think it does and this is why:
>>=20
>> =46rom your log above, the hint is "Failed to start image provided by =
UFS (14)=E2=80=9D, so what we can guess here is that for some reason the =
loader.efi main() failed to detect the boot device, and did return back =
to boot1.
>>=20
>> Boot1 did print out this error message and did call panic(). So, the =
question is, why it is failing to detect the root fs handle. I=E2=80=99ll =
try to check if I can replicate the issue with x86 + ufs.
>>=20
>> BTW: sorry for trouble:)
>>=20
>> rgds,
>> toomas
>>=20
> Yes.
>=20
> It's isolated to that particular revision, which appears to have =
reworked the enumeration of the available devices to boot from.  =
Reverting only sys/boot/efi to anything before 313333 (e.g. "svn update =
-r 313332 ." in src/sys/boot/efi) and rebuilding results in a loader.efi =
that successfully loads and starts the kernel.
>=20

Well, the x86 version does not appear to have problems with finding the =
ufs devices. So this has to be some sort of corner case related to arm:( =
unfortunately I do not have much variants to test arm, except qemu=E2=80=A6=
 so some help would be needed there. Since the only crash is from boot1 =
call to panic, I am pretty sure the disk detection and setup was ok, so =
we should get disk list if we insert something like:

for (i =3D 0; devsw[i] !=3D NULL; i++) {
        if (devsw[i]->dv_print !=3D NULL){
            if (devsw[i]->dv_print(verbose))
                break;
        }
}

after dv_init() loop.

If thats true, then it should not take too much to find why we fail to =
get the handle for root fs in case of arm=E2=80=A6=20

rgds,
toomas





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0B4B40AA-E654-4A71-92B0-D8E6CD234B63>