[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[kvm-unit-tests PATCH v3 07/14] arm/arm64: gicv3: Enable/Disable LPIs at
From: |
Eric Auger |
Subject: |
[kvm-unit-tests PATCH v3 07/14] arm/arm64: gicv3: Enable/Disable LPIs at re-distributor level |
Date: |
Tue, 28 Jan 2020 11:34:52 +0100 |
This helper function controls the signaling of LPIs at
redistributor level.
Signed-off-by: Eric Auger <address@hidden>
---
v2 -> v3:
- move the helper in lib/arm/gic-v3.c
- rename the function with gicv3_lpi_ prefix
- s/report_abort/assert
---
lib/arm/asm/gic-v3.h | 1 +
lib/arm/gic-v3.c | 17 +++++++++++++++++
2 files changed, 18 insertions(+)
diff --git a/lib/arm/asm/gic-v3.h b/lib/arm/asm/gic-v3.h
index ec2a6f0..734c0c0 100644
--- a/lib/arm/asm/gic-v3.h
+++ b/lib/arm/asm/gic-v3.h
@@ -96,6 +96,7 @@ extern void gicv3_lpi_set_config(int n, u8 val);
extern u8 gicv3_lpi_get_config(int n);
extern void gicv3_lpi_set_pending_table_bit(int rdist, int n, bool set);
extern void gicv3_lpi_alloc_tables(void);
+extern void gicv3_lpi_rdist_ctrl(u32 redist, bool set);
static inline void gicv3_do_wait_for_rwp(void *base)
{
diff --git a/lib/arm/gic-v3.c b/lib/arm/gic-v3.c
index c33f883..7865d01 100644
--- a/lib/arm/gic-v3.c
+++ b/lib/arm/gic-v3.c
@@ -210,4 +210,21 @@ void gicv3_lpi_set_pending_table_bit(int rdist, int n,
bool set)
byte &= ~mask;
*ptr = byte;
}
+
+void gicv3_lpi_rdist_ctrl(u32 redist, bool set)
+{
+ void *ptr;
+ u64 val;
+
+ assert(redist < nr_cpus);
+
+ ptr = gicv3_data.redist_base[redist];
+ val = readl(ptr + GICR_CTLR);
+ if (set)
+ val |= GICR_CTLR_ENABLE_LPIS;
+ else
+ val &= ~GICR_CTLR_ENABLE_LPIS;
+ writel(val, ptr + GICR_CTLR);
+}
#endif /* __aarch64__ */
+
--
2.20.1
- [kvm-unit-tests PATCH v3 00/14] arm/arm64: Add ITS tests, Eric Auger, 2020/01/28
- [kvm-unit-tests PATCH v3 01/14] libcflat: Add other size defines, Eric Auger, 2020/01/28
- [kvm-unit-tests PATCH v3 02/14] arm: gic: Provide per-IRQ helper functions, Eric Auger, 2020/01/28
- [kvm-unit-tests PATCH v3 04/14] arm/arm64: gicv3: Add some re-distributor defines, Eric Auger, 2020/01/28
- [kvm-unit-tests PATCH v3 03/14] arm/arm64: gic: Introduce setup_irq() helper, Eric Auger, 2020/01/28
- [kvm-unit-tests PATCH v3 05/14] arm/arm64: ITS: Introspection tests, Eric Auger, 2020/01/28
- [kvm-unit-tests PATCH v3 06/14] arm/arm64: gicv3: Set the LPI config and pending tables, Eric Auger, 2020/01/28
- [kvm-unit-tests PATCH v3 08/14] arm/arm64: ITS: its_enable_defaults, Eric Auger, 2020/01/28
- [kvm-unit-tests PATCH v3 07/14] arm/arm64: gicv3: Enable/Disable LPIs at re-distributor level,
Eric Auger <=
- [kvm-unit-tests PATCH v3 09/14] arm/arm64: ITS: Device and collection Initialization, Eric Auger, 2020/01/28
- [kvm-unit-tests PATCH v3 10/14] arm/arm64: ITS: commands, Eric Auger, 2020/01/28
- [kvm-unit-tests PATCH v3 11/14] arm/arm64: ITS: INT functional tests, Eric Auger, 2020/01/28
- [kvm-unit-tests PATCH v3 12/14] arm/run: Allow Migration tests, Eric Auger, 2020/01/28
- [kvm-unit-tests PATCH v3 13/14] arm/arm64: ITS: migration tests, Eric Auger, 2020/01/28
- [kvm-unit-tests PATCH v3 14/14] arm/arm64: ITS: pending table migration test, Eric Auger, 2020/01/28