From patchwork Thu Aug 30 19:05:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Rob Herring (Arm)" X-Patchwork-Id: 964113 Return-Path: X-Original-To: incoming-dt@patchwork.ozlabs.org Delivered-To: patchwork-incoming-dt@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=devicetree-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 421X5419PXz9s3C for ; Fri, 31 Aug 2018 05:05:44 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727333AbeH3XJD (ORCPT ); Thu, 30 Aug 2018 19:09:03 -0400 Received: from mail-oi0-f66.google.com ([209.85.218.66]:39816 "EHLO mail-oi0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727426AbeH3XJC (ORCPT ); Thu, 30 Aug 2018 19:09:02 -0400 Received: by mail-oi0-f66.google.com with SMTP id c190-v6so17378691oig.6; Thu, 30 Aug 2018 12:05:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=fBMJ862XEEIahgbuSdVZDN7DTE3GVasP4unDCjvFxdc=; b=KuPp9/ijSlclldTTh2zLqZwViGGXIkLzmMbqpj2hZywx7801NocSlNB7IaZhlMvy5R GV9y7u6t5dHU+u+/mq6kujDU4MtjtO89jDLM/+dSRuBFx70WWkQJmwYfSuubvZYPdBXC W0ilOhV8ZsJOutgZCKlbLWAZFGwlS5mrOvKZvyASnBK993KTpwjp/zCRWxpk8FTOyRbz MAfaYhKgyXFQ02yitTAuaOw6pf7p9s/u7+HQPd3kRxKGN1v9HuofJ519cis3Tvi5nGQV 9IXH6R++vA00vtCZkJeU4JoyMF1Uew/W1kRCOPOsrZQeCrPrJPhDuTyTDXuwfrAXZ+Xf JpfQ== X-Gm-Message-State: APzg51ChGGFSxnX7hAc+1CXO/tJlDV1FjzXYyf0s/+Td0BoNKfPfb55P ZzPANGRIy+9FnRdaYpw02LporK4= X-Google-Smtp-Source: ANB0VdbEYg1iS0DI53pRY/ExndBGIi+b8KoKq+zO4BY1Fyew9HHOK4/+2Gp84qhcbL+WmE0ZsNl93A== X-Received: by 2002:aca:c141:: with SMTP id r62-v6mr4048910oif.179.1535655925249; Thu, 30 Aug 2018 12:05:25 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id 22-v6sm4200423oix.58.2018.08.30.12.05.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Aug 2018 12:05:24 -0700 (PDT) From: Rob Herring To: Frank Rowand , devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH 1/3] of/fdt: Scan the root node properties earlier Date: Thu, 30 Aug 2018 14:05:21 -0500 Message-Id: <20180830190523.31474-2-robh@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180830190523.31474-1-robh@kernel.org> References: <20180830190523.31474-1-robh@kernel.org> Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Scan the root node properties (#{size,address}-cells) earlier, so that the dt_root_addr_cells and dt_root_size_cells variables are initialized and can be used. Cc: Frank Rowand Signed-off-by: Rob Herring --- drivers/of/fdt.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index 800ad252cf9c..49abe18f1bde 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -1215,6 +1215,10 @@ bool __init early_init_dt_verify(void *params) initial_boot_params = params; of_fdt_crc32 = crc32_be(~0, initial_boot_params, fdt_totalsize(initial_boot_params)); + + /* Initialize {size,address}-cells info */ + of_scan_flat_dt(early_init_dt_scan_root, NULL); + return true; } @@ -1224,9 +1228,6 @@ void __init early_init_dt_scan_nodes(void) /* Retrieve various information from the /chosen node */ of_scan_flat_dt(early_init_dt_scan_chosen, boot_command_line); - /* Initialize {size,address}-cells info */ - of_scan_flat_dt(early_init_dt_scan_root, NULL); - /* Setup memory, calling early_init_dt_add_memory_arch */ of_scan_flat_dt(early_init_dt_scan_memory, NULL); } From patchwork Thu Aug 30 19:05:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Rob Herring (Arm)" X-Patchwork-Id: 964110 Return-Path: X-Original-To: incoming-dt@patchwork.ozlabs.org Delivered-To: patchwork-incoming-dt@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=devicetree-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 421X4n5VByz9s3C for ; Fri, 31 Aug 2018 05:05:29 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727426AbeH3XJF (ORCPT ); Thu, 30 Aug 2018 19:09:05 -0400 Received: from mail-oi0-f65.google.com ([209.85.218.65]:36728 "EHLO mail-oi0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727550AbeH3XJD (ORCPT ); Thu, 30 Aug 2018 19:09:03 -0400 Received: by mail-oi0-f65.google.com with SMTP id r69-v6so17396898oie.3; Thu, 30 Aug 2018 12:05:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=NFRDAdeXgojs+I7CCW5N+ajSHg8zEmxjFne5PsPUOg0=; b=j+febYY946FONWbzXrB3GCNrKcEwOIQVRWf3xix30WNJZ9iChcK9sh7UU90KxdrqAj bjbJfRLgS8zA+i3qDG0NWSeh1L5nHn0n0oYrUZiqtdGnFZDckl68skNHh9EEFtpdcpm1 L1mrzPpHvzB/LVERfvjyIiW6uLq4jnlaE8bzuq58+IW9hkE2qEWO2qE0uZs/dICwcNk5 ffmDuF0oMav3fBKRY1T+GJ4zVU9l3s8X46OGVvC5DxqHj/Mr9yjv7DMO045BueGmCO+x jKH7gCLlIamlOcDJsXN9W9HpZonxwG5S/kUDMSL1xuDVFtU9jcSug92yb6stDTqH9glO Fh7g== X-Gm-Message-State: APzg51BbcwgE3EEA5/5GHQXEBimBYZEd/Vimx0ZQHM82TvT25E6Pi5lA LIJI4PX3Tf7AcZqOpL7fUMvN+8k= X-Google-Smtp-Source: ANB0VdYfHPB7vS5YdVcgx/G46dO8434wyPA4/b9Hfzhao4bijzIoFO9wf5QbwooQDQYswHVgBh2KNg== X-Received: by 2002:aca:dec6:: with SMTP id v189-v6mr3622229oig.98.1535655926189; Thu, 30 Aug 2018 12:05:26 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id 22-v6sm4200423oix.58.2018.08.30.12.05.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Aug 2018 12:05:25 -0700 (PDT) From: Rob Herring To: Frank Rowand , devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH 2/3] of/fdt: avoid re-parsing '#{address, size}-cells' in of_fdt_limit_memory Date: Thu, 30 Aug 2018 14:05:22 -0500 Message-Id: <20180830190523.31474-3-robh@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180830190523.31474-1-robh@kernel.org> References: <20180830190523.31474-1-robh@kernel.org> Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Now that we initialize dt_root_addr_cells and dt_root_size_cells earlier, use them and simplify of_fdt_limit_memory. Cc: Frank Rowand Signed-off-by: Rob Herring --- drivers/of/fdt.c | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index 49abe18f1bde..fef4b2c8a171 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -44,28 +44,7 @@ void of_fdt_limit_memory(int limit) int memory; int len; const void *val; - int nr_address_cells = OF_ROOT_NODE_ADDR_CELLS_DEFAULT; - int nr_size_cells = OF_ROOT_NODE_SIZE_CELLS_DEFAULT; - const __be32 *addr_prop; - const __be32 *size_prop; - int root_offset; - int cell_size; - - root_offset = fdt_path_offset(initial_boot_params, "/"); - if (root_offset < 0) - return; - - addr_prop = fdt_getprop(initial_boot_params, root_offset, - "#address-cells", NULL); - if (addr_prop) - nr_address_cells = fdt32_to_cpu(*addr_prop); - - size_prop = fdt_getprop(initial_boot_params, root_offset, - "#size-cells", NULL); - if (size_prop) - nr_size_cells = fdt32_to_cpu(*size_prop); - - cell_size = sizeof(uint32_t)*(nr_address_cells + nr_size_cells); + int cell_size = sizeof(uint32_t)*(dt_root_addr_cells + dt_root_size_cells); memory = fdt_path_offset(initial_boot_params, "/memory"); if (memory > 0) { From patchwork Thu Aug 30 19:05:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Rob Herring (Arm)" X-Patchwork-Id: 964112 Return-Path: X-Original-To: incoming-dt@patchwork.ozlabs.org Delivered-To: patchwork-incoming-dt@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=devicetree-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 421X510fmBz9s3Z for ; Fri, 31 Aug 2018 05:05:41 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727372AbeH3XJM (ORCPT ); Thu, 30 Aug 2018 19:09:12 -0400 Received: from mail-oi0-f68.google.com ([209.85.218.68]:33554 "EHLO mail-oi0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727555AbeH3XJE (ORCPT ); Thu, 30 Aug 2018 19:09:04 -0400 Received: by mail-oi0-f68.google.com with SMTP id 8-v6so17426828oip.0; Thu, 30 Aug 2018 12:05:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=gT6Td7yY5tXHBprHnqiX0q1IaJ6j1fqehgRBLMkuZ2g=; b=N1Gzo9X7auVZ58M84Rar/dWKNQDFUj26T+a9PnrGmpQOEvFBcOqYL4/9l0Xvxyrdeh c9m/QIFDAYK8mAo360Swdg+ZVHBTjP0Tc/wBQ/hzk4j7KCNoSKyy6mKC/XTMnIC9ZcJd kjc54O9otaHr6hGLjyW+9XIFBE/ioIQHwLmooj+B6ppgqeoB6aym1BHutGRlKv10rT0t 6s2uR8t3FealiNfEQaVZu7yF7qG/yFhZuuuHnZjjvW/odnxQhryxcQP5XWza4vCBxV+f xwo3yNzTu456GanTVJHP3Vaeh0pYWbJaij1njbnaKcbY27ZqLtehpp3+wk55BgZ0vs4+ LPvw== X-Gm-Message-State: APzg51CmI+2i7fOTe5GlQu3Bh8GCIdz0VCxJzsKM4yJwru8SVECeBMmk oBevbyHf5HjTCPpc+riG9w== X-Google-Smtp-Source: ANB0VdZES4DB4DgpymEnV39+Drnrum9Rblb9QX0scJTCouLc16rgGjjb3cjCjiTmQvFnWpCI0WNDFg== X-Received: by 2002:aca:f58f:: with SMTP id t137-v6mr3767451oih.244.1535655927378; Thu, 30 Aug 2018 12:05:27 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id 22-v6sm4200423oix.58.2018.08.30.12.05.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 30 Aug 2018 12:05:26 -0700 (PDT) From: Rob Herring To: Frank Rowand , devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org, "David S. Miller" , sparclinux@vger.kernel.org Subject: [PATCH 3/3] of: make default address and size cells sizes private Date: Thu, 30 Aug 2018 14:05:23 -0500 Message-Id: <20180830190523.31474-4-robh@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180830190523.31474-1-robh@kernel.org> References: <20180830190523.31474-1-robh@kernel.org> Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Only some old OpenFirmware implementations rely on default sizes. Any FDT and modern implementation should have explicit properties. Make the OF_ROOT_NODE_*_CELLS_DEFAULT defines private so we don't get any outside users. This also gets us one step closer to removing the asm/prom.h dependency on Sparc. Cc: "David S. Miller" Cc: Frank Rowand Cc: sparclinux@vger.kernel.org Signed-off-by: Rob Herring Reviewed-by: Frank Rowand --- arch/sparc/include/asm/prom.h | 3 --- drivers/of/of_private.h | 8 ++++++++ include/linux/of.h | 6 ------ 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/arch/sparc/include/asm/prom.h b/arch/sparc/include/asm/prom.h index d955c8df62d6..1902db27ff4b 100644 --- a/arch/sparc/include/asm/prom.h +++ b/arch/sparc/include/asm/prom.h @@ -24,9 +24,6 @@ #include #include -#define OF_ROOT_NODE_ADDR_CELLS_DEFAULT 2 -#define OF_ROOT_NODE_SIZE_CELLS_DEFAULT 1 - #define of_compat_cmp(s1, s2, l) strncmp((s1), (s2), (l)) #define of_prop_cmp(s1, s2) strcasecmp((s1), (s2)) #define of_node_cmp(s1, s2) strcmp((s1), (s2)) diff --git a/drivers/of/of_private.h b/drivers/of/of_private.h index 216175d11d3d..5d1567025358 100644 --- a/drivers/of/of_private.h +++ b/drivers/of/of_private.h @@ -27,6 +27,14 @@ struct alias_prop { char stem[0]; }; +#if defined(CONFIG_SPARC) +#define OF_ROOT_NODE_ADDR_CELLS_DEFAULT 2 +#else +#define OF_ROOT_NODE_ADDR_CELLS_DEFAULT 1 +#endif + +#define OF_ROOT_NODE_SIZE_CELLS_DEFAULT 1 + extern struct mutex of_mutex; extern struct list_head aliases_lookup; extern struct kset *of_kset; diff --git a/include/linux/of.h b/include/linux/of.h index 506beca9588d..49d85f670c75 100644 --- a/include/linux/of.h +++ b/include/linux/of.h @@ -247,12 +247,6 @@ static inline unsigned long of_read_ulong(const __be32 *cell, int size) #include #endif -/* Default #address and #size cells. Allow arch asm/prom.h to override */ -#if !defined(OF_ROOT_NODE_ADDR_CELLS_DEFAULT) -#define OF_ROOT_NODE_ADDR_CELLS_DEFAULT 1 -#define OF_ROOT_NODE_SIZE_CELLS_DEFAULT 1 -#endif - #define OF_IS_DYNAMIC(x) test_bit(OF_DYNAMIC, &x->_flags) #define OF_MARK_DYNAMIC(x) set_bit(OF_DYNAMIC, &x->_flags)