linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 0/3] NAND support for Broadcom NS2 SoC
@ 2015-10-30  6:59 Anup Patel
  2015-10-30  6:59 ` [PATCH v5 1/3] mtd: brcmnand: factor out CFG and CFG_EXT bitfields Anup Patel
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Anup Patel @ 2015-10-30  6:59 UTC (permalink / raw)
  To: David Woodhouse, Brian Norris, Linux MTD
  Cc: Rob Herring, Pawel Moll, Mark Rutland, Catalin Marinas,
	Will Deacon, Sudeep Holla, Ian Campbell, Kumar Gala, Ray Jui,
	Scott Branden, Florian Fainelli, Pramod KUMAR, Vikram Prakash,
	Sandeep Tripathy, Linux ARM Kernel, Device Tree, Linux Kernel,
	BCM Kernel Feedback, Anup Patel

We enable NAND support for Broadcom NS2 SoC by reusing existing
BRCMNAND driver.

This patchset applies on-top of "arm64: Simple additions to
NS2 DT" v1 patchset and is available in ns2_nand_v5 branch of
https://github.com/Broadcom/arm64-linux.git.

The patchset is tested on NS2 SVK.

Changes since v4:
 - Fix accidental typo in patch2 regarding use of CFG_BUS_WIDTH

Changes since v3:
 - Include Brian's patch for magic number cleanup related to
   CFG and CFG_EXT registers
 - Base patch1 of v3 patchset upon Brian's cleanup patch

Changes since v2:
 - Dropped patch1 and patch2 because these are already merged
   by MTD maintainer.
 - Avoid using absolute node paths in ns2-svk.dts.

Changes since v1:
 - Dropped patch3 and patch4 because we don't need to reset
   BRCMNAND controller for NS2.
 - Added patch to force 8bit mode before doing nand_scan_ident()
   in brcmnand_init_cs().

Anup Patel (2):
  mtd: brcmnand: Force 8bit mode before doing nand_scan_ident()
  arm64: dts: Add BRCM IPROC NAND DT node for NS2

Brian Norris (1):
  mtd: brcmnand: factor out CFG and CFG_EXT bitfields

 arch/arm64/boot/dts/broadcom/ns2-svk.dts | 30 +++++++++++++-------
 arch/arm64/boot/dts/broadcom/ns2.dtsi    | 14 ++++++++++
 drivers/mtd/nand/brcmnand/brcmnand.c     | 48 +++++++++++++++++++++++++++-----
 3 files changed, 75 insertions(+), 17 deletions(-)

-- 
1.9.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v5 1/3] mtd: brcmnand: factor out CFG and CFG_EXT bitfields
  2015-10-30  6:59 [PATCH v5 0/3] NAND support for Broadcom NS2 SoC Anup Patel
@ 2015-10-30  6:59 ` Anup Patel
  2015-10-30  6:59 ` [PATCH v5 2/3] mtd: brcmnand: Force 8bit mode before doing nand_scan_ident() Anup Patel
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 9+ messages in thread
From: Anup Patel @ 2015-10-30  6:59 UTC (permalink / raw)
  To: David Woodhouse, Brian Norris, Linux MTD
  Cc: Rob Herring, Pawel Moll, Mark Rutland, Catalin Marinas,
	Will Deacon, Sudeep Holla, Ian Campbell, Kumar Gala, Ray Jui,
	Scott Branden, Florian Fainelli, Pramod KUMAR, Vikram Prakash,
	Sandeep Tripathy, Linux ARM Kernel, Device Tree, Linux Kernel,
	BCM Kernel Feedback

From: Brian Norris <computersforpeace@gmail.com>

Use enum instead of magic numbers for CFG and CFG_EXT bitfields.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Tested-by: Anup Patel <anup.patel@broadcom.com>
---
 drivers/mtd/nand/brcmnand/brcmnand.c | 38 +++++++++++++++++++++++++++++-------
 1 file changed, 31 insertions(+), 7 deletions(-)

diff --git a/drivers/mtd/nand/brcmnand/brcmnand.c b/drivers/mtd/nand/brcmnand/brcmnand.c
index 4cba03d..dda96fa 100644
--- a/drivers/mtd/nand/brcmnand/brcmnand.c
+++ b/drivers/mtd/nand/brcmnand/brcmnand.c
@@ -344,6 +344,28 @@ static const u8 brcmnand_cs_offsets_cs0[] = {
 	[BRCMNAND_CS_TIMING2]		= 0x14,
 };
 
+/*
+ * Bitfields for the CFG and CFG_EXT registers. Pre-v7.1 controllers only had
+ * one config register, but once the bitfields overflowed, newer controllers
+ * (v7.1 and newer) added a CFG_EXT register and shuffled a few fields around.
+ */
+enum {
+	CFG_BLK_ADR_BYTES_SHIFT		= 8,
+	CFG_COL_ADR_BYTES_SHIFT		= 12,
+	CFG_FUL_ADR_BYTES_SHIFT		= 16,
+	CFG_BUS_WIDTH_SHIFT		= 23,
+	CFG_BUS_WIDTH			= BIT(CFG_BUS_WIDTH_SHIFT),
+	CFG_DEVICE_SIZE_SHIFT		= 24,
+
+	/* Only for pre-v7.1 (with no CFG_EXT register) */
+	CFG_PAGE_SIZE_SHIFT		= 20,
+	CFG_BLK_SIZE_SHIFT		= 28,
+
+	/* Only for v7.1+ (with CFG_EXT register) */
+	CFG_EXT_PAGE_SIZE_SHIFT		= 0,
+	CFG_EXT_BLK_SIZE_SHIFT		= 4,
+};
+
 /* BRCMNAND_INTFC_STATUS */
 enum {
 	INTFC_FLASH_STATUS		= GENMASK(7, 0),
@@ -1720,17 +1742,19 @@ static int brcmnand_set_cfg(struct brcmnand_host *host,
 	}
 	device_size = fls64(cfg->device_size) - fls64(BRCMNAND_MIN_DEVSIZE);
 
-	tmp = (cfg->blk_adr_bytes << 8) |
-		(cfg->col_adr_bytes << 12) |
-		(cfg->ful_adr_bytes << 16) |
-		(!!(cfg->device_width == 16) << 23) |
-		(device_size << 24);
+	tmp = (cfg->blk_adr_bytes << CFG_BLK_ADR_BYTES_SHIFT) |
+		(cfg->col_adr_bytes << CFG_COL_ADR_BYTES_SHIFT) |
+		(cfg->ful_adr_bytes << CFG_FUL_ADR_BYTES_SHIFT) |
+		(!!(cfg->device_width == 16) << CFG_BUS_WIDTH_SHIFT) |
+		(device_size << CFG_DEVICE_SIZE_SHIFT);
 	if (cfg_offs == cfg_ext_offs) {
-		tmp |= (page_size << 20) | (block_size << 28);
+		tmp |= (page_size << CFG_PAGE_SIZE_SHIFT) |
+		       (block_size << CFG_BLK_SIZE_SHIFT);
 		nand_writereg(ctrl, cfg_offs, tmp);
 	} else {
 		nand_writereg(ctrl, cfg_offs, tmp);
-		tmp = page_size | (block_size << 4);
+		tmp = (page_size << CFG_EXT_PAGE_SIZE_SHIFT) |
+		      (block_size << CFG_EXT_BLK_SIZE_SHIFT);
 		nand_writereg(ctrl, cfg_ext_offs, tmp);
 	}
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v5 2/3] mtd: brcmnand: Force 8bit mode before doing nand_scan_ident()
  2015-10-30  6:59 [PATCH v5 0/3] NAND support for Broadcom NS2 SoC Anup Patel
  2015-10-30  6:59 ` [PATCH v5 1/3] mtd: brcmnand: factor out CFG and CFG_EXT bitfields Anup Patel
