i5000: Fix the memory size calculation with 2R memories
When 2R memories are found, the memory size should be multiplied by two, otherwise, it will report half of the memory size: +-----------------------------------------------+ | mc0 | | branch0 | branch1 | | channel0 | channel1 | channel0 | channel1 | -------+-----------------------------------------------+ slot3: | 0 MB | 0 MB | 0 MB | 0 MB | slot2: | 0 MB | 0 MB | 0 MB | 0 MB | -------+-----------------------------------------------+ slot1: | 0 MB | 0 MB | 0 MB | 0 MB | slot0: | 1024 MB | 1024 MB | 1024 MB | 1024 MB | -------+-----------------------------------------------+ (the above machine have 4 x 2GB 2R memories) Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Родитель
582a899622
Коммит
b70f833377
|
@ -1012,6 +1012,10 @@ static void handle_channel(struct i5000_pvt *pvt, int slot, int channel,
|
|||
/* add the number of COLUMN bits */
|
||||
addrBits += MTR_DIMM_COLS_ADDR_BITS(mtr);
|
||||
|
||||
/* Dual-rank memories have twice the size */
|
||||
if (dinfo->dual_rank)
|
||||
addrBits++;
|
||||
|
||||
addrBits += 6; /* add 64 bits per DIMM */
|
||||
addrBits -= 20; /* divide by 2^^20 */
|
||||
addrBits -= 3; /* 8 bits per bytes */
|
||||
|
|
Загрузка…
Ссылка в новой задаче