OVMF in TianoCore seems to have code in place for using SeaBIOS as a CSM,
but some of it may depend on their specific platform.

On Fri., Mar. 20, 2020, 5:56 p.m. Rafael Send, <[email protected]>
wrote:

> FWIW I use Grub to load either SeaBIOS or Tianocore at boot, defaulting to
> Tianocore for this exact problem. Hope that's of some help :)
>
> R
>
> On Fri, Mar 20, 2020 at 1:35 PM Dalao via coreboot <[email protected]>
> wrote:
>
>> > The Tianocore package which ran on top of SeaBIOS, DuetPkg, was remove
>> long ago, so that's not a viable approach (and it was buggy AF anyway).
>> You'd need to build SeaBIOS as a CSM, package it with Tianocore, and add
>> the appropriate hooks. Then debug from there
>>
>> It appears building SeaBIOS as CSM for Tianocore is quite hard and I have
>> searched around there is no guide. Could we build two roms and use
>> something like coreboot's fallback mechanism feature to achieve the hybrid
>> boot goal? Like default to boot in Tianocore image but with an option to
>> reboot to SeaBIOS image...
>>
>>
>> Mar 15, 2020, 15:45 by [email protected]:
>>
>>
>>
>> On Sat, Mar 14, 2020, 11:02 PM Dalao <[email protected]> wrote:
>>
>> > SeaBIOS is a legacy BIOS implementation, so no it can't boot UEFI boot
>> media. Likewise, Tianocore is a pure UEFI implementation, and doesn't boot
>> legacy boot media / legacy installed OSes. There should be a way to use
>> SeaBIOS as a CSM for Tianocore, but currently it's not working / not
>> implemented (I tried briefly awhile back but didn't have any luck).
>>
>> I tried to follow the steps to build tianocore for SeaBIOS
>> https://www.coreboot.org/TianoCore But I get these errors. It says it
>> can't found nmake.exe... Is this should be build on Windows? How to setup
>> the environment?
>>
>>
>> The Tianocore package which ran on top of SeaBIOS, DuetPkg, was remove
>> long ago, so that's not a viable approach (and it was buggy AF anyway).
>> You'd need to build SeaBIOS as a CSM, package it with Tianocore, and add
>> the appropriate hooks. Then debug from there
>>
>>
>> [dalao@pc tianocore2018]$ git clone --branch UDK2018
>> https://github.com/tianocore/edk2
>> Cloning into 'edk2'...
>> remote: Enumerating objects: 66, done.
>> remote: Counting objects: 100% (66/66), done.
>> remote: Compressing objects: 100% (43/43), done.
>> remote: Total 342725 (delta 35), reused 31 (delta 23), pack-reused 342659
>> Receiving objects: 100% (342725/342725), 286.48 MiB | 436.00 KiB/s, done.
>> Resolving deltas: 100% (247240/247240), done.
>> Updating files: 100% (15636/15636), done.
>> [dalao@pc tianocore2018]$ cd edk2/
>> [dalao@pc edk2]$ cd BaseTools
>> [dalao@pc BaseTools]$ export EDK_TOOLS_PATH=$(pwd)
>> [dalao@pc BaseTools]$ cd ../
>> [dalao@pc edk2]$ . ./edksetup.sh BaseTools
>> WORKSPACE:
>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2
>> EDK_TOOLS_PATH:
>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/BaseTools
>> CONF_PATH:
>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/Conf
>> Copying $EDK_TOOLS_PATH/Conf/build_rule.template
>>      to
>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/Conf/build_rule.txt
>> Copying $EDK_TOOLS_PATH/Conf/tools_def.template
>>      to
>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/Conf/tools_def.txt
>> Copying $EDK_TOOLS_PATH/Conf/target.template
>>      to
>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/Conf/target.txt
>> [dalao@pc edk2]$ build -p DuetPkg/DuetPkgIa32.dsc
>> Build environment: Linux-5.4.22-1-MANJARO-x86_64-with-glibc2.2.5
>> Build start time: 11:48:18, Mar.15 2020
>>
>> WORKSPACE        =
>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2
>> ECP_SOURCE       =
>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/EdkCompatibilityPkg
>> EDK_SOURCE       =
>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/EdkCompatibilityPkg
>> EFI_SOURCE       =
>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/EdkCompatibilityPkg
>> EDK_TOOLS_PATH   =
>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/BaseTools
>> CONF_PATH        =
>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/Conf
>> POSTBUILD        =
>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/DuetPkg/PostBuild.bat
>> -p DuetPkg/DuetPkgIa32.dsc -b DEBUG -a IA32 -t MYTOOLS
>> --conf=/home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/Conf
>> all
>>
>>
>> Architecture(s)  = IA32
>> Build target     = DEBUG
>> Toolchain        = MYTOOLS
>>
>> Active Platform          =
>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/DuetPkg/DuetPkgIa32.dsc
>> Flash Image Definition   =
>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/DuetPkg/DuetPkg.fdf
>>
>> Processing meta-data ......... done!
>> Building ...
>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
>> [IA32]
>> Building ...
>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
>> [IA32]
>> Building ...
>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
>> [IA32]
>> /bin/sh: Vcbinnmake.exe: command not found
>>
>>
>> build.py...
>> : error 7000: Failed to execute command
>>         Vc\bin\nmake.exe /nologo tbuild
>> [/home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/Build/DuetPkgIA32/DEBUG_MYTOOLS/IA32/MdePkg/Library/BasePcdLibNull/BasePcdLibNull]
>>
>>
>> build.py...
>> : error 7000: Failed to execute command
>>         Vc\bin\nmake.exe /nologo tbuild
>> [/home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/Build/DuetPkgIA32/DEBUG_MYTOOLS/IA32/MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull]
>>
>>
>> build.py...
>> : error 7000: Failed to execute command
>>         Vc\bin\nmake.exe /nologo tbuild
>> [/home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/Build/DuetPkgIA32/DEBUG_MYTOOLS/IA32/MdePkg/Library/BaseMemoryLib/BaseMemoryLib]
>>
>>
>> build.py...
>> : error F002: Failed to build module
>>
>> /home/dalao/T440pCorebooting/tianocoreAsSeabiosPayload/tianocore2018/edk2/MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
>> [IA32, MYTOOLS, DEBUG]
>>
>> - Failed -
>> Build end time: 11:48:28, Mar.15 2020
>> Build total time: 00:00:10
>>
>> [dalao@pc edk2]$
>>
>> > Personally, given that it's 2020, I'd not bother with legacy-installed
>> OSes (or SeaBIOS) outside of use with emulation or if a special use case
>> demands it. Esp given that it's easy enough to migrate Windows from legacy
>> to UEFI.
>>
>> I tried the tianocore payload by selecting it and using all default
>> settings. But I can't see anything like the SeaBIOS for me to select the
>> boot media. But it does boot the archlinux in UEFI mode. I'm wondering is
>> this the problem with my display (I have tried both "Use libgfxinit" and
>> "Run VGA Option ROMs" with tianocore) or the tianocore has nothing to
>> display to select boot media?
>>
>> Mar 15, 2020, 10:08 by [email protected]:
>>
>> On Sat, Mar 14, 2020 at 8:33 PM Dalao via coreboot
>> <[email protected]> wrote:
>>
>>
>>
>> I have just corebooted T440p. Then I noticed some graphic display
>> problems...
>>
>> Firstly I "Use libgfxinit" with "Legacy VGA text mode", insert a usb disk
>> with archlinux's latest install image iso. I can see a text mode of
>> archlinux's start screen.
>>
>> https://imgur.com/0QqQgJn
>>
>> But when I hit enter, it shows some log till "Triggering uevents" and
>> then there is no display...
>>
>> https://imgur.com/CHI9jeE
>>
>> Then I tried "Use libgfxinit" with "Linear "high-resolution"
>> framebuffer". I can see the graphic mode of archlinux's start screen, but
>> again after I hit enter and see some logs, there is no display... Also, the
>> display is not ideal, just at the top left corner not full screen.
>>
>> https://imgur.com/dvYLERu
>>
>> Also, under this setting, the nvramcui's display becomes bad.
>>
>> https://imgur.com/7YG0kOX
>>
>>
>> unfortunately, many legacy bootloaders seem to assume a full array of
>> VESA video modes will be available, and fail less than gracefully when
>> that's not the case. With libgfxinit there is no ability to change
>> video modes -- all that's available is either the native panel
>> resolution (high resolution framebuffer) or VGA text mode.
>>
>> Next I included pci8086,0416.rom vbios and tried "Run VGA Option ROMs"
>> with "Legacy VGA text mode". This time, I can't see the archlinux start
>> screen as shown above, there is no display at the beginning. But I can hit
>> the enter blindly. Then after a while I can see archlinux is booting and
>> the first line I can see is "Probing EDD (edd=off to disable)...ok" the
>> archlinux starts ok.
>>
>> Lastly I also tried "Run VGA Option ROMs" with "Set framebuffer graphics
>> resolution" with the default "framebuffer graphics resolution (1024x768
>> 16.8M-color (8:8:8))" (although my T440p's resolution is 1920x1080). Also
>> the Framebuffer mode is changed to "VESA framebuffer". I still can't see
>> archlinux's start screen...
>>
>>
>> How to make everything work like the vendor BIOS? i.e., I can see both
>> the archlinux's start screen and it's booting.
>>
>>
>> add the VGA BIOS. set the PCI IDs correctly. Set coreboot display init
>> to none, and let SeaBIOS run the VBIOS.
>>
>> How to fix the nvramcui under "high-resolution" framebuffer"?
>>
>>
>> will work properly with above settings
>>
>> Also, as for now it appears seabios can't boot UEFI media. Tianocore by
>> default can't boot Linux/Windows installed by legacy method (installed when
>> using seabios). my goal is to add UEFI support through tianocore as seabios
>> payload (or through tianocore's CSM compatibility support module? ). So
>> that it can boot both UEFI installed Windows or legacy installed Windows
>> like the vendor bios can do. How to achieve this?
>>
>>
>> SeaBIOS is a legacy BIOS implementation, so no it can't boot UEFI boot
>> media. Likewise, Tianocore is a pure UEFI implementation, and doesn't
>> boot legacy boot media / legacy installed OSes. There should be a way
>> to use SeaBIOS as a CSM for Tianocore, but currently it's not working
>> / not implemented (I tried briefly awhile back but didn't have any
>> luck).
>>
>> Personally, given that it's 2020, I'd not bother with legacy-installed
>> OSes (or SeaBIOS) outside of use with emulation or if a special use
>> case demands it. Esp given that it's easy enough to migrate Windows
>> from legacy to UEFI.
>>
>>
>> _______________________________________________
>> coreboot mailing list -- [email protected]
>> To unsubscribe send an email to [email protected]
>>
>> _______________________________________________
>> coreboot mailing list -- [email protected]
>> To unsubscribe send an email to [email protected]
>>
>>
>>
>> _______________________________________________
>> coreboot mailing list -- [email protected]
>> To unsubscribe send an email to [email protected]
>>
> _______________________________________________
> coreboot mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
>
_______________________________________________
coreboot mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to