代码拉取完成,页面将自动刷新
同步操作将从 databuser/virtio 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
1. virtio移植自Linux4.19内核,transport目前支持mmio,pci legacy,pci modern三种方式。 2. virtio设备驱动目前支持: virtio block,net. 3. 本工程可以编译为内核静态库或者内核驱动模块,方便不同使用需求,通过修改config.mk 中的COMPILE_TYPE为klib或者kmodule来编译为不同目标文件. 4. 使用说明: a. 当编译为内核静态库使用时,通过以下示例代码来初始化virtio: virtio_init(); virtio_mmio_device_register((void *)VIRT_IO_MMIO, 48); virtio_pci_driver_register(); virtio_blk_driver_register(); virtio_net_driver_init(); 其中virtio_mmio_device_register()需要传入mmio设备基址和起始中断号(假设中断号是连续增加的), 这两个值在使用qemu不同模拟平台时可能不同,根据实际情况进行修改。 如果是pci设备的话就不要操心上面的问题,因为设备的寄存器等信息都在pci设备的bar空间中, virtio_pci_driver_register注册时会自动探测. b. 当编译为内核驱动模块使用时,只驱动pci总线上的virtio设备. 5. 测试 1. 在qemu aarch64平台下通过1个mmio块设备和两个pci块设备还有一个pci网络设备来测试,qemu启动命令如下: sudo qemu-system-aarch64 -M virt -cpu cortex-a53 -nographic -smp 4 -kernel bspvirt.elf -m 1024M \ -drive file=virtio-blk.img,if=none,format=raw,id=hd0 -device virtio-blk-pci,drive=hd0 \ -net tap -netdev tap,id=tap0 -device virtio-net-pci,netdev=tap0 \ -drive file=virtio-blk1.img,if=none,format=raw,id=hd1 -device virtio-blk-pci,drive=hd1 \ -drive file=virtio-blk2.img,if=none,format=raw,id=hd2 -device virtio-blk-device,drive=hd2 系统启动后,通过ints命令可以看到注册了两个pci modern块设备和一个pci modern网络设备和一个mmio块设备中断: [root@sylixos:/root]# ints interrupt vector show >> IRQ NAME ENTRY CLEAR ENABLE RND PREEMPT PRIO CPU 0 ---- -------------- ---------------- ---------------- ------ --- ------- ---- ------------- 30 tick_isr 40000658 0 true 0 249 33 uart0_isr 400052e0 0 true 160 267 36 virt_blk_pci_m 40007e00 0 true 160 13 37 virt_net_pci_m 40007e00 0 true 160 19 38 virt_blk_pci_m 40007e00 0 true 160 2 79 virt_blk_mmio 40007250 0 true 160 2 2. 在qemu x86-64平台下通过一个pci块设备和一个pci网络设备来测试,qemu启动命令如下: sudo qemu-system-x86_64 \ -M q35 -smp 2 -m 2G \ -hda virtio-blk.img \ -drive file=virtio-blk1.img,if=none,format=raw,id=hd1 -device virtio-blk-pci,drive=hd1 \ -net tap -netdev tap,id=tap0 -device virtio-net-pci,netdev=tap0 \ -vga virtio \ -display gtk,gl=on \ -kernel bspx64.elf 系统启动后,通过ints命令可以看到注册了一个pci modern块设备和一个pci modern网络设备中断
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。