From patchwork Fri Sep 22 16:50:31 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris Packham X-Patchwork-Id: 817642 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="YqqAd0GF"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3xzKHN22wTz9s7h for ; Sat, 23 Sep 2017 02:50:54 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id B03D6C21C39; Fri, 22 Sep 2017 16:50:41 +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_NONE, 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 4DD06C21C4A; Fri, 22 Sep 2017 16:50:39 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 0A7F3C21C4A; Fri, 22 Sep 2017 16:50:37 +0000 (UTC) Received: from mail-pg0-f68.google.com (mail-pg0-f68.google.com [74.125.83.68]) by lists.denx.de (Postfix) with ESMTPS id CBECCC21C39 for ; Fri, 22 Sep 2017 16:50:36 +0000 (UTC) Received: by mail-pg0-f68.google.com with SMTP id m30so918241pgn.5 for ; Fri, 22 Sep 2017 09:50:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=Z/s2vO5dfzl45/9XLkkVJAv5X1xTZJg8OFKF1qcS8Oc=; b=YqqAd0GFePq+Hxyjp3whFy1XiCjuSxM548XzfuM3+6QihItmCc4olu9zv7w56Rwl00 YbtS9XYED2MTTIz8D2P0m7o+EWxiHPdRVLlObeBD5qKFrBG1A0DP3g1qQqqfp84ipdj7 rPulUudXB0cDF2yLTcY4fyYGTLMn54ZioW+fW2WApV8MX3rp+gy5a6gr6K7qiG1+nShf 0n8Ei1sskl/J8GpGYVlm67SY/NaKxgnMav/EkI62UrIPUc2ZlctZuopL7YAR8U3diz1v 8dKb7D1t5AcUp6w5EdMmhFZNN3VHY6yQl/mip+PIzTH99haNWLE7fJEtXpg9YzszHz1A ogfQ== 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=Z/s2vO5dfzl45/9XLkkVJAv5X1xTZJg8OFKF1qcS8Oc=; b=swKA2jb09JIPAAxIQPtI4HxyrgbcZ6faSkNl6CDAn6rSCwiSCB8TQpt2pCYC/9Vw62 PB0vmMWZdo51t86mNF+LsE061nppnG3v9n03vCRCT8oZ4qZBrJPcIPSwqHiBG3ysmxNy rZYjqGNtx3z0Jrq5Q6mKuJNwqiPgkoDkz8BCEAIwo587CtdcMKmGu1puAwqjUWBumNBj d5iKlO2QIbapOhtk5SXAFbDo5XOi5g47PMOXrmQLE7bXyIWZMdSjUJcQoNbZSkKW68k1 LQ24l74f5/mdx9zEj7SsgtCv0Pvqgqkx6Iot+ogV1XcLN5txlGr0cNb5XI70iqK4T5Jp 3cMA== X-Gm-Message-State: AHPjjUjFR5wdmqUjjdOtEa52nn/Fyo7Kh/nTeGd7yQssHCFcMHfgpOmo jPXWOhjfNMp5qFbvRmW+S2MxInZy X-Google-Smtp-Source: AOwi7QDAnEpUCLM5YGi06G1h+8P+XvgOrxFVE56pVxA9MlSqkbt4eTEUB07seRxaGhq089u6pWFLEw== X-Received: by 10.84.129.193 with SMTP id b59mr9695320plb.24.1506099034662; Fri, 22 Sep 2017 09:50:34 -0700 (PDT) Received: from chrisp-ll.ws.atlnz.lc ([208.184.212.166]) by smtp.gmail.com with ESMTPSA id v71sm418943pfa.45.2017.09.22.09.50.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 22 Sep 2017 09:50:33 -0700 (PDT) From: Chris Packham To: u-boot@lists.denx.de Date: Sat, 23 Sep 2017 04:50:31 +1200 Message-Id: <20170922165031.3447-1-judge.packham@gmail.com> X-Mailer: git-send-email 2.14.1 Cc: Prafulla Wadaskar , Luka Perkov , Stefan Roese , Chris Packham Subject: [U-Boot] [PATCH] ARM: mvebu: handle unused DRAM banks with ECC enabled 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" dram_ecc_scrubbing() had code to skip unused DRAM banks but it would not work because mvebu_sdram_bs() returns 0 and the code was subtracting 1 before checking the size. Remove the -1 from the bank size and the +1 from the total which will skip unused banks and still calculate the correct size. Put the -1 where it is needed for scrubbing via the xor engine. Reported-by: Joshua Scott Signed-off-by: Chris Packham --- arch/arm/mach-mvebu/dram.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/mach-mvebu/dram.c b/arch/arm/mach-mvebu/dram.c index e3f304c366..f946c0cffe 100644 --- a/arch/arm/mach-mvebu/dram.c +++ b/arch/arm/mach-mvebu/dram.c @@ -179,11 +179,11 @@ static void dram_ecc_scrubbing(void) reg_write(REG_SDRAM_CONFIG_ADDR, temp); for (cs = 0; cs < CONFIG_NR_DRAM_BANKS; cs++) { - size = mvebu_sdram_bs(cs) - 1; + size = mvebu_sdram_bs(cs); if (size == 0) continue; - total = (u64)size + 1; + total = (u64)size; total_mem += (u32)(total / (1 << 30)); start_addr = 0; mv_xor_init2(cs); @@ -194,7 +194,7 @@ static void dram_ecc_scrubbing(void) size -= start_addr; } - mv_xor_mem_init(SCRB_XOR_CHAN, start_addr, size, + mv_xor_mem_init(SCRB_XOR_CHAN, start_addr, size - 1, SCRUB_MAGIC, SCRUB_MAGIC); /* Wait for previous transfer completion */