From c78c9ed1f5326fb2b53337600009105b460c91c5 Mon Sep 17 00:00:00 2001 From: Saravanan Jaganathan Date: Tue, 28 Apr 2020 22:27:18 +0530 Subject: [PATCH] ipq: fdt_fixup: Add support for addmtdparts Uboot passes the partition table in smem to kernel through device tree. There is currently no method to specify additional paritions to be created. This environment variable addmtdparts allows users to specify new partitions. The format is setenv addmtdparts [,,...] where is [@][][ro][lk] This syntax is same as in mtdparts part definition. Example: setenv addmtdparts 100M@0x8080000(diag) Change-Id: I91486cf5f74b0724565735f116ee1ec6722ba683 Signed-off-by: Saravanan Jaganathan --- board/qca/arm/common/fdt_fixup.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/board/qca/arm/common/fdt_fixup.c b/board/qca/arm/common/fdt_fixup.c index ef256762ae..a3494a3050 100644 --- a/board/qca/arm/common/fdt_fixup.c +++ b/board/qca/arm/common/fdt_fixup.c @@ -636,6 +636,7 @@ int ft_board_setup(void *blob, bd_t *bd) uint32_t flash_type; char *s; char *mtdparts = NULL; + char *addparts = NULL; char parts_str[4096]; int len = sizeof(parts_str), ret; qca_smem_flash_info_t *sfi = &qca_smem_flash_info; @@ -689,6 +690,12 @@ int ft_board_setup(void *blob, bd_t *bd) if (mtdparts) { qca_smem_part_to_mtdparts(mtdparts,len); if (mtdparts[0] != '\0') { + addparts = getenv("addmtdparts"); + if (addparts) { + debug("addmtdparts = %s\n", addparts); + strlcat(mtdparts, ",", sizeof(parts_str)); + strlcat(mtdparts, addparts, sizeof(parts_str)); + } debug("mtdparts = %s\n", mtdparts); setenv("mtdparts", mtdparts); }