Inilah jawaban resmi saya setelah Anda menjawab komentar saya. Saya bisa saja salah tentang beberapa hal ini dan menerima koreksi.
Saya tidak yakin kapan Intel mulai memasukkan PCIe (yang merupakan ekstensi PCI yang kompatibel dengan perangkat lunak) ke dalam CPU mereka. Namun, sebagian besar waktu x86 tidak seperti ini. PCI benar-benar bagian dari keseluruhan "platform PC" yang mencakup sejumlah hal lain yang standar dan diharapkan, seperti port ISA standar/alamat I/O/IRQ untuk perangkat dan hal-hal seperti itu.
Kembalikan sedikit sebelum PCI ada - pada dasarnya, kecuali dengan upaya gagal untuk memperkenalkan standar PnP dengan ISAPNP, Anda tidak benar-benar "menyelidiki" beberapa perangkat. Anda biasanya perlu menganggap mereka ada sebelumnya. Anda dapat, tentu saja, menguji register dan apa yang tidak untuk dilihat jika semuanya merespons seperti yang diharapkan, tetapi Anda kemudian mendapat masalah jika ada perangkat yang berbeda, mungkin mengakibatkan hang, dll. Sebenarnya tidak ada cara untuk "memindai" bis ISA. Atau benar-benar bus lain yang tidak mendukung konsep PnP dengan cara standar.
Salah satu hal yang seharusnya dipecahkan oleh ACPI adalah menyediakan beberapa tabel informasi yang memberi tahu Anda perangkat ISA apa yang ada di dalamnya. Bahkan sebelum ACPI, BIOS akan dikonsultasikan untuk memutuskan berapa banyak floppy drive yang ada di sistem. Inilah sebabnya mengapa pada sistem yang lebih lama, bahkan jika Anda tidak memiliki floppy yang terhubung, Anda akan melihat drive A:di Windows jika Anda mengatur BIOS untuk menyatakan ada.
Jadi Anda mungkin bertanya bagaimana OS modern menentukan atau berinteraksi dengan chipset PCI. Seringkali chipset muncul sebagai perangkat di bus PCI itu sendiri. Antarmuka PCI mencatat "sudah ada" di lokasi standar yang diketahui di platform PC. Pemindaian terprogram melalui semua slot perangkat dan fungsi di ruang PCI dimungkinkan di sini. Tidak ada yang seperti itu untuk ISA. Jika perangkat berada di bus dengan ISA, registernya merespons saat dimuat/disimpan, dan hanya itu. Anda tidak dapat benar-benar berbicara dengan bus itu sendiri.
Kebetulan, chipset PCI bahkan mungkin memiliki kemampuan untuk mengontrol jembatan "PCI-ISA" dan membawa beberapa fungsionalitas PnP ke bus ISA (atau sekarang, LPC). Sendiri, ISA mengatakan Anda sendirian.
Tidak ada platform standar untuk ARM. Lagipula belum. Ada banyak platform unik yang dijalankan oleh CPU ARM. Bus PCI, I2C, dan SDIO (dan mungkin lebih banyak lagi yang tidak saya ketahui) adalah kesamaan di antara beberapa di antaranya, tetapi sekali lagi, ada platform ARM yang tidak memilikinya. ACPI tidak diimplementasikan pada ARM AFAIK kecuali pada Microsoft Surface RT. Tanpa bekerja dengan bus standar yang mendukung beberapa gagasan tentang PnP, tidak ada cara untuk "menyelidiki" apa pun. Anda harus mengetahui sebelumnya di luar sistem perangkat keras yang seharusnya ada di sana. U-Boot adalah bootloader ARM yang umum digunakan yang memerlukan dukungan dan dibangun untuk platform tertentu yang dimaksudkan untuk dijalankan. Ini seperti standar, tetapi meskipun demikian, biasanya dibangun per platform dari pemahaman saya.
Beberapa Googling singkat mengungkapkan bahwa perangkat ini memiliki chipset video "Mali 400". Pencarian lebih lanjut membawa situs kode sumber driver GPU Mali. Saya sedikit berkarat di C saya, tapi saya melihatnya. Sepertinya yang harus Anda lakukan adalah, ketika Anda membuat driver, beri tahu alamat yang harus dituju untuk berbicara dengan GPU. Saya benar-benar tidak membenamkan diri ke dalam sumber terlalu dalam tetapi tidak akan mengejutkan saya jika itu tidak berbicara dengan bus, tetapi hanya memuat/menyimpan dari I/O yang dipetakan memori secara langsung.
Jadi, sayangnya, menurut saya tidak ada jawaban umum untuk semua platform ARM.