Arm Versatile 板(versatileab、versatilepb)
模拟的 Arm Versatile 底板包含以下设备:
ARM926E、ARM1136 或 Cortex-A8 CPU
PL190 向量中断控制器
四个 PL011 UART
SMC 91c111 以太网适配器
PL110 LCD 控制器
带 PS/2 键盘和鼠标的 PL050 KMI
PCI 主机桥。注意,模拟的 PCI 桥仅提供对 PCI 内存空间的访问,不提供对 PCI I/O 空间的访问。这意味着某些设备(例如 ne2k_pci 网卡)无法使用,而其他设备(例如 rtl8139 网卡)只有在客户机驱动使用内存映射控制寄存器时才能使用。
PCI OHCI USB 控制器
带硬盘和 CD-ROM 设备的 LSI53C895A PCI SCSI 主机总线适配器
带 SD 卡的 PL181 多媒体卡接口
启动 Linux 内核
使用 versatile_defconfig 构建当前 Linux 内核,应足以启动运行。现在建议采用树外构建(构建多个不同目标时也很有用)。下例中,$BLD 指向构建目录,$SRC 指向 Linux 源代码树根目录。如果从源代码树根目录运行,可省略 $SRC。
$ 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-
如果要从 SCSI 接口启动,可能需要启用一些额外模块:
CONFIG_PCI=y
CONFIG_PCI_VERSATILE=y
CONFIG_SCSI=y
CONFIG_SCSI_SYM53C8XX_2=y
随后可以使用如下命令行启动:
$ 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"