Google Chromebooks with x64 CPU (google-x64cros)

This device allows postmarketOS to run on x86_64 ChromeOS boards by using its verified boot mechanism.
== Contributors ==
* JustSoup
* alpernebbi
Based on the Generic x64 UEFI device port contributed by:
* MartijnBraam
* FlashTeens
And ChromeOS-specific postmarketOS integration by:
* Jenneron
== Installation ==
See Chrome OS devices page.
== Firmware ==
There are three types of payloads you can use with x86_64 Chromebooks.
# Default (called "Depthcharge").
# EDK2 (provides UEFI runtime services).
# SeaBIOS (legacy, unsupported payload providing standard BIOS interfaces).
It's important to note that writing secondary payload to RW_LEGACY region will not fix ACPI issues and use of that method is discouraged.
=== Depthcharge ===
The default firmware which comes preinstalled on ChromeOS devices is perfectly fine for usage with postmarketOS (as long as they use the Depthcharge payload - most devices do).
Biggest downside of using this method is that Google does not update their firmware very often, and your device will no longer receive firmware updates if Google stops supporting it.
=== EDK2 ===
An alternative UEFI implementation for Chromebooks is EDK2, provided by MrChromebox.
This payload receives periodic updates (unlike Depthcharge, as it is a community effort). 
It makes booting Linux much easier on Chromebooks and even allows for the booting of "normal" distros such as Fedora or Ubuntu. 
There are two options to this approach:
* "RW_LEGACY", which writes UefiPayloadPkg to dedicated region in SPI flash
* "Full ROM", which completely replaces stock coreboot build with one maintained by the community
Please keep in mind however that:
* RW_LEGACY usually does not work 100% correctly due to limitations in stock firmware (coreboot built by Google from their custom branch) but allows you to boot Linux alongside ChromeOS.
* Full ROM will essentially turn your ChromeOS device into a regular x86 system with UEFI firmware, removing the ability to run ChromeOS.
=== SeaBIOS ===
It was the de-facto method of booting Linux on Chromebooks before upstream EDK2 (UefiPayloadPkg) was ported to coreboot.
This method doesn't work in postmarketOS (or any other modern Linux distribution). 
It is recommended to use MrChromebox's Firmware Utility Script to flash a new version which fixes bugs present in stock firmware.
This method is deprecated and no longer supported. Please use full, custom coreboot build on devices no longer supported by Google.
== Common Issues ==
=== Audio on Intel laptops ===
Starting with Skylake, Intel introduced SST (Smart Sound Technology).
As of the time of writing this page, there are two Linux modules supporting those systems:
# AVS (Audio Voice Speech): used on Skylake, Kabylake and Apollolake family of devices (6 and 7gen).
# SOF (Sound Open Firmware): used on Geminilake, Cometlake, Tigerlake, Alderlake, Meteorlake and so on (10, 11, 12, 13gen).
* Sound Open Firmware works perfectly fine after installing out-of-tree ALSA UCM configuration (available in postmarketOS as alsa-ucm-conf-cros package, which is preinstalled on chromebook images).
* Audio Voice Speech is a work in progress. Because this driver doesn't implement speaker safety, chrultrabook project recommends leaving speakers disabled on devices using Maxim MAX98357A amplifiers. Enabling them in the current state poses a very real risk of burning your speakers (see link for example).
Sources:
* https://github.com/WeirdTreeThing/chromebook-linux-audio
* https://f.sakamoto.pl/elly/avs_fryingpan.mp4
=== Audio on AMD laptops ===
==== StoneyRidge (AMD A4/A6) ====
In order to have working audio on those devices, you need to build your own kernel with AMDGPU=Y (NOT as module) and include GPU firmware. This makes kernel a lot bigger, but (for unexplained reason) allows the ACP driver to bind to the device correctly.
You also need to enable DESIGNWARE_I2S, which often breaks due to work being done on RISC-V in upstream Linux kernel.
==== Picasso (Ryzen 3000 Series) ====
Audio on those systems should work perfectly.
If you encounter any issues, please submit a bug report.
==== Cezanne (Ryzen 5000 Series) ====
These laptops don't have working audio out of the speakers, however, the headphones should still work.
==== Mendocino (Ryzen 7000 Series) ====
Audio on those systems should work perfectly, but require at least kernel 6.8 - meaning 6.6 LTS (current as of time of writing) will not work.
If you encounter any issues, please submit a bug report.
== See also ==
* 
* Initial merge request