The newly introduced ibm,secure-memory nodes supersede the
ibm,uv-firmware's property secure-memory-ranges.
Firmware will no more expose the secure-memory-ranges property so first
read the new one and if not found rollback to the older one.
Signed-off-by: Laurent Dufour <[email protected]>
---
arch/powerpc/kvm/book3s_hv_uvmem.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/arch/powerpc/kvm/book3s_hv_uvmem.c b/arch/powerpc/kvm/book3s_hv_uvmem.c
index 53b88cae3e73..ad950f8996e0 100644
--- a/arch/powerpc/kvm/book3s_hv_uvmem.c
+++ b/arch/powerpc/kvm/book3s_hv_uvmem.c
@@ -735,6 +735,20 @@ static u64 kvmppc_get_secmem_size(void)
const __be32 *prop;
u64 size = 0;
+ /*
+ * First try the new ibm,secure-memory nodes which supersede the
+ * secure-memory-ranges property.
+ * If we found somes, no need to read the deprecated one.
+ */
+ for_each_compatible_node(np, NULL, "ibm,secure-memory") {
+ prop = of_get_property(np, "reg", &len);
+ if (!prop)
+ continue;
+ size += of_read_number(prop + 2, 2);
+ }
+ if (size)
+ return size;
+
np = of_find_compatible_node(NULL, NULL, "ibm,uv-firmware");
if (!np)
goto out;
--
2.26.1
Hi Laurent,
Laurent Dufour <[email protected]> writes:
> The newly introduced ibm,secure-memory nodes supersede the
> ibm,uv-firmware's property secure-memory-ranges.
Is either documented in a device tree binding document anywhere?
cheers
> Firmware will no more expose the secure-memory-ranges property so first
> read the new one and if not found rollback to the older one.
>
> Signed-off-by: Laurent Dufour <[email protected]>
> ---
> arch/powerpc/kvm/book3s_hv_uvmem.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/arch/powerpc/kvm/book3s_hv_uvmem.c b/arch/powerpc/kvm/book3s_hv_uvmem.c
> index 53b88cae3e73..ad950f8996e0 100644
> --- a/arch/powerpc/kvm/book3s_hv_uvmem.c
> +++ b/arch/powerpc/kvm/book3s_hv_uvmem.c
> @@ -735,6 +735,20 @@ static u64 kvmppc_get_secmem_size(void)
> const __be32 *prop;
> u64 size = 0;
>
> + /*
> + * First try the new ibm,secure-memory nodes which supersede the
> + * secure-memory-ranges property.
> + * If we found somes, no need to read the deprecated one.
> + */
> + for_each_compatible_node(np, NULL, "ibm,secure-memory") {
> + prop = of_get_property(np, "reg", &len);
> + if (!prop)
> + continue;
> + size += of_read_number(prop + 2, 2);
> + }
> + if (size)
> + return size;
> +
> np = of_find_compatible_node(NULL, NULL, "ibm,uv-firmware");
> if (!np)
> goto out;
> --
> 2.26.1
On Tue, Apr 21, 2020 at 11:37 PM Michael Ellerman <[email protected]> wrote:
>
> Hi Laurent,
>
> Laurent Dufour <[email protected]> writes:
> > The newly introduced ibm,secure-memory nodes supersede the
> > ibm,uv-firmware's property secure-memory-ranges.
>
> Is either documented in a device tree binding document anywhere?
>
> cheers
>
> > Firmware will no more expose the secure-memory-ranges property so first
> > read the new one and if not found rollback to the older one.
There's some in Ryan's UV support series for skiboot:
https://patchwork.ozlabs.org/project/skiboot/patch/[email protected]/
...which is also marked RFC. Cool.
Oliver
Le 21/04/2020 à 15:43, Oliver O'Halloran a écrit :
> On Tue, Apr 21, 2020 at 11:37 PM Michael Ellerman <[email protected]> wrote:
>>
>> Hi Laurent,
>>
>> Laurent Dufour <[email protected]> writes:
>>> The newly introduced ibm,secure-memory nodes supersede the
>>> ibm,uv-firmware's property secure-memory-ranges.
>>
>> Is either documented in a device tree binding document anywhere?
>>
>> cheers
>>
>>> Firmware will no more expose the secure-memory-ranges property so first
>>> read the new one and if not found rollback to the older one.
>
> There's some in Ryan's UV support series for skiboot:
>
> https://patchwork.ozlabs.org/project/skiboot/patch/[email protected]/
>
> ...which is also marked RFC. Cool.
Thanks Oliver for this pointer.
Yes this is an RFC but this documentation details the secure memory nodes
created by skiboot and parsed by this patch.
Michael, is that enough for you?
Laurent.
Paul, could you please take that patch?
Le 16/04/2020 à 18:27, Laurent Dufour a écrit :
> The newly introduced ibm,secure-memory nodes supersede the
> ibm,uv-firmware's property secure-memory-ranges.
>
> Firmware will no more expose the secure-memory-ranges property so first
> read the new one and if not found rollback to the older one.
>
> Signed-off-by: Laurent Dufour <[email protected]>
> ---
> arch/powerpc/kvm/book3s_hv_uvmem.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/arch/powerpc/kvm/book3s_hv_uvmem.c b/arch/powerpc/kvm/book3s_hv_uvmem.c
> index 53b88cae3e73..ad950f8996e0 100644
> --- a/arch/powerpc/kvm/book3s_hv_uvmem.c
> +++ b/arch/powerpc/kvm/book3s_hv_uvmem.c
> @@ -735,6 +735,20 @@ static u64 kvmppc_get_secmem_size(void)
> const __be32 *prop;
> u64 size = 0;
>
> + /*
> + * First try the new ibm,secure-memory nodes which supersede the
> + * secure-memory-ranges property.
> + * If we found somes, no need to read the deprecated one.
> + */
> + for_each_compatible_node(np, NULL, "ibm,secure-memory") {
> + prop = of_get_property(np, "reg", &len);
> + if (!prop)
> + continue;
> + size += of_read_number(prop + 2, 2);
> + }
> + if (size)
> + return size;
> +
> np = of_find_compatible_node(NULL, NULL, "ibm,uv-firmware");
> if (!np)
> goto out;
>
On Thu, Apr 16, 2020 at 06:27:15PM +0200, Laurent Dufour wrote:
> The newly introduced ibm,secure-memory nodes supersede the
> ibm,uv-firmware's property secure-memory-ranges.
>
> Firmware will no more expose the secure-memory-ranges property so first
> read the new one and if not found rollback to the older one.
>
> Signed-off-by: Laurent Dufour <[email protected]>
Thanks, applied to my kvm-ppc-next branch.
Paul.