Zde je moje oficiální odpověď po vaší odpovědi na mé komentáře. V některých z toho se mohu docela mýlit a vítám opravy.
Nejsem si jistý, kdy Intel začal začleňovat PCIe (což je softwarově kompatibilní rozšíření PCI) do svých CPU. Nicméně po většinu času, kdy x86 existuje, tomu tak nebylo. PCI je skutečně součástí celé "PC platformy", která zahrnuje řadu dalších věcí, které jsou standardní a očekávané, jako jsou standardní ISA porty/I/O adresy/IRQ pro zařízení a podobné věci.
Trochu se vraťte do doby před PCI – v podstatě, s výjimkou neúspěšného pokusu o zavedení standardu PnP s ISAPNP, jste některá zařízení skutečně „netestovali“. Obecně byste museli předem předpokládat, že existovaly. Mohli byste samozřejmě otestovat registry a co nevidět, jestli věci reagují podle očekávání, ale pak se dostanete do problémů, pokud je tam jiné zařízení, což může mít za následek zablokování atd. Opravdu neexistoval způsob, jak „skenovat“ sběrnici ISA. Nebo opravdu jakákoli jiná sběrnice, která standardizovaným způsobem nepodporuje koncepty PnP.
Jednou z věcí, které mělo ACPI vyřešit, bylo poskytnout nějaké tabulky informací, které vám řekly, jaká zařízení ISA byla vestavěna. Ještě před ACPI by byl konzultován BIOS, aby se rozhodlo, kolik disketových jednotek je v systému. To je důvod, proč na starších systémech, i když nemáte připojenou disketu, uvidíte ve Windows jednotku A:, pokud máte v BIOSu nastaveno, že tam je.
Můžete se tedy zeptat, jak moderní OS určují nebo komunikují s čipovou sadou PCI. Čipová sada se většinou objeví jako zařízení na samotné sběrnici PCI. Rozhraní PCI registruje "pre-exist" na známých standardních místech na platformě PC. Zde je možné programové skenování všech zařízení a funkčních slotů v prostoru PCI. Nic takového pro ISA neexistuje. Pokud je zařízení na sběrnici s ISA, jeho registry při načtení/uložení reagují a je to. Se samotným autobusem se opravdu mluvit nedá.
Mimochodem, čipová sada PCI může mít dokonce schopnost řídit "PCI-ISA" most a přinášet některé funkce PnP na sběrnici ISA (nebo nyní LPC). Sama o sobě však ISA říká, že jste na to sami.
Pro ARM žádná taková standardní platforma neexistuje. Každopádně ještě ne. Existuje mnoho jedinečných platforem, na kterých běží procesory ARM. Sběrnice PCI, I2C a SDIO (a možná i další, o kterých nevím) jsou mezi některými z nich společné, ale opět existují platformy ARM, které nic z toho nemají. ACPI není implementováno na ARM AFAIK kromě Microsoft Surface RT. Bez práce se standardizovanou sběrnicí, která podporuje nějakou představu o PnP, skutečně není možné nic „sondovat“. Musíte mít znalosti mimo systém hardwaru, který tam má být. U-Boot je běžně používaný zavaděč ARM, který vyžaduje podporu a musí být vytvořen pro konkrétní platformu, na které má běžet. Je to něco jako standard, ale i tak je to podle mého chápání obvykle vytvořeno pro každou platformu.
Některá krátká googlení odhalila, že toto zařízení má video čipset „Mali 400“. Další hledání přináší stránky zdrojového kódu ovladače GPU Mali. Na C jsem trochu zrezivělý, ale koukal jsem na to. Zdá se, že to, co byste měli udělat, je, že když sestavujete ovladač, sdělte mu adresy, které potřebuje zasáhnout, aby mohl komunikovat s GPU. Opravdu jsem se do zdroje neponořil příliš hluboko, ale nepřekvapilo by mě, kdyby nemluvil se sběrnicí, ale pouze načítal/ukládal přímo z paměťově mapovaných I/O.
Takže si nemyslím, že existuje obecná odpověď pro všechny platformy ARM, bohužel.