Lines Matching refs:base
21 return GET_UINT32(dev->base + VIRTMMIO_REG_STATUS);
26 WRITE_UINT32(VirtioGetStatus(dev) | val, dev->base + VIRTMMIO_REG_STATUS);
31 WRITE_UINT32(VIRTIO_STATUS_RESET, dev->base + VIRTMMIO_REG_STATUS);
36 VADDR_T base;
39 base = IO_DEVICE_ADDR(VIRTMMIO_BASE_ADDR) + VIRTMMIO_BASE_SIZE * (NUM_VIRTIO_TRANSPORTS - 1);
41 if ((GET_UINT32(base + VIRTMMIO_REG_MAGICVALUE) == VIRTMMIO_MAGIC) &&
42 (GET_UINT32(base + VIRTMMIO_REG_VERSION) == VIRTMMIO_VERSION) &&
43 (GET_UINT32(base + VIRTMMIO_REG_DEVICEID) == devId)) {
44 dev->base = base;
49 base -= VIRTMMIO_BASE_SIZE;
87 WRITE_UINT32(nth, baseDev->base + VIRTMMIO_REG_DEVFEATURESEL);
88 features = GET_UINT32(baseDev->base + VIRTMMIO_REG_DEVFEATURE);
91 before = GET_UINT32(baseDev->base + VIRTMMIO_REG_CONFIGGENERATION);
98 after = GET_UINT32(baseDev->base + VIRTMMIO_REG_CONFIGGENERATION);
101 WRITE_UINT32(nth, baseDev->base + VIRTMMIO_REG_DRVFEATURESEL);
102 WRITE_UINT32(supported, baseDev->base + VIRTMMIO_REG_DRVFEATURE);
134 WRITE_UINT32(paddr, dev->base + regLow);
136 WRITE_UINT32(paddr, dev->base + regLow + U32_BYTES);
144 WRITE_UINT32(queue, dev->base + VIRTMMIO_REG_QUEUESEL);
146 num = GET_UINT32(dev->base + VIRTMMIO_REG_QUEUEREADY);
148 num = GET_UINT32(dev->base + VIRTMMIO_REG_QUEUENUMMAX);
154 WRITE_UINT32(q->qsz, dev->base + VIRTMMIO_REG_QUEUENUM);
159 WRITE_UINT32(1, dev->base + VIRTMMIO_REG_QUEUEREADY);
163 static VADDR_T CalculateQueueAddr(VADDR_T base, uint16_t qsz, struct Virtq *q)
165 base = ALIGN(base, VIRTQ_ALIGN_DESC);
166 q->desc = (struct VirtqDesc *)base;
168 base = ALIGN(base + sizeof(struct VirtqDesc) * qsz, VIRTQ_ALIGN_AVAIL);
169 q->avail = (struct VirtqAvail *)base;
170 base = ALIGN(base + sizeof(struct VirtqAvail) + sizeof(uint16_t) * qsz, VIRTQ_ALIGN_USED);
171 q->used = (struct VirtqUsed *)base;
173 return base + sizeof(struct VirtqUsed) + sizeof(struct VirtqUsedElem) * qsz;
176 VADDR_T VirtmmioConfigQueue(struct VirtmmioDev *dev, VADDR_T base, uint16_t qsz[], int num)
181 base = CalculateQueueAddr(base, qsz[i], &dev->vq[i]);
187 return base;