xref: /openbmc/qemu/docs/system/arm/versatile.rst (revision 2e1cacfb)
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