[Skiboot] [Patch v4] core/init: Add hdat-map property to OPAL node

Oliver O'Halloran oohall at gmail.com
Fri Mar 17 12:28:03 AEDT 2017


On Wed, Mar 8, 2017 at 9:27 AM, Matt Brown <matthew.brown.dev at gmail.com> wrote:
> Exports the HDAT heap to the OS. This allows the OS to view the HDAT heap
> directly.  This allows us to view the HDAT area without having to use
> getmemproc.
>
> Signed-off-by: Matt Brown <matthew.brown.dev at gmail.com>
> ---
> Changelog
>
> v4
>         - added comment about the use of add_opal_firmware_exports_node
>         - added comment about need for redundant symbol-map node
> ---
>  core/opal.c | 28 ++++++++++++++++++++++++++++
>  1 file changed, 28 insertions(+)
>
> diff --git a/core/opal.c b/core/opal.c
> index 6087e65..b12267c 100644
> --- a/core/opal.c
> +++ b/core/opal.c
> @@ -119,15 +119,43 @@ void __opal_register(uint64_t token, void *func, unsigned int nargs)
>         opal_num_args[token] = nargs;
>  }
>
> +/*
> + * add_opal_firmware_exports_node: adds properties to the device-tree which
> + * the OS will then change into sysfs nodes.
> + * The properties must be placed under /ibm,opal/firmware/exports.
> + * The new sysfs nodes are created under /opal/exports.
> + * To be correctly exported the properties must contain:
> + *     name
> + *     base memory location (u64)
> + *     size                 (u64)
> + */
> +static void add_opal_firmware_exports_node(struct dt_node *node)
> +{
> +       struct dt_node *exports = dt_new(node, "exports");
> +       uint64_t sym_start = (uint64_t)__sym_map_start;
> +       uint64_t sym_size = (uint64_t)__sym_map_end - sym_start;
> +
> +       dt_add_property_u64s(exports, "symbol-map", sym_start, sym_size);
> +       dt_add_property_u64s(exports, "hdat-map", SPIRA_HEAP_BASE,
> +                               SPIRA_HEAP_SIZE);
> +}
> +
>  static void add_opal_firmware_node(void)
>  {
>         struct dt_node *firmware = dt_new(opal_node, "firmware");
>         uint64_t sym_start = (uint64_t)__sym_map_start;
>         uint64_t sym_size = (uint64_t)__sym_map_end - sym_start;
> +
>         dt_add_property_string(firmware, "compatible", "ibm,opal-firmware");
>         dt_add_property_string(firmware, "name", "firmware");
>         dt_add_property_string(firmware, "version", version);

> +       /*  As previous OS versions use symbol-map located at
> +        *  /ibm,opal/firmware we will keep a copy of symbol-map here
> +        *  for backwards compatibility
> +        */

Use the symmetric comment style:

/*
 * like this
 */

>         dt_add_property_u64s(firmware, "symbol-map", sym_start, sym_size);
> +
> +       add_opal_firmware_exports_node(firmware);
>  }
>
>  void add_opal_node(void)
> --

nitpick aside, feel free to add my R-b tag.

Reviewed-by: Oliver O'Halloran <oohall at gmail.com>


More information about the Skiboot mailing list