I did a compare of the UFEIPAYLOAD.fd with the one extracted. There are some header starting with .ELF in the extracted one. It's possibly the reason why the extracted one works. The header is possibly added by cbfstool when it build the image.
Mar 25, 2020, 00:17 by [email protected]: > Hi, > Good to know, I actually at one point did the same (extract working Tianocore > from coreboot binary), so maybe that's how it worked. > > Did you figure out why it works when you extract it, but not if you just add > the built blob? > > Rafael > > On Mon, Mar 23, 2020 at 11:44 PM Dalao <> [email protected]> > wrote: > >> > I did have some trouble getting this to work correctly. I believe you must >> > add it to cbfs with "add-payload" and not just as a regular file. >> > If that doesn't work let us know, I'll take a look at what exactly I did. >> >> Thank you, with the help of people on irc, now I have been able to make it >> work. At first I used the UEFIPAYLOAD.fd in tianocore's build output folder, >> it does not work. Then I extracted it from coreboot.rom, and it works. I >> will document the process for maybe someone will find this useful in the >> future: >> >> Firstly I follow this guide to build seabios (>> >> https://github.com/librecore-org/librecore/wiki/Chainloading-SeaBIOS-from-a-GRUB-payload>> >> ). But I just use the bios.bin.elf I did not use that vgabios.bin that >> display is not good on T420. >> >> Next I build coreboot and select tianocore as payload, and then extract it. >> cbfstool ./build/coreboot.rom extract -m x86 -n fallback/payload -f >> ./GrubPayloads/tianocore >> >> Then I build coreboot again and select GRUB as payload with high-resulotion >> framebuffer, and add SeaBIOS, Tianocore and grub.cfg >> cbfstool ./build/coreboot.rom add -n elf/seabios.elf -f >> ./GrubPayloads/bios.bin.elf -t raw >> cbfstool ./build/coreboot.rom add-payload -n img/tianocore -f >> ./GrubPayloads/tianocore >> cbfstool ./build/coreboot.rom add -n etc/grub.cfg -f ./GrubPayloads/grub.cfg >> -t raw >> >> This will work, but without VBG BIOS, the DP output does not work on T420. >> So I add the VGA BIOS blob. >> cbfstool ./build/coreboot.rom add -f pci8086,0166.rom -n pci8086,0166.rom -t >> optionrom >> >> >> >> 2020年3月24日 02:05 来自 >> [email protected]>> : >> >>> Hi, >>> I did have some trouble getting this to work correctly. I believe you must >>> add it to cbfs with "add-payload" and not just as a regular file. >>> If that doesn't work let us know, I'll take a look at what exactly I did. >>> >>> Good luck, >>> R >>> >>> On Sat, Mar 21, 2020 at 6:08 AM Dalao <>>> [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 :) >>>> >>>> Cool! This is what I want. I have followed this tutorial (>>>> >>>> https://github.com/librecore-org/librecore/wiki/Chainloading-SeaBIOS-from-a-GRUB-payload>>>> >>>> ) and now I'm able to use Grub to chainload SeaBIOS. But in order to load >>>> Tianocore, it appears there is no tutorial online. I tried to use the >>>> above method to chainload the Tianocore's build output file >>>> UEFIPAYLOAD.fd, but it can't load. So how you achieved this? >>>> >>>> >>>> Mar 21, 2020, 5:55 AM by >>>> [email protected]>>>> : >>>> >>>>> 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]

