How do I do ACPI?

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
nexos
Member
Member
Posts: 1081
Joined: Tue Feb 18, 2020 3:29 pm
Libera.chat IRC: nexos

How do I do ACPI?

Post by nexos »

Hello,
I want to be able to use ACPI in my OS. I have seen ACPICA and tried it, but it way too large and complex for what I want. So I was wondering, what is the best way to go about ACPI? I hear ACPI is very complex because of AML and that stuff. There are only three things I am interested and they are finding PCI IRQ routing, parsing SMP info, and powering down the computer. Any suggestions?
Thanks,
nexos
"How did you do this?"
"It's very simple — you read the protocol and write the code." - Bill Joy
Projects: NexNix | libnex | nnpkg
thewrongchristian
Member
Member
Posts: 451
Joined: Tue Apr 03, 2018 2:44 am

Re: How do I do ACPI?

Post by thewrongchristian »

nexos wrote:Hello,
I want to be able to use ACPI in my OS. I have seen ACPICA and tried it, but it way too large and complex for what I want. So I was wondering, what is the best way to go about ACPI? I hear ACPI is very complex because of AML and that stuff.
ACPI looks like a beast, one of those "if that's the answer, WTF was the question?"
nexos wrote: There are only three things I am interested and they are finding PCI IRQ routing, parsing SMP info, and powering down the computer. Any suggestions?
Thanks,
nexos
Disclaimer, I've not tried it, but @Korona has this project in their sig:

https://github.com/qword-os/lai

When I get to the point that I care about ACPI, it's on the list to investigate, so I'd be curious how you get on.
User avatar
Octacone
Member
Member
Posts: 1138
Joined: Fri Aug 07, 2015 6:13 am

Re: How do I do ACPI?

Post by Octacone »

I would recommend LAI, or some other homemade GitHub interpreter.
ACPICA is one big clusterfuck, I don't like it.
When you feel mature enough, write your own. You don't have to support everything, only the things that you'll be using.
OS: Basic OS
About: 32 Bit Monolithic Kernel Written in C++ and Assembly, Custom FAT 32 Bootloader
Post Reply