Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 18 Jul 2015 09:57:59 +0200
From:      Anders Bolt-Evensen <andersbo87@icloud.com>
To:        freebsd-current@freebsd.org
Subject:   SV: UEFI boot fail on higher resolutions (Re: Acer E3-112 and UEFI)
Message-ID:  <056801d0c12f$78d800f0$6a8802d0$@icloud.com>
In-Reply-To: <24273.85.229.92.85.1435690356.squirrel@webmail.alvermark.net>
References:  <20876.213.113.68.53.1419950410.squirrel@webmail.alvermark.net> <54A2CC2D.3040105@freebsd.org> <42818.213.113.68.53.1420039470.squirrel@webmail.alvermark.net> <E86A0514-6C11-4592-BB62-0F992727AFDC@alvermark.net> <24273.85.229.92.85.1435690356.squirrel@webmail.alvermark.net>

next in thread | previous in thread | raw e-mail | index | archive | help
-----Opprinnelig melding-----
Fra: owner-freebsd-current@freebsd.org
[mailto:owner-freebsd-current@freebsd.org] P=E5 vegne av Jakob Alvermark
Sendt: tirsdag 30. juni 2015 20.53
Til: freebsd-current@freebsd.org
Emne: Re: UEFI boot fail on higher resolutions (Re: Acer E3-112 and =
UEFI)

On Wed, February 4, 2015 15:04, Jakob Alvermark wrote:
<>
<> On 31 dec 2014, at 16:24, Jakob Alvermark wrote:
<>
<>
<>> On Tue, December 30, 2014 17:00, Nathan Whitehorn wrote:
<>>
<>>>
<>>
<>>> On 12/30/14 06:40, Jakob Alvermark wrote:
<>>>
<>>>
<>>>> Hi,
<>>>>
<>>>>
<>>>>
<>>>> Have been playing with this machine for a while now.
<>>>> It is a quad core Pentium N3540 (ValleyView/Bay Trail), 8 GB RAM.=20
<>>>> It  came with a Broadcom WiFi card which I swapped for an Intel=20
<>>>> which is supported by FreeBSD. Also swapped the hard drive for an =
SSD.
<>>>>
<>>>> When first trying to boot FreeBSD with UEFI it would not boot.
<>>>> It stops after the loader is trying to start the kernel.
<>>>> My workaround now is using refind, =
http://www.rodsbooks.com/refind/=20
<>>>> to set the screen resolution to 800x600. (Native is 1366x768) Only =

<>>>> then will it boot using UEFI. I tried setting it to 1024x768, then =

