| 1 | Arm Versatile boards (``versatileab``, ``versatilepb``) |
| 2 | ======================================================= |
| 3 | |
| 4 | The 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 | |
| 31 | Booting a Linux kernel |
| 32 | ---------------------- |
| 33 | |
| 34 | Building a current Linux kernel with ``versatile_defconfig`` should be |
| 35 | enough to get something running. Nowadays an out-of-tree build is |
| 36 | recommended (and also useful if you build a lot of different targets). |
| 37 | In the following example $BLD points to the build directory and $SRC |
| 38 | points to the root of the Linux source tree. You can drop $SRC if you |
| 39 | are 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 | |
| 46 | You may want to enable some additional modules if you want to boot |
| 47 | something 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 | |
| 54 | You 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" |