Lines Matching full:iommu
34 #define IOMMU_CONTROL (0x2400UL - 0x2400UL) /* IOMMU control register */
36 #define IOMMU_FLUSH (0x2410UL - 0x2400UL) /* IOMMU flush register */
39 #define IOMMU_LRUDIAG (0x4500UL - 0x2400UL) /* IOMMU LRU queue diagnostics */
60 struct iommu *iommu = dev->archdata.iommu; in sbus_set_sbus64() local
75 cfg_reg = iommu->write_complete_reg; in sbus_set_sbus64()
210 struct iommu *iommu = op->dev.archdata.iommu; in sbus_build_irq() local
211 unsigned long reg_base = iommu->write_complete_reg - 0x2000UL; in sbus_build_irq()
272 struct iommu *iommu = op->dev.archdata.iommu; in sysio_ue_handler() local
273 unsigned long reg_base = iommu->write_complete_reg - 0x2000UL; in sysio_ue_handler()
346 struct iommu *iommu = op->dev.archdata.iommu; in sysio_ce_handler() local
347 unsigned long reg_base = iommu->write_complete_reg - 0x2000UL; in sysio_ce_handler()
425 struct iommu *iommu = op->dev.archdata.iommu; in sysio_sbus_error_handler() local
430 reg_base = iommu->write_complete_reg - 0x2000UL; in sysio_sbus_error_handler()
478 /* XXX check iommu/strbuf for further error status XXX */ in sysio_sbus_error_handler()
494 struct iommu *iommu = op->dev.archdata.iommu; in sysio_register_error_handlers() local
495 unsigned long reg_base = iommu->write_complete_reg - 0x2000UL; in sysio_register_error_handlers()
532 control = upa_readq(iommu->write_complete_reg); in sysio_register_error_handlers()
534 upa_writeq(control, iommu->write_complete_reg); in sysio_register_error_handlers()
542 struct iommu *iommu; in sbus_iommu_init() local
556 iommu = kzalloc(sizeof(*iommu), GFP_ATOMIC); in sbus_iommu_init()
557 if (!iommu) in sbus_iommu_init()
563 op->dev.archdata.iommu = iommu; in sbus_iommu_init()
568 iommu->iommu_control = reg_base + IOMMU_CONTROL; in sbus_iommu_init()
569 iommu->iommu_tsbbase = reg_base + IOMMU_TSBBASE; in sbus_iommu_init()
570 iommu->iommu_flush = reg_base + IOMMU_FLUSH; in sbus_iommu_init()
571 iommu->iommu_tags = iommu->iommu_control + in sbus_iommu_init()
591 iommu->write_complete_reg = regs + 0x2000UL; in sbus_iommu_init()
598 if (iommu_table_init(iommu, IO_TSB_SIZE, MAP_BASE, 0xffffffff, -1)) in sbus_iommu_init()
601 control = upa_readq(iommu->iommu_control); in sbus_iommu_init()
606 upa_writeq(control, iommu->iommu_control); in sbus_iommu_init()
608 /* Clean out any cruft in the IOMMU using in sbus_iommu_init()
614 dram = iommu->iommu_control + (IOMMU_DRAMDIAG - IOMMU_CONTROL); in sbus_iommu_init()
615 tag = iommu->iommu_control + (IOMMU_TAGDIAG - IOMMU_CONTROL); in sbus_iommu_init()
622 upa_readq(iommu->write_complete_reg); in sbus_iommu_init()
625 upa_writeq(__pa(iommu->page_table), iommu->iommu_tsbbase); in sbus_iommu_init()
647 control = upa_readq(iommu->write_complete_reg); in sbus_iommu_init()
649 upa_writeq(control, iommu->write_complete_reg); in sbus_iommu_init()