Commit Graph

13 Commits

Author SHA1 Message Date
eaf06d239c Kernel: Cleanup and fix AML Method calls 2024-08-15 20:54:55 +03:00
3f5ee6f414 Kernel: Rewrite the AML conversion API
This doesn't currently make the interpreter any better, but it will make
further implementation easier to be spec (or hardware...) compliant
2024-08-15 02:25:45 +03:00
ec4cfdee23 Kernel: Fix and cleanup a lot of AML code
Node now have APIs to convert them to buffer, integer and string. This
allows possibility to handle methods that need explicitly use one of the
overloads instead of integer.

This patch also adds handling of DebugOp. This is used quite heavily in
uACPIs test suite.
2024-08-13 22:42:37 +03:00
45b9dc8be9 Kernel: Make ACPI \\_OSI return true for Linux 2024-04-17 02:19:35 +03:00
49b7467840 Kernel: Simplify AML method invocation API 2024-04-17 01:20:58 +03:00
7707e01352 Kernel: AML add flag to force absolute lookup for ACPI namespace 2024-04-16 17:38:23 +03:00
f1b2d7530d Kernel: Rework AML namespace and object hierarchy
Remove tree-like structure from AML. This allows more spec compliant
parsing of named objects inside not yet declared devices.

This also allows AML to be run thread safely. All object adds/removes
are now guarded by a mutex.
2024-04-16 16:47:45 +03:00
74940ed33c Kernel: Cleanup AML code and fix bugs
I can enter ACPI mode on my own laptop!
2024-04-12 16:03:14 +03:00
93ddee5956 Kernel: Implement locking for AML
Now global lock uses the actual global lock. Currenly if no lock
can be acquired, we just panic the kernel so that I remember to
implement it properly once AML is running concurrently.
2024-04-11 01:48:46 +03:00
5be38d0702 Kernel: My AML parser can now enable ACPI mode on QEMU! 2024-04-10 03:05:27 +03:00
ff203d8d34 Kernel: Implement more AML method invocation stuff
Method invocation is starting to come together. This implemenetation
can interpret some of the qemu's functions to enter ACPI mode.

PCI config space access is currently the one thing is between
entering ACPI mode.
2024-04-10 01:52:14 +03:00
23fa39121c Kernel: Start working on AML method evaluations
Also fix namespace lookup and scope creations.
2024-04-09 18:37:51 +03:00
b16e65168f Kernel: Rewrite whole AML parser
Now AML parsing is actually done while respecting namespaces and
scopes. I implemented the minimal functionality to parse qemu's AML.

Next step is to implement AML interpreting and then we can drop lai
as a dependency.
2024-04-09 01:16:07 +03:00