Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Aug 2018 14:43:49 +0300
From:      Yuri Pankov <yuripv@yuripv.net>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        freebsd-current <freebsd-current@freebsd.org>
Subject:   Re: r336921 broke booting on MBP 2017, EFIRT related
Message-ID:  <b767f852-6e1a-1c02-11eb-5548aea26afe@yuripv.net>
In-Reply-To: <20180829102727.GD2340@kib.kiev.ua>
References:  <499f05f4-4fab-9b31-5d37-83ecb554013c@yuripv.net> <20180829102727.GD2340@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
Konstantin Belousov wrote:
> On Wed, Aug 29, 2018 at 12:37:52PM +0300, Yuri Pankov wrote:
>> Hi,
>>
>> I've noticed that all recent snapshots (ALPHA3, ALPHA2, ALPHA1,
>> 20180802) fail to boot on MBP 2017:
>>
>> kbd0 at kbdmux0
>> netmap: loaded module
>> nexus0
>>
>> Fatal trap 12: page fault while in kernel mode
>> cpuid = 2: apic id = 02
>> fault virtual address  = 0x74c64a50
>> fault code             = supervisor read data, page not present
>> instruction pointer    = 0x20: 0x7abece31
>> stack pointer          = 0x28: 0xffffffff82b2f7c0
>> frame pointer          = 0x28: 0xffffffff82b2f810
>> code segment           = base 0x0, limit 0xfffff, type 0x1b
>>                          = DPL 0, pres 1, long 1, def32 0, gran 1
>> processor eflags       = interrupt enabled, resume, IOPL = 0
>> current process        = 0 (swapper)
>> [ thread pid 0 tid 100000 ]
>> Stopped at      0x7abece31:    calll   *0x18(%rax)
>> db>
>>
>> Sadly, there's no support for internal keyboard yet (it's connected via
>> SPI), and external USB one stops working.
>>
>> A (not so quick) bisect is pointing at r336921, which enabled EFIRT.
>>
>> Some questions here:
>> - is this something that can/should be fixed?
>> - can we print some "enabling EFIRT" message to the console to make
>>     guesses about the problem source a bit easier?
> 
> It is not in 'enabling'.  Looking at the faulting VA, I believe that
> it occurs inside the BIOS code.
> 
> Disable efirt by removing the kernel option, then try to load the module
> at runtime.  Does it still fault ?  Also, get the efi mem map for the
> machine and look at which region the faulting address and the faulting
> instruction belong.

kldload'ing the efirt module gets the same fault.  Several top lines of 
backtrace:

kernphys() at 0x7abece31
efi_get_time() at efi_get_time+0xd9
efirtc_probe() at efirtc_probe+0x17



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b767f852-6e1a-1c02-11eb-5548aea26afe>