rockchip: sdram_common: fix DDR4 cap calculate
For DDR4 memory size we also need to get bank group by die bw, 8bit DDR4 have 4 bank group, 16bit DDR4 have 2 bank group. Change-Id: Icea47a01ff6ceec838a91d0bf4152e4b8427a6ac Signed-off-by: Tang Yun ping <typ@rock-chips.com>
This commit is contained in:
parent
2bbf102863
commit
e5bc49ba7a
|
|
@ -98,11 +98,14 @@ size_t rockchip_sdram_size(phys_addr_t reg)
|
||||||
size_t size_mb = 0;
|
size_t size_mb = 0;
|
||||||
u32 ch;
|
u32 ch;
|
||||||
u32 cs1_col = 0;
|
u32 cs1_col = 0;
|
||||||
|
u32 bg = 0;
|
||||||
|
u32 dbw, dram_type;
|
||||||
u32 sys_reg = readl(reg);
|
u32 sys_reg = readl(reg);
|
||||||
u32 sys_reg1 = readl(reg + 4);
|
u32 sys_reg1 = readl(reg + 4);
|
||||||
u32 ch_num = 1 + ((sys_reg >> SYS_REG_NUM_CH_SHIFT)
|
u32 ch_num = 1 + ((sys_reg >> SYS_REG_NUM_CH_SHIFT)
|
||||||
& SYS_REG_NUM_CH_MASK);
|
& SYS_REG_NUM_CH_MASK);
|
||||||
|
|
||||||
|
dram_type = (sys_reg >> SYS_REG_DDRTYPE_SHIFT) & SYS_REG_DDRTYPE_MASK;
|
||||||
debug("%s %x %x\n", __func__, (u32)reg, sys_reg);
|
debug("%s %x %x\n", __func__, (u32)reg, sys_reg);
|
||||||
for (ch = 0; ch < ch_num; ch++) {
|
for (ch = 0; ch < ch_num; ch++) {
|
||||||
rank = 1 + (sys_reg >> SYS_REG_RANK_SHIFT(ch) &
|
rank = 1 + (sys_reg >> SYS_REG_RANK_SHIFT(ch) &
|
||||||
|
|
@ -149,8 +152,12 @@ size_t rockchip_sdram_size(phys_addr_t reg)
|
||||||
SYS_REG_BW_MASK));
|
SYS_REG_BW_MASK));
|
||||||
row_3_4 = sys_reg >> SYS_REG_ROW_3_4_SHIFT(ch) &
|
row_3_4 = sys_reg >> SYS_REG_ROW_3_4_SHIFT(ch) &
|
||||||
SYS_REG_ROW_3_4_MASK;
|
SYS_REG_ROW_3_4_MASK;
|
||||||
|
if (dram_type == DDR4) {
|
||||||
chipsize_mb = (1 << (cs0_row + cs0_col + bk + bw - 20));
|
dbw = (sys_reg >> SYS_REG_DBW_SHIFT(ch)) &
|
||||||
|
SYS_REG_DBW_MASK;
|
||||||
|
bg = (dbw == 2) ? 2 : 1;
|
||||||
|
}
|
||||||
|
chipsize_mb = (1 << (cs0_row + cs0_col + bk + bg + bw - 20));
|
||||||
|
|
||||||
if (rank > 1)
|
if (rank > 1)
|
||||||
chipsize_mb += chipsize_mb >> ((cs0_row - cs1_row) +
|
chipsize_mb += chipsize_mb >> ((cs0_row - cs1_row) +
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue