Skip to content

mb/google/puff: hide laptop-class ACPI/PCI on Kaisa Chromebox - #41

Open
jackadam1981 wants to merge 54 commits into
MrChromebox:MrChromebox-2606from
jackadam1981:pr/1-kaisa-hide
Open

mb/google/puff: hide laptop-class ACPI/PCI on Kaisa Chromebox#41
jackadam1981 wants to merge 54 commits into
MrChromebox:MrChromebox-2606from
jackadam1981:pr/1-kaisa-hide

Conversation

@jackadam1981

Copy link
Copy Markdown
Contributor

Note for maintainer: Closed #36#38 were AI-auto submissions without hardware validation. This PR is post-flash, post-acceptance on my only machine (Kaisa/CXI4); I have no other Puff hardware to test.

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* and SYSTEM_TYPE_MINIPC so other boards should be unaffected at compile time, but that is by design review rather than multi-device testing.

Design

Layer Mechanism
Mini PC form factor Existing upstream select SYSTEM_TYPE_MINIPC if !SYSTEM_TYPE_ALL_IN_ONE in puff/Kconfig (unchanged)
AC / battery SYSTEM_HIDE_* → compile-time omission of AML + guarded EC Notify()
Kaisa-specific KAISA_HIDE_* Kconfig defaults (y on Kaisa Chromebox builds)
RTL8168 Skip ACPI SSDT only; PCI 10ec:8168 remains
SATA / eMMC Devicetree + FSP disable + ACPI _STA=0 where applicable

No 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)

Item Baseline (2606) With this PR
ACPI ACPI0003 (AC) present absent
ACPI PNP0C0A (battery) present absent
ACPI R8168 companion present absent
PCI 8086:02d3 (PCH SATA AHCI) present absent
PCI 8086:02c4 (PCH eMMC) present absent
PCI 10ec:8168 (RTL8168 NIC) present present (intentional)

Optional VBTN/superio keyboard paths return _STA=0 when KAISA_HIDE_VBTN is enabled.

Files changed (11)

Kconfig

  • src/KconfigSYSTEM_HIDE_AC_ADAPTER / SYSTEM_HIDE_BATTERY (def_bool y if SYSTEM_TYPE_MINIPC)
  • src/mainboard/google/puff/KconfigKAISA_HIDE_{VBTN,R8168_ACPI,EMMC,SATA} under BOARD_GOOGLE_KAISA*

EC ACPI

  • src/ec/google/chromeec/acpi/ac.asl — omit Device (AC) / ACPI0003
  • src/ec/google/chromeec/acpi/battery.asl — omit BAT0/BAT1; guard Notify()
  • src/ec/google/chromeec/acpi/ec.asl — guard Notify(AC/BAT*) in _Qxx handlers
  • src/ec/google/chromeec/acpi/vbtn.asl — VBTN/VBTO _STA=0 when hide enabled
  • src/ec/google/chromeec/acpi/superio.asl — keyboard _STA=0 when hide enabled

Driver / SoC / devicetree

  • src/drivers/net/r8168.c — skip R8168 SSDT generation when hide enabled
  • src/soc/intel/cannonlake/fsp_params.c — disable SataEnable / ScsEmmcEnabled via FSP when hide enabled
  • src/soc/intel/cannonlake/acpi/scs.asl — eMMC _STA=0 when hide enabled
  • src/mainboard/google/puff/variants/kaisa/overridetree.cbdevice ref sata off

