From: Jagan Teki <jagan@amarulasolutions.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 46/92] ram: rockchip: debug: Get the cs capacity
Date: Tue, 11 Jun 2019 20:20:49 +0530 [thread overview]
Message-ID: <20190611145135.21399-47-jagan@amarulasolutions.com> (raw)
In-Reply-To: <20190611145135.21399-1-jagan@amarulasolutions.com>
Add code to get the channel capacity, this would help to
print the capacity of specific channel.
Here is sample print on LPDDR4, 50MHz channel 0
BW=32 Col=10 Bk=8 CS0 Row=15 CS1 Row=15 CS=2 Die BW=16 Size=2048MB
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Signed-off-by: YouMin Chen <cym@rock-chips.com>
---
drivers/ram/rockchip/sdram_debug.c | 46 +++++++++++++++++++++++++++++-
1 file changed, 45 insertions(+), 1 deletion(-)
diff --git a/drivers/ram/rockchip/sdram_debug.c b/drivers/ram/rockchip/sdram_debug.c
index 69a6f94a73..19e9225c12 100644
--- a/drivers/ram/rockchip/sdram_debug.c
+++ b/drivers/ram/rockchip/sdram_debug.c
@@ -33,10 +33,46 @@ void sdram_print_dram_type(unsigned char dramtype)
}
}
+/**
+ * cs = 0, cs0
+ * cs = 1, cs1
+ * cs => 2, cs0+cs1
+ * note: it didn't consider about row_3_4
+ */
+u64 sdram_get_cs_cap(struct sdram_cap_info *cap_info, u32 cs, u32 dram_type)
+{
+ u32 bg;
+ u64 cap[2];
+
+ if (dram_type == DDR4)
+ /* DDR4 8bit dram BG = 2(4bank groups),
+ * 16bit dram BG = 1 (2 bank groups)
+ */
+ bg = (cap_info->dbw == 0) ? 2 : 1;
+ else
+ bg = 0;
+
+ cap[0] = 1llu << (cap_info->bw + cap_info->col +
+ bg + cap_info->bk + cap_info->cs0_row);
+
+ if (cap_info->rank == 2)
+ cap[1] = 1llu << (cap_info->bw + cap_info->col +
+ bg + cap_info->bk + cap_info->cs1_row);
+ else
+ cap[1] = 0;
+
+ if (cs == 0)
+ return cap[0];
+ else if (cs == 1)
+ return cap[1];
+ else
+ return (cap[0] + cap[1]);
+}
+
void sdram_print_ddr_info(struct sdram_cap_info *cap_info,
struct sdram_base_params *base)
{
- u32 bg;
+ u32 bg, cap;
bg = (cap_info->dbw == 0) ? 2 : 1;
@@ -71,4 +107,12 @@ void sdram_print_ddr_info(struct sdram_cap_info *cap_info,
printascii(" Die BW=");
printdec(8 << cap_info->dbw);
+
+ cap = sdram_get_cs_cap(cap_info, 3, base->dramtype);
+ if (cap_info->row_3_4)
+ cap = cap * 3 / 4;
+
+ printascii(" Size=");
+ printdec(cap >> 20);
+ printascii("MB\n");
}
--
2.18.0.321.gffc6fa0e3
next prev parent reply other threads:[~2019-06-11 14:50 UTC|newest]
Thread overview: 102+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-11 14:50 [U-Boot] [PATCH 00/92] ram: rk3399: Add LPDDR4 support Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 01/92] ram: rk3399: Fix code warnings Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 02/92] ram: rk3399: Add space between string with format specifier Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 03/92] ram: rk3399: Add proper spaces in data training Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 04/92] ram: rk3399: Handle data training return types Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 05/92] ram: rk3399: Order include files Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 06/92] ram: rk3399: Move macro after " Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 07/92] ram: rk3399: Clear PI_175 interrupts in data training Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 08/92] ram: rk3399: Use rank mask in ca " Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 09/92] ram: rk3399: Use rank mask in wdql " Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 10/92] ram: rk3399: Add ddrtype enc macro Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 11/92] ram: rk3399: Add channel number encoder macro Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 12/92] ram: rk3399: Add row_3_4 enc macro Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 13/92] ram: rk3399: Add chipinfo macro Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 14/92] ram: rk3399: Add rank enc macro Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 15/92] ram: rk3399: Add column " Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 16/92] ram: rk3399: Add bk " Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 17/92] ram: rk3399: Add dbw " Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 18/92] ram: rk3399: Add cs0_rw macro Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 19/92] ram: rk3399: Add cs1_rw macro Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 20/92] ram: rk3399: Add bw enc macro Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 21/92] ram: rk3399: Rename sys_reg with sys_reg2 Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 22/92] ram: rk3399: Update cs0_row to use sys_reg3 Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 23/92] ram: rk3399: Update cs1_row " Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 24/92] ram: rk3399: Add cs1_col enc macro Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 25/92] ram: rk3399: Add ddr version " Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 26/92] ram: rk3399: Add ddrtimingC0 Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 27/92] ram: rk3399: Add DdrMode Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 28/92] ram: rk3399: Handle pctl_cfg return type Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 29/92] ram: rk3399: s/tsel_wr_select_n/tsel_wr_select_dq_n Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 30/92] ram: rk3399: s/tsel_wr_select_p/tsel_wr_select_dq_p Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 31/92] ram: rk3399: s/ca_tsel_wr_select_n/tsel_wr_select_ca_n Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 32/92] ram: rk3399: s/ca_tsel_wr_select_p/tsel_wr_select_ca_p Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 33/92] ram: rk3399: Order tsel variables Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 34/92] ram: rk3399: Add phy pctrl reset support Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 35/92] ram: rk3399: Move pwrup_srefresh_exit to dram_info Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 36/92] ram: rk3399: Add pctl start support Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 37/92] ram: rockchip: rk3399: Add cap_info structure Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 38/92] ram: rk3399: s/rk3399_base_params/sdram_base_params Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 39/92] ram: rk3399: Move common sdram structures in common header Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 40/92] arm: include: rockchip: Move dramtypes to " Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 41/92] arm: include: rockchip: Add DDR4 enum Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 42/92] ram: rockchip: Add initial Kconfig Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 43/92] debug_uart: Add printdec Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 44/92] ram: rockchip: Add debug sdram driver Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 45/92] ram: rockchip: debug: Add sdram_print_ddr_info Jagan Teki
2019-06-11 14:50 ` Jagan Teki [this message]
2019-06-11 14:50 ` [U-Boot] [PATCH 47/92] ram: rk3399: debug: Add sdram_print_stride Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 48/92] ram: rk3399: Compute stride for 2 channels Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 49/92] ram: rk3399: Compute stride for 1 channel a Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 50/92] ram: rk3399: Add rank detection support Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 51/92] ram: rk3399: Enable sdram debug functions Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 52/92] rockchip: dts: rk3399: nanopi-neo4: Use DDR3-1866 dtsi Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 53/92] clk: rockchip: rk3399: Fix check patch warnings and checks Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 54/92] clk: rockchip: rk3399: Set 50MHz ddr clock Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 55/92] clk: rockchip: rk3399: Set 400MHz " Jagan Teki
2019-06-11 14:50 ` [U-Boot] [PATCH 56/92] ram: rk3399: Add spaces in pctl_cfg Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 57/92] ram: rk3399: Configure phy IO in ds odt Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 58/92] ram: rk3399: Add lpddr4 rank mask for cs training Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 59/92] ram: rk3399: Add lpddr4 rank mask for wdql training Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 60/92] ram: rk3399: Move mode_sel assignment Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 61/92] ram: rk3399: Don't wait for PLL lock in lpddr4 Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 62/92] ram: rk3399: Avoid two channel ZQ Cal Start at the same time Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 63/92] ram: rk3399: Configure PHY_898, PHY_919 for lpddr4 Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 64/92] ram: rk3399: Configure BOOSTP_EN, BOOSTN_EN " Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 65/92] ram: rk3399: Configure SLEWP_EN, SLEWN_EN " Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 66/92] ram: rk3399: Configure PHY RX_CM_INPUT " Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 67/92] ram: rk3399: Map chipselect " Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 68/92] ram: rk3399: Configure tsel write ca " Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 69/92] ram: rk3399: Don't disable dfi dram clk for lpddr4, rank 1 Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 70/92] ram: rk3399: Add IO settings Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 71/92] ram: sdram: Configure lpddr4 tsel rd, wr based on " Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 72/92] ram: rk3399: Add tsel control clock drive Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 73/92] ram: rk3399: Configure soc odt support Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 74/92] ram: rk3399: Get lpddr4 tsel_rd_en from io settings Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 75/92] ram: rk3399: Update lpddr4 vref based on " Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 76/92] ram: rk3399: Update lpddr4 mode_sel " Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 77/92] ram: rk3399: Update lpddr4 vref_mode_ac Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 78/92] ram: rk3399: Add LPPDR4 mr detection Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 79/92] arm: include: rockchip: Add rk3399 pmu file Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 80/92] rockchip: rk3399: syscon: Add pmu support Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 81/92] rockchip: dts: rk3399: Add u-boot, dm-pre-reloc for pmu Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 82/92] ram: rk3399: Add LPPDDR4-400 timings inc Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 83/92] ram: rk3399: Add LPPDDR4-800 " Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 84/92] ram: rk3399: Add lpddr4 set rate support Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 85/92] ram: rk3399: Set lpddr4 dq odt Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 86/92] ram: rk3399: Set lpddr4 ca odt Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 87/92] ram: rk3399: Set lpddr4 MR3 Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 88/92] ram: rk3399: Set lpddr4 MR12 Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 89/92] ram: rk3399: Set lpddr4 MR14 Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 90/92] rockchip: dts: rk3399: Add LPDDR4-100 timings Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 91/92] rockchip: dts: rk3399: rockpro64: Use LPDDR4-100 dtsi Jagan Teki
2019-06-11 14:51 ` [U-Boot] [PATCH 92/92] rockchip: dts: rk3399: rock-pi-4: " Jagan Teki
2019-06-11 14:53 ` [U-Boot] [PATCH 00/92] ram: rk3399: Add LPDDR4 support Philipp Tomsich
2019-06-11 15:03 ` Jagan Teki
2019-06-11 15:06 ` Philipp Tomsich
2019-06-12 15:30 ` Jagan Teki
2019-06-12 15:40 ` Philipp Tomsich
2019-06-13 1:50 ` Kever Yang
2019-06-13 6:26 ` Jagan Teki
2019-06-13 1:44 ` Kever Yang
2019-06-13 6:23 ` Jagan Teki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190611145135.21399-47-jagan@amarulasolutions.com \
--to=jagan@amarulasolutions.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox