mb/google/puff: hide laptop-class ACPI/PCI on Kaisa Chromebox - #41
mb/google/puff: hide laptop-class ACPI/PCI on Kaisa Chromebox#41jackadam1981 wants to merge 54 commits into
Conversation
Change-Id: Ia95041edfd731dc115826788f3090e10a2f48fb4 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Update to commit d5595eda4766403cf7425fc71d7dc7c41fb1a208 mb/google/volteer: Update ECRW with fixed TBT5 builds Change-Id: Iaa9a2e7b672271b287711e849de06be3519ff013 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Change-Id: I7f16f17273b4687ada653c3c160879e048f34b4a Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Recent changes to allow for dynamic detection of keyboard backlight broke functionality on older/legacy devices, particularly under Windows. Until a better solution found, revert to previous behavior. Change-Id: I30fcffb1cde0310660f1b6f97f55203d14586268 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
coolstar's Windows driver needs KBLT under CREC, so the EC driver loads first / KBLT is a dependent of CREC, but doesn't use the KBQC/KBCM methods. The Linux driver needs KBLT directly under _SB. Hack the driver to hell to make everyone happy. Change-Id: I0ef5d6998b65d5aa7f6e8337f886ab88f178c75b Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Breaks coolstar's Windows driver, not used by Linux Change-Id: I5d05b9fae7e04b3714862ed905e9143fb6f9c629 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Allows to selectively enable After G3 State syncing, which can be used to sync coreboot user selected after G3 behavior (CFR) to ChromeEC at boot via custom host command EC_CMD_AFTER_G3_STATE. Without this, ChromeEC will always use default compiled after G3 behavior (usually "Previous State"). Tested on FIZZ/SION. Change-Id: I301c5d787602e2096e782a8ece7948151c8921b7 Signed-off-by: Lukasz Kutyla <9387698+movr4x@users.noreply.github.com>
Change-Id: Ic1456662f44424b27cd7cb3c8174b4aad5b5980c Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
The Acer C720(P) has been designed to have a LTE modem on a NGFF connector. Unfortunately the final revision of this chromebook doesn't have the connector populated, for this reason on coreboot this functionality is not present. Adding back this feature is not easy, but not impossible. This is a first path to: - Enable the USB port on the SIM tray. (USB MrChromebox#5) - Enable the PCIE_2 to provide a full working M.2 connector. The NGFF connector have the following features: - USB 2.0 - UIM - PCIE 1x On the mainboard there are a few component that are not populated some of those can be easily soldered (Like the NGFF connector) others can be added as daughter board. Most of the work must be done on the Power Gate. Like bypass capacitors. Looks like that all the 10K pullups and 0Ohm links are present in the board. The SIM tray socket is not populated, the part no. is unknown for that reason I have made a custom board with all the required components. This NGFF may be used to add more storage to the chromebook. Change-Id: I9c8392cc1ac7b78ba6f41b04f9457f1580f5aacd Signed-off-by: Nicolò Veronese <nicveronese@gmail.com>
Change-Id: Ie33c0635f4ab983f9831fd8a064f13db75f890cb Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Add one SMM method and modify an existing one to allow payload (Tianocore) to toggle the eMMC from ACPI mode to PCI mode in order to enable use as boot device, then back to ACPI mode before the OS loads Change-Id: Ic3885d45a9c72bfc5f16ec52b788393ef0c76150 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Let edk2 do the last steps of putting the eMMC into APCI mode, so that it can still be detected as a boot device. Change-Id: I560a810a9524a7bc42b27a0d3b807c9492e70f12 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Disable since the drivers don't seem to work properly under Windows TEST=build/boot Windows on google/cyan (edgar). Change-Id: Ibcbb302a7eba09673078aa9699f6b843770b05e4 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Change-Id: I15925997bf4d6cb83c0b84ba929901703bd550bd Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Select EC_GOOGLE_CHROMEEC_AFTER_G3_STATE when CFR is used, in order to ensure that the power-on-after-fail behavior works as intended. Tested on FIZZ/SION. Signed-off-by: Lukasz Kutyla <9387698+movr4x@users.noreply.github.com>
ACPI breaks Windows, causes BSOD Change-Id: Idc65d1dc78355113af1605d966066ab30f91bb5a Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Kohaku is unusable with stock Power Limit under AltOS. According to our thermal testing, this is the maximum safe value for fanless i5-10210U. Signed-off-by: Alicja Michalska <ahplka19@gmail.com>
Adjust power levels based on user feedback. Change-Id: I1fddfd9816207af3e4f89b5ba5b8171db28cc111 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Change-Id: I7475d7483d7e22e88785ff48eb6566f7fac5cc4d Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Causes Windows to BSOD Change-Id: I9052572ae71d650c27f65a495b0d1bf79289f2d1 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Now that we have a PSP bootloader which doesn't require vboot to boot, deselect vboot by default. TEST=build/boot google/zork (morphius) without vboot enabled. Change-Id: Ie03e536411e1f482b4496b14e0062432c86937bc Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
This causes Windows to continually disconnect/re-enumerate the BT USB device. Change-Id: I7201f6fd04f32ef441f1b1d858d2534bc45110db Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
This reverts commit 3804114 as it Windows to continually disconnect/re-enumerate the BT USB device. Change-Id: I05d2885f52f04794dbf91c150b7a6b7a7fde4387 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
required for Windows Modern Standby notifications Fix UUID conditionals since they were failing in Windows (as observed from ACPI tracing) Add definitions for display and modern standby notifications, and add notifications to the EC for entering/exiting low power state Test: build/boot Win11 on frostflow w/ latest EC drivers. Click "Sleep" from start menu and observe keyboard backlight switches off. Change-Id: Ie3adf74c613ae2a00a3e8fa6707c40ff2c6b3401 Signed-off-by: CoolStar <coolstarorganization@gmail.com>
Normally, coreboot will force activate/enable the TPM if TPM_DEACTIVATE is not selected, but this is not desireable in the case that the payload needs to be able to control activation/deactivation/take ownership etc. Change-Id: Ieb7db109cbcc1a0166d95b6130b624b635bb7ac9 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Change-Id: I3e6f364c7dd0a11171754729a72f75d252105241 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Default to N since it seems to break USB booting on some devices when the edk2 GOP driver is used. Change-Id: I6d97029c648523858dd57a3a6211f79ad95bdb0e Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Enables coolstar's Windows drivers to automatically attach. Change-Id: Ifbd47b5f35169b8d11284b2a85b11deed30c8ec9 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
KINOX boards have an unpopulated m.2-2280 socket on the board which can be used for NVMe, but it is non-functional due to GPIO GPP_B2 being set to NC, rather than the baseboard default for M2_SSD_PLA_L. Drop the override for GPP_B2, so that it uses the baseboard default. TEST=build/boot kinox with NVMe populated on M.2, verify NVMe drive detected and bootable. Change-Id: I8c64953217e8217fc21cd365016e2767d83c8c25 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Change-Id: If00bd5d7e60355da0f33797e85096b24a56c86f0 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Change-Id: I9a0ea93b0bd51a0c8c9ec463eb745862c7502730 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
|
|
||
| if (dev->chip_ops) | ||
| acpigen_write_name_string("_DDN", dev->chip_ops->name); | ||
| acpigen_write_STA(ACPI_STATUS_DEVICE_HIDDEN_ON); |
There was a problem hiding this comment.
the device status is already hidden, which means it doesn't show up under Windows Device Manager. Linux doesn't care about the status. So why are you trying to prevent the creation of the R8168 ACPI device? What's the problem with it?
|
|
||
| // Scope (EC0) | ||
|
|
||
| #if !CONFIG(SYSTEM_HIDE_AC_ADAPTER) |
There was a problem hiding this comment.
why? the device has an AC adapter
| If (Local1 != DeRefOf (Arg2)) { | ||
| Arg2 = Local1 | ||
| If (Arg0 == 0) { | ||
| #if !CONFIG(SYSTEM_HIDE_BATTERY) |
There was a problem hiding this comment.
this is already handled by https://review.coreboot.org/c/coreboot/+/93260, no?
| { | ||
| Printf ("EC: AC CONNECTED") | ||
| \PWRS = ACEX | ||
| #if !CONFIG(SYSTEM_HIDE_AC_ADAPTER) |
There was a problem hiding this comment.
again, why hide the AC adapter?
| Name (_CID, Package() { EISAID("PNP0303"), EISAID("PNP030B") } ) | ||
|
|
||
| Method (_STA, 0, NotSerialized) { | ||
| #if (CONFIG(BOARD_GOOGLE_KAISA) || CONFIG(BOARD_GOOGLE_KAISA_LEGACY)) && CONFIG(KAISA_HIDE_VBTN) |
There was a problem hiding this comment.
this shouldn't be included in ACPI without SIO_EC_ENABLE_PS2K being defined, which PUFF doesn't do.
| /* Sent event 0xCC for tablet mode, 0xCD for laptop */ | ||
| /* Linux driver expects SMBIOS_ENCLOSURE_TYPE=SMBIOS_ENCLOSURE_CONVERTIBLE */ | ||
|
|
||
| Device (VBTN) |
There was a problem hiding this comment.
this isn't included unless SYSTEM_TYPE_CONVERTIBLE is set, so guarding it is unnecessary
| device i2c 1a on end | ||
| end | ||
| end | ||
| device ref sata off end |
There was a problem hiding this comment.
I think we can probably turn this off in the baseboard, I'm not aware of any PUFF devices that use SATA
| Name (DSUU, ToUUID("f6c13ea5-65cd-461f-ab7a-29f7e8d5bd61")) | ||
|
|
||
| #if (CONFIG(BOARD_GOOGLE_KAISA) || CONFIG(BOARD_GOOGLE_KAISA_LEGACY)) && CONFIG(KAISA_HIDE_EMMC) | ||
| Method (_STA, 0, NotSerialized) |
There was a problem hiding this comment.
we can set STA dynamically based on the eMMC being present or not - better than guarding
|
|
||
| /* SATA */ | ||
| #if CONFIG(BOARD_GOOGLE_KAISA) || CONFIG(BOARD_GOOGLE_KAISA_LEGACY) | ||
| s_cfg->SataEnable = CONFIG(KAISA_HIDE_SATA) ? 0 : |
There was a problem hiding this comment.
if you've disabled SATA in the devicetree, then is_devfn_enabled(PCH_DEVFN_SATA) is false and this is unecessary
| /* eMMC and SD */ | ||
| #if CONFIG(BOARD_GOOGLE_KAISA) || CONFIG(BOARD_GOOGLE_KAISA_LEGACY) | ||
| s_cfg->ScsEmmcEnabled = CONFIG(KAISA_HIDE_EMMC) ? 0 : | ||
| is_devfn_enabled(PCH_DEVFN_EMMC); |
Address MrChromebox MrChromebox#41 review on Kaisa Chromebox (single DUT): - Drop battery.asl compile-time hide (Gerrit 93260 / 2606 dynamic _STA=0) - Revert superio.asl and vbtn.asl (not in ACPI on Puff MINIPC builds) - Remove fsp_params.c and scs.asl Kconfig guards; disable SATA/eMMC via puff baseboard devicetree instead - Keep r8168.c SSDT skip (Windows shows orphan ACPI\R8168 on baseline) - Keep SYSTEM_HIDE_AC_ADAPTER on MINIPC (fixed brick; avoid laptop AC Notify) Tested: kaisa-pr1-hide-accept + Win DM before/after on Kaisa @ 2606 vs PR1. Signed-off-by: Jack <jackadam1981@users.noreply.github.com>
|
Thanks for the detailed review — all points addressed in Device Manager evidence (Win, Kaisa / Acer CXI4)Baseline (MrChromebox-2606): orphan This PR ( (Screenshots hosted temporarily on my fork release pr41-evidence-20260630.) Dropped / simplified (agree)
Kept (with hardware evidence)
|
| ROM | kaisa-pr1-hide-accept |
Win DM |
|---|---|---|
| Self-built MrChromebox-2606 | fail=2 | R8168 Unknown + SATA Code 28 |
This PR (linux_v0.2.0 line) |
pass=7 fail=0 | R8168/SATA gone; GbE OK; Type-C bridge Unknown unchanged (out of scope for #41) |
Boot, NVMe, and networking verified after flash.
Please take another look when convenient. Happy to rebase #42 (iPXE) after this lands.
Hide ACPI0003 (AC) on SYSTEM_TYPE_MINIPC, skip RTL8168 SSDT on Kaisa (KAISA_HIDE_R8168_ACPI), and disable unused Puff baseboard SATA/eMMC in devicetree (NVMe SKU). Battery/MKBP use upstream 93260 dynamic _STA on 2606; no compile-time battery.asl changes. Review feedback (PR MrChromebox#41): dropped superio/vbtn guards, fsp_params SATA/eMMC toggles, scs.asl Kconfig guard, and kaisa-only SATA off (moved to baseboard devicetree). Signed-off-by: Jack <jackadam1981@users.noreply.github.com>
16957af to
f5e7616
Compare
|
Thanks for the detailed review — I've force-pushed a single-commit update to Diff is now 7 files (+28 / −4):
Dropped per your feedback (and Gerrit 93260 where noted):
Why I kept On Windows 10 with a self-built 2606 baseline (no PR1 hide), Device Manager showed:
Linux on the same unit: I will re-run acceptance on a ROM built from this commit only (not my fork rollup) and post updated results. Hardware scope unchanged: one Acer Chromebox CXI4 (Kaisa) only; other Puff SKUs should be compile-time unaffected. Happy to drop |
| device ref heci1 on end | ||
| device ref sata on end | ||
| device ref sata off end | ||
| device ref emmc off end |
There was a problem hiding this comment.
these are both off by default in the chipset devicetree, disabling here is redundant and not necessary - simply removing from the overridetree is sufficient
| default n | ||
| bool | ||
|
|
||
| # Derived from SYSTEM_TYPE_MINIPC (L2 baseboard select); not user options. |
There was a problem hiding this comment.
what's the impetus for hiding a device that exists and is a part of the ACPI standard?
|
in Device Manager view, do you have Show Hidden Devices enabled? If so, turn it off. The R8168 and child device are hidden because they have no driver. Killing the ACPI device is not needed. I just booted up Win11 on WYVERN here using 2606 and there are no unknown devices in Device Manager |
Re-test on Kaisa: ACPI R8168 only visible with Show hidden devices in Win DM.
001d577 to
ddfe385
Compare




Summary
Hide laptop/tablet-class ACPI and PCI functions on Acer Chromebox CXI4 (Kaisa) when the board is built as
SYSTEM_TYPE_MINIPC. Other Puff SKUs (AIO, etc.) are unchanged at compile time.Important note on prior PRs vs this submission
#36, #37, and #38 were closed. Those were AI-auto submissions without hardware validation.
This PR is intentionally different: it is submitted only after manual flash testing and acceptance checks on real hardware. I am not re-opening the old AI PR stack; this is a single, scoped change with a human-verified test report below.
Hardware scope: I only have one device — Kaisa (Acer Chromebox CXI4). All testing described here was performed on that single unit only. I cannot validate other Puff variants (AIO, other SKUs); hide options are gated under
BOARD_GOOGLE_KAISA*/BOARD_GOOGLE_KAISA_LEGACY*andSYSTEM_TYPE_MINIPCso other boards should be unaffected at compile time, but that is by design review rather than multi-device testing.Design
select SYSTEM_TYPE_MINIPC if !SYSTEM_TYPE_ALL_IN_ONEinpuff/Kconfig(unchanged)SYSTEM_HIDE_*→ compile-time omission of AML + guarded ECNotify()KAISA_HIDE_*Kconfig defaults (yon Kaisa Chromebox builds)10ec:8168remains_STA=0where applicableNo changes to
configs/cml/config.kaisa.uefi; Kconfig defaults enable hide on Chromebox builds.What is hidden on Kaisa (verified on the one test unit)
ACPI0003(AC)PNP0C0A(battery)R8168companion8086:02d3(PCH SATA AHCI)8086:02c4(PCH eMMC)10ec:8168(RTL8168 NIC)Optional VBTN/superio keyboard paths return
_STA=0whenKAISA_HIDE_VBTNis enabled.Files changed (11)
Kconfig
src/Kconfig—SYSTEM_HIDE_AC_ADAPTER/SYSTEM_HIDE_BATTERY(def_bool y if SYSTEM_TYPE_MINIPC)src/mainboard/google/puff/Kconfig—KAISA_HIDE_{VBTN,R8168_ACPI,EMMC,SATA}underBOARD_GOOGLE_KAISA*EC ACPI
src/ec/google/chromeec/acpi/ac.asl— omitDevice (AC)/ ACPI0003src/ec/google/chromeec/acpi/battery.asl— omit BAT0/BAT1; guardNotify()src/ec/google/chromeec/acpi/ec.asl— guardNotify(AC/BAT*)in_Qxxhandlerssrc/ec/google/chromeec/acpi/vbtn.asl— VBTN/VBTO_STA=0when hide enabledsrc/ec/google/chromeec/acpi/superio.asl— keyboard_STA=0when hide enabledDriver / SoC / devicetree
src/drivers/net/r8168.c— skip R8168 SSDT generation when hide enabledsrc/soc/intel/cannonlake/fsp_params.c— disableSataEnable/ScsEmmcEnabledvia FSP when hide enabledsrc/soc/intel/cannonlake/acpi/scs.asl— eMMC_STA=0when hide enabledsrc/mainboard/google/puff/variants/kaisa/overridetree.cb—device ref sata offTesting (Kaisa only — single DUT)
Device: Acer Chromebox CXI4 (Kaisa) — the only hardware I have for this platform.
Method: A/B flash on the same machine:
MrChromebox-2606baseline (stockconfig.kaisa.uefi)Script:
kaisa-pr1-hide-accept.shR8168ACPI present; PCI8086:02d3+8086:02c4visibleBoot, networking, and NVMe verified after flashing the PR ROM.
Not tested: any non-Kaisa Puff board; Windows-specific behavior beyond basic boot/network (Linux used for acceptance).
Out of scope
_PRW_REG, FMD changesChecklist
BOARD_GOOGLE_KAISA*Signed-off-byon commit