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
next prev 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).