rockchip: param: add SDRAM_MAX_SIZE as ram top limit
This patch handles the boot fail for RK3288 4GB machine. Change-Id: I2be6e532120595a6c10e9e99a779d9ec32f48fb5 Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
This commit is contained in:
parent
f3ba630b34
commit
ced10dbe1c
|
|
@ -234,6 +234,11 @@ int param_parse_bootdev(char **devtype, char **devnum)
|
|||
}
|
||||
#endif
|
||||
|
||||
static phys_size_t ddr_mem_get_usable_size(u64 base, u64 size)
|
||||
{
|
||||
return (base + size >= SDRAM_MAX_SIZE) ? (SDRAM_MAX_SIZE - base) : size;
|
||||
}
|
||||
|
||||
struct memblock *param_parse_ddr_mem(int *out_count)
|
||||
{
|
||||
struct udevice *dev;
|
||||
|
|
@ -261,7 +266,9 @@ struct memblock *param_parse_ddr_mem(int *out_count)
|
|||
|
||||
for (i = 0; i < count; i++) {
|
||||
mem[i].base = t->u.ddr_mem.bank[i];
|
||||
mem[i].size = t->u.ddr_mem.bank[i + count];
|
||||
mem[i].size =
|
||||
ddr_mem_get_usable_size(t->u.ddr_mem.bank[i],
|
||||
t->u.ddr_mem.bank[i + count]);
|
||||
}
|
||||
|
||||
*out_count = count;
|
||||
|
|
@ -293,7 +300,7 @@ struct memblock *param_parse_ddr_mem(int *out_count)
|
|||
|
||||
for (i = 0; i < count; i++) {
|
||||
mem[i].base = CONFIG_SYS_SDRAM_BASE;
|
||||
mem[i].size = ram.size;
|
||||
mem[i].size = ddr_mem_get_usable_size(mem[i].base, ram.size);
|
||||
}
|
||||
|
||||
*out_count = count;
|
||||
|
|
|
|||
Loading…
Reference in New Issue