On 28 January 2016 at 16:48, Brian Norris <computersforpe...@gmail.com> wrote: > On Thu, Jan 28, 2016 at 04:24:50PM -0300, Ezequiel Garcia wrote: >> On 28 January 2016 at 14:59, Brian Norris <computersforpe...@gmail.com> >> wrote: >> > So, maybe we want to clear SR_SRWD only when we unlock the *entire* >> > flash? What do you think? > > I'll paste in the relevant datasheet details from w25q32fw, to make sure > we're on the same page here, noting that 'SRP0' is our 'SR_SRWD', and > we're not touching SRP1 (i.e., SRP1=0): > > "SRP1=0, SRP0=0, /WP=X: Software Protection > /WP pin has no control. The Status register can be written to after > a Write Enable instruction, WEL=1. [Factory Default] > SRP1=0, SRP0=1, /WP=0: Hardware Protected > When /WP pin is low the Status Register locked [sic] and cannot be > written to. > SRP1=0, SRP0=1, /WP=1: Hardware Unprotected > When /WP pin is high the Status register is unlocked and can be > written to after a Write Enable instruction, WEL=1." >
Yes, we are on the same page. >> How about this: >> >> 1) ioctl(MEMLOCK) the entire flash (SR_SRWD is set) >> 2) ioctl(MEMUNLOCK) partially (SW_SRWD keeps set) >> 3) ioctl(MEMLOCK) the entire flash again > > I might be confused; are you making a suggestion of a new behavior, or > are you just trying to clarify my proposal? Because this sounds like it > matches my proposal. > I was trying to clarify how the SRWD would work in that case, but I forgot about /WP when I asked that! >> Not sure this use case make sense, > > I suppose it could make sense, if you (e.g.) have some intermediate > steps toward determining the locked regions during factory programming. > Maybe a process would start by doing #1 and #2, then decide > conditionally whether to do #3. And only after the whole process is done > does something assert /WP=0 (in my case, a factory process would tie /WP > low). > >> but would (3) be allowed given >> SW_SRWD is set? > > Yes, if /WP=1 (high). > Right. So, after giving some more thought do this, I'd say it might make sense to clear SRWD only when unlocking the entire flash. If anything else, it would allow a path to disable hardware protection on the lock range? -- Ezequiel GarcĂa, VanguardiaSur www.vanguardiasur.com.ar