Most devices can be detected through PCI and ACPI. (Although most x86 processors are not SoCs, they have many built-in PCI devices.)
The few remaining devices (mostly obsolete stuff running on an IBM PC) are hard-coded in x86 architecture code.
Any "new" devices that are not PCI must be described by the BIOS in some ACPI table.
source share