Lines Matching +full:read +full:- +full:to +full:- +full:read
21 #include <asm/gic-v3-its.h>
60 irq_sender[i] = -1; in stats_reset()
61 irq_number[i] = -1; in stats_reset()
69 /* Wait up to 5s for all interrupts to be delivered */ in wait_for_interrupts()
77 * wait it cannot un-receive it. Consider at least one in wait_for_interrupts()
87 /* Wait for unexpected interrupts to fire */ in wait_for_interrupts()
93 report_info("interrupts timed-out (5s)"); in wait_for_interrupts()
152 /* GICC_IAR.CPUID is RAZ for non-SGIs */ in gic_get_sender()
154 return -1; in gic_get_sender()
173 /* Wait for writes to acked/spurious to complete */ in irq_handler()
231 * Ensure stores to Normal memory are visible to other CPUs before in gicv3_ipi_send_broadcast()
248 gic->ipi.send_self(); in ipi_test_self()
260 report_prefix_push("target-list"); in ipi_test_smp()
274 gic->ipi.send_broadcast(); in ipi_test_smp()
410 * Some registers are byte accessible, do a byte-wide read and write of known
411 * content to check for this.
412 * Apply a @mask to cater for special register properties.
446 * and checking the number of cleared bits in the value read back. in test_priorities()
458 for (pri_bits = 8; reg & 1; reg >>= 1, pri_bits--) in test_priorities()
467 /* setting all priorities to their max valus was tested above */ in test_priorities()
472 writel(pattern, priptr + nr_irqs - 4); in test_priorities()
473 report(readl(priptr + nr_irqs - 4) == (pattern & pri_mask), in test_priorities()
499 cpu_mask = (1 << nr_cpus) - 1; in test_targets()
507 "bits for non-existent CPUs masked"); in test_targets()
508 report_info("%d non-existent CPUs", 8 - nr_cpus); in test_targets()
551 report_info("number of implemented SPIs: %d", nr_irqs - GIC_FIRST_SPI); in gic_test_mmio()
558 "GICD_TYPER is read-only"); in gic_test_mmio()
560 "GICD_IIDR is read-only"); in gic_test_mmio()
563 report(test_readonly_32(idreg, false), "ICPIDR2 is read-only"); in gic_test_mmio()
595 "GITS_IIDR is read-only"), in test_its_introspection()
599 "GITS_TYPER is read-only"); in test_its_introspection()
601 report(typer->phys_lpi, "ITS supports physical LPIs"); in test_its_introspection()
602 report_info("vLPI support: %s", typer->virt_lpi ? "yes" : "no"); in test_its_introspection()
603 report_info("ITT entry size = 0x%x", typer->ite_size); in test_its_introspection()
605 typer->eventid_bits, typer->deviceid_bits, in test_its_introspection()
606 typer->collid_bits); in test_its_introspection()
607 report(typer->eventid_bits && typer->deviceid_bits && in test_its_introspection()
608 typer->collid_bits, "ID spaces"); in test_its_introspection()
610 typer->pta ? "Redist base address" : "PE #"); in test_its_introspection()
613 report_info("device table entry_size = 0x%x", dev_baser->esz); in test_its_introspection()
614 report_info("collection table entry_size = 0x%x", coll_baser->esz); in test_its_introspection()
623 return -1; in its_prerequisites()
628 return -1; in its_prerequisites()
647 * dev_id=2 event=20 -> vcpu 3, intid=8195
648 * dev_id=7 event=255 -> vcpu 2, intid=8196
649 * LPIs ready to hit
657 return -1; in its_setup1()
669 * dev=2, eventid=20 -> lpi= 8195, col=3 in its_setup1()
670 * dev=7, eventid=255 -> lpi= 8196, col=2 in its_setup1()
707 "dev=2, eventid=20 -> lpi= 8195, col=3"); in test_its_trigger()
715 "dev=7, eventid=255 -> lpi= 8196, col=2"); in test_its_trigger()
732 report(check_acked(&mask, -1, -1), in test_its_trigger()
736 * re-enable the LPI. While "A change to the LPI configuration in test_its_trigger()
737 * is not guaranteed to be visible until an appropriate in test_its_trigger()
766 * attached to it does not hit anymore in test_its_trigger()
774 report(check_acked(&mask, -1, -1), "no LPI after device unmap"); in test_its_trigger()
831 "Set %s=y to enable.", ERRATA_UNMAPPED_COLLECTIONS); in test_migrate_unmapped_collection()
878 int pe0 = nr_cpus - 1, pe1 = nr_cpus - 2; in test_its_pending_migration()
904 int vcpu = col->target_address >> 16; in test_its_pending_migration()
928 * need to explicitely call stats_reset(). in test_its_pending_migration()
935 /* let's wait for the 256 LPIs to be handled */ in test_its_pending_migration()
973 } else if (!strcmp(argv[1], "its-trigger")) { in main()
977 } else if (!strcmp(argv[1], "its-migration")) { in main()
981 } else if (!strcmp(argv[1], "its-pending-migration")) { in main()
985 } else if (!strcmp(argv[1], "its-migrate-unmapped-collection")) { in main()
989 } else if (strcmp(argv[1], "its-introspection") == 0) { in main()