[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