[OpenWrt-Devel] [PATCH 4/9] mtd: rawnand: bcm47xx: Demistify a few more things

Miquel Raynal miquel.raynal at bootlin.com
Mon Apr 27 13:07:01 EDT 2020


Hi Boris,

Boris Brezillon <boris.brezillon at collabora.com> wrote on Sun, 19 Apr
2020 14:51:35 +0200:

> There were a few places were raw hex values were used instead of the

                          where

> macro def.

        def? :)

> 
> We also add macros to help forming the conf value (note that we still
> have one magic bit whose meaning I couldn't extract from the code), and
> add an extra macro to specify the number of DATA cycles to issue when
> the READ or WRITE flag is set.
> 
> Signed-off-by: Boris Brezillon <boris.brezillon at collabora.com>
> ---
>  .../mtd/nand/raw/bcm47xxnflash/ops_bcm4706.c  | 34 +++++++++++++++----
>  1 file changed, 27 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/mtd/nand/raw/bcm47xxnflash/ops_bcm4706.c b/drivers/mtd/nand/raw/bcm47xxnflash/ops_bcm4706.c
> index 591775173034..fbb7acebc8f7 100644
> --- a/drivers/mtd/nand/raw/bcm47xxnflash/ops_bcm4706.c
> +++ b/drivers/mtd/nand/raw/bcm47xxnflash/ops_bcm4706.c
> @@ -25,12 +25,29 @@
>  #define NCTL_CMD1W			0x00080000
>  #define NCTL_READ			0x00100000
>  #define NCTL_WRITE			0x00200000
> +/* When the SPECADDR is set CMD1 is interpreted as a single ADDR cycle */
>  #define NCTL_SPECADDR			0x01000000
>  #define NCTL_READY			0x04000000
>  #define NCTL_ERR			0x08000000
> +/*
> + * Number of DATA cycles to issue when NCTL_{READ,WRITE} is set. The minimum
> + * value is 1 and the maximum value is 4. Those bytes are then stored in the
> + * BCMA_CC_NFLASH_DATA register.
> + */
> +#define NCTL_DATA_CYCLES(x)		((((x) - 1) & 0x3) << 28)
> +/*
> + * The CS pin seems to be asserted even if NCTL_CSA is not set. All this bit
> + * seems to encode is whether the CS line should stay asserted after the
> + * operation has been executed. In other words, you should only set it if if

s/it if if/it if/

> + * you intend to do more operations on the NAND bus.
> + */
>  #define NCTL_CSA			0x40000000
>  #define NCTL_START			0x80000000
>  
> +#define CONF_MAGIC_BIT			0x00000002
> +#define CONF_COL_BYTES(x)		(((x) - 1) << 4)
> +#define CONF_ROW_BYTES(x)		(((x) - 1) << 6)
> +


With the above corrected,

Reviewed-by: Miquel Raynal <miquel.raynal at bootlin.com>



Thanks,
Miquèl

_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list