fdt_fixup: Reduced wcnss and wifi_dump sizes

If env variable "low_mem_mode" is set,
wcnss and wifi_dump reserved memory sizes
are reduced to 55M and 2M respectively.

Change-Id: I1412ba16507f809a344ae133a91ae486e54836c5
Signed-off-by: Gokul Sriram Palanisamy <gokulsri@codeaurora.org>
This commit is contained in:
Gokul Sriram Palanisamy 2018-11-08 17:48:57 +05:30
parent 9ad98fee86
commit f89da93d58
2 changed files with 38 additions and 0 deletions

View file

@ -486,6 +486,10 @@ __weak void fdt_fixup_sd_ldo_gpios_toggle(void *blob)
return;
}
__weak void fdt_low_memory_fixup(void *blob)
{
return;
}
__weak void fdt_fixup_cpr(void *blob)
{
@ -587,6 +591,7 @@ int ft_board_setup(void *blob, bd_t *bd)
fdt_fixup_auto_restart(blob);
fdt_fixup_sd_ldo_gpios_toggle(blob);
fdt_fixup_cpr(blob);
fdt_low_memory_fixup(blob);
#ifdef CONFIG_QCA_MMC
board_mmc_deinit();

View file

@ -1180,6 +1180,39 @@ void fdt_fixup_cpr(void *blob)
return;
}
void fdt_low_memory_fixup(void *blob)
{
int node;
int len;
u64 *reg;
char *wcnss_node = "/reserved-memory/wcnss@4b000000";
char *wifi_dump_node = "/reserved-memory/wifi_dump@50500000";
unsigned int wcnss_size = 0x03700000;
unsigned int wifi_dump_size = 0x200000;
char *mem_mode = getenv("low_mem_mode");
if (!mem_mode)
return;
node = fdt_path_offset(blob, wcnss_node);
if (node >= 0) {
reg = (u64 *)fdt_getprop(blob, node, "reg", &len);
if (reg != NULL)
reg[1] = cpu_to_fdt64(wcnss_size);
} else {
printf("Node \"%s\" not found\n", wcnss_node);
}
node = fdt_path_offset(blob, wifi_dump_node);
if (node >= 0) {
reg = (u64 *)fdt_getprop(blob, node, "reg", &len);
if (reg != NULL)
reg[1] = cpu_to_fdt64(wifi_dump_size);
} else {
printf("Node \"%s\" not found\n", wifi_dump_node);
}
}
void set_flash_secondary_type(qca_smem_flash_info_t *smem)
{
return;