@ 2015-10-30  6:59 ` Anup Patel
  2015-10-30 19:47   ` Brian Norris
  2015-10-30  6:59 ` [PATCH v5 3/3] arm64: dts: Add BRCM IPROC NAND DT node for NS2 Anup Patel
  2015-10-30 19:31 ` [PATCH v5 0/3] NAND support for Broadcom NS2 SoC Brian Norris
  3 siblings, 1 reply; 9+ messages in thread
From: Anup Patel @ 2015-10-30  6:59 UTC (permalink / raw)
  To: David Woodhouse, Brian Norris, Linux MTD
  Cc: Rob Herring, Pawel Moll, Mark Rutland, Catalin Marinas,
	Will Deacon, Sudeep Holla, Ian Campbell, Kumar Gala, Ray Jui,
	Scott Branden, Florian Fainelli, Pramod KUMAR, Vikram Prakash,
	Sandeep Tripathy, Linux ARM Kernel, Device Tree, Linux Kernel,
	BCM Kernel Feedback, Anup Patel

Just like other NAND controllers, the NAND READID command only works
in 8bit mode for all versions of BRCMNAND controller.

This patch forces 8bit mode for each NAND CS in brcmnand_init_cs()
before doing nand_scan_ident() to ensure that BRCMNAND controller
is in 8bit mode when NAND READID command is issued.

