Bug in BIOS (where efifb resolution is hardcoded to 800x600) results in messy display during startup

nvatvani
nvatvani New Member Posts: 5
edited April 2021 in UP Xtreme BIOS

There seems to be a bug in the BIOS which starts up the UP board by default on 800x600 resolution using the legacy framebuffer efifb, instead of the i915 driver already being supported post kernel version 5.4.

Even though the display sorts itself out once the display console is handed over to the OS' kernel (via KMS arguments) - it seems one cannot avoid the Epileptic Seizure inducing startup where the UP Xtreme logo first gets displayed.

There is no way to modify the resolution/refresh-rate in the BIOS Setup. One can ask for the UP Xtreme logo to be removed and nothing be displayed instead at a cost of 250 USD (its a custom BIOS mod request).

One could argue that it is the monitor manufacturer's issue for not being able to display a 800x600 projection correctly, but since my goal here is to prevent a health hazard to begin with (and tolerate the monitor manufaturer's issues) - I am hoping you guys can release a new BIOS that either allows a manual setting of the display resolution (resulting in the UP Xtreme logo being projected correctly), or to prevent the logo's projection (and display nothing instead) at the initial bootup phase to begin with.

Here is how things look once the OS's kernel takes over and uses the i915 driver:

Comments

  • rogertsai(AAEON)
    rogertsai(AAEON) New Member Posts: 350 ✭✭✭

    @nvatvani
    It seems to be compatibility issue with this panel, as the issue may be related to the panel's scaler IC, not a bug in BIOS.
    Please try to use another brand or model of monitor with UP Xtreme and test again.
    BTW, what display port do you use to the board? HDMI or DP?

  • nvatvani
    nvatvani New Member Posts: 5
    edited May 2021

    @rogertsai(AAEON) said:
    @nvatvani
    It seems to be compatibility issue with this panel, as the issue may be related to the panel's scaler IC, not a bug in BIOS.
    Please try to use another brand or model of monitor with UP Xtreme and test again.
    BTW, what display port do you use to the board? HDMI or DP?

    Its HDMI.

    I don't believe the scaler IC is the issue. After all, once KMS kicks in in the Ubuntu Kernel - the issue gets resolved because I have put the following line in /etc/default/grub:

    GRUB_CMDLINE_LINUX_DEFAULT="video=1920x1080-32@60 quiet splash"
    
    

    I still believe this is a BIOS issue and more specifically, a video-converter issue. Just FYI for others reading this, here is the difference between converters and scalers:
    https://bboxblog.wordpress.com/2014/03/07/the-difference-between-converters-and-scalers/

    When the BIOS in the UPXtreme Edge device starts, it is fixed at 800x600 as evident in the kernel-log:

    Apr 30 21:36:16 ubuntu-upxtreme kernel: pcieport 0000:00:1d.0: DPC: error containment capabilities: Int Msg #0, RPExt+ PoisonedTLP+ SwTrigger+ RP>
    Apr 30 21:36:16 ubuntu-upxtreme kernel: shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
    Apr 30 21:36:16 ubuntu-upxtreme kernel: efifb: probing for efifb
    Apr 30 21:36:16 ubuntu-upxtreme kernel: efifb: showing boot graphics
    Apr 30 21:36:16 ubuntu-upxtreme kernel: efifb: framebuffer at 0x90000000, using 1876k, total 1875k
    Apr 30 21:36:16 ubuntu-upxtreme kernel: efifb: mode is 800x600x32, linelength=3200, pages=1
    Apr 30 21:36:16 ubuntu-upxtreme kernel: efifb: scrolling: redraw
    Apr 30 21:36:16 ubuntu-upxtreme kernel: efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
    Apr 30 21:36:16 ubuntu-upxtreme kernel: fbcon: Deferring console take-over
    Apr 30 21:36:16 ubuntu-upxtreme kernel: fb0: EFI VGA frame buffer device
    
    

    The panel I have attached to the UP Xtreme Edge device above cannot do 800x600 - hence why the broken UP logo. The lowest resolution it accepts over the HDMI port is 1920x1080.

    The BIOS needs to have an override function so that it kicks off at 1920x1080. If this is not a reasonable course of action for the BIOS to take, then the BIOS should at least have an option to not display any logo at all.

  • nvatvani
    nvatvani New Member Posts: 5

    @rogertsai(AAEON) said:
    @nvatvani
    It seems to be compatibility issue with this panel, as the issue may be related to the panel's scaler IC, not a bug in BIOS.
    Please try to use another brand or model of monitor with UP Xtreme and test again.
    BTW, what display port do you use to the board? HDMI or DP?

    Its HDMI.

    It is not a scaler issue. Its a converter issue.

    The BIOS in UPXtreme Edge kicks off at 800x600 as evident below before the KMS kicks in:

    Apr 30 21:36:16 ubuntu-upxtreme kernel: efifb: probing for efifb
    Apr 30 21:36:16 ubuntu-upxtreme kernel: efifb: showing boot graphics
    Apr 30 21:36:16 ubuntu-upxtreme kernel: efifb: framebuffer at 0x90000000, using 1876k, total 1875k
    Apr 30 21:36:16 ubuntu-upxtreme kernel: efifb: mode is 800x600x32, linelength=3200, pages=1
    Apr 30 21:36:16 ubuntu-upxtreme kernel: efifb: scrolling: redraw
    Apr 30 21:36:16 ubuntu-upxtreme kernel: efifb: Truecolor: size=8:8:8:8, shift=24:16:8:0
    Apr 30 21:36:16 ubuntu-upxtreme kernel: fbcon: Deferring console take-over
    Apr 30 21:36:16 ubuntu-upxtreme kernel: fb0: EFI VGA frame buffer device
    

    The panel cannot handle 800x600. The lowest resolution the panel can handle is 1920x1080 over HDMI.

    As such - the BIOS should either have an override function to boot at 1920x1080 or other custom resolutions besides the hardcoded 800x600. Or the BIOS should have a function to not display any logos at all just before the kernel boots up.

  • rogertsai(AAEON)
    rogertsai(AAEON) New Member Posts: 350 ✭✭✭
    edited May 2021

    @nvatvani
    The BIOS screen resolution is 800x600 and cannot be changed arbitrarily by user. And the BIOS logo is turned on by default, but you can disable the Quiet Boot in BIOS, and see if that helps at all.

  • nvatvani
    nvatvani New Member Posts: 5

    @rogertsai(AAEON) said:
    @nvatvani
    The BIOS screen resolution is 800x600 and cannot be changed arbitrarily by user. And the BIOS logo is turned on by default, but you can disable the Quiet Boot in BIOS, and see if that helps at all.

    Nah - disabling Quiet Boot simply shows the mainboard stats and things look even more messy. Quiet Boot and procuring a custom BIOS with a black-screen "logo" from AAEON is the only way out.

  • rogertsai(AAEON)
    rogertsai(AAEON) New Member Posts: 350 ✭✭✭
    edited May 2021

    @nvatvani
    Yes, a custom BIOS with a black-screen logo may be helpful for this case, but you will get the same problem when entering the BIOS menu.
    Have you checked the BIOS mode?