diff --git a/kernel/virtio.h b/kernel/virtio.h index 3d85583..96272b4 100644 --- a/kernel/virtio.h +++ b/kernel/virtio.h @@ -10,7 +10,7 @@ // virtio mmio control registers, mapped starting at 0x10001000. // from qemu virtio_mmio.h #define VIRTIO_MMIO_MAGIC_VALUE 0x000 // 0x74726976 -#define VIRTIO_MMIO_VERSION 0x004 // version; 1 is legacy +#define VIRTIO_MMIO_VERSION 0x004 // version; should be 2 #define VIRTIO_MMIO_DEVICE_ID 0x008 // device type; 1 is net, 2 is disk #define VIRTIO_MMIO_VENDOR_ID 0x00c // 0x554d4551 #define VIRTIO_MMIO_DEVICE_FEATURES 0x010 diff --git a/kernel/virtio_disk.c b/kernel/virtio_disk.c index 249860b..ae6c164 100644 --- a/kernel/virtio_disk.c +++ b/kernel/virtio_disk.c @@ -20,20 +20,20 @@ #define R(r) ((volatile uint32 *)(VIRTIO0 + (r))) static struct disk { - // the first is a set (not a ring) of DMA descriptors, with which the + // a set (not a ring) of DMA descriptors, with which the // driver tells the device where to read and write individual // disk operations. there are NUM descriptors. // most commands consist of a "chain" (a linked list) of a couple of // these descriptors. struct virtq_desc *desc; - // next is a ring in which the driver writes descriptor numbers + // a ring in which the driver writes descriptor numbers // that the driver would like the device to process. it only // includes the head descriptor of each chain. the ring has // NUM elements. struct virtq_avail *avail; - // finally a ring in which the device writes descriptor numbers that + // a ring in which the device writes descriptor numbers that // the device has finished processing (just the head of each chain). // there are NUM used ring entries. struct virtq_used *used;