Message ID | 20190611145135.21399-49-jagan@amarulasolutions.com |
---|---|
State | New |
Headers | show
Return-Path: <linux-amarula+bncBD7MFH7A7EEBBR4B77TQKGQEE6ZKBEA@amarulasolutions.com> X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 080C23F08F for <linux-amarula@patchwork.amarulasolutions.com>; Tue, 11 Jun 2019 16:55:05 +0200 (CEST) Received: by mail-pl1-f199.google.com with SMTP id u10sf7888653plq.21 for <linux-amarula@patchwork.amarulasolutions.com>; Tue, 11 Jun 2019 07:55:04 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1560264903; cv=pass; d=google.com; s=arc-20160816; b=rSkLF2Cs72uvke/OlOxs3X8b5+Zal/2v3i/zWyGSQP6Twf6zfScCW+lPJv3gJzKp5h 6Mr4wQnNmQkuvmh/8BafVWV8FgbSDNCwekv8Jyrwi7ohmg+ef+DycuyGJIksXS2rEbcd 1Vc0NB4bMxBMLtapRJr+j9jkDyA1ZIeDv8JyA3aCDoYiqUTzAfNOwMaNLnUZCYe1MTLg UL30Kz5oizRLpAbsXwICeBkSt06xC5OqOCtc6g4bCxjKxPREwuSf7T25901faE3EuLax YtX30FjNKHez/0NyXZ/cH0K5Y2isVk5QTMDUkAflAwOUWO6o1a3Oq6hv2HVS6/RR4/Y6 xtRw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=BDmllI42H9B0AHGd0syD2JrjTAcp+VSru8gcs2qj4Ko=; b=a16RsvIPOxzGBH4MzRVeGwh7hTnlcEDNbtb5EKrcV6l8ThPAkgI95+KNK3zQQrDrfr vBPlkZvELEmZl159PT889KXLVH7Sj/d+2PFIJt/tuqfFs/GF5z0We/w1E5lBBZlwoZfW tUdwTv40Zp9WzkBTYECIkRs0ms5DdP/KWJLeINpj+nK66PdQqWl0hBs5NXOruQkhevuP YStuR4IlGZ5zhtYwNyzNmhyYU1ccj6OIIcex0KJM9cItyKvewVew8l/Yf5T/P8xZ8J6J zlCop/2ImeOFJcZmy+3bnhfcUwu7/QfuYcVCtkZGkOBBsheFA4G82Gbma/pxVBvFvojT nfFw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=WnwtPCWu; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-unsubscribe; bh=BDmllI42H9B0AHGd0syD2JrjTAcp+VSru8gcs2qj4Ko=; b=Ly8eCJhkvn+WLCR7HvwTPFDyQZG/78oENmVmqdSx0VSa3uduE/+TXhjeSNUwPp6UiO Kn2tld9yem/7Y463iRGgn1rE88XYh0+gsEnx9DYYouE9FvAf/lU3bJrsV3bjtxzsrezZ 5WoX0krDm68Yc4ET5DFkbfdS4LzeznlpL75dE= 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:mime-version:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :x-spam-checked-in-group:list-post:list-help:list-archive :list-unsubscribe; bh=BDmllI42H9B0AHGd0syD2JrjTAcp+VSru8gcs2qj4Ko=; b=m/BLYD0gOZEaj4N38c4uQZ45rCdrZPgS1wy7dKXPgCeYA9Dz5X0k2cnGbxBo04v92I oNiwJwhfwPo3GyCXA5VEynZrfzTtmoR7qc2mCHjrRRM3Wjfsx7w+fCWgXpY5FB0giCIc DKKUns1m/Zo8I+P9Sh4qO5NcFC0ZFGjhRPwEIcuRt/EbxgJnaLYBIJNCdW6JyEjsWan4 5TAWO48F5P1gjShae+CjEKCnLUYtH0u3Rt2+cZSxzro5i30bl3rhT5NwhaYIAfXpTg9f 1UsQNNt5XWig7SGaMPrqxLXW4RFma2GUp0vf7kTfEPEXUZ9tAqwOYy3xEzrDI2SwvJal 6P0A== X-Gm-Message-State: APjAAAW7PIp0Nj+1Nixo6mgO3ji3QwmSjNgRJIt2SyL6WvAOEYQ/83Hj Gpw2ubh2YHaaCoSp+O2xoO3RrdUN X-Google-Smtp-Source: APXvYqwGVyZjSqipwynjnBW5CX+Xlt/FoBOWFO3XhhWOb1WyTDOJRKbjPrJ8czJIvYW1JJv0V+rYIg== X-Received: by 2002:a63:2b92:: with SMTP id r140mr20933318pgr.363.1560264903752; Tue, 11 Jun 2019 07:55:03 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com Received: by 2002:a17:902:b605:: with SMTP id b5ls4895449pls.12.gmail; Tue, 11 Jun 2019 07:55:03 -0700 (PDT) X-Received: by 2002:a17:902:824:: with SMTP id 33mr78629220plk.29.1560264903412; Tue, 11 Jun 2019 07:55:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560264903; cv=none; d=google.com; s=arc-20160816; b=REfokgp1db2ZXRVW7QS8j5eRldL/txS2nQ/MDmBgfFAa3fVdGK5NNpi/myZzHlZ0/o 5aWR75DzKhETLLjzWFlUxAYqiOF5q2J28FC+m8m2sqBHNEv2IK4j0qM+EtZ0bYih0jMC FJofpIqZm+ZDKhVUSEDhAwoChRbEe1rK52wm68+zkebdWL6OOD3MzbhDFnIvkPc6fqNY ehAGQQByqQcFlUMn2anCKuIjJMc6ttYr5IomNZPWYKgFXVq4bLyOk4mA5TTpRp5p6JiY uF3j1hFyjsqiVUbduh8qS1ALHyBywuba/sPGHcMtazzdWJmleTu7iU7jdRbL6ku6SrUZ Xf5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=q9WmmKSiG6PRsHUFUAVRH5Oq8xmXKYOkeIJI7ZtLjSw=; b=hSWJ03j0L38h6eIfovlQ7epwSLrxCVjUjn0v46Fpabhx1eunqKM6B4HIbATTviTJXB N5dOFggAJu4OjWYsmoz8iQzyptS9A6sq0L6WQyfMGnA419AMD5u3iKteQ676ZqD9n3ea EWWFrSpZhTyAtvAKDaPmClDLMfJgwWK3b0AiV8alRze8mpUj1y13/Kd+uuTt2G5tI+m4 Bi9yoLu4N3X24gZH+f0ji8k9tkhWyMdpw01tq1qmUQmahkOlekdwSQW9ONdWCUHt8U8J zSGncGPGyQA6lN3t4LUOV2NfJrogTDX2RvB0Ow5etsITVeJ6IQbktyMldjjgddCSHO/Z LPhQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=WnwtPCWu; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id z1sor3178067pjn.1.2019.06.11.07.55.03 for <linux-amarula@amarulasolutions.com> (Google Transport Security); Tue, 11 Jun 2019 07:55:03 -0700 (PDT) Received-SPF: pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; X-Received: by 2002:a17:90a:2430:: with SMTP id h45mr28194841pje.14.1560264903013; Tue, 11 Jun 2019 07:55:03 -0700 (PDT) Received: from localhost.localdomain ([115.97.180.18]) by smtp.gmail.com with ESMTPSA id e9sm16206208pfn.154.2019.06.11.07.54.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 11 Jun 2019 07:55:02 -0700 (PDT) From: Jagan Teki <jagan@amarulasolutions.com> To: Simon Glass <sjg@chromium.org>, Philipp Tomsich <philipp.tomsich@theobroma-systems.com>, Kever Yang <kever.yang@rock-chips.com>, YouMin Chen <cym@rock-chips.com>, u-boot@lists.denx.de Cc: gajjar04akash@gmail.com, linux-rockchip@lists.infradead.org, linux-amarula@amarulasolutions.com, Jagan Teki <jagan@amarulasolutions.com> Subject: [PATCH 48/92] ram: rk3399: Compute stride for 2 channels Date: Tue, 11 Jun 2019 20:20:51 +0530 Message-Id: <20190611145135.21399-49-jagan@amarulasolutions.com> X-Mailer: git-send-email 2.18.0.321.gffc6fa0e3 In-Reply-To: <20190611145135.21399-1-jagan@amarulasolutions.com> References: <20190611145135.21399-1-jagan@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: jagan@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=WnwtPCWu; spf=pass (google.com: domain of jagan@amarulasolutions.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=jagan@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: <linux-amarula.amarulasolutions.com> X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: <https://groups.google.com/a/amarulasolutions.com/group/linux-amarula/post>, <mailto:linux-amarula@amarulasolutions.com> List-Help: <https://support.google.com/a/amarulasolutions.com/bin/topic.py?topic=25838>, <mailto:linux-amarula+help@amarulasolutions.com> List-Archive: <https://groups.google.com/a/amarulasolutions.com/group/linux-amarula/> List-Unsubscribe: <mailto:googlegroups-manage+476853432473+unsubscribe@googlegroups.com>, <https://groups.google.com/a/amarulasolutions.com/group/linux-amarula/subscribe> |
Series |
|
Related |
show
|
diff --git a/drivers/ram/rockchip/sdram_rk3399.c b/drivers/ram/rockchip/sdram_rk3399.c index 1acf9efe9c..5985c37f08 100644 --- a/drivers/ram/rockchip/sdram_rk3399.c +++ b/drivers/ram/rockchip/sdram_rk3399.c @@ -1185,8 +1185,76 @@ static int switch_to_phy_index1(struct dram_info *dram, return 0; } +static unsigned char calculate_stride(struct rk3399_sdram_params *sdram_params) +{ + unsigned int stride = sdram_params->base.stride; + unsigned int channel, chinfo = 0; + unsigned int ch_cap[2] = {0, 0}; + u64 cap; + + for (channel = 0; channel < 2; channel++) { + unsigned int cs0_cap = 0; + unsigned int cs1_cap = 0; + struct sdram_cap_info *cap_info = + &sdram_params->ch[channel].cap_info; + + if (cap_info->col == 0) + continue; + + cs0_cap = (1 << (cap_info->cs0_row + cap_info->col + + cap_info->bk + cap_info->bw - 20)); + if (cap_info->rank > 1) + cs1_cap = cs0_cap >> (cap_info->cs0_row + - cap_info->cs1_row); + if (cap_info->row_3_4) { + cs0_cap = cs0_cap * 3 / 4; + cs1_cap = cs1_cap * 3 / 4; + } + ch_cap[channel] = cs0_cap + cs1_cap; + chinfo |= 1 << channel; + } + + /* stride calculation for 2 channels, default gstride type is 256B */ + if (ch_cap[0] == ch_cap[1]) { + cap = ch_cap[0] + ch_cap[1]; + switch (cap) { + /* 512MB */ + case 512: + stride = 0; + break; + /* 1GB */ + case 1024: + stride = 0x5; + break; + /* + * 768MB + 768MB same as total 2GB memory + * useful space: 0-768MB 1GB-1792MB + */ + case 1536: + /* 2GB */ + case 2048: + stride = 0x9; + break; + /* 1536MB + 1536MB */ + case 3072: + stride = 0x11; + break; + /* 4GB */ + case 4096: + stride = 0xD; + break; + default: + printf("%s: Unable to calculate stride for ", __func__); + print_size((cap * (1 << 20)), " capacity\n"); + break; + } + } + + return stride; +} + static int sdram_init(struct dram_info *dram, - const struct rk3399_sdram_params *sdram_params) + struct rk3399_sdram_params *sdram_params) { unsigned char dramtype = sdram_params->base.dramtype; unsigned int ddr_freq = sdram_params->base.ddr_freq; @@ -1235,6 +1303,8 @@ static int sdram_init(struct dram_info *dram, set_ddrconfig(chan, sdram_params, channel, sdram_params->ch[channel].cap_info.ddrconfig); } + + sdram_params->base.stride = calculate_stride(sdram_params); dram_all_config(dram, sdram_params); switch_to_phy_index1(dram, sdram_params);