
Hello Richard,
Am 08.02.2018 um 07:29 schrieb Heiko Schocher:
From: Richard Weinberger richard@nod.at
Fixes a bug found on thuban boards, which were for 2 years in a long-term test with varying temperatures. They showed problems in u-boot when attaching the ubi partition:
U-Boot# run flash_self_test Booting from nand set A... UBI: attaching mtd1 to ubi0 UBI: scanning is finished data abort pc : [<87f97c3c>] lr : [<87f97c28>] reloc pc : [<8012cc3c>] lr : [<8012cc28>] sp : 85f686e8 ip : 00000020 fp : 000001f7 r10: 8605ce40 r9 : 85f68ef8 r8 : 0001f000 r7 : 00000001 r6 : 00000006 r5 : 0001f000 r4 : 85f6ecc0 r3 : 00000000 r2 : 44e35000 r1 : 87fcbcd4 r0 : 87fc755b Flags: nZCv IRQs off FIQs on Mode SVC_32 Resetting CPU ...
Reason is, that accidentially the U-Boot implementation from __schedule_ubi_work() did not check the flag ubi->thread_enabled and started with wearleveling work, but ubi did not have setup all structures at this point and crashes.
Solve this problem by splitting work scheduling and processing.
Signed-off-by: Richard Weinberger richard@nod.at Signed-off-by: Heiko Schocher hs@denx.de
drivers/mtd/ubi/build.c | 10 +--------- drivers/mtd/ubi/ubi.h | 2 +- drivers/mtd/ubi/wl.c | 53 +++++++++++++++++++++++++++++++++++-------------- 3 files changed, 40 insertions(+), 25 deletions(-)
Applied to u-boot-ubi master
Thanks!
bye, Heiko