Skip to content

Commit e207c53

Browse files
authored
December 2021: add changes for acpi (#82)
1 parent 04992a8 commit e207c53

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

content/this-month/2021-12/index.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ date = 0000-01-01
66
month = "December 2021"
77
authors = [
88
"phil-opp",
9+
"IsaacWoods",
910
# add yourself here
1011
]
1112
+++
@@ -36,6 +37,18 @@ The `x86_64` crate provides various abstractions for `x86_64` systems, including
3637

3738
In December, …
3839

40+
### [`acpi`](https://github.com/rust-osdev/acpi)
41+
42+
The `acpi` repository contains crates for parsing the ACPI tables – data structures that the firmware of modern computers use to relay information about the hardware to the OS.
43+
44+
December was a fairly quiet month, but [an important bug-fix landed](https://github.com/rust-osdev/acpi/pull/114) that corrected the way we handled `_CRS` objects in a structure
45+
called the `_PRT`, which are found on PCI root bridges and tell the OS how interrupt pins on PCI devices have been routed to the platform's interrupt controller. Each pin can be
46+
hardwired to a specific interrupt, or more commonly, can be dynamically assigned using a 'Link Object' through a set of control methods: `_PRS`, `_CRS`, `_SRS`, and `_DIS`.
47+
However, many platforms implement Link Objects that actually hardcode the interrupts (including QEMU) and this is where the bug slipped in: `_CRS` was being evaluated as a
48+
hardcoded object. We now treat these objects correctly as control methods, supporting properly-configured tables. <span class="gray">(published as `aml v0.16.1`)</span>
49+
50+
Thanks to [@Dentosal](https://github.com/Dentosal) for this contribution!
51+
3952
## Call for Participation
4053

4154
Want to contribute to a Rust OSDev project, but don't know where to start? Pick up one of these outstanding

0 commit comments

Comments
 (0)