flash/nor/stm32f2x: fix protection block size for F767 in dual bank mode 71/4271/2
authorTomas Vanek <vanekt@fbl.cz>
Thu, 26 Oct 2017 16:00:33 +0000 (18:00 +0200)
committerSpencer Oliver <spen@spen-soft.co.uk>
Tue, 12 Dec 2017 21:16:21 +0000 (21:16 +0000)
A protection block comprises two adjacent sectors in dual bank mode.
As there are 64 and 128kB sectors joined in blocks 2 and 8, block size
should be computed as a sum of sector sizes.

Change-Id: Ie915df8cf7ca232c4565d7e0c514c8933e71fdfe
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-on: http://openocd.zylin.com/4271
Tested-by: jenkins
Reviewed-by: Andreas Bolsch <hyphen0break@gmail.com>
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
src/flash/nor/stm32f2x.c

index 65cb212..8127f13 100644 (file)
@@ -1047,7 +1047,8 @@ static int stm32x_probe(struct flash_bank *bank)
                if (device_id == 0x451) {
                        for (i = 0; i < num_prot_blocks; i++) {
                                bank->prot_blocks[i].offset = bank->sectors[i << 1].offset;
-                               bank->prot_blocks[i].size = bank->sectors[i << 1].size << 1;
+                               bank->prot_blocks[i].size = bank->sectors[i << 1].size
+                                               + bank->sectors[(i << 1) + 1].size;
                        }
                }
        } else {