[PATCH v4 05/13] mtd: spi-nor: Rework the flash_info flags

Pratyush Yadav p.yadav at ti.com
Thu Dec 2 02:01:54 PST 2021


On 22/11/21 11:50AM, Tudor Ambarus wrote:
> Clarify for what the flash_info flags are used for. Split them in
> four categories and a bool:
> 1/ FLAGS: flags that indicate support that is not defined by the JESD216
>    standard in its SFDP tables.
> 2/ NO_SFDP_FLAGS: these flags are used when the flash does not define the
>    SFDP tables. These flags indicate support that can be discovered via
>    SFDP. Used together with SPI_NOR_SKIP_SFDP flag.
> 3/ FIXUP_FLAGS: flags that indicate support that can be discovered
>    via SFDP ideally, but can not be discovered for this particular flash
>    because the SFDP table that indicates this support is not defined by
>    the flash. In case the table for this support is defined but has wrong
>    values, one should instead use a post_sfdp() hook to set the SNOR_F
>    equivalent flag.
> 4/ MFR_FLAGS: manufacturer private flags. Used in the manufacturer
>    fixup hooks to differentiate support between flashes of the same
>    manufacturer.
> 5/ PARSE_SFDP: sets info->parse_sfdp to true. All flash_info entries
>    that support SFDP should be converted to set info->parse_sfdp to true.
> 
> SPI NOR flashes that statically declare one of the
> SPI_NOR_{DUAL, QUAD, OCTAL, OCTAL_DTR}_READ flags and do not support
> the RDSFDP command are gratuiously receiving the RDSFDP command
> in the attempt of parsing the SFDP tables. It is not desirable to issue
> commands that are not supported, so introduce PARSE_SFDP to help on this
> situation.
> 
> New flash additions/updates should be declared/updated to use either
> PARSE_SFDP or SPI_NOR_SKIP_SFDP.  Once all the flash_info entries are
> converted to use SPI_NOR_SKIP_SFDP or PARSE_SFDP, we can get rid of the
> SPI_NOR_SKIP_SFDP flag and use just the bool nor->info->parse_sfdp to
> determine whether to parse SFDP or not. SPI_NOR_SKIP_SFDP flag is kept
> just as a way to differentiate whether a flash is converted to the new
> flags logic or not.
> Support that can be discovered when parsing SFDP should not be duplicated
> by explicit flags at flash declaration. All the flash parameters will be
> discovered when parsing SFDP. Sometimes manufacturers wrongly define some
> fields in the SFDP tables. If that's the case, SFDP data can be amended
> with the fixups() hooks. It is not common, but if the SFDP tables are
> entirely wrong, and it does not worth the hassle to tweak the SFDP
> parameters by using the fixups hooks, or if the flash does not define the
> SFDP tables at all, then statically init the flash with the
> SPI_NOR_SKIP_SFDP flag and specify the rest of flash capabilities with
> the flash info flags.
> 
> With time, we want to convert all flashes to use PARSE_SFDP and
> stop triggering the SFDP parsing with the
> SPI_NOR_{DUAL, QUAD, OCTAL*}_READ flags. Getting rid of the
> SPI_NOR_{OCTAL, OCTAL_DTR}_READ trigger is easily achievable,
> the rest are a long term goal.
> 
> Manufacturer specific flags like USE_CLSR, USE_FSR, SPI_NOR_XSR_RDY,
> will be removed in a future series.
> 
> No functional changes intended in this patch.
> 
> Signed-off-by: Tudor Ambarus <tudor.ambarus at microchip.com>

Thanks, this looks quite good to me.

Reviewed-by: Pratyush Yadav <p.yadav at ti.com>

-- 
Regards,
Pratyush Yadav
Texas Instruments Inc.



More information about the linux-arm-kernel mailing list