From: Haren Myneni <haren@linux.ibm.com>
To: linuxppc-dev@lists.ozlabs.org
Cc: maddy@linux.ibm.com, mpe@ellerman.id.au, npiggin@gmail.com,
msuchanek@suse.de, mahesh@linux.ibm.com, tyreld@linux.ibm.com,
hbabu@us.ibm.com, haren@linux.ibm.com
Subject: [PATCH RFC 8/9] powerpc/pseries: Enable hvpipe with ibm,set-system-parameter RTAS
Date: Wed, 2 Jul 2025 15:14:42 -0700 [thread overview]
Message-ID: <20250702221444.879256-9-haren@linux.ibm.com> (raw)
In-Reply-To: <20250702221444.879256-1-haren@linux.ibm.com>
The partition uses “Hypervisor Pipe OS Enablement Notification”
system parameter token (value = 64) to enable / disable hvpipe in
the hypervisor. Once hvpipe is enabled, the hypervisor notifies
OS if the payload is pending for that partition from any source.
This system parameter token takes 1 byte length of data with
1 = Enable and 0 = Disable.
Enable hvpipe in the hypervisor with ibm,set-system-parameter
RTAS after registering hvpipe event source interrupt.
Signed-off-by: Haren Myneni <haren@linux.ibm.com>
---
arch/powerpc/include/asm/papr-sysparm.h | 1 +
arch/powerpc/platforms/pseries/papr-hvpipe.c | 29 +++++++++++++++++++-
2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/include/asm/papr-sysparm.h b/arch/powerpc/include/asm/papr-sysparm.h
index c3cd5b131033..11430e5a7224 100644
--- a/arch/powerpc/include/asm/papr-sysparm.h
+++ b/arch/powerpc/include/asm/papr-sysparm.h
@@ -21,6 +21,7 @@ typedef struct {
#define PAPR_SYSPARM_COOP_MEM_OVERCOMMIT_ATTRS mk_papr_sysparm(44)
#define PAPR_SYSPARM_TLB_BLOCK_INVALIDATE_ATTRS mk_papr_sysparm(50)
#define PAPR_SYSPARM_LPAR_NAME mk_papr_sysparm(55)
+#define PAPR_SYS_PARAM_HVPIPE_ENABLE mk_papr_sysparm(64)
/**
* struct papr_sysparm_buf - RTAS work area layout for system parameter functions.
diff --git a/arch/powerpc/platforms/pseries/papr-hvpipe.c b/arch/powerpc/platforms/pseries/papr-hvpipe.c
index ebccd6a70ab6..b103dde7d584 100644
--- a/arch/powerpc/platforms/pseries/papr-hvpipe.c
+++ b/arch/powerpc/platforms/pseries/papr-hvpipe.c
@@ -15,6 +15,7 @@
#include <asm/machdep.h>
#include <asm/rtas.h>
#include <asm/rtas-work-area.h>
+#include <asm/papr-sysparm.h>
#include <uapi/asm/papr-hvpipe.h>
#include "pseries.h"
#include "papr-hvpipe.h"
@@ -639,6 +640,32 @@ static irqreturn_t hvpipe_event_interrupt(int irq, void *dev_id)
return IRQ_HANDLED;
}
+/*
+ * Enable hvpipe by system parameter set with parameter
+ * token = 64 and with 1 byte buffer data:
+ * 0 = hvpipe not in use/disabled
+ * 1 = hvpipe in use/enabled
+ */
+static int set_hvpipe_sys_param(u8 val)
+{
+ struct papr_sysparm_buf *buf;
+ int ret;
+
+ buf = papr_sysparm_buf_alloc();
+ if (!buf)
+ return -ENOMEM;
+
+ buf->len = cpu_to_be16(1);
+ buf->val[0] = val;
+ ret = papr_sysparm_set(PAPR_SYS_PARAM_HVPIPE_ENABLE, buf);
+ if (!ret)
+ pr_err("Can not enable hvpipe %d\n", ret);
+
+ papr_sysparm_buf_free(buf);
+
+ return ret;
+}
+
static int __init enable_hvpipe_IRQ(void)
{
struct device_node *np;
@@ -695,7 +722,7 @@ static int __init papr_hvpipe_init(void)
goto out;
}
- if (!enable_hvpipe_IRQ()) {
+ if (!enable_hvpipe_IRQ() && !set_hvpipe_sys_param(1)) {
ret = misc_register(&papr_hvpipe_dev);
if (!ret) {
pr_info("hvpipe feature is enabled\n");
--
2.43.5
next prev parent reply other threads:[~2025-07-02 22:16 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-02 22:14 [PATCH RFC 0/9] powerpc/pseries: Add hypervisor pipe (HVPIPE) suport Haren Myneni
2025-07-02 22:14 ` [PATCH RFC 1/9] powerpc/pseries: Define papr-hvpipe ioctl Haren Myneni
2025-07-02 22:14 ` [PATCH RFC 2/9] powerpc/pseries: Define HVPIPE specific macros Haren Myneni
2025-07-02 22:14 ` [PATCH RFC 3/9] powerpc/pseries: Add papr-hvpipe char driver for HVPIPE interfaces Haren Myneni
2025-07-03 6:58 ` Krzysztof Kozlowski
2025-07-07 6:53 ` Haren Myneni
2025-07-07 7:29 ` Krzysztof Kozlowski
2025-07-02 22:14 ` [PATCH RFC 4/9] powerpc/pseries: Send payload with ibm,send-hvpipe-msg RTAS Haren Myneni
2025-07-02 22:14 ` [PATCH RFC 5/9] powerpc/pseries: Receive payload with ibm,receive-hvpipe-msg RTAS Haren Myneni
2025-07-02 22:14 ` [PATCH RFC 6/9] powerpc/pseries: Wakeup hvpipe FD when the payload is pending Haren Myneni
2025-07-02 22:14 ` [PATCH RFC 7/9] powerpc/pseries: Enable HVPIPE event message interrupt Haren Myneni
2025-07-03 7:00 ` Krzysztof Kozlowski
2025-07-07 7:02 ` Haren Myneni
2025-07-07 7:35 ` Krzysztof Kozlowski
2025-07-07 7:43 ` Krzysztof Kozlowski
2025-07-07 9:13 ` Haren Myneni
2025-07-02 22:14 ` Haren Myneni [this message]
2025-07-02 22:14 ` [PATCH RFC 9/9] powerpc/pseries: HVPIPE changes to support migration Haren Myneni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250702221444.879256-9-haren@linux.ibm.com \
--to=haren@linux.ibm.com \
--cc=hbabu@us.ibm.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=maddy@linux.ibm.com \
--cc=mahesh@linux.ibm.com \
--cc=mpe@ellerman.id.au \
--cc=msuchanek@suse.de \
--cc=npiggin@gmail.com \
--cc=tyreld@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.