<>>>> it crashes. If it helps I can get the backtrace.
<>>>
<>>> [Not sure what's going on here]
<>>>
<>>>
<>
<>
<> A follow up on this:
<>
<>
<> I tried this on my desktop machine (AMD FX-8350, Radeon HD 5450) to=20
<> see if it has the issue, and it has! I went on to try it on my =
desktop=20
<> machine at work (Core i3-4130, Radeon HD 4350) and it boots!
<>
<> On the Acer, resolution set to 1024x768:
<>
<>
<>>> FreeBSD EFI boot block
<>>>
<> Loader path: /boot/loader.efi
<> Consoles: EFI console
<> Image base: 0x7502f000
<> EFI version: 2.40
<> EFI Firmware: INSYDE Corp. (rev 21522.39)
<>
<>
<> ---
<> Start @ 0xffffffff802e1000 ...
<> EFI framebuffer information:
<> addr, size          0x80000000, 0x300000 dimensions      1024 x 768
stride
<> 1024
<> masks               0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000
<>
<> ---
<>
<>
<> kernel trap12 with interrupts disabled
<>
<>
<> Fatal trap 12: page fault while in kernel mode
<> cpuid =3D 0; apic id =3D 00 fault virtual address     =3D 0x13 fault =
code
<> =3D supervisor read data, page not present
<> instruction pointer       =3D 0x20:0xffffffff80a20834 stack pointer
<> =3D 0x28:0xffffffff81604170
<> frame pointer               =3D 0x28:0xffffffff81604290 code segment
<> =3D base 0x0, limit 0xfffff, type 0x1b
<> =3D DPL 0, pres 1, long 1, def32 0, gran 1
<> processor eflags         =3D resume, IOPL =3D 0 current process       =
    =3D 0
<> ()
<> [ thread pid 0 tid 0]
<> Stopped at                  kvprintf+0xd4:    movzbl   (%r14),%eax
<>
<>
<> ....
<>
<>
<>
<>
<> On the home desktop resolution 1024x768:
<>
<>
<>>> FreeBSD EFI boot block
<>>>
<> Loader path: /boot/loader.efi
<> Consoles: EFI console
<> Image base: 0xb08ac000
<> EFI version: 2.31
<> EFI Firmware: American Megatrends (rev 4.653)
<>
<>
<> ---
<> Start @ 0xffffffff802e1000 ...
<> EFI framebuffer information:
<> addr, size          0xc0000000, 0x300000 dimensions      1024 x 768
stride
<> 1024
<> masks               0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000
<>
<> ---
<> kernel trap12 with interrupts disabled
<>
<>
<> Fatal trap 12: page fault while in kernel mode
<> cpuid =3D 0; apic id =3D 00 fault virtual address     =3D 0x13 fault =
code
<> =3D supervisor read data, page not present
<> instruction pointer       =3D 0x20:0xffffffff80a20654 stack pointer
<> =3D 0x28:0xffffffff81603d70
<> frame pointer               =3D 0x28:0xffffffff81603e90 code segment
<> =3D base 0x0, limit 0xfffff, type 0x1b
<> =3D DPL 0, pres 1, long 1, def32 0, gran 1
<> processor eflags         =3D resume, IOPL =3D 0 current process       =
    =3D 0
<> ()
<> [ thread pid 0 tid 0]
<> Stopped at                  kvprintf+0xd4:    movzbl   (%r14),%eax
<>
<>
<> ----
<>
<>
<> On the work desktop:
<>
<>
<>>> FreeBSD EFI boot block
<>>>
<> Loader path: /boot/loader.efi
<> Consoles: EFI console
<> Image base: 0xbb7aa000
<> EFI version: 2.31
<> EFI Firmware: American Megatrends (rev 4.654)
<>
<>
<> ---
<> Start @ 0xffffffff802e1000 ...
<> EFI framebuffer information:
<> addr, size          0xe0000000, 0x300000 dimensions      1024 x 768
stride
<> 1024
<> masks               0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000
<>
<> And then it boots normally.
<>
<>
<>
<> Does anyone have any clues on what's going on here?
<>
<>
<> (This all typed manually from screenshots taken with my phone, there=20
<> might be typos.)

<Another update!
<
<As I found out the EFI loader has the capability to change screen modes =
I
dumped refind and started playing with this again.
<"mode 5" gives me 1024x768 and a panic:
<
<---
<kernel trap 12 with interrupts disabled
<
<
<Fatal trap 12: page fault while in kernel mode cpuid =3D 0; apic id =3D =
00
<fault virtual address	=3D 0x1f2d0ec
<fault code		=3D supervisor read data, page not present
<Instruction pointer	=3D 0x20:0xffffffff8030003d
<stack pointer	        =3D 0x28:0xffffffff81616f70
<frame pointer	        =3D 0x28:0x0
<code segment		=3D base 0x0, limit 0xfffff, type 0x1b
<			=3D DPL 0, pres 1, long 1, def32 0, gran 1
<processor eflags	=3D resume, IOPL =3D 0
<current process		=3D 0 ()
<---
<
<What struck me then was this line:
<instruction pointer	=3D 0x20:0xffffffff8030003d
<and the fact that:
<EFI framebuffer information:
<addr, size          0x80000000, 0x300000
<
<Coincidence? Maybe not.
<In sys/dev/vt/hw/efifb/efifb.c I changed this line:
<
<info->fb_vbase =3D PHYS_TO_DMAP(efifb->fb_addr);
<
<Into this hack:
<
<info->fb_vbase =3D PHYS_TO_DMAP(0x90000000);
<
<Recompile kernel and now it boots at native resolution (1366x768)!
<
<Any thoughts on this?
<
<Thanks,
<
<Jakob

I tried your hack on my Acer Aspire V17 Nitro with a 1920x1080 display, =
and
it seems that your hack works on my computer as well.
Before I tried your hack, I was basically unable to do a UEFI boot =
unless I
tried the rEFInd method, but thanks to your hack I am now able to do a
regular UEFI boot at the native resolution of 1920x1080. :D
Thank you so much for your tip. :)

Anders




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?056801d0c12f$78d800f0$6a8802d0$>