Lines Matching refs:base
26 return GET_UINT32(dev->base + VIRTMMIO_REG_STATUS);
31 FENCE_WRITE_UINT32(VirtioGetStatus(dev) | val, dev->base + VIRTMMIO_REG_STATUS);
36 FENCE_WRITE_UINT32(VIRTIO_STATUS_RESET, dev->base + VIRTMMIO_REG_STATUS);
41 VADDR_T base;
44 base = IO_DEVICE_ADDR(VIRTMMIO_BASE_ADDR) + VIRTMMIO_BASE_SIZE * (NUM_VIRTIO_TRANSPORTS - 1);
46 if ((GET_UINT32(base + VIRTMMIO_REG_MAGICVALUE) == VIRTMMIO_MAGIC) &&
47 (GET_UINT32(base + VIRTMMIO_REG_VERSION) == VIRTMMIO_VERSION) &&
48 (GET_UINT32(base + VIRTMMIO_REG_DEVICEID) == devId)) {
49 dev->base = base;
54 base -= VIRTMMIO_BASE_SIZE;
92 FENCE_WRITE_UINT32(nth, baseDev->base + VIRTMMIO_REG_DEVFEATURESEL);
93 features = GET_UINT32(baseDev->base + VIRTMMIO_REG_DEVFEATURE);
96 before = GET_UINT32(baseDev->base + VIRTMMIO_REG_CONFIGGENERATION);
103 after = GET_UINT32(baseDev->base + VIRTMMIO_REG_CONFIGGENERATION);
106 FENCE_WRITE_UINT32(nth, baseDev->base + VIRTMMIO_REG_DRVFEATURESEL);
107 FENCE_WRITE_UINT32(supported, baseDev->base + VIRTMMIO_REG_DRVFEATURE);
142 FENCE_WRITE_UINT32(paddr, dev->base + regLow);
144 FENCE_WRITE_UINT32(paddr, dev->base + regLow + U32_BYTES);
152 FENCE_WRITE_UINT32(queue, dev->base + VIRTMMIO_REG_QUEUESEL);
154 num = GET_UINT32(dev->base + VIRTMMIO_REG_QUEUEREADY);
156 num = GET_UINT32(dev->base + VIRTMMIO_REG_QUEUENUMMAX);
162 FENCE_WRITE_UINT32(q->qsz, dev->base + VIRTMMIO_REG_QUEUENUM);
167 FENCE_WRITE_UINT32(1, dev->base + VIRTMMIO_REG_QUEUEREADY);
171 static VADDR_T CalculateQueueAddr(VADDR_T base, uint16_t qsz, struct Virtq *q)
173 base = ALIGN(base, VIRTQ_ALIGN_DESC);
174 q->desc = (struct VirtqDesc *)base;
176 base = ALIGN(base + sizeof(struct VirtqDesc) * qsz, VIRTQ_ALIGN_AVAIL);
177 q->avail = (struct VirtqAvail *)base;
178 base = ALIGN(base + sizeof(struct VirtqAvail) + sizeof(uint16_t) * qsz, VIRTQ_ALIGN_USED);
179 q->used = (struct VirtqUsed *)base;
181 return base + sizeof(struct VirtqUsed) + sizeof(struct VirtqUsedElem) * qsz;
184 VADDR_T VirtmmioConfigQueue(struct VirtmmioDev *dev, VADDR_T base, uint16_t qsz[], int num)
189 base = CalculateQueueAddr(base, qsz[i], &dev->vq[i]);
195 return base;