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