Lines Matching refs:x86c
111 amdiommu_write8(unit, AMDIOMMU_CMDBUF_TAIL, unit->x86c.inv_queue_tail); in amdiommu_cmd_advance_tail()
125 if (bytes <= unit->x86c.inv_queue_avail) in amdiommu_cmd_ensure()
130 unit->x86c.inv_queue_avail = head - unit->x86c.inv_queue_tail - in amdiommu_cmd_ensure()
132 if (head <= unit->x86c.inv_queue_tail) in amdiommu_cmd_ensure()
133 unit->x86c.inv_queue_avail += unit->x86c.inv_queue_size; in amdiommu_cmd_ensure()
134 if (bytes <= unit->x86c.inv_queue_avail) in amdiommu_cmd_ensure()
148 unit->x86c.inv_queue_full++; in amdiommu_cmd_ensure()
151 unit->x86c.inv_queue_avail -= bytes; in amdiommu_cmd_ensure()
160 memcpy(unit->x86c.inv_queue + unit->x86c.inv_queue_tail, cmd, in amdiommu_cmd_emit()
162 unit->x86c.inv_queue_tail += AMDIOMMU_CMD_SZ; in amdiommu_cmd_emit()
163 KASSERT(unit->x86c.inv_queue_tail <= unit->x86c.inv_queue_size, in amdiommu_cmd_emit()
164 ("tail overflow 0x%x 0x%jx", unit->x86c.inv_queue_tail, in amdiommu_cmd_emit()
165 (uintmax_t)unit->x86c.inv_queue_size)); in amdiommu_cmd_emit()
166 unit->x86c.inv_queue_tail &= unit->x86c.inv_queue_size - 1; in amdiommu_cmd_emit()
185 x = unit->x86c.inv_waitd_seq_hw_phys; in amdiommu_cmd_emit_wait_descr()
188 x = unit->x86c.inv_waitd_seq_hw_phys >> 32; in amdiommu_cmd_emit_wait_descr()
257 IOMMU2AMD(iommu)->x86c.inv_seq_waiters++; in amdiommu_qi_invalidate_wait_sync()
313 if (unit->x86c.inv_seq_waiters > 0) in amdiommu_qi_task()
314 wakeup(&unit->x86c.inv_seq_waiters); in amdiommu_qi_task()
323 unit->x86c.qi_buf_maxsz = ilog2(AMDIOMMU_CMDBUF_MAX / PAGE_SIZE); in amdiommu_init_cmd()
324 unit->x86c.qi_cmd_sz = AMDIOMMU_CMD_SZ; in amdiommu_init_cmd()
331 rv = pmap_kextract((uintptr_t)unit->x86c.inv_queue); in amdiommu_init_cmd()
337 qi_sz = ilog2(unit->x86c.inv_queue_size / PAGE_SIZE) + 8; in amdiommu_init_cmd()