From patchwork Wed Jan 10 10:33:30 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jorge Ramirez-Ortiz, Gmail" X-Patchwork-Id: 858190 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="L5JUQsQF"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3zGlkt3JWHz9s9Y for ; Wed, 10 Jan 2018 21:35:02 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id E76B9C220BD; Wed, 10 Jan 2018 10:34:16 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id BB00BC2213E; Wed, 10 Jan 2018 10:33:58 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id BBF6BC22143; Wed, 10 Jan 2018 10:33:42 +0000 (UTC) Received: from mail-wr0-f195.google.com (mail-wr0-f195.google.com [209.85.128.195]) by lists.denx.de (Postfix) with ESMTPS id 8D8B3C21E08 for ; Wed, 10 Jan 2018 10:33:38 +0000 (UTC) Received: by mail-wr0-f195.google.com with SMTP id f8so16886991wre.4 for ; Wed, 10 Jan 2018 02:33:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=9pFfsSHGvEpykZaFmJYB2ofWm6ZDsM39EBqArbAirYE=; b=L5JUQsQFE47QGe/ez1kKl39bygb3eAZzkHVkkFQWfAU/Aax6sFoSOFqe4iDVrZ3gel ohuyhlu+NsaTAsxrsEwONhyHeqaESBYfIeMJqf39sg7sDUx5e4fJ2FoHt6/8n8MPFsK1 jY3MywxN7TLpJVbu5xA4fxIlivEhoVMUUWYtCebWDdc2ECXiSjVbnq+mI6rM+f0LxvjM sWZB6oumN87w8r2aztQXqQbuvbPU7IK8edRLInbmplSuNaP3IDesFdjjfIYWOoxozH8G 7V9KXTUWQRXqCtYbtxJmJyNWPDcOuAaNbHwe+Cz/s2+nzkwd8uYEJOUg1eoMaCsuVdTQ kIQA== 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:in-reply-to :references; bh=9pFfsSHGvEpykZaFmJYB2ofWm6ZDsM39EBqArbAirYE=; b=BfTk7Vx3W/wF5z7HXeHXi0fep6pbErUAQ37RIY5a4ZV9azqehxuWgLyr3DGjyK8L/Y p/BP19TZGp/0KOgyc5iUSj4GbRALxzm6h3iDWrcFfFf8jZqJjxqh/jeQ2+kYFugxGZw6 ktJMiNJoKTJt+1gOlL4QV4EAgoDm49C/F2jEpX/3tPIm7wA85IdpC0G1CRBwdXQ2Hw0F y6kfAJ6hQjRKeoJhsgKFWguN3p4Qn+mFg6SyIq7MukVHPfw3VeJUQuid80v/hWmkNkh2 3H03mmZfIaAUoRgLVqumSiPDatS4gdfqByjwh30oRmroUbX82YPISekQ8zVQU7JNoUYv Wa0Q== X-Gm-Message-State: AKGB3mJUIFooc4n2lcW1s8cygk8liSRKxHqTxN7q2n4KpmxhB2Zopfm1 /xWDOhs9SE2QIHaAf8nJq/EdBQ== X-Google-Smtp-Source: ACJfBotb22XaEfZiwX+U0WsOqCS7VZXLdzneV7RZ9jR1vx2iubiQvEmaPUnJ1ePpxmTyCyVC/nmbqw== X-Received: by 10.223.128.201 with SMTP id 67mr15653498wrl.70.1515580417902; Wed, 10 Jan 2018 02:33:37 -0800 (PST) Received: from igloo.80.58.61.254 (141.pool85-51-114.dynamic.orange.es. [85.51.114.141]) by smtp.gmail.com with ESMTPSA id q74sm25642669wmg.22.2018.01.10.02.33.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 10 Jan 2018 02:33:37 -0800 (PST) From: Jorge Ramirez-Ortiz To: u-boot@lists.denx.de Date: Wed, 10 Jan 2018 11:33:30 +0100 Message-Id: <1515580410-25890-3-git-send-email-jorge.ramirez.ortiz@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1515580410-25890-1-git-send-email-jorge.ramirez.ortiz@gmail.com> References: <1515580410-25890-1-git-send-email-jorge.ramirez.ortiz@gmail.com> Subject: [U-Boot] [PATCH v1 03/03] dm: core: parse chosen node X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Rob Clark This is the node that would contain, for example, the framebuffer setup by an earlier stage. Signed-off-by: Rob Clark --- arch/sandbox/dts/test.dts | 7 +++++++ drivers/core/root.c | 12 ++++++++++++ test/dm/bus.c | 2 +- test/dm/test-fdt.c | 2 +- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts index e67d428..3f9e788 100644 --- a/arch/sandbox/dts/test.dts +++ b/arch/sandbox/dts/test.dts @@ -478,6 +478,13 @@ wdt0: wdt@0 { compatible = "sandbox,wdt"; }; + + chosen { + chosen-test { + compatible = "denx,u-boot-fdt-test"; + reg = <9 1>; + }; + }; }; #include "sandbox_pmic.dtsi" diff --git a/drivers/core/root.c b/drivers/core/root.c index 976e2c4..5a1c599 100644 --- a/drivers/core/root.c +++ b/drivers/core/root.c @@ -266,6 +266,18 @@ static int dm_scan_fdt_node(struct udevice *parent, const void *blob, for (offset = fdt_first_subnode(blob, offset); offset > 0; offset = fdt_next_subnode(blob, offset)) { + + /* "chosen" node isn't a device itself but may contain some: */ + if (!strcmp(fdt_get_name(blob, offset, NULL), "chosen")) { + pr_debug("parsing subnodes of \"chosen\"\n"); + + err = dm_scan_fdt_node(parent, blob, offset, + pre_reloc_only); + if (err && !ret) + ret = err; + continue; + } + if (pre_reloc_only && !dm_fdt_pre_reloc(blob, offset)) continue; diff --git a/test/dm/bus.c b/test/dm/bus.c index 7006d41..1da398a 100644 --- a/test/dm/bus.c +++ b/test/dm/bus.c @@ -105,7 +105,7 @@ UCLASS_DRIVER(testbus) = { /* Test that we can probe for children */ static int dm_test_bus_children(struct unit_test_state *uts) { - int num_devices = 6; + int num_devices = 7; struct udevice *bus; struct uclass *uc; diff --git a/test/dm/test-fdt.c b/test/dm/test-fdt.c index dcc2ef8..920ccbf 100644 --- a/test/dm/test-fdt.c +++ b/test/dm/test-fdt.c @@ -167,7 +167,7 @@ int dm_check_devices(struct unit_test_state *uts, int num_devices) /* Test that FDT-based binding works correctly */ static int dm_test_fdt(struct unit_test_state *uts) { - const int num_devices = 6; + const int num_devices = 7; struct udevice *dev; struct uclass *uc; int ret;