Testing (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:

  1. Self-built MrChromebox-2606 baseline (stock config.kaisa.uefi)
  2. ROM built from this commit

Script: kaisa-pr1-hide-accept.sh

Build Result
2606 baseline fail=2R8168 ACPI present; PCI 8086:02d3 + 8086:02c4 visible
This PR fail=0 — all hide checks pass; RTL8168 PCI still present

Boot, 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

  • Sleep profile / S0ix / S3 / XHCI _PRW
  • RTC, fan _REG, FMD changes
  • PXE / defconfig expansion (separate PRs)

Checklist

  • Closed AI-auto PRs superseded by human-verified submission
  • Tested on one Kaisa unit only
  • Scoped to BOARD_GOOGLE_KAISA*
  • Signed-off-by on commit

MrChromebox and others added 30 commits June 14, 2026 21:57
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>
Comment thread src/drivers/net/r8168.c

if (dev->chip_ops)
acpigen_write_name_string("_DDN", dev->chip_ops->name);
acpigen_write_STA(ACPI_STATUS_DEVICE_HIDDEN_ON);

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why? the device has an AC adapter

Comment thread src/ec/google/chromeec/acpi/battery.asl Outdated
If (Local1 != DeRefOf (Arg2)) {
Arg2 = Local1
If (Arg0 == 0) {
#if !CONFIG(SYSTEM_HIDE_BATTERY)

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

again, why hide the AC adapter?

Comment thread src/ec/google/chromeec/acpi/superio.asl Outdated
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)

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we can probably turn this off in the baseboard, I'm not aware of any PUFF devices that use SATA

Comment thread src/soc/intel/cannonlake/acpi/scs.asl Outdated
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)

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can set STA dynamically based on the eMMC being present or not - better than guarding

Comment thread src/soc/intel/cannonlake/fsp_params.c Outdated

/* SATA */
#if CONFIG(BOARD_GOOGLE_KAISA) || CONFIG(BOARD_GOOGLE_KAISA_LEGACY)
s_cfg->SataEnable = CONFIG(KAISA_HIDE_SATA) ? 0 :

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if you've disabled SATA in the devicetree, then is_devfn_enabled(PCH_DEVFN_SATA) is false and this is unecessary

Comment thread src/soc/intel/cannonlake/fsp_params.c Outdated
/* 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);

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here

jackadam1981 added a commit to jackadam1981/coreboot-CXI4 that referenced this pull request Jun 30, 2026
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>
@jackadam1981

Copy link
Copy Markdown
Contributor Author

Thanks for the detailed review — all points addressed in 88646896bb on pr/1-kaisa-hide.

Device Manager evidence (Win, Kaisa / Acer CXI4)

Baseline (MrChromebox-2606): orphan ACPI\R8168 Unknown while GbE OK; SATA controller yellow bang.

Baseline: ACPI R8168 Unknown + instance path

Baseline: SATA / AC / batteries overview

Baseline: Realtek GbE OK on PCI

This PR (linux_v0.2.0 line, pre-trim ROM — same hide behavior): R8168 ACPI + SATA nodes gone; GbE unchanged.

PR1 post-flash overview

(Screenshots hosted temporarily on my fork release pr41-evidence-20260630.)

Dropped / simplified (agree)

Your comment Action
battery.asl / 93260 Reverted compile-time SYSTEM_HIDE_BATTERY — on MrChromebox-2606 our Kaisa DUT already has PNP0C0A:00 _STA=0, no BAT* power_supply (Linux + Windows).
superio.asl Reverted — Puff does not define SIO_EC_ENABLE_PS2K.
vbtn.asl Reverted — only included for SYSTEM_TYPE_CONVERTIBLE.
fsp_params.c SATA/eMMC Reverted Kaisa FSP guards — redundant once devicetree disables functions.
scs.asl Kconfig guard Reverted — eMMC handled via puff baseboard device ref emmc off (NVMe SKU).
kaisa/overridetree.cb SATA Moved device ref sata off to puff baseboard devicetree.cb (no Puff SKU uses SATA).

Kept (with hardware evidence)

r8168.c — skip R8168 SSDT

On MrChromebox-2606 baseline, Windows Device Manager shows an Unknown device with instance path ACPI\R8168\D0E889DD while Realtek PCIe GbE Family Controller (PCI 10ec:8168) stays OK. After this PR, that ACPI node is gone; GbE unchanged.

Linux: R8168:00 in sysfs on baseline, absent with PR; NIC uses r8169 on PCI only either way.

kaisa-pr1-hide-accept: baseline fail=2 (R8168 ACPI + 8086:02d3/8086:02c4 PCI); PR ROM pass=7 fail=0.

ac.asl / EC AC Notify guards — omit ACPI0003 on MINIPC

The Chromebox has a fixed AC brick (not a hot-plug laptop). We omit Device (AC) / guard EC Notify(AC,…) on SYSTEM_TYPE_MINIPC to avoid laptop-style AC connect/disconnect ACPI noise — not because AC is broken. Windows baseline showed normal Microsoft AC Adapter; PR1 removes the ACPI0003 node as intended.

Testing (single Kaisa / Acer CXI4 only)

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>
@jackadam1981

Copy link
Copy Markdown
Contributor Author

Thanks for the detailed review — I've force-pushed a single-commit update to pr/1-kaisa-hide (f5e76162 on top of MrChromebox-2606). The branch no longer contains the earlier rollup (sleep profile, DPTF, PL1, merge commits, etc.).

Diff is now 7 files (+28 / −4):

Area Change
src/Kconfig SYSTEM_HIDE_AC_ADAPTER (def_bool y if SYSTEM_TYPE_MINIPC)
puff/Kconfig KAISA_HIDE_R8168_ACPI only (under BOARD_GOOGLE_KAISA*)
ac.asl / ec.asl Omit ACPI0003; guard Notify(AC,…)
r8168.c Skip RTL8168 SSDT when hide enabled (PCI 10ec:8168 unchanged)
baseboard/devicetree.cb device ref sata off + emmc off
kaisa/overridetree.cb Remove duplicate emmc on

Dropped per your feedback (and Gerrit 93260 where noted):

  • T5 superio.asl — reverted (PUFF does not define SIO_EC_ENABLE_PS2K)
  • T6 vbtn.asl — reverted (only included for SYSTEM_TYPE_CONVERTIBLE)
  • T3 battery.asl / SYSTEM_HIDE_BATTERY — removed; on 2606, PNP0C0A:00 and GOOG0007:00 already report _STA=0 via 93260-style EC feature checks (verified on my Kaisa in Linux: no BAT* power_supply)
  • T7 SATA — moved to puff baseboard devicetree (sata off), not kaisa-only Kconfig
  • T8 scs.asl / KAISA_HIDE_EMMC — removed; eMMC disabled in baseboard devicetree instead
  • T9/T10 fsp_params.c SATA/eMMC toggles — removed (redundant once devicetree is off)

Why I kept r8168.c and AC hide (T1/T2/T4):

On Windows 10 with a self-built 2606 baseline (no PR1 hide), Device Manager showed:

  • System devices: ACPI\R8168Unknown device
  • IDE ATA/ATAPI controllers: Intel SATA AHCI — Code 28 (no driver)

Linux on the same unit: R8168:00 exists in ACPI sysfs but the NIC binds via PCI r8169 only; networking works. After flashing a PR1 ROM, kaisa-pr1-hide-accept.sh reports pass=7 fail=0 (no R8168 ACPI node; PCI 8086:02d3 / 8086:02c4 absent; 10ec:8168 still present).

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 ac.asl/ec.asl or r8168.c if you prefer after seeing the Windows evidence — the rest of the cleanup is already in this push.

device ref heci1 on end
device ref sata on end
device ref sata off end
device ref emmc off end

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these are both off by default in the chipset devicetree, disabling here is redundant and not necessary - simply removing from the overridetree is sufficient

Comment thread src/Kconfig
default n
bool

# Derived from SYSTEM_TYPE_MINIPC (L2 baseboard select); not user options.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what's the impetus for hiding a device that exists and is a part of the ACPI standard?

@MrChromebox

Copy link
Copy Markdown
Owner

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

@MrChromebox
MrChromebox force-pushed the MrChromebox-2606 branch 5 times, most recently from 001d577 to ddfe385 Compare July 9, 2026 22:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants