0%

本文具体分析ATS相关的一些消息格式, 以及一些相关的设计逻辑。这些消息格式 除了capability,其他的都是软件不感知的,但是通过分析他们,我们对系统的 行为可以有更深一点的了解。当前的版本中,我们先分析目前比较关心的域段,随后 看需要补充其他的域段。

阅读全文 »

本文介绍在qemu里增加一个虚拟设备的步骤。本文会以一个PCIe DMA engine设备为 例来介绍,我们定义这个设备的软硬件接口,并且按照这样的定义在qemu里实现这个 设备,最后我们实现这个设备的Linux内核驱动。使用qemu可以方便的调试Linux内核, 有了自定义的qemu设备,使用qemu调试与设备有关的问题也会变得比较方便。

阅读全文 »

本文介绍qemu启动的系统里再起一个qemu的环境配置。这样可以搭建一个完全虚拟的 虚拟化环境,方便调试虚拟化相关的东西。本文说明整个搭建的逻辑,并搭建一个arm64 的qemu in qemu的环境。

阅读全文 »

本文是《跟我一起学Makefile》的一个学习笔记,N年前看过这个材料,现在再回头 看下,温故而知新。然后在拿pciutils里手写的Makefile逐行对照着看下。本文也用于 后面持续收集make相关的用法。

阅读全文 »

本文分析和PCIe PRI特性相关的软硬件接口逻辑,以及相关的软件实现。

阅读全文 »

Linux下命令行运行一个app时,可以通过中划线开头的参数给app传参数。app可以 使用getopt或者是getopt_long的方式解析输入参数,glib库同样提供一组参数配置、 解析的函数。使用glib库提供的解析方式写起代码来更简单一点,本文介绍一个基本 的使用方式。

阅读全文 »

qemu里使用面向对象的模型来模拟相关的元素,可以想象这样的模拟是很合理的,比如, 用device描述一个设备的基类,pci_device可以继承device,然后vfio的pci设备又可以 继承pci_device,同时一个用纯用软件模拟的pci网络设备也可以继承pci_device。 本文描述这个基于面向对象的思路构建起来的qemux模型。分析基于qemu 5.2.92版本。

阅读全文 »