Arm Versatile boards (``versatileab``, ``versatilepb``) ======================================================= The Arm Versatile baseboard is emulated with the following devices: - ARM926E, ARM1136 or Cortex-A8 CPU - PL190 Vectored Interrupt Controller - Four PL011 UARTs - SMC 91c111 Ethernet adapter - PL110 LCD controller - PL050 KMI with PS/2 keyboard and mouse. - PCI host bridge. Note the emulated PCI bridge only provides access to PCI memory space. It does not provide access to PCI IO space. This means some devices (eg. ne2k_pci NIC) are not usable, and others (eg. rtl8139 NIC) are only usable when the guest drivers use the memory mapped control registers. - PCI OHCI USB controller. - LSI53C895A PCI SCSI Host Bus Adapter with hard disk and CD-ROM devices. - PL181 MultiMedia Card Interface with SD card. Booting a Linux kernel ---------------------- Building a current Linux kernel with ``versatile_defconfig`` should be enough to get something running. Nowadays an out-of-tree build is recommended (and also useful if you build a lot of different targets). In the following example $BLD points to the build directory and $SRC points to the root of the Linux source tree. You can drop $SRC if you are running from there. .. code-block:: bash $ make O=$BLD -C $SRC ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- versatile_defconfig $ make O=$BLD -C $SRC ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- You may want to enable some additional modules if you want to boot something from the SCSI interface:: CONFIG_PCI=y CONFIG_PCI_VERSATILE=y CONFIG_SCSI=y CONFIG_SCSI_SYM53C8XX_2=y You can then boot with a command line like: .. code-block:: bash $ qemu-system-arm -machine type=versatilepb \ -serial mon:stdio \ -drive if=scsi,driver=file,filename=debian-buster-armel-rootfs.ext4 \ -kernel zImage \ -dtb versatile-pb.dtb \ -append "console=ttyAMA0 ro root=/dev/sda"