Signed-off-by: Anup Patel <anup.patel@broadcom.com>
Reviewed-by: Ray Jui <rjui@broadcom.com>
Reviewed-by: Scott Branden <sbranden@broadcom.com>
---
 drivers/mtd/nand/brcmnand/brcmnand.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/mtd/nand/brcmnand/brcmnand.c b/drivers/mtd/nand/brcmnand/brcmnand.c
index dda96fa..b410527 100644
--- a/drivers/mtd/nand/brcmnand/brcmnand.c
+++ b/drivers/mtd/nand/brcmnand/brcmnand.c
@@ -1912,6 +1912,7 @@ static int brcmnand_init_cs(struct brcmnand_host *host)
 	struct mtd_info *mtd;
 	struct nand_chip *chip;
 	int ret;
+	u16 cfg_offs;
 	struct mtd_part_parser_data ppdata = { .of_node = dn };
 
 	ret = of_property_read_u32(dn, "reg", &host->cs);
@@ -1954,6 +1955,15 @@ static int brcmnand_init_cs(struct brcmnand_host *host)
 
 	chip->controller = &ctrl->controller;
 
+	/*
+	 * The bootloader might have configured 16bit mode but
+	 * NAND READID command only works in 8bit mode. We force
+	 * 8bit mode here to ensure that NAND READID commands works.
+	 */
+	cfg_offs = brcmnand_cs_offset(ctrl, host->cs, BRCMNAND_CS_CFG);
+	nand_writereg(ctrl, cfg_offs,
+		      nand_readreg(ctrl, cfg_offs) & ~CFG_BUS_WIDTH);
+
 	if (nand_scan_ident(mtd, 1, NULL))
 		return -ENXIO;
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v5 3/3] arm64: dts: Add BRCM IPROC NAND DT node for NS2
  2015-10-30  6:59 [PATCH v5 0/3] NAND support for Broadcom NS2 SoC Anup Patel
  2015-10-30  6:59 ` [PATCH v5 1/3] mtd: brcmnand: factor out CFG and CFG_EXT bitfields Anup Patel
  2015-10-30  6:59 ` [PATCH v5 2/3] mtd: brcmnand: Force 8bit mode before doing nand_scan_ident() Anup Patel
@ 2015-10-30  6:59 ` Anup Patel
  2015-10-30 19:31 ` [PATCH v5 0/3] NAND support for Broadcom NS2 SoC Brian Norris
  3 siblings, 0 replies; 9+ messages in thread
From: Anup Patel @ 2015-10-30  6:59 UTC (permalink / raw)
  To: David Woodhouse, Brian Norris, Linux MTD
  Cc: Rob Herring, Pawel Moll, Mark Rutland, Catalin Marinas,
	Will Deacon, Sudeep Holla, Ian Campbell, Kumar Gala, Ray Jui,
	Scott Branden, Florian Fainelli, Pramod KUMAR, Vikram Prakash,
	Sandeep Tripathy, Linux ARM Kernel, Device Tree, Linux Kernel,
	BCM Kernel Feedback, Anup Patel

The NAND controller on NS2 SoC is compatible with existing
BRCM IPROC NAND driver so let's enable it in NS2 DT and
NS2 SVK DT.

