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