linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kamal Dasu <kdasu.kdev@gmail.com>
To: Florian Fainelli <f.fainelli@gmail.com>
Cc: "MTD Maling List" <linux-mtd@lists.infradead.org>,
	"Rafał Miłecki" <zajec5@gmail.com>,
	"Miquel Raynal" <miquel.raynal@bootlin.com>,
	"Richard Weinberger" <richard@nod.at>,
	"Vignesh Raghavendra" <vigneshr@ti.com>,
	"Brian Norris" <computersforpeace@gmail.com>,
	"Arnd Bergmann" <arnd@arndb.de>,
	"Cai Huoqing" <caihuoqing@baidu.com>,
	"Colin Ian King" <colin.king@intel.com>,
	"open list" <linux-kernel@vger.kernel.org>,
	"open list:BROADCOM SPECIFIC AMBA DRIVER (BCMA)"
	<linux-wireless@vger.kernel.org>,
	"open list:BROADCOM STB NAND FLASH DRIVER"
	<bcm-kernel-feedback-list@broadcom.com>
Subject: Re: [PATCH v3 0/9] BCMA support for brcmnand
Date: Mon, 10 Jan 2022 12:38:19 -0500	[thread overview]
Message-ID: <CAC=U0a3V8973MqyCU2M=hG0bkhcNZN3kSySZGaZmFHnEZeqYRA@mail.gmail.com> (raw)
In-Reply-To: <20220107184614.2670254-1-f.fainelli@gmail.com>

Florian,

On Fri, Jan 7, 2022 at 1:46 PM Florian Fainelli <f.fainelli@gmail.com> wrote:
>
> Hi all,
>
> This patch series adds support for the BRCMNAND controller revision 3.4
> embedded in MIPS-based SoCs such as 5357, typically found in the Netgear
> WNR3500L v2 and other kinds of Wi-Fi routers. The upstream platform that
> uses this controller is under arch/mips/bcm47xx/ and does not use Device
> Tree (and probably never will by now). BCMA (Broadcom AMBA) is a special
> kind of discoverable memory mapped interface which requires the use of
> special accessors to read from/write to the hardware block.
>
> The integration of brcmnand into that SoC is a bit quirky in that every
> register offering byte level data about the flash (OOB, device ID, etc.)
> requires byte swapping. The command shift should also have been 24, but
> is in fact 0, took me a while to understand why no reads were actually
> working because of that.
>
> This has been tested with Linux 5.10.82 and Linus' master with OpenWrt
> and confirmed that the squashfs + jffs2 overlay that OpenWrt creates is
> entirely functional and that written data is made persistent.
>
> Changes in v3:
>
> - fixed a few typo/grammar errors in the commit messages, mention when
>   changes are non functional changes
> - removed the stray hunk in 2 to enable the static key
>
> Changes in v2:
>
> - re-ordered the patch such that the soc variable is initialized as
>   early as possible
> - corrected bug in the conversion of brcmnand_init_cs() which
>   incorrectly used the wrong device_node variable (parent instead of
>   child)
> - took Andy's feedback to make the test for a valid interrupt to be > 0
>   while calling platform_get_irq_optional()
> - utilized static branch (disabled by default) and conditional
>   compilation and confirm with disassembly that the generated code is
>   as efficient as before if not enabling the BCMA shim and as efficient
>   as possible if enabling BCMA shim
> - updated BCMA shim driver descriptor, author and added helper function
>   to encapsulate the container_of usage
> - added comment to explain why a slightly different platform device name
>   is used for the 5357-style NAND controller
>
> Florian Fainelli (9):
>   mtd: rawnand: brcmnand: Assign soc as early as possible
>   mtd: rawnand: brcmnand: Allow SoC to provide I/O operations
>   mtd: rawnand: brcmnand: Avoid pdev in brcmnand_init_cs()
>   mtd: rawnand: brcmnand: Move OF operations out of brcmnand_init_cs()
>   mtd: rawnand: brcmnand: Allow working without interrupts
>   mtd: rawnand: brcmnand: Add platform data structure for BCMA
>   mtd: rawnand: brcmnand: Allow platform data instantation
>   mtd: rawnand: brcmnand: BCMA controller uses command shift of 0
>   mtd: rawnand: brcmnand: Add BCMA shim
>
>  MAINTAINERS                                 |   1 +
>  drivers/bcma/driver_chipcommon_nflash.c     |  20 ++-
>  drivers/mtd/nand/raw/Kconfig                |  13 ++
>  drivers/mtd/nand/raw/brcmnand/Makefile      |   2 +
>  drivers/mtd/nand/raw/brcmnand/bcma_nand.c   | 132 ++++++++++++++++
>  drivers/mtd/nand/raw/brcmnand/brcmnand.c    | 160 +++++++++++++-------
>  drivers/mtd/nand/raw/brcmnand/brcmnand.h    |  29 ++++
>  include/linux/bcma/bcma_driver_chipcommon.h |   5 +
>  include/linux/platform_data/brcmnand.h      |  12 ++
>  9 files changed, 321 insertions(+), 53 deletions(-)
>  create mode 100644 drivers/mtd/nand/raw/brcmnand/bcma_nand.c
>  create mode 100644 include/linux/platform_data/brcmnand.h
>
> --
> 2.25.1
>

The patch series as in v3  LGTM

Kamal

  parent reply	other threads:[~2022-01-10 17:38 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-07 18:46 [PATCH v3 0/9] BCMA support for brcmnand Florian Fainelli
2022-01-07 18:46 ` [PATCH v3 1/9] mtd: rawnand: brcmnand: Assign soc as early as possible Florian Fainelli
2022-01-07 18:46 ` [PATCH v3 2/9] mtd: rawnand: brcmnand: Allow SoC to provide I/O operations Florian Fainelli
2022-01-07 18:46 ` [PATCH v3 3/9] mtd: rawnand: brcmnand: Avoid pdev in brcmnand_init_cs() Florian Fainelli
2022-01-07 18:46 ` [PATCH v3 4/9] mtd: rawnand: brcmnand: Move OF operations out of brcmnand_init_cs() Florian Fainelli
2022-01-07 18:46 ` [PATCH v3 5/9] mtd: rawnand: brcmnand: Allow working without interrupts Florian Fainelli
2022-01-07 18:46 ` [PATCH v3 6/9] mtd: rawnand: brcmnand: Add platform data structure for BCMA Florian Fainelli
2022-01-07 18:46 ` [PATCH v3 7/9] mtd: rawnand: brcmnand: Allow platform data instantation Florian Fainelli
2022-01-07 18:46 ` [PATCH v3 8/9] mtd: rawnand: brcmnand: BCMA controller uses command shift of 0 Florian Fainelli
2022-01-07 18:46 ` [PATCH v3 9/9] mtd: rawnand: brcmnand: Add BCMA shim Florian Fainelli
2022-01-10 17:38 ` Kamal Dasu [this message]
2022-01-23 15:42 ` [PATCH v3 0/9] BCMA support for brcmnand Miquel Raynal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAC=U0a3V8973MqyCU2M=hG0bkhcNZN3kSySZGaZmFHnEZeqYRA@mail.gmail.com' \
    --to=kdasu.kdev@gmail.com \
    --cc=arnd@arndb.de \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=caihuoqing@baidu.com \
    --cc=colin.king@intel.com \
    --cc=computersforpeace@gmail.com \
    --cc=f.fainelli@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=miquel.raynal@bootlin.com \
    --cc=richard@nod.at \
    --cc=vigneshr@ti.com \
    --cc=zajec5@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).