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]

