Message ID | 20200327071202.2159885-2-alastair@d-silva.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add support for OpenCAPI Persistent Memory devices | expand |
On Sun, Mar 29, 2020 at 10:23 PM Alastair D'Silva <alastair@d-silva.org> wrote: > > Add OPAL calls for LPC memory alloc/release > This seems to be referencing an existing api definition, can you include a pointer to the spec in case someone wanted to understand what these routines do? I suspect this is not allocating memory in the traditional sense as much as it's allocating physical address space for a device to be mapped? > Signed-off-by: Alastair D'Silva <alastair@d-silva.org> > Acked-by: Andrew Donnellan <ajd@linux.ibm.com> > Acked-by: Frederic Barrat <fbarrat@linux.ibm.com> > --- > arch/powerpc/include/asm/opal-api.h | 2 ++ > arch/powerpc/include/asm/opal.h | 2 ++ > arch/powerpc/platforms/powernv/opal-call.c | 2 ++ > 3 files changed, 6 insertions(+) > > diff --git a/arch/powerpc/include/asm/opal-api.h b/arch/powerpc/include/asm/opal-api.h > index c1f25a760eb1..9298e603001b 100644 > --- a/arch/powerpc/include/asm/opal-api.h > +++ b/arch/powerpc/include/asm/opal-api.h > @@ -208,6 +208,8 @@ > #define OPAL_HANDLE_HMI2 166 > #define OPAL_NX_COPROC_INIT 167 > #define OPAL_XIVE_GET_VP_STATE 170 > +#define OPAL_NPU_MEM_ALLOC 171 > +#define OPAL_NPU_MEM_RELEASE 172 > #define OPAL_MPIPL_UPDATE 173 > #define OPAL_MPIPL_REGISTER_TAG 174 > #define OPAL_MPIPL_QUERY_TAG 175 > diff --git a/arch/powerpc/include/asm/opal.h b/arch/powerpc/include/asm/opal.h > index 9986ac34b8e2..301fea46c7ca 100644 > --- a/arch/powerpc/include/asm/opal.h > +++ b/arch/powerpc/include/asm/opal.h > @@ -39,6 +39,8 @@ int64_t opal_npu_spa_clear_cache(uint64_t phb_id, uint32_t bdfn, > uint64_t PE_handle); > int64_t opal_npu_tl_set(uint64_t phb_id, uint32_t bdfn, long cap, > uint64_t rate_phys, uint32_t size); > +int64_t opal_npu_mem_alloc(u64 phb_id, u32 bdfn, u64 size, __be64 *bar); > +int64_t opal_npu_mem_release(u64 phb_id, u32 bdfn); > > int64_t opal_console_write(int64_t term_number, __be64 *length, > const uint8_t *buffer); > diff --git a/arch/powerpc/platforms/powernv/opal-call.c b/arch/powerpc/platforms/powernv/opal-call.c > index 5cd0f52d258f..f26e58b72c04 100644 > --- a/arch/powerpc/platforms/powernv/opal-call.c > +++ b/arch/powerpc/platforms/powernv/opal-call.c > @@ -287,6 +287,8 @@ OPAL_CALL(opal_pci_set_pbcq_tunnel_bar, OPAL_PCI_SET_PBCQ_TUNNEL_BAR); > OPAL_CALL(opal_sensor_read_u64, OPAL_SENSOR_READ_U64); > OPAL_CALL(opal_sensor_group_enable, OPAL_SENSOR_GROUP_ENABLE); > OPAL_CALL(opal_nx_coproc_init, OPAL_NX_COPROC_INIT); > +OPAL_CALL(opal_npu_mem_alloc, OPAL_NPU_MEM_ALLOC); > +OPAL_CALL(opal_npu_mem_release, OPAL_NPU_MEM_RELEASE); > OPAL_CALL(opal_mpipl_update, OPAL_MPIPL_UPDATE); > OPAL_CALL(opal_mpipl_register_tag, OPAL_MPIPL_REGISTER_TAG); > OPAL_CALL(opal_mpipl_query_tag, OPAL_MPIPL_QUERY_TAG); > -- > 2.24.1 >
> -----Original Message----- > From: Dan Williams <dan.j.williams@intel.com> > Sent: Wednesday, 1 April 2020 7:48 PM > To: Alastair D'Silva <alastair@d-silva.org> > Cc: Aneesh Kumar K . V <aneesh.kumar@linux.ibm.com>; Oliver O'Halloran > <oohall@gmail.com>; Benjamin Herrenschmidt > <benh@kernel.crashing.org>; Paul Mackerras <paulus@samba.org>; Michael > Ellerman <mpe@ellerman.id.au>; Frederic Barrat <fbarrat@linux.ibm.com>; > Andrew Donnellan <ajd@linux.ibm.com>; Arnd Bergmann > <arnd@arndb.de>; Greg Kroah-Hartman <gregkh@linuxfoundation.org>; > Vishal Verma <vishal.l.verma@intel.com>; Dave Jiang > <dave.jiang@intel.com>; Ira Weiny <ira.weiny@intel.com>; Andrew Morton > <akpm@linux-foundation.org>; Mauro Carvalho Chehab > <mchehab+samsung@kernel.org>; David S. Miller <davem@davemloft.net>; > Rob Herring <robh@kernel.org>; Anton Blanchard <anton@ozlabs.org>; > Krzysztof Kozlowski <krzk@kernel.org>; Mahesh Salgaonkar > <mahesh@linux.vnet.ibm.com>; Madhavan Srinivasan > <maddy@linux.vnet.ibm.com>; Cédric Le Goater <clg@kaod.org>; Anju T > Sudhakar <anju@linux.vnet.ibm.com>; Hari Bathini > <hbathini@linux.ibm.com>; Thomas Gleixner <tglx@linutronix.de>; Greg > Kurz <groug@kaod.org>; Nicholas Piggin <npiggin@gmail.com>; Masahiro > Yamada <yamada.masahiro@socionext.com>; Alexey Kardashevskiy > <aik@ozlabs.ru>; Linux Kernel Mailing List <linux-kernel@vger.kernel.org>; > linuxppc-dev <linuxppc-dev@lists.ozlabs.org>; linux-nvdimm <linux- > nvdimm@lists.01.org>; Linux MM <linux-mm@kvack.org> > Subject: Re: [PATCH v4 01/25] powerpc/powernv: Add OPAL calls for LPC > memory alloc/release > > On Sun, Mar 29, 2020 at 10:23 PM Alastair D'Silva <alastair@d-silva.org> > wrote: > > > > Add OPAL calls for LPC memory alloc/release > > > > This seems to be referencing an existing api definition, can you include a > pointer to the spec in case someone wanted to understand what these > routines do? I suspect this is not allocating memory in the traditional sense as > much as it's allocating physical address space for a device to be mapped? > These API calls were introduced in the following skiboot commit: https://github.com/open-power/skiboot/commit/1a548857ce1f02f43585b326a891eed18a7b43b3 I'll add it to the description. > > > Signed-off-by: Alastair D'Silva <alastair@d-silva.org> > > Acked-by: Andrew Donnellan <ajd@linux.ibm.com> > > Acked-by: Frederic Barrat <fbarrat@linux.ibm.com> > > --- > > arch/powerpc/include/asm/opal-api.h | 2 ++ > > arch/powerpc/include/asm/opal.h | 2 ++ > > arch/powerpc/platforms/powernv/opal-call.c | 2 ++ > > 3 files changed, 6 insertions(+) > > > > diff --git a/arch/powerpc/include/asm/opal-api.h > > b/arch/powerpc/include/asm/opal-api.h > > index c1f25a760eb1..9298e603001b 100644 > > --- a/arch/powerpc/include/asm/opal-api.h > > +++ b/arch/powerpc/include/asm/opal-api.h > > @@ -208,6 +208,8 @@ > > #define OPAL_HANDLE_HMI2 166 > > #define OPAL_NX_COPROC_INIT 167 > > #define OPAL_XIVE_GET_VP_STATE 170 > > +#define OPAL_NPU_MEM_ALLOC 171 > > +#define OPAL_NPU_MEM_RELEASE 172 > > #define OPAL_MPIPL_UPDATE 173 > > #define OPAL_MPIPL_REGISTER_TAG 174 > > #define OPAL_MPIPL_QUERY_TAG 175 > > diff --git a/arch/powerpc/include/asm/opal.h > > b/arch/powerpc/include/asm/opal.h index 9986ac34b8e2..301fea46c7ca > > 100644 > > --- a/arch/powerpc/include/asm/opal.h > > +++ b/arch/powerpc/include/asm/opal.h > > @@ -39,6 +39,8 @@ int64_t opal_npu_spa_clear_cache(uint64_t phb_id, > uint32_t bdfn, > > uint64_t PE_handle); int64_t > > opal_npu_tl_set(uint64_t phb_id, uint32_t bdfn, long cap, > > uint64_t rate_phys, uint32_t size); > > +int64_t opal_npu_mem_alloc(u64 phb_id, u32 bdfn, u64 size, __be64 > > +*bar); int64_t opal_npu_mem_release(u64 phb_id, u32 bdfn); > > > > int64_t opal_console_write(int64_t term_number, __be64 *length, > > const uint8_t *buffer); diff --git > > a/arch/powerpc/platforms/powernv/opal-call.c > > b/arch/powerpc/platforms/powernv/opal-call.c > > index 5cd0f52d258f..f26e58b72c04 100644 > > --- a/arch/powerpc/platforms/powernv/opal-call.c > > +++ b/arch/powerpc/platforms/powernv/opal-call.c > > @@ -287,6 +287,8 @@ OPAL_CALL(opal_pci_set_pbcq_tunnel_bar, > OPAL_PCI_SET_PBCQ_TUNNEL_BAR); > > OPAL_CALL(opal_sensor_read_u64, > OPAL_SENSOR_READ_U64); > > OPAL_CALL(opal_sensor_group_enable, > OPAL_SENSOR_GROUP_ENABLE); > > OPAL_CALL(opal_nx_coproc_init, OPAL_NX_COPROC_INIT); > > +OPAL_CALL(opal_npu_mem_alloc, OPAL_NPU_MEM_ALLOC); > > +OPAL_CALL(opal_npu_mem_release, > OPAL_NPU_MEM_RELEASE); > > OPAL_CALL(opal_mpipl_update, OPAL_MPIPL_UPDATE); > > OPAL_CALL(opal_mpipl_register_tag, > OPAL_MPIPL_REGISTER_TAG); > > OPAL_CALL(opal_mpipl_query_tag, > OPAL_MPIPL_QUERY_TAG); > > -- > > 2.24.1 > > > > > -- > This email has been checked for viruses by AVG. > https://www.avg.com
diff --git a/arch/powerpc/include/asm/opal-api.h b/arch/powerpc/include/asm/opal-api.h index c1f25a760eb1..9298e603001b 100644 --- a/arch/powerpc/include/asm/opal-api.h +++ b/arch/powerpc/include/asm/opal-api.h @@ -208,6 +208,8 @@ #define OPAL_HANDLE_HMI2 166 #define OPAL_NX_COPROC_INIT 167 #define OPAL_XIVE_GET_VP_STATE 170 +#define OPAL_NPU_MEM_ALLOC 171 +#define OPAL_NPU_MEM_RELEASE 172 #define OPAL_MPIPL_UPDATE 173 #define OPAL_MPIPL_REGISTER_TAG 174 #define OPAL_MPIPL_QUERY_TAG 175 diff --git a/arch/powerpc/include/asm/opal.h b/arch/powerpc/include/asm/opal.h index 9986ac34b8e2..301fea46c7ca 100644 --- a/arch/powerpc/include/asm/opal.h +++ b/arch/powerpc/include/asm/opal.h @@ -39,6 +39,8 @@ int64_t opal_npu_spa_clear_cache(uint64_t phb_id, uint32_t bdfn, uint64_t PE_handle); int64_t opal_npu_tl_set(uint64_t phb_id, uint32_t bdfn, long cap, uint64_t rate_phys, uint32_t size); +int64_t opal_npu_mem_alloc(u64 phb_id, u32 bdfn, u64 size, __be64 *bar); +int64_t opal_npu_mem_release(u64 phb_id, u32 bdfn); int64_t opal_console_write(int64_t term_number, __be64 *length, const uint8_t *buffer); diff --git a/arch/powerpc/platforms/powernv/opal-call.c b/arch/powerpc/platforms/powernv/opal-call.c index 5cd0f52d258f..f26e58b72c04 100644 --- a/arch/powerpc/platforms/powernv/opal-call.c +++ b/arch/powerpc/platforms/powernv/opal-call.c @@ -287,6 +287,8 @@ OPAL_CALL(opal_pci_set_pbcq_tunnel_bar, OPAL_PCI_SET_PBCQ_TUNNEL_BAR); OPAL_CALL(opal_sensor_read_u64, OPAL_SENSOR_READ_U64); OPAL_CALL(opal_sensor_group_enable, OPAL_SENSOR_GROUP_ENABLE); OPAL_CALL(opal_nx_coproc_init, OPAL_NX_COPROC_INIT); +OPAL_CALL(opal_npu_mem_alloc, OPAL_NPU_MEM_ALLOC); +OPAL_CALL(opal_npu_mem_release, OPAL_NPU_MEM_RELEASE); OPAL_CALL(opal_mpipl_update, OPAL_MPIPL_UPDATE); OPAL_CALL(opal_mpipl_register_tag, OPAL_MPIPL_REGISTER_TAG); OPAL_CALL(opal_mpipl_query_tag, OPAL_MPIPL_QUERY_TAG);