MrChromebox / firmware

Issue tracker for firmware issues
78 stars 16 forks source link

Tianocore Firmware for RW_LEGACY #122

Open pcs3rd opened 5 years ago

pcs3rd commented 5 years ago

So we can use uefi linux images n a thumb drive or sdcard without getting rid of chromeos.

MrChromebox commented 5 years ago

I'll have a look, and if I can use the same Tianocore/RW_LEGACY payload for all devices then maybe I can add that, but not looking to maintain a 2nd RW_LEGACY payload for each of the platforms being supported

valpackett commented 5 years ago

I've just extracted the EDK2 build from a full rom and converted it to legacy and it works :)

dd if=/dev/zero bs=256k count=1 > smmstore
wget https://www.mrchromebox.tech/files/firmware/full_rom/coreboot_tiano-eve-mrchromebox_20190825.rom
util/cbfstool/cbfstool coreboot_tiano-eve-mrchromebox_20190825.rom extract -n fallback/payload -m x86 -f cbox-pl
util/cbfstool/cbfstool eve-edk2-rwl.bin create -m x86 -s 0x00200000
util/cbfstool/cbfstool eve-edk2-rwl.bin add-payload -f cbox-pl -c lzma -n payload
util/cbfstool/cbfstool eve-edk2-rwl.bin add -f smmstore -n "smm store" -t raw -b 0x1bf000
MrChromebox commented 5 years ago

I've just extracted the EDK2 build from a full rom and converted it to legacy and it works :)

The Tianocore build in the EVE UEFI Full ROM is built with the VBT and GOP driver for Skylake/Kabylake devices. It may work as a RWL payload for other SKL/KBL devices, but it absolutely won't work for other platforms.

valpackett commented 5 years ago

Well, of course, I only tested on Eve. For other devices, others could try extracting from the build for their device.

(btw, why isn't the coreboot framebuffer used? is the Intel GOP driver just better or does the coreboot fb not work at all?)

MrChromebox commented 5 years ago

Well, of course, I only tested on Eve. For other devices, others could try extracting from the build for their device.

no, if it were that simple, I'd just have one RWL/Tiano payload per platform like I do with SeaBIOS

why isn't the coreboot framebuffer used? is the Intel GOP driver just better or does the coreboot fb not work at all

because native panel resolution with the GOP driver is better than 1024x768 stretched, which is what VBIOS or FSP display init would do, and it allows for display mode changes prior to the OS driver being loaded, and better Windows compatibility for some devices/platforms.

Platforms which can use native coreboot display init and coreboot FB without issue do (SNB/IVB)

satmandu commented 4 years ago

Thanks for this info. It gave me the hints I needed to get this working on Nocturne.

I had to reduce the size of the file to fit in RW_LEGACY on nocturne.

Is SMMSTORE needed if one does not care about secure boot?

I mounted /devmmcblk12 to /boot/efi and now with CTRL-L I go to efi boot, and then straight to ubuntu.

Backlight and sound aren't fixed, but I do seem to have fewer issues charging, so that's good.

https://paste.ubuntu.com/p/vsHr4KVsxz/

frank9782 commented 1 year ago

I've just extracted the EDK2 build from a full rom and converted it to legacy and it works :)

dd if=/dev/zero bs=256k count=1 > smmstore
wget https://www.mrchromebox.tech/files/firmware/full_rom/coreboot_tiano-eve-mrchromebox_20190825.rom
util/cbfstool/cbfstool coreboot_tiano-eve-mrchromebox_20190825.rom extract -n fallback/payload -m x86 -f cbox-pl
util/cbfstool/cbfstool eve-edk2-rwl.bin create -m x86 -s 0x00200000
util/cbfstool/cbfstool eve-edk2-rwl.bin add-payload -f cbox-pl -c lzma -n payload
util/cbfstool/cbfstool eve-edk2-rwl.bin add -f smmstore -n "smm store" -t raw -b 0x1bf000

Hello there, I’m sorry for warming up this old issue. I just tried these steps for the recent coreboot_edk2-eve-mrchromebox_20230515.rom to create a UEFI for RW_LEGACY. I ended up with a bin that I could successfully flash with flashrom. Sadly pressing ctrl+L is freezing my Pixelbook EVE. So I obviously wasn’t successful. I’d really like to try out UEFI boot without having to open my Pixelbook or obtain a SuzyQable. Best regards Frank

MrChromebox commented 1 year ago

@frank9782 you absolutely cannot use a edk2 payload from a Full ROM image, built with SMMSTORE enabled, as a RWL payload.

try the attached file, LMK if that works

rwl_edk2_eve.zip

frank9782 commented 1 year ago

@MrChromebox Obviously I didn't know that.

Thanks for your quick response and the file you provided. It works like a charm btw. This is very convenient as opposed to opening up the Pixelbook and fiddeling with delicate battery cables. Couldn't you make flashing a UEFI payload to RW_LEGACY an option for EVE in your script?

Best regards Frank