Add Google kano (Mr Chromebox) support - First full Chromebook port!#2133
Add Google kano (Mr Chromebox) support - First full Chromebook port!#2133cwiggs wants to merge 36 commits into
Conversation
tlaurion
left a comment
There was a problem hiding this comment.
first review as I was there and saw work on this PR :)
|
I suggest you tart a thread under Matrix Heads channel. You must rebase the old PR on linuxboot/heads master, an dthen adapt coreboot config to your board. Following https://osresearch.net/Porting/ @cwiggs otherwise your experience might be really frustrating. |
Started a thread here: https://matrix.to/#/!eMLMv62wAMCW1V-ufL_bJ_JDngDhrpSOSEQBLzX8aTg/$eepAush4kVo93Zxqtw59P6NX9g6AG7FZFplc2Fu6tyo?via=matrix.org&via=tchncs.de&via=unredacted.org |
|
@cwiggs I saw you left the room? |
Looks like the Matrix homeserver decided to delete my account for some reason, I'll look into getting it reactivated. |
|
@cwiggs check https://github.com/tlaurion/heads/tree/cwiggs-google_kano which now builds locally with blobs paths corrected and blobs submodules synced per mrchromebox gitsubmodules sync override in modules/coreboot |
Okay, great, should I rebase this branch off that one then? |
Absolutely. It builds from CI. I pushed progress forward since the last base (coreboot 4.22) was old and not trivial to adapt. Let me know how the testing goes. Feel free to cherry pick all commits or if you agree i can push the changes here but that would make us both co-authors of the port. CircleCI builds at https://app.circleci.com/pipelines/github/tlaurion/heads/4040/workflows/d7699b2f-feca-423f-b0f5-187ebf94e886 |
|
Thanks! I got it downloaded. The suzyq cable should arrive this weekend or Monday and I'll give it a try. I also rebased off your branch here. |
@cwiggs : This branch doesn't include all the needed changes, nor CircleCI config. I can push here too, if needed. Let me know. |
I just rebased off your branch, let me know if it looks good from that point of view. Looks like I also will need to rebase off main. As far as flashing goes: I got the Suzy-Q "cable" (It's really just a small board with a male and female usb-c, you then use your own usb-c cable). And I have some good news and some bad news (I think?). I was able to get the suzy-q cable to read the rom, but verifying the backup seems to fail. I've been using this mrchromebox guide to get the suzy-q device working with flashrom and then this heads wiki as well. Below are some notes I put together while I was attempting the flash: Use Suzy-Q cable for flashing
Questions:
Anyway I think next steps are to disconnect the battery and try these flashrom commands again. I don't want to proceed until the verify step works without error. |
|
Well I disconnected the battery and am getting the same response from flashrom. Should I just continue with flashing heads? Here are my notes:
* Use a smudger to take the back cover off.
* Disconnect battery cable.
|
Signed-off-by: Matthew Drobnak <matthew@drobnak.com> Signed-off-by: Thierry Laurion <insurgo@riseup.net>
Signed-off-by: Matthew Drobnak <matthew@drobnak.com> Signed-off-by: Thierry Laurion <insurgo@riseup.net>
Signed-off-by: Chris Wiggins <chris@cwiggs.com> Signed-off-by: Thierry Laurion <insurgo@riseup.net>
Signed-off-by: Thierry Laurion <insurgo@riseup.net>
…t/linux helpers to modify and save in oldconfig Signed-off-by: Thierry Laurion <insurgo@riseup.net>
…-musl-compat.patch: fix build error against musl Signed-off-by: Thierry Laurion <insurgo@riseup.net>
…place to put in defconfig to remove irrelevant omnigul things Signed-off-by: Thierry Laurion <insurgo@riseup.net>
…pace Copilot review: fix 'a Acer' -> 'an Acer', 'Wi-FI' -> 'Wi-Fi', and remove trailing comma/spaces on line 3. Signed-off-by: Thierry Laurion <insurgo@riseup.net>
|
Will push here |
|
For posterity of this port, i'm porting patches to 26.06 so buildstack will be shareable and patches upstreameable , more commits coming |
3ecfc2b to
7770fe8
Compare
|
@cwiggs check todo list of OP :) test rom from CircleCI on latest commit since coreboot's mrchromebox 26.06 based. @MrChromebox any comment before merge? |
|
Asked Matrix's coreboot channel; for review of this pr |
mrchromebox said if not uefi: no use of using his fork. More commit upcoming |
Once CircleCI builds the Kano zip I'll flash the image and fill out the checklist. I also have a working branch for the wiki for heads. I'll get it up as a draft/WIP and then add to it.
I was able to get my NixOS install working in Heads with a very simple change you can see here: https://gitlab.com/cwiggs/nix/-/commit/a7419c5511b45e0fa04590788bcb8309e12825e9 I didn't need #2155 and DUK still works without issues. I can also post a tree or files in /boot if that helps. |
2e4d179 to
9a8de0b
Compare
Update from MrChromebox-2603.2 (f8244f2) to MrChromebox-2606.0 (ddfe385). Config regenerated via: make BOARD=kano coreboot.save_in_oldconfig_format_in_place && make BOARD=kano coreboot.save_in_defconfig_format_backup Address Copilot review: fix 'feautre' typo, deduplicate Adapted for MrChromebox fork bullet list, rebase smihandler.c hunk for opal_s3_smm.h include added in 26.06. Signed-off-by: Thierry Laurion <insurgo@riseup.net>
Copilot review: fix linux-4.9.80 paths in 6.6.30 kernel patches (0001, 0002, 0010) and correct misleading 'All boards have CONFIG_USE_BLOBS=y' comment. Signed-off-by: Thierry Laurion <insurgo@riseup.net>
Interesting. My issue was not about installing grub, that did work. My issue pointing to #2155 being required was that when setting up a TPM DUK for a selected boot entry to become default, initramfs unpacking failed finding a valid crypttab in initramfs pointed by boot entry in grub (it was a symlink pointing to rootfs path which is not available from initramfs itself. If you could describe your custom partitioning scheme, I would definitely be interested in it, mine was roughly described into #2155 linked issue #2154. NixOS installer (GUI) complies with basic custom partitioning even though it warns that /boot mount point is reserved. But yeah, From my understanding, NixOS expects /boot to be subdir of / from an installation standpoint. |
| diff --recursive -u ./clean/linux-4.9.80/drivers/acpi/acpica/hwacpi.c linux-4.9.80/drivers/acpi/acpica/hwacpi.c | ||
| --- ./clean/linux-4.9.80/drivers/acpi/acpica/hwacpi.c 2018-02-03 11:05:43.000000000 -0500 | ||
| +++ linux-4.9.80/drivers/acpi/acpica/hwacpi.c 2018-02-07 15:51:35.126557868 -0500 | ||
| @@ -168,12 +168,16 @@ |
| +#if 0 | ||
| +// qemu generates these for some reason | ||
| pr_emerg("Uhhuh. NMI received for unknown reason %02x on CPU %d.\n", | ||
| reason, smp_processor_id()); | ||
|
|
| + if (!port_map) { // && vers < 0x10300) { | ||
| + printk("%s: saved_port=%02x\n", __func__, hpriv->saved_port_map); | ||
| + writel(0x1, mmio + HOST_PORTS_IMPL); | ||
| + port_map = readl(mmio + HOST_PORTS_IMPL); | ||
| + | ||
| + //port_map = (1 << ahci_nr_ports(cap)) - 1; | ||
| dev_warn(dev, "forcing PORTS_IMPL to 0x%lx\n", port_map); |


This pull request adds support for the Acer Chromebook Spin 714 ("kano") board based on the MrChromebox coreboot fork (26.06), including CI integration, configuration files, and documentation updates. It also introduces a patch for musl compatibility in the MrChromebox fork, adds a new Linux kernel version (6.6.30), and documents TPM2 CR50 command support. The most important changes are grouped below:
Kano (Acer Chromebook Spin 714) board support:
boards/kano/kano.configfor Heads and Linux build configuration for the kano board.config/coreboot-kano.config_defconfigas a defconfig backup for kano, documenting non-default coreboot options.coreboot-mrchromeboxas a seed, defines the kano build job, and documents its workflow. [1] [2] [3]USE_PC_CMOS_ALTCENTURYmust be unset for this board. [1] [2] [3]MrChromebox coreboot fork integration:
modules/coreboot, with commit hash pinning and submodule handling notes. [1] [2]ifdtool. [1] [2]Build system and kernel updates:
cbmemutility.Documentation improvements:
Minor adjustments:
These changes collectively enable official Heads support for the Acer Chromebook Spin 714 (kano), ensure compatibility with the MrChromebox fork, and improve build reproducibility and documentation for new contributors.
(copilot generalized pr summary, asked by @tlaurion)
TODO before merge
X.Y.Z.using external programmer modelX.Y.Z.onX.Y.Z.Voltage modeX.Y.Z.install and rebootX.Y.Z.hardwarekey e.g. nk3X.Y.Z.patches/coreboot-X.Y.Z.and coreboot config contain proper preparation of the platform)Additional questions: