Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
9819ecb
issues: the AML track's finish, and its slices in order
Japabu Oct 12, 2026
dc11b83
issues: the AML track lands as one pull request, in the order M1 fixed
Japabu Oct 12, 2026
d2006cc
S2: AML reads memory-mapped I/O as a register, and writes SMI_CMD and…
Japabu Oct 12, 2026
50abe34
S3: the namespace initialised, the ECDT's controller first, and the c…
Japabu Oct 12, 2026
d9ca8cd
S1: Load, its blocks global in a namespace of two arenas, and _OSC ne…
Japabu Oct 12, 2026
ce15a9e
acpiserver: attach lives beside find and query in devices.rs
Japabu Oct 12, 2026
800fb47
S4: the grammar whole: every space reaches the host, LoadTable, DataT…
Japabu Oct 12, 2026
b8dbbad
S5: every event served: runtime GPEs, each Notify to its owner, and t…
Japabu Oct 12, 2026
cf4ed8a
S6: the bounds stated and read: the heap a running interpreter holds,…
Japabu Oct 12, 2026
14241dc
The acpi_tables_loaded row judges each bench by its own tables, and r…
Japabu Oct 12, 2026
fb2bcce
acpiserver: a commit sends only what the query offered of the claim
Japabu Oct 12, 2026
28ef934
acpiserver: the guest build imports what it uses, and GPE0's count is…
Japabu Oct 12, 2026
bac5ccc
S5: what latched during the load is served before the namespace is in…
Japabu Oct 12, 2026
b38a138
acpiserver and toyos-aml: the module headers say what the build added
Japabu Oct 12, 2026
cec32d0
Merge origin/main (36aff86fc: #885) into wt/toyos-aml
Japabu Oct 12, 2026
011714f
acpiserver: the namespace walk examines a device with an _INI at or b…
Japabu Oct 12, 2026
15536e2
AML writes every port the kernel does not keep
Japabu Oct 12, 2026
eb9419e
toyos-aml: a method refused at the heap bound gives back what it made
Japabu Oct 12, 2026
7c46e7d
issues: the track records the three rulings, and a finding the namesp…
Japabu Oct 12, 2026
a4111b4
toyos-aml: the refused method's test holds the Global Lock let go, wh…
Japabu Oct 12, 2026
270e2a8
acpiserver: the walk's test gives the refused _STA's device a child, …
Japabu Oct 12, 2026
94355e6
Merge origin/main (ab655a115: #871, #861, #881) into wt/toyos-aml
Japabu Oct 12, 2026
b3bfc97
tests: acpi_press_across_a_lock_wait's table declares a device whose …
Japabu Oct 12, 2026
06c59af
Merge origin/main (138af6567: #888, #890, #876, #883, #891, #889) int…
Japabu Oct 12, 2026
6c60169
Merge origin/main (5096551ca: #898, #902, #897) into wt/toyos-aml
Japabu Oct 12, 2026
117858e
toyos-userbound: PROTECTED keeps the 8259's edge/level control alone,…
Japabu Oct 12, 2026
f61d38f
acpiserver, toyos-aml: each rule cites ACPI 6.5 or states ToyOS's own…
Japabu Oct 12, 2026
637409f
tests: acpi_tables_loaded is held to the server's power sources, and …
Japabu Oct 12, 2026
ddc243e
Merge origin/main (b680a973b: #873) into wt/toyos-aml
Japabu Oct 12, 2026
01523db
tests: battery_read holds the T14's ruled refusal as acpi_tables_load…
Japabu Oct 13, 2026
9505327
Merge origin/main (b805e6154: #900) into wt/toyos-aml
Japabu Oct 13, 2026
bf6a510
issues: the T14's controller and hotkey _INI are refused for writes o…
Japabu Oct 13, 2026
a3dad36
Merge origin/main (347e3313d: #874, #896) into wt/toyos-aml
Japabu Oct 13, 2026
5352b09
tests: the T14 bench holds its ruled refusal as the two _INIs by path
Japabu Oct 13, 2026
1b94d83
acpiserver: the load's latched press is served before initialisation …
Japabu Oct 13, 2026
17c2cb8
issues: the track's finish is the ruled state; the T14 issue records …
Japabu Oct 13, 2026
a785962
issues: the track's finish states the AMD adapter's ruled unknown and…
Japabu Oct 13, 2026
c7f8182
Merge origin/main (858da4d42: #893, #863) into wt/toyos-aml
Japabu Oct 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

This file was deleted.

27 changes: 0 additions & 27 deletions issues/qemus-interrupt-links-are-refused-by-the-aml-interpreter.md

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
status: open
kind: defect
opened: 2026-10-13
---

# The AMD bench's controller `_REG` and adapter `_PSR` are refused for a write to the root complex's index

On the AMD bench the server's evaluation of the embedded controller's
`_REG(3, 1)` and of the AC adapter's `_PSR` are each refused `ConfigWrite`:
both reach AMD's `ALIB` method in SSDT1, whose mailbox (`A011`) first writes
a DWord through a SystemMemory region over the ECAM window to function
00:00.0, offset 0xB8, and then reads and writes offset 0xBC as `BankField`s
selected by the value written there (ACPI 6.5 §19.6.7). The kernel refuses
every configuration write the claim's holder asks
(`toyos_userbound::firmware::config`).

**Ruled** (owner's orchestrator, 2026-10-12, #875 comment 6131125468): the
write stays refused. 00:00.0 offset 0xB8 is the root complex's index, and
through it AML reaches every register of the SoC, the IOMMU's configuration
among them; passing it, or every write past the standard header of a
function nothing claims, would put the server in the trusted base, against
"isolation is non-negotiable".

**What it costs**, read on the bench at #875's `b3bfc9742`
(`ToyOSOrg/evidence` `pr-875`, `round3/amd-acpi_tables_loaded.log`, and
the terms by offset in `round3/amd-aml-chain.txt`):

- `_REG(3, 1)` is refused after it has stored `OKEC` and `BASC` and
notified the battery, at its call of `^VPC0.NDPC`, so the census reads
`no _REG run` and whatever `NDPC` would tell the firmware of the
controller is not told;
- `_PSR` is refused at its `ALIB (One, …)`, so the adapter's state is
absent: the battery reads `AC unknown`;
- each later evaluation that reaches `ALIB` is refused the same way. The
battery's own `_BIX` and `_BST` are read.

**What AMD documents.** AMD's PPR for Family 17h Model 60h (55922-A1
rev 3.06) names 00:00.0, vendor 1022h device 1630h, the Root Complex
(§1.8.1, Table 13), the function the bench's kernel enumerates there, and
documents no register at its offsets 0xB8 or 0xBC nor anything the values
the mailbox writes to 0xB8 select: its register namespaces are the cores',
IO, MCA, SBTSI and SMU::THM alone (List of Namespaces; Memory Map - Main
Memory). So no documented register map exists yet to mediate that index by.

Owner: the AML track
(`issues/toyos-runs-the-machine-in-acpi-mode-and-interprets-its-aml.md`).

## Exit condition

A design the owner accepts that mediates writes through 00:00.0's 0xB8 and
0xBC by a register map AMD documents, built, with the AMD bench's
`acpi_tables_loaded` reading `_REG(3, 1)` run and `_PSR` answered, and the
expectation in `tests/toyos.rs` moved to it. Until then the refusal stays,
and the row expects it.
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
status: open
kind: defect
opened: 2026-10-12
---

# The AMD bench's SSDT8 scopes a controller no table defines, and is refused whole

The AMD bench's eighth SSDT ends in `Scope (\_SB.PCI0.LPC0.EC0)`, and no
table of the bench defines `EC0_`: its controller is `EC__`. ACPI 6.5
§19.6.120 reads "The object referred to by Location must already exist in
the namespace", so the block breaks a rule of the specification, and
`toyos-aml` refuses it whole with `NotFound`, keeping nothing of it.

**Ruled** (owner, 2026-10-12, on #875 in comment 6121646183): "Refuse the
table whole", by name; SSDT11's two calls into it fail by name too.

What the refusal costs, measured outside the tree on the bench's dump
(#875's M1, part 7): cut before the `Scope`, the block loads seven more
objects, one for each of its methods, and nothing else changes; SSDT11's
`M009` and `M010` call two of them, `M038` and `M039`, and any evaluation
that reaches either is refused by name. Neither is reached by the server's
start (#875's check outside the tree, `ToyOSOrg/evidence` `pr-875`).

Owner: the AML track
(`issues/toyos-runs-the-machine-in-acpi-mode-and-interprets-its-aml.md`).

## Exit condition

The bench's firmware ships an SSDT8 whose `Scope` names an object its tables
define, read loaded on the bench's `acpi_tables_loaded` row with the
expectation in `tests/toyos.rs` moved to 17 of 17; or the owner rules that a
block is kept short of a term that breaks a rule, and the interpreter does
so with a host test of it.
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
---
status: open
kind: defect
opened: 2026-10-13
---

# The T14's controller `_INI` and hotkey `_INI` are refused for writes outside the map

On the T14 the server's namespace walk has two `_INI`s refused `MemoryType`,
"a SystemMemory write the kernel refused MemoryType, in unlisted firmware
memory": the embedded controller's (`\_SB.PC00.LPCB.EC._INI`) and its
hotkey device's (`EC.HKEY._INI`). The kernel refuses every write the claim's
holder asks at an address the firmware's memory map does not list
(`toyos_userbound::firmware`).

**Ruled** (owner, 2026-10-12, #875): a memory write outside every range the
map describes is refused by name and recorded, not admitted. Ruled again on
the two writes read below (#875, comment 6135767889): both stay refused
under that ruling, since a write outside the firmware's map reaches a device
another driver may own, the GPIO community for the pad and MCHBAR for the
hotkey device's, so isolation decides. The T14 row expects both `_INI`s
refused by path and the census's count of two (`T14` in `tests/toyos.rs`).

**The controller's write**, read on the T14 at #875's `ddc243eaf` and
reproduced on the host by the T14's own tables (`ToyOSOrg/evidence`
`pr-875`, `round5/`): `EC._INI` calls `HKEY.WGIN`, which stores what the
firmware's SMI answers for `WGSV(1)` and, where `WIN8` is set and that
answer is not zero, calls `BPWC(1)`; `BPWC` calls `\_SB.SGOV(0x0902000D, 1)`
where the answer has bit 4 set and bit 7 clear. That is byte 0x01 at
0xFD6E0A70: `\SBRG` (SBREG_BAR, 0xFD000000) + Port ID 0x6E << 16 + 0xA70,
which Intel's 500 Series Chipset On-Package PCH datasheet vol. 2
(631120-002) §27.1.114 names `PAD_CFG_DW0_GPPC_A_13` of GPIO Community 0,
bit 0 `GPIOTXSTATE`, "drive a level '1' to the TX output pad". The window
0xFD6E0000 + 64 KiB is one of four the GPIO controller `\_SB.GPI0`
(`INT34C5`) lists in its `_CRS`, and each holds every pad's configuration
of its community with `PAD_OWN`, `PADCFGLOCK`, `HOSTSW_OWN` and the GPE
group assignment (§27.1.1–27.1.19); `PAD_OWN` 00 is "no read/write
restriction to the Pad Configuration register set during host ownership".

**The hotkey device's write** is not read on the T14: the server details a
kind's first refusal only. On the host the T14's tables reach it by
`HKEY._INI` → `DYTC` → `SCPF` → `\_SB.PC00.PL1S` → `CTCN`, which writes
bytes at MCHBAR + 0x5F50, 0x5F54, 0x59A0 and 0x59A1, where MCHBAR is what
00:00.0 offset 0x48 holds (the host run assumed 0xFEDC0000). Intel's 11th
Generation Core processor datasheet vol. 2 (631122) is the document for
those offsets; it is fetched and unread, its PDF encrypted against the text
extractor tried.

**What it costs**:

- `EC._INI` is refused inside `WGIN`, so the pad stays as the firmware
left it, `WGIN`'s flags miss bit 5, and nothing after `WGIN` runs: on
the host, under the values that run answered, that is a read of the
controller's bytes 0x49 and 0x3A and a write of 0x3A with bit 5 set;
- `HKEY._INI` is refused inside `DYTC`, and whatever comes after its
refused write is not done;
- the battery and the adapter are read regardless (`battery_read`).

Owner: the AML track
(`issues/toyos-runs-the-machine-in-acpi-mode-and-interprets-its-aml.md`).

## Exit condition

The hotkey device's refused write is read on the T14, and either a design
the owner accepts mediates these writes by Intel's register maps, built,
with the T14's `acpi_tables_loaded` reading both `_INI`s run and the
expectation in `tests/toyos.rs` moved to it, or the refusal stays and the
row expects it.
Loading