summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2019-05-23 16:03:38 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2019-05-23 16:03:38 +0200
commita562d21aabc3766ec0bee4200c3651671bc3dc0d (patch)
treeb4900b8bd71e3d07bade44ccc08a6fe439ed2503 /common
parent300ad58d334d1aaa27c9cf02f0d7792a14dc1828 (diff)
downloadbarebox-a562d21aabc3766ec0bee4200c3651671bc3dc0d.tar.gz
barebox-a562d21aabc3766ec0bee4200c3651671bc3dc0d.tar.xz
imx-bbu-nand-fcb: exchange firmware slots when used firmware is refreshed
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'common')
-rw-r--r--common/imx-bbu-nand-fcb.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/common/imx-bbu-nand-fcb.c b/common/imx-bbu-nand-fcb.c
index dd76b8bf90..6d773b59df 100644
--- a/common/imx-bbu-nand-fcb.c
+++ b/common/imx-bbu-nand-fcb.c
@@ -1341,6 +1341,12 @@ static int imx_bbu_nand_update(struct bbu_handler *handler, struct bbu_data *dat
fw = fw_orig;
fw_size = fw_orig_len;
pr_info("Refreshing existing firmware\n");
+
+ if (used_refresh) {
+ fcb->Firmware1_startingPage = imx_bbu_firmware_fcb_start_page(mtd, !used);
+ fcb->Firmware2_startingPage = imx_bbu_firmware_fcb_start_page(mtd, used);
+ fcb_create(imx_handler, fcb, mtd);
+ }
}
if (num_blocks_fw * mtd->erasesize < fw_size) {