Finding the plug and play busses
Posted: Fri Jun 13, 2008 4:10 pm
OK. After quite a bit of work, my memory managers seem solid, my exception handlers are useful, and I now have the base foundations of my kernel laid
Now, from here I would like to find all of the plug and play busses that my kernel could support out, like PCI, PCIE, AGP, and maybe even MCA (Like that's ever gonna happen )
The problem here is how do I find them. From my understanding, there are two ways to do this. If there are more, then please point me at them, since I was unable to find them on the OSDevWiki!
The first, and easiest, would be to use the MP tables. These are really simply laid out, provide the information you need, and Intel even have a very nice document on them. The problem here is most Uniprocessor machines don't have them... obviously...
And so the only remaining option is ACPI. Urgh. I have briefly looked into the ACPI specifications, and from my understanding, to do what MP would make so easy involves writing my own AML interpreter. Or, more likely, shoehorning Intel's ACPI implementation in since writing your own seems to be an inhuman task.
Now, please, someone tell me that doing something as simple as identifying the system's connected busses is easier than this. Please tell me that either there is a third method of which I have heard nothing or that ACPI is not the horrible complicated monstrosity that I hear it is.
Now, from here I would like to find all of the plug and play busses that my kernel could support out, like PCI, PCIE, AGP, and maybe even MCA (Like that's ever gonna happen )
The problem here is how do I find them. From my understanding, there are two ways to do this. If there are more, then please point me at them, since I was unable to find them on the OSDevWiki!
The first, and easiest, would be to use the MP tables. These are really simply laid out, provide the information you need, and Intel even have a very nice document on them. The problem here is most Uniprocessor machines don't have them... obviously...
And so the only remaining option is ACPI. Urgh. I have briefly looked into the ACPI specifications, and from my understanding, to do what MP would make so easy involves writing my own AML interpreter. Or, more likely, shoehorning Intel's ACPI implementation in since writing your own seems to be an inhuman task.
Now, please, someone tell me that doing something as simple as identifying the system's connected busses is easier than this. Please tell me that either there is a third method of which I have heard nothing or that ACPI is not the horrible complicated monstrosity that I hear it is.