Re: [PATCH] mtd: cfi_cmdset_0001: Support the absence of protection registers

Catalin Marinas
2020-04-30T16:33:19Z

On Fri, Apr 17, 2020 at 04:23:26PM +0200, Jean-Philippe Brucker wrote:
> The flash controller implemented by the Arm Base platform behaves like
> the Intel StrataFlash J3 device, but omits several features. In
> particular it doesn't implement a protection register, so "Number of
> Protection register fields" in the Primary Vendor-Specific Extended
> Query, is 0.
>
> The Intel StrataFlash J3 datasheet only lists 1 as a valid value for
> NumProtectionFields. It describes the field as:
>
> "Number of Protection register fields in JEDEC ID space.
> “00h,” indicates that 256 protection bytes are available"
>
> While a value of 0 may arguably not be architecturally valid, the
> driver's current behavior is certainly wrong: if NumProtectionFields is
> 0, read_pri_intelext() adds a negative value to the unsigned extra_size,
> and ends up in an infinite loop.
>
> Fix it by ignoring a NumProtectionFields of 0.
>
> Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>

If you need another confirmation:

Tested-by: Catalin Marinas <catalin.marinas@arm.com>