From patchwork Thu Feb 15 18:05:59 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Reding X-Patchwork-Id: 874036 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="H7MIVBH8"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3zj42v4g1fz9t2f for ; Fri, 16 Feb 2018 05:06:14 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id E64C5C221AC; Thu, 15 Feb 2018 18:06:09 +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_H3, RCVD_IN_MSPIKE_WL, 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 329F7C2215F; Thu, 15 Feb 2018 18:06:07 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B7D44C2215F; Thu, 15 Feb 2018 18:06:05 +0000 (UTC) Received: from mail-qk0-f195.google.com (mail-qk0-f195.google.com [209.85.220.195]) by lists.denx.de (Postfix) with ESMTPS id 1DA49C220F0 for ; Thu, 15 Feb 2018 18:06:05 +0000 (UTC) Received: by mail-qk0-f195.google.com with SMTP id c128so661102qkb.4 for ; Thu, 15 Feb 2018 10:06:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=xHJzj1ohUQevRt6sWSKlvziY5Xpc7EkrEWWXg5B1/ag=; b=H7MIVBH8lB/SWAHahWMpUBYOHQpV+FCmnyxBuSUvu6d810UHst1S78yooU8vzMd3EP 1EgqTE0hWYRJqR4HhSCpaEqPCMeh2zvCZB7qWPsiFpRqhvUgW5DfcXDz9/1t43JZYIQY lwn0ZWH7yFpsNeKC1taj2NKT7G4vZF772vKDPYThHlRrQS8fV/vHgrTuw5Xf0RKU9E+t zfqaD81HFECqRAatAQ5jcWfzsoM2/lWfiCSLpCtoKQTGW8yYWWaA/SZhTOM3Sr8j0nRW s0cKE5SwWyotiJnE/DScib9awc0vZTJ4qcTaIWxoTn461E2msXxBEktdYbO+Wzj4zOB4 t3oA== 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; bh=xHJzj1ohUQevRt6sWSKlvziY5Xpc7EkrEWWXg5B1/ag=; b=phJdRUoASt1G1ppgfuWEcFlWXwHiJhgwxs2qAzPikp+upEwFdv3Kk/0vR8D9Q4R/ps FQJDchtHVNlcEkoZXPkSFLVp5hJ4de+QL4BoKUYucSeAvwsxEnXgUCzjLNIjetccver1 XRwd3fFqwZzWEi1PSO+PQSARfbUFBaJiRFtcjg1oiTGSdhUOnMSZD0prspJw6QGJBkzn 5jsJaooJdgJkKW3Jv+IgffF+SxZpS9mQQbmZWZHLm0QqkunHXFQmqhuylvA06fsIQTWh 7Z1QaSfjrOVHL711azBra7rGCLB0EpkMf4m8qjrKjNHZZBG3T2t8T/bjNd0mKw5RbWTX crZw== X-Gm-Message-State: APf1xPDZaUhooUUXCgRwAMhElTfdhm5v+EXq6BMZ3L+g2LOmBrP85xdG GWdCXtszztSXdvRuVarNqtk= X-Google-Smtp-Source: AH8x226iW2q5gWdrF3fpCwomY5Bcmb9w3Flj1hyx4O4s+ixpMsoR2KXz91B6EfosCWyzITvIhvCR4w== X-Received: by 10.55.65.20 with SMTP id o20mr5277495qka.270.1518717963512; Thu, 15 Feb 2018 10:06:03 -0800 (PST) Received: from localhost (p200300E41F408200A3FAFAC989D58140.dip0.t-ipconnect.de. [2003:e4:1f40:8200:a3fa:fac9:89d5:8140]) by smtp.gmail.com with ESMTPSA id v57sm10626237qtv.7.2018.02.15.10.06.02 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 15 Feb 2018 10:06:02 -0800 (PST) From: Thierry Reding To: Simon Glass Date: Thu, 15 Feb 2018 19:05:59 +0100 Message-Id: <20180215180559.27875-1-thierry.reding@gmail.com> X-Mailer: git-send-email 2.15.1 Cc: u-boot@lists.denx.de, Tom Warren Subject: [U-Boot] [PATCH v2] fdt: Fixup only valid memory banks 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: Thierry Reding Memory banks with address 0 and size 0 are empty and should not be passed to the OS via device tree. Acked-by: Stephen Warren Signed-off-by: Thierry Reding --- Changes in v2: - check whether or not any banks need to be fixed up after filtering out invalid ones (Stephen Warren) - use braces around multiple-line body of for loop, even if not strictly necessary (Stephen Warren) --- common/fdt_support.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/common/fdt_support.c b/common/fdt_support.c index 17623a1728f6..da0c12e9c1bc 100644 --- a/common/fdt_support.c +++ b/common/fdt_support.c @@ -418,7 +418,7 @@ static int fdt_pack_reg(const void *fdt, void *buf, u64 *address, u64 *size, int fdt_fixup_memory_banks(void *blob, u64 start[], u64 size[], int banks) { int err, nodeoffset; - int len; + int len, i; u8 tmp[MEMORY_BANKS_MAX * 16]; /* Up to 64-bit address + 64-bit size */ if (banks > MEMORY_BANKS_MAX) { @@ -447,6 +447,13 @@ int fdt_fixup_memory_banks(void *blob, u64 start[], u64 size[], int banks) return err; } + for (i = 0; i < banks; i++) { + if (start[i] == 0 && size[i] == 0) + break; + } + + banks = i; + if (!banks) return 0;