Hi,
My first attempt to get help on this issue was marked as spam. Don't know why. Submitting an abuse report did result in nothing. Anyway, here is my original text:
I have two i.MX6 designs at hand, dual and dual-plus. I have managed to get HW WP working on the dual (only occasionally) but never on dual-plus. I have narrowed the problem into SPNIDdis and SPIDdis bits in DBGDSCR register (I believe SPIDdis is irrelevant but it seems to go always hand in hand with SPNIDdis). When they are low, WPs work.
In dual the bits seems to be high always after power on. They will go zero after several U-Boot reset command and WPs start working. In dual-plus I have not yet seen them low and WPs have never worked.
I coded a little standalone program for U-Boot with which I check several registers and fuses: DBGAUTHSTATUS, DBGDSCR int and ext, DBGDEVID, DBGDIDR, DBGOSLSR, DBGPRSR GPR10, SRC_SCR, SBMR1, SBMR2 and all fuse shadow registers. DBGAUTHSTATUS shows 0xFF in working case and 0xAF in the nonworking case. I have seen no other differences in register contents.
I have tried to write 0x3A5331AA into DBGOSLAR, 0x03000002 into DBGDSCRext, 0x1E0520 into SRC_SCR, 0x1800 into GPR10. Nothing changes anything.
What am I missing? What should I try next?
Timo