From patchwork Tue Mar 21 23:28:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matt Brown X-Patchwork-Id: 741781 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 3vnpt60Mjlz9s7b for ; Wed, 22 Mar 2017 10:29:02 +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="KKinPEDb"; 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 3vnpt562ZvzDqBv for ; Wed, 22 Mar 2017 10:29:01 +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="KKinPEDb"; 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 3vnpsz6LW7zDq7Z for ; Wed, 22 Mar 2017 10:28:55 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="KKinPEDb"; dkim-atps=neutral Received: by mail-pf0-x241.google.com with SMTP id r137so20288662pfr.3 for ; Tue, 21 Mar 2017 16:28:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=7EHpztqZOZvQB7PY07IsP4AuBGxGX9rPryAdi2onVjc=; b=KKinPEDbT+BEH9C32AvAqNmbbwvvfCBeRhVWOxjIOOctyWJGvV87/cIErQyU8HEC8a Oby8bsB8F1YB9M8Krpvm/G+HIuc9BdtEkzWb6lxS5XD9bQbncvTw8fgrOchQKQJHQZzs X10OcsdGf9K3L2JUYeZHWaE3XQkY8C5HEFrRSN8kk6cNWtOHQac6968efFyS/JarMMoi Rs+S5VExwTzh2/olbhSbgkUs1lAYzn8p6JcdZSMW52po0GWoRcMLnobjR/Whyj5naJ0v OaEo26AvDxbapm7r4rEXE7E+wp+u8xhLWlli5YroHcHGn+rnWxvEwJZIwV3tfJTlDHg1 KCUg== 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=7EHpztqZOZvQB7PY07IsP4AuBGxGX9rPryAdi2onVjc=; b=RIIUS2kpOCImtpnzJa/zuzxRXhRSocfN04H7ddXUrBXtdN4F3PhPC8qr+dxIRP5TUh f5DKYZj72XHJSVljh9Stt7reR+PJ37INJBFy9QIpomV2RD/fEPQLHxCnrWcJDxQyyvWy YBeudvFyPkuitjT+JSapGrmJ+sLR5OMYLpvB1XhAn+B5abkmfVQ79NZXQ+nVsfxE/iIF J6ix70GN2ll721mCwhL6yL2K52IcleOdJoxClppPHJXVds5Z2B0qQSDI2dUwYbH+71U7 9JsCQ8PPUBsUyNlkZOZ5FxPfXPdmu9zzZ5A3mNiP0hUfD5r+dYrcflWUdvOuGMz0hBUh ivjA== X-Gm-Message-State: AFeK/H0Tupbljl++nRPpbKkLRzbniYT0pFZi/DfvlLLf5+b99/3WZwTvngdsehx5k0CKfg== X-Received: by 10.84.175.132 with SMTP id t4mr25426609plb.38.1490138933204; Tue, 21 Mar 2017 16:28:53 -0700 (PDT) Received: from matt.ozlabs.ibm.com ([122.99.82.10]) by smtp.gmail.com with ESMTPSA id v9sm41555448pfg.133.2017.03.21.16.28.51 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 21 Mar 2017 16:28:52 -0700 (PDT) From: Matt Brown To: skiboot@lists.ozlabs.org Date: Wed, 22 Mar 2017 10:28:34 +1100 Message-Id: <20170321232834.27824-1-matthew.brown.dev@gmail.com> X-Mailer: git-send-email 2.9.3 Subject: [Skiboot] [v5] 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 v5 - adjusted comment layout v4 - added comment about the use of add_opal_firmware_exports_node - added comment about need for redundant symbol-map node --- core/opal.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/core/opal.c b/core/opal.c index 6087e65..3ff6b45 100644 --- a/core/opal.c +++ b/core/opal.c @@ -119,15 +119,44 @@ 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)