2020-03-09 22:58:15 +01:00
|
|
|
Arm Versatile boards (``versatileab``, ``versatilepb``)
|
|
|
|
=======================================================
|
|
|
|
|
2020-03-09 22:58:18 +01:00
|
|
|
The Arm Versatile baseboard is emulated with the following devices:
|
2020-03-09 22:58:15 +01:00
|
|
|
|
|
|
|
- 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.
|
2021-02-02 14:40:00 +01:00
|
|
|
|
|
|
|
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"
|