This patch also fixes use of node labels in ns2-svk.dts.

Signed-off-by: Anup Patel <anup.patel@broadcom.com>
Reviewed-by: Ray Jui <rjui@broadcom.com>
Reviewed-by: Scott Branden <sbranden@broadcom.com>
Reviewed-by: Brian Norris <computersforpeace@gmail.com>
---
 arch/arm64/boot/dts/broadcom/ns2-svk.dts | 30 ++++++++++++++++++++----------
 arch/arm64/boot/dts/broadcom/ns2.dtsi    | 14 ++++++++++++++
 2 files changed, 34 insertions(+), 10 deletions(-)

diff --git a/arch/arm64/boot/dts/broadcom/ns2-svk.dts b/arch/arm64/boot/dts/broadcom/ns2-svk.dts
index e5950d5..6bb3d4d 100644
--- a/arch/arm64/boot/dts/broadcom/ns2-svk.dts
+++ b/arch/arm64/boot/dts/broadcom/ns2-svk.dts
@@ -50,18 +50,28 @@
 		device_type = "memory";
 		reg = <0x000000000 0x80000000 0x00000000 0x40000000>;
 	};
+};
 
-	soc: soc {
-		i2c0: i2c@66080000 {
-			status = "ok";
-		};
+&i2c0 {
+	status = "ok";
+};
 
-		i2c1: i2c@660b0000 {
-			status = "ok";
-		};
+&i2c1 {
+	status = "ok";
+};
+
+&uart3 {
+	status = "ok";
+};
 
-		uart3: serial@66130000 {
-			status = "ok";
-		};
+&nand {
+	nandcs@0 {
+		compatible = "brcm,nandcs";
+		reg = <0>;
+		nand-ecc-mode = "hw";
+		nand-ecc-strength = <8>;
+		nand-ecc-step-size = <512>;
+		#address-cells = <1>;
+		#size-cells = <1>;
 	};
 };
diff --git a/arch/arm64/boot/dts/broadcom/ns2.dtsi b/arch/arm64/boot/dts/broadcom/ns2.dtsi
index f603277..9610822 100644
--- a/arch/arm64/boot/dts/broadcom/ns2.dtsi
+++ b/arch/arm64/boot/dts/broadcom/ns2.dtsi
@@ -212,5 +212,19 @@
 			compatible = "brcm,iproc-rng200";
 			reg = <0x66220000 0x28>;
 		};
+
+		nand: nand@66460000 {
+			compatible = "brcm,nand-iproc", "brcm,brcmnand-v6.1";
+			reg = <0x66460000 0x600>,
+			      <0x67015408 0x600>,
+			      <0x66460f00 0x20>;
+			reg-names = "nand", "iproc-idm", "iproc-ext";
+			interrupts = <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>;
+
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			brcm,nand-has-wp;
+		};
 	};
 };
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v5 0/3] NAND support for Broadcom NS2 SoC
  2015-10-30  6:59 [PATCH v5 0/3] NAND support for Broadcom NS2 SoC Anup Patel
                   ` (2 preceding siblings ...)
  2015-10-30  6:59 ` [PATCH v5 3/3] arm64: dts: Add BRCM IPROC NAND DT node for NS2 Anup Patel
@ 2015-10-30 19:31 ` Brian Norris
  2015-11-02 17:02   ` Anup Patel
  2015-11-03  8:12   ` Anup Patel
  3 siblings, 2 replies; 9+ messages in thread
From: Brian Norris @ 2015-10-30 19:31 UTC (permalink / raw)
  To: Anup Patel
  Cc: David Woodhouse, Linux MTD, Rob Herring, Pawel Moll,
	Mark Rutland, Catalin Marinas, Will Deacon, Sudeep Holla,
	Ian Campbell, Kumar Gala, Ray Jui, Scott Branden,
	Florian Fainelli, Pramod KUMAR, Vikram Prakash, Sandeep Tripathy,
	Linux ARM Kernel, Device Tree, Linux Kernel, BCM Kernel Feedback

On Fri, Oct 30, 2015 at 12:29:18PM +0530, Anup Patel wrote:
> We enable NAND support for Broadcom NS2 SoC by reusing existing
> BRCMNAND driver.
> 
> This patchset applies on-top of "arm64: Simple additions to
> NS2 DT" v1 patchset and is available in ns2_nand_v5 branch of
> https://github.com/Broadcom/arm64-linux.git.
> 
> The patchset is tested on NS2 SVK.

Applied patches 1 and 2. My "Reviewed-by" on patch 3 stands.

Thanks,
Brian

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v5 2/3] mtd: brcmnand: Force 8bit mode before doing nand_scan_ident()
  2015-10-30  6:59 ` [PATCH v5 2/3] mtd: brcmnand: Force 8bit mode before doing nand_scan_ident() Anup Patel
@ 2015-10-30 19:47   ` Brian Norris
  2015-11-02 17:06     ` Anup Patel
  0 siblings, 1 reply; 9+ messages in thread
From: Brian Norris @ 2015-10-30 19:47 UTC (permalink / raw)
  To: Anup Patel
  Cc: David Woodhouse, Linux MTD, Rob Herring, Pawel Moll,
	Mark Rutland, Catalin Marinas, Will Deacon, Sudeep Holla,
	Ian Campbell, Kumar Gala, Ray Jui, Scott Branden,
	Florian Fainelli, Pramod KUMAR, Vikram Prakash, Sandeep Tripathy,
	Linux ARM Kernel, Device Tree, Linux Kernel, BCM Kernel Feedback

On Fri, Oct 30, 2015 at 12:29:20PM +0530, Anup Patel wrote:
> Just like other NAND controllers,

^^ That part isn't strictly true. While READ ID data only comes out on
the lower 8 bits, that doesn't *actually* mean you can't get valid data
from a 16-bit bus in general; you just have to drop the upper 8 bits. That's
what these two commits did for read ID and parameter page read commands:

commit 3dad2344e92c6e1aeae42df1c4824f307c51bcc7
Author: Brian Norris <computersforpeace@gmail.com>
Date:   Wed Jan 29 14:08:12 2014 -0800

    mtd: nand: force NAND_CMD_READID onto 8-bit bus

commit bd9c6e99b58255b9de1982711ac9487c9a2f18be
Author: Brian Norris <computersforpeace@gmail.com>
Date:   Fri Nov 29 22:04:28 2013 -0800

    mtd: nand: don't use read_buf for 8-bit ONFI transfers

> the NAND READID command only works
> in 8bit mode for all versions of BRCMNAND controller.

But I presume *this* statement is actually true. This NAND controller doesn't
exactly give us a fully-flexible READID / read_byte / read_word command, as it
works at a higher level than that (although LOW_LEVEL_OP gives us this
flexibility now). I could imagine (though I never tested 16-bit NAND) that
16-bit READID is broken.

BTW, did you ask the HW designer about this? It'd be nice to be 100% sure.

Anyway, as I noted on the cover letter, I've pushed this patch.

Thanks,
Brian

> This patch forces 8bit mode for each NAND CS in brcmnand_init_cs()
> before doing nand_scan_ident() to ensure that BRCMNAND controller
> is in 8bit mode when NAND READID command is issued.
> 
> Signed-off-by: Anup Patel <anup.patel@broadcom.com>
> Reviewed-by: Ray Jui <rjui@broadcom.com>
> Reviewed-by: Scott Branden <sbranden@broadcom.com>
> ---
>  drivers/mtd/nand/brcmnand/brcmnand.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/drivers/mtd/nand/brcmnand/brcmnand.c b/drivers/mtd/nand/brcmnand/brcmnand.c
> index dda96fa..b410527 100644
> --- a/drivers/mtd/nand/brcmnand/brcmnand.c
> +++ b/drivers/mtd/nand/brcmnand/brcmnand.c
> @@ -1912,6 +1912,7 @@ static int brcmnand_init_cs(struct brcmnand_host *host)
>  	struct mtd_info *mtd;
>  	struct nand_chip *chip;
>  	int ret;
> +	u16 cfg_offs;
>  	struct mtd_part_parser_data ppdata = { .of_node = dn };
>  
>  	ret = of_property_read_u32(dn, "reg", &host->cs);
> @@ -1954,6 +1955,15 @@ static int brcmnand_init_cs(struct brcmnand_host *host)
>  
>  	chip->controller = &ctrl->controller;
>  
> +	/*
> +	 * The bootloader might have configured 16bit mode but
> +	 * NAND READID command only works in 8bit mode. We force
> +	 * 8bit mode here to ensure that NAND READID commands works.
> +	 */
> +	cfg_offs = brcmnand_cs_offset(ctrl, host->cs, BRCMNAND_CS_CFG);
> +	nand_writereg(ctrl, cfg_offs,
> +		      nand_readreg(ctrl, cfg_offs) & ~CFG_BUS_WIDTH);
> +
>  	if (nand_scan_ident(mtd, 1, NULL))
>  		return -ENXIO;
>  
> -- 
> 1.9.1
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [PATCH v5 0/3] NAND support for Broadcom NS2 SoC
  2015-10-30 19:31 ` [PATCH v5 0/3] NAND support for Broadcom NS2 SoC Brian Norris
@ 2015-11-02 17:02   ` Anup Patel
  2015-11-03  8:12   ` Anup Patel
  1 sibling, 0 replies; 9+ messages in thread
From: Anup Patel @ 2015-11-02 17:02 UTC (permalink / raw)
  To: Brian Norris
  Cc: David Woodhouse, Linux MTD, Rob Herring, Pawel Moll,
	Mark Rutland, Catalin Marinas, Will Deacon, Sudeep Holla,
	Ian Campbell, Kumar Gala, Ray Jui, Scott Branden,
	Florian Fainelli, Pramod Kumar, Vikram Prakash, Sandeep Tripathy,
	Linux ARM Kernel, Device Tree, Linux Kernel,
	bcm-kernel-feedback-list



> -----Original Message-----
> From: Brian Norris [mailto:computersforpeace@gmail.com]
> Sent: 31 October 2015 01:02
> To: Anup Patel
> Cc: David Woodhouse; Linux MTD; Rob Herring; Pawel Moll; Mark Rutland;
> Catalin Marinas; Will Deacon; Sudeep Holla; Ian Campbell; Kumar Gala; Ray Jui;
> Scott Branden; Florian Fainelli; Pramod Kumar; Vikram Prakash; Sandeep
> Tripathy; Linux ARM Kernel; Device Tree; Linux Kernel; bcm-kernel-feedback-list
> Subject: Re: [PATCH v5 0/3] NAND support for Broadcom NS2 SoC
> 
> On Fri, Oct 30, 2015 at 12:29:18PM +0530, Anup Patel wrote:
> > We enable NAND support for Broadcom NS2 SoC by reusing existing
> > BRCMNAND driver.
> >
> > This patchset applies on-top of "arm64: Simple additions to
> > NS2 DT" v1 patchset and is available in ns2_nand_v5 branch of
> > https://github.com/Broadcom/arm64-linux.git.
> >
> > The patchset is tested on NS2 SVK.
> 
> Applied patches 1 and 2. My "Reviewed-by" on patch 3 stands.
> 

Thanks Brian.

Regards,
Anup

^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [PATCH v5 2/3] mtd: brcmnand: Force 8bit mode before doing nand_scan_ident()
  2015-10-30 19:47   ` Brian Norris
@ 2015-11-02 17:06     ` Anup Patel
  0 siblings, 0 replies; 9+ messages in thread
From: Anup Patel @ 2015-11-02 17:06 UTC (permalink / raw)
  To: Brian Norris
  Cc: David Woodhouse, Linux MTD, Rob Herring, Pawel Moll,
	Mark Rutland, Catalin Marinas, Will Deacon, Sudeep Holla,
	Ian Campbell, Kumar Gala, Ray Jui, Scott Branden,
	Florian Fainelli, Pramod Kumar, Vikram Prakash, Sandeep Tripathy,
	Linux ARM Kernel, Device Tree, Linux Kernel,
	bcm-kernel-feedback-list



> -----Original Message-----
> From: Brian Norris [mailto:computersforpeace@gmail.com]
> Sent: 31 October 2015 01:18
> To: Anup Patel
> Cc: David Woodhouse; Linux MTD; Rob Herring; Pawel Moll; Mark Rutland;
> Catalin Marinas; Will Deacon; Sudeep Holla; Ian Campbell; Kumar Gala; Ray Jui;
> Scott Branden; Florian Fainelli; Pramod Kumar; Vikram Prakash; Sandeep
> Tripathy; Linux ARM Kernel; Device Tree; Linux Kernel; bcm-kernel-feedback-list
> Subject: Re: [PATCH v5 2/3] mtd: brcmnand: Force 8bit mode before doing
> nand_scan_ident()
> 
> On Fri, Oct 30, 2015 at 12:29:20PM +0530, Anup Patel wrote:
> > Just like other NAND controllers,
> 
> ^^ That part isn't strictly true. While READ ID data only comes out on the lower 8
> bits, that doesn't *actually* mean you can't get valid data from a 16-bit bus in
> general; you just have to drop the upper 8 bits. That's what these two commits
> did for read ID and parameter page read commands:
> 
> commit 3dad2344e92c6e1aeae42df1c4824f307c51bcc7
> Author: Brian Norris <computersforpeace@gmail.com>
> Date:   Wed Jan 29 14:08:12 2014 -0800
> 
>     mtd: nand: force NAND_CMD_READID onto 8-bit bus
> 
> commit bd9c6e99b58255b9de1982711ac9487c9a2f18be
> Author: Brian Norris <computersforpeace@gmail.com>
> Date:   Fri Nov 29 22:04:28 2013 -0800
> 
>     mtd: nand: don't use read_buf for 8-bit ONFI transfers
> 
> > the NAND READID command only works
> > in 8bit mode for all versions of BRCMNAND controller.
> 
> But I presume *this* statement is actually true. This NAND controller doesn't
> exactly give us a fully-flexible READID / read_byte / read_word command, as it
> works at a higher level than that (although LOW_LEVEL_OP gives us this
> flexibility now). I could imagine (though I never tested 16-bit NAND) that 16-bit
> READID is broken.
> 
> BTW, did you ask the HW designer about this? It'd be nice to be 100% sure.

Yes, we had a discussed with HW designers and they confirmed
that READID command will only work in 8bit mode.

Regards,
Anup

^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [PATCH v5 0/3] NAND support for Broadcom NS2 SoC
  2015-10-30 19:31 ` [PATCH v5 0/3] NAND support for Broadcom NS2 SoC Brian Norris
  2015-11-02 17:02   ` Anup Patel
@ 2015-11-03  8:12   ` Anup Patel
  1 sibling, 0 replies; 9+ messages in thread
From: Anup Patel @ 2015-11-03  8:12 UTC (permalink / raw)
  To: Brian Norris, Arnd Bergmann, Olof Johansson
  Cc: David Woodhouse, Linux MTD, Rob Herring, Pawel Moll,
	Mark Rutland, Catalin Marinas, Will Deacon, Sudeep Holla,
	Ian Campbell, Kumar Gala, Ray Jui, Scott Branden,
	Florian Fainelli, Pramod Kumar, Vikram Prakash, Sandeep Tripathy,
	Linux ARM Kernel, Device Tree, Linux Kernel,
	bcm-kernel-feedback-list

+Arnd, +Olof

Regards,
Anup

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-11-03  8:12 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-30  6:59 [PATCH v5 0/3] NAND support for Broadcom NS2 SoC Anup Patel
2015-10-30  6:59 ` [PATCH v5 1/3] mtd: brcmnand: factor out CFG and CFG_EXT bitfields Anup Patel
2015-10-30  6:59 ` [PATCH v5 2/3] mtd: brcmnand: Force 8bit mode before doing nand_scan_ident() Anup Patel
2015-10-30 19:47   ` Brian Norris
2015-11-02 17:06     ` Anup Patel
2015-10-30  6:59 ` [PATCH v5 3/3] arm64: dts: Add BRCM IPROC NAND DT node for NS2 Anup Patel
2015-10-30 19:31 ` [PATCH v5 0/3] NAND support for Broadcom NS2 SoC Brian Norris
2015-11-02 17:02   ` Anup Patel
2015-11-03  8:12   ` Anup Patel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).