From patchwork Wed Dec 19 19:00:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Goldschmidt X-Patchwork-Id: 1016272 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; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="bSBmX0T2"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 43Kkpt3d9mz9rxp for ; Thu, 20 Dec 2018 06:04:54 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 51D47C220E8; Wed, 19 Dec 2018 19:03: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_DNSWL_BLOCKED, 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 046D5C22105; Wed, 19 Dec 2018 19:00:39 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 12FEAC21E3E; Wed, 19 Dec 2018 19:00:34 +0000 (UTC) Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by lists.denx.de (Postfix) with ESMTPS id 313D2C21FE7 for ; Wed, 19 Dec 2018 19:00:28 +0000 (UTC) Received: by mail-wr1-f68.google.com with SMTP id q18so20613372wrx.9 for ; Wed, 19 Dec 2018 11:00:28 -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:in-reply-to:references; bh=wZ1km2uOCEfo6mJUmF3cS137W43AJ/TI4/Hp12XIboM=; b=bSBmX0T2n718c/BGV0C7SkbiPx0z3YbMIlY5XqLDP6VrgRkZWT1ZimSR4FPUpBcpGp 89jLAtSlQTS7fmWznVhGinJSrsbGoofHxNx7z3b9ph37HB5nz92AQG6SskjbOH/JMWde DPbPeQFaD8m59vjS9xKS2/MtLdF9x8L+iV4HyZ5guhldNse5IP6WwrIU7OVzpSEAm9C6 49A4t+uGw3LW+r++f2/+JNyEwCILo73S9FZmV1W4H0wYYI8M/2h5Q1NDtZc7pnAuM5fZ q7AUAtOPtoEfxVqdAksBxAZJ7xw0wQr77z4tWbBhZDzvqIM25SReKmg9NbYVHD4wFxu3 TznQ== 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=wZ1km2uOCEfo6mJUmF3cS137W43AJ/TI4/Hp12XIboM=; b=MUhrkUH+gACbhclvQafGtBHfHcA+a64HOK/WYvhSxuKdHmFeYQStJ2agmaerwgsc/n l0opDHxhjp9C5HYMJKMNB7+VIoHzBZ8jFUNvk6OWYQtrB2huJTaSu3Htt1PBHPt/ftoj hoOZvC74danqJItrulPGOsWmMDcgGEBiT1I5N2EY4T4NDMt69RQZur75h1j3FuhSH+cd QkFTPhZDpZ6EDqnOWkUBCRYYXAQoJHw2fcjzWUFuvl40XqFTaxoU5iaiLRXky9ASUKWc 6nsa08HVLPWPw3T2Ftvjqac7YYQsjmXQRLfMrbOomixp34swYaCPLO60sIlmA2jqoNOc /sqA== X-Gm-Message-State: AA+aEWZbMREg1/9cJtB5AqyWDV+tAPwslSolW5ekxF7KZsVb8wi8OnBd 6hgRacwuMawFZz9qlzXPnTE= X-Google-Smtp-Source: AFSGD/W0+Bg/u9qOD8KEhc34SXZoh+XdHUR2sNHGz9twTRJfVGp+dfSPjkNVgdVDShyvzWD08wskDg== X-Received: by 2002:a5d:454f:: with SMTP id p15mr20949272wrr.39.1545246027928; Wed, 19 Dec 2018 11:00:27 -0800 (PST) Received: from ubuntu.home ([2a02:8071:6a3:700:80b1:ba3d:111a:23c5]) by smtp.gmail.com with ESMTPSA id q3sm10334744wrn.84.2018.12.19.11.00.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 19 Dec 2018 11:00:27 -0800 (PST) From: Simon Goldschmidt To: Tom Rini , u-boot@lists.denx.de, Joe Hershberger Date: Wed, 19 Dec 2018 20:00:09 +0100 Message-Id: <20181219190009.23265-11-simon.k.r.goldschmidt@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181219190009.23265-1-simon.k.r.goldschmidt@gmail.com> References: <20181219190009.23265-1-simon.k.r.goldschmidt@gmail.com> Cc: Stephen Warren , Heinrich Schuchardt , Andrea Barisani Subject: [U-Boot] [PATCH v9 10/10] arm: bootm: fix sp detection at end of address range 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" This fixes 'arch_lmb_reserve()' for ARM that tries to detect in which DRAM bank 'sp' is in. This code failed if a bank was at the end of physical address range (i.e. size + length overflowed to 0). To fix this, calculate 'bank_end' as 'size + length - 1' so that such banks end at 0xffffffff, not 0. Fixes: 15751403b6 ("ARM: bootm: don't assume sp is in DRAM bank 0") Reported-by: Frank Wunderlich Signed-off-by: Simon Goldschmidt Reviewed-by: Stephen Warren Tested-By: "Frank Wunderlich" --- Changes in v9: - fix compile error in arch/arm/lib/bootm.c Changes in v8: - this patch is new in v8 Changes in v7: None Changes in v6: None Changes in v5: None Changes in v4: None Changes in v2: None arch/arm/lib/bootm.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c index c3c1d2fdfa..329f20c2bf 100644 --- a/arch/arm/lib/bootm.c +++ b/arch/arm/lib/bootm.c @@ -64,13 +64,15 @@ void arch_lmb_reserve(struct lmb *lmb) /* adjust sp by 4K to be safe */ sp -= 4096; for (bank = 0; bank < CONFIG_NR_DRAM_BANKS; bank++) { - if (sp < gd->bd->bi_dram[bank].start) + if (!gd->bd->bi_dram[bank].size || + sp < gd->bd->bi_dram[bank].start) continue; + /* Watch out for RAM at end of address space! */ bank_end = gd->bd->bi_dram[bank].start + - gd->bd->bi_dram[bank].size; - if (sp >= bank_end) + gd->bd->bi_dram[bank].size - 1; + if (sp > bank_end) continue; - lmb_reserve(lmb, sp, bank_end - sp); + lmb_reserve(lmb, sp, bank_end - sp + 1); break; } }