- Q35 has IOMMU - Q35 has PCIe - Q35 has Super I/O chip with LPC interconnect - Q35 has 12 USB ports - Q35 SATA vs. PATA
Irq routing
- Q35 PIRQ has 8 pins - PIRQ A-H - Q35 has two PIC modes – legacy PIC vs I/O APIC - Q35 runs in I/O APIC mode - Slots 0-24 are mapped to PIRQ E-H round robin - PCIe Bus to PIRQ mappings can be programmed - Slots 25-31 - Q35 has 8 PCI IRQ vectors available, I440FX/PIIX4 only 2
I440FX/PIIX4 vs. Q35 devices
- AHCI vs. Legacy IDE - PCI addresses - Populate slots using flags - Default slots
Generic ARM system emulation with the virt machine If you don't care about reproducing the idiosyncrasies of a particular bit of hardware, such as small amount of RAM, no PCI or other hard disk, etc., and just want to run Linux, the best option is to use:
-M virt **virt is a platform which doesn't correspond to any real hardware and is designed for use in virtual machines.**
It supports PCI, virtio, recent CPUs and large amounts of RAM.
See this tutorial for information on getting 32-bit ARM Debian Linux running on the "virt" board.
For 64-bit ARM "virt" is also the best choice, and there's a tutorial for 64-bit ARM Debian Linux setup too.
The "versatilepb" machine has also often been used as a general-purpose Linux target in the past; its disadvantage is that it has a very old CPU and only 256MB of RAM, but it does at least have PCI and SCSI. You can find a description of how to install Debian on it here (the author of that tutorial has also provided some prebuilt images). You're probably better off using "virt" though.