diff options
author | Jonas Gorski <jonas.gorski@gmail.com> | 2017-02-07 14:26:15 +0100 |
---|---|---|
committer | Jonas Gorski <jonas.gorski@gmail.com> | 2017-06-04 11:33:44 +0200 |
commit | 092ac42e1e625defa637b0bd1181e351d430e15b (patch) | |
tree | 72c4530fa0b967a7030df221857cf5f063a4d3d2 /target/linux/brcm63xx/patches-4.4/425-bcm63xxpart_parse_paritions_from_dt.patch | |
parent | 474cde61234c1191e1caeff01a41c324eda4d28d (diff) | |
download | upstream-092ac42e1e625defa637b0bd1181e351d430e15b.tar.gz upstream-092ac42e1e625defa637b0bd1181e351d430e15b.tar.bz2 upstream-092ac42e1e625defa637b0bd1181e351d430e15b.zip |
brcm63xx: drop support for caldata in brcm63xxpart
Now that we always provide these partitions through DT, we don't need to
pass their data through parser data from board files anymore.
Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Diffstat (limited to 'target/linux/brcm63xx/patches-4.4/425-bcm63xxpart_parse_paritions_from_dt.patch')
-rw-r--r-- | target/linux/brcm63xx/patches-4.4/425-bcm63xxpart_parse_paritions_from_dt.patch | 75 |
1 files changed, 16 insertions, 59 deletions
diff --git a/target/linux/brcm63xx/patches-4.4/425-bcm63xxpart_parse_paritions_from_dt.patch b/target/linux/brcm63xx/patches-4.4/425-bcm63xxpart_parse_paritions_from_dt.patch index d208a07fc7..d64d42c9dc 100644 --- a/target/linux/brcm63xx/patches-4.4/425-bcm63xxpart_parse_paritions_from_dt.patch +++ b/target/linux/brcm63xx/patches-4.4/425-bcm63xxpart_parse_paritions_from_dt.patch @@ -8,7 +8,7 @@ #include <asm/mach-bcm63xx/bcm63xx_nvram.h> #include <asm/mach-bcm63xx/bcm963xx_tag.h> -@@ -43,66 +44,35 @@ +@@ -43,46 +44,35 @@ #define BCM63XX_CFE_MAGIC_OFFSET 0x4e0 @@ -30,12 +30,10 @@ + u32 computed_crc; int ret; size_t retlen; -- unsigned int rootfsaddr, kerneladdr, spareaddr, nvramaddr; +- unsigned int rootfsaddr, kerneladdr, spareaddr; - unsigned int rootfslen, kernellen, sparelen, totallen; - unsigned int cfelen, nvramlen; - unsigned int cfe_erasesize; -- unsigned int caldatalen1 = 0, caldataaddr1 = 0; -- unsigned int caldatalen2 = 0, caldataaddr2 = 0; - int i; - u32 computed_crc; + unsigned int rootfsaddr, kerneladdr; @@ -51,24 +49,6 @@ - cfelen = cfe_erasesize; - nvramlen = bcm63xx_nvram_get_psi_size() * SZ_1K; - nvramlen = roundup(nvramlen, cfe_erasesize); -- nvramaddr = master->size - nvramlen; -- -- if (data) { -- if (data->caldata[0]) { -- caldatalen1 = cfe_erasesize; -- caldataaddr1 = rounddown(data->caldata[0], -- cfe_erasesize); -- } -- if (data->caldata[1]) { -- caldatalen2 = cfe_erasesize; -- caldataaddr2 = rounddown(data->caldata[1], -- cfe_erasesize); -- } -- if (caldataaddr1 == caldataaddr2) { -- caldataaddr2 = 0; -- caldatalen2 = 0; -- } -- } + int curr_part = next_part; /* Allocate memory for buffer */ @@ -90,7 +70,7 @@ } computed_crc = crc32_le(IMAGETAG_CRC_START, (u8 *)buf, -@@ -121,7 +91,6 @@ static int bcm63xx_parse_cfe_partitions( +@@ -101,7 +91,6 @@ static int bcm63xx_parse_cfe_partitions( kerneladdr = kerneladdr - BCM63XX_EXTENDED_SIZE; rootfsaddr = rootfsaddr - BCM63XX_EXTENDED_SIZE; @@ -98,7 +78,7 @@ if (rootfsaddr < kerneladdr) { /* default Broadcom layout */ -@@ -130,8 +99,8 @@ static int bcm63xx_parse_cfe_partitions( +@@ -110,8 +99,8 @@ static int bcm63xx_parse_cfe_partitions( } else { /* OpenWrt layout */ rootfsaddr = kerneladdr + kernellen; @@ -109,22 +89,20 @@ } } else { pr_warn("CFE boot tag CRC invalid (expected %08x, actual %08x)\n", -@@ -139,16 +108,153 @@ static int bcm63xx_parse_cfe_partitions( +@@ -119,23 +108,139 @@ static int bcm63xx_parse_cfe_partitions( kernellen = 0; rootfslen = 0; rootfsaddr = 0; - spareaddr = cfelen; } -- sparelen = min_not_zero(nvramaddr, caldataaddr1) - spareaddr; +- sparelen = master->size - spareaddr - nvramlen; - /* Determine number of partitions */ - if (rootfslen > 0) - nrparts++; + if (kernellen > 0) { + int kernelpart = curr_part; - -- if (kernellen > 0) -- nrparts++; ++ + if (rootfslen > 0 && rootfs_first) + kernelpart++; + pparts[kernelpart].name = "kernel"; @@ -232,8 +210,6 @@ + unsigned int nvramaddr; + unsigned int cfelen, nvramlen; + unsigned int cfe_erasesize; -+ unsigned int caldatalen1 = 0, caldataaddr1 = 0; -+ unsigned int caldatalen2 = 0, caldataaddr2 = 0; + unsigned int imageaddr, imagelen; + int i; + @@ -247,30 +223,11 @@ + nvramlen = bcm63xx_nvram_get_psi_size() * SZ_1K; + nvramlen = roundup(nvramlen, cfe_erasesize); + nvramaddr = master->size - nvramlen; -+ -+ if (data) { -+ if (data->caldata[0]) { -+ caldatalen1 = cfe_erasesize; -+ caldataaddr1 = rounddown(data->caldata[0], -+ cfe_erasesize); -+ } -+ if (data->caldata[1]) { -+ caldatalen2 = cfe_erasesize; -+ caldataaddr2 = rounddown(data->caldata[1], -+ cfe_erasesize); -+ } -+ if (caldataaddr1 == caldataaddr2) { -+ caldataaddr2 = 0; -+ caldatalen2 = 0; -+ } -+ } -+ -+ imageaddr = cfelen; -+ imagelen = min_not_zero(nvramaddr, caldataaddr1) - imageaddr; - if (caldatalen1 > 0) - nrparts++; -@@ -158,10 +264,8 @@ static int bcm63xx_parse_cfe_partitions( +- if (kernellen > 0) +- nrparts++; ++ imageaddr = cfelen; ++ imagelen = nvramaddr - imageaddr; /* Ask kernel for more memory */ parts = kzalloc(sizeof(*parts) * nrparts + 10 * nrparts, GFP_KERNEL); @@ -282,7 +239,7 @@ /* Start building partition list */ parts[curpart].name = "CFE"; -@@ -169,29 +273,7 @@ static int bcm63xx_parse_cfe_partitions( +@@ -143,29 +248,7 @@ static int bcm63xx_parse_cfe_partitions( parts[curpart].size = cfelen; curpart++; @@ -311,14 +268,14 @@ - } + curpart += parse_bcmtag(master, parts, curpart, imageaddr, imagelen); - if (caldatalen1 > 0) { - if (caldatalen2 > 0) -@@ -217,25 +299,33 @@ static int bcm63xx_parse_cfe_partitions( + parts[curpart].name = "nvram"; + parts[curpart].offset = master->size - nvramlen; +@@ -174,25 +257,33 @@ static int bcm63xx_parse_cfe_partitions( /* Global partition "linux" to make easy firmware upgrade */ parts[curpart].name = "linux"; - parts[curpart].offset = cfelen; -- parts[curpart].size = min_not_zero(nvramaddr, caldataaddr1) - cfelen; +- parts[curpart].size = master->size - cfelen - nvramlen; + parts[curpart].offset = imageaddr; + parts[curpart].size = imagelen; + curpart++; |