1Arm Versatile boards (``versatileab``, ``versatilepb``) 2======================================================= 3 4The Arm Versatile baseboard is emulated with the following devices: 5 6- ARM926E, ARM1136 or Cortex-A8 CPU 7 8- PL190 Vectored Interrupt Controller 9 10- Four PL011 UARTs 11 12- SMC 91c111 Ethernet adapter 13 14- PL110 LCD controller 15 16- PL050 KMI with PS/2 keyboard and mouse. 17 18- PCI host bridge. Note the emulated PCI bridge only provides access 19 to PCI memory space. It does not provide access to PCI IO space. This 20 means some devices (eg. ne2k_pci NIC) are not usable, and others (eg. 21 rtl8139 NIC) are only usable when the guest drivers use the memory 22 mapped control registers. 23 24- PCI OHCI USB controller. 25 26- LSI53C895A PCI SCSI Host Bus Adapter with hard disk and CD-ROM 27 devices. 28 29- PL181 MultiMedia Card Interface with SD card. 30 31Booting a Linux kernel 32---------------------- 33 34Building a current Linux kernel with ``versatile_defconfig`` should be 35enough to get something running. Nowadays an out-of-tree build is 36recommended (and also useful if you build a lot of different targets). 37In the following example $BLD points to the build directory and $SRC 38points to the root of the Linux source tree. You can drop $SRC if you 39are running from there. 40 41.. code-block:: bash 42 43 $ make O=$BLD -C $SRC ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- versatile_defconfig 44 $ make O=$BLD -C $SRC ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 45 46You may want to enable some additional modules if you want to boot 47something from the SCSI interface:: 48 49 CONFIG_PCI=y 50 CONFIG_PCI_VERSATILE=y 51 CONFIG_SCSI=y 52 CONFIG_SCSI_SYM53C8XX_2=y 53 54You can then boot with a command line like: 55 56.. code-block:: bash 57 58 $ qemu-system-arm -machine type=versatilepb \ 59 -serial mon:stdio \ 60 -drive if=scsi,driver=file,filename=debian-buster-armel-rootfs.ext4 \ 61 -kernel zImage \ 62 -dtb versatile-pb.dtb \ 63 -append "console=ttyAMA0 ro root=/dev/sda" 64