From patchwork Tue Mar 7 22:27:32 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matt Brown X-Patchwork-Id: 736384 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3vdBB63VMtz9sDb for ; Wed, 8 Mar 2017 09:27:58 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="A/XEvyWN"; dkim-atps=neutral Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 3vdBB62QJbzDqXk for ; Wed, 8 Mar 2017 09:27:58 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="A/XEvyWN"; dkim-atps=neutral X-Original-To: skiboot@lists.ozlabs.org Delivered-To: skiboot@lists.ozlabs.org Received: from mail-pf0-x241.google.com (mail-pf0-x241.google.com [IPv6:2607:f8b0:400e:c00::241]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3vdBB15VkTzDqXf for ; Wed, 8 Mar 2017 09:27:53 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="A/XEvyWN"; dkim-atps=neutral Received: by mail-pf0-x241.google.com with SMTP id 67so1449991pfg.2 for ; Tue, 07 Mar 2017 14:27:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=mz/Fm2hd8ujD3dF1oHnqRLpNzJfwHyOKMXt2tt4OJQw=; b=A/XEvyWNoIf6gwbJuQoYvYxn5lTROXy1V2c/csZZw1sH3Z0jkJhEkIcGBWak8Yv+Dn jqpdrZb1U+y8ecNBx2fc80Mz/7HJ3OMaNCbyav6By392rkRpD7bZBc7S2H+0NGeLTNN1 tcvkaLX1Sie5vcMl80sEqDDLFTNGUFuX6ND+ifmMKj5XdXN6b/42XY+R9s87BWd/sVq9 J0qI2jt4oYbWQBAHO2CCp3TkyZf6baALI2S513upIQ2gUVJW9y7r3RpYs9dmzQe8lk68 /9x0tDkM0t90HE9K6YYgRpuIjKsBU/NQK4hGct2LQ1sRaxWHcCIdIalbtb6OH7g521xB IsVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=mz/Fm2hd8ujD3dF1oHnqRLpNzJfwHyOKMXt2tt4OJQw=; b=VAXwp61st/wlJqaRdpi2hwiNblEOniGsp6NUT/rWuK6t/j7q6C8BFL8wvCJdajBkTa /gDOpswTJGeBb8fM8IhvOh2HfXK1jTKrUnZ4pJOT2rSgZGQyojCVA4ZCSAsIztlrynrW tWpmo0eJCloV/WKzRcixdyv+m6GgpM1zhnCGl7ePCxojhUe8S+xodbu6gqDE7uV2FhyL cCdIB9KeXsM4O3h3btfpR0zU551ZkQeWJ7Z71s7LPhrGVlkpIAvbExOzJmaVn6UZ9YlJ ECD0OhOwMsSXyfqrWc5Qt7T38Fki+Im0jymWewZj0W09w5YCGQXQJ6VZ5dAmUQQIuFTK W1uw== X-Gm-Message-State: AMke39mXaCzVj5AE9++CaaRXKgpvCNitnRK8XTpHGPnr2J513istkfAkD7Z2okg1dpghRw== X-Received: by 10.84.214.129 with SMTP id j1mr3759035pli.23.1488925671327; Tue, 07 Mar 2017 14:27:51 -0800 (PST) Received: from matt.ozlabs.ibm.com ([122.99.82.10]) by smtp.gmail.com with ESMTPSA id t6sm1740039pgt.8.2017.03.07.14.27.49 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 07 Mar 2017 14:27:50 -0800 (PST) From: Matt Brown To: skiboot@lists.ozlabs.org Date: Wed, 8 Mar 2017 09:27:32 +1100 Message-Id: <20170307222732.2779-1-matthew.brown.dev@gmail.com> X-Mailer: git-send-email 2.9.3 Subject: [Skiboot] [Patch v4] core/init: Add hdat-map property to OPAL node X-BeenThere: skiboot@lists.ozlabs.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Mailing list for skiboot development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Skiboot" 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 Reviewed-by: Oliver O'Halloran --- 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 + */ dt_add_property_u64s(firmware, "symbol-map", sym_start, sym_size); + + add_opal_firmware_exports_node(firmware); } void add_opal_node(void)