
Hi Linus,
-----Original Message----- From: Linus Walleij linus.walleij@linaro.org Sent: Thursday, November 7, 2024 6:16 AM To: david regan dregan@broadcom.com Cc: u-boot u-boot@lists.denx.de; Dario Binacchi dario.binacchi@amarulasolutions.com; Michael Trimarchi michael@amarulasolutions.com; Anand Gore anand.gore@broadcom.com; William Zhang william.zhang@broadcom.com; Kursad Oney kursad.oney@broadcom.com; Philippe Reynes philippe.reynes@softathome.com; Florian Fainelli florian.fainelli@broadcom.com; Miquel Raynal miquel.raynal@bootlin.com; Kamal Dasu kamal.dasu@broadcom.com; David Regan dregan@mail.com; Tom Rini trini@konsulko.com; Jiaxun Yang jiaxun.yang@flygoat.com Subject: Re: [PATCH 3/4] mtd: rawnand: brcmnand: Add BCMBCA read data bus interface
On Wed, Nov 6, 2024 at 10:04 PM david regan dregan@broadcom.com wrote:
The BCMBCA broadband SoC integrates the NAND controller differently than STB, iProc and other SoCs. It has different endianness for NAND cache data.
Add a SoC read data bus shim for BCMBCA to meet the specific SoC need and performance improvement using the optimized memcpy function on
NAND
cache memory.
This is a port of the upstream Linux patch to U-Boot.
william.zhang@broadcom.com/
Signed-off-by: david regan dregan@broadcom.com
The patch looks fine, but shouldn't the existing brcmnand_read_data_bus() in drivers/mtd/nand/raw/brcmnand/brcmnand.c also be replaced with brcmnand_soc_data_bus_read()?
Maybe this is a problem in the upstream kernel driver though :/
The upstream kernel driver is correct because it uses exec_op to read the parameter page/ONFI data but exec_op is not available to the u-boot code base. So this new function brcmnand_soc_data_bus_read tries to do that in generic way to handle the endianness difference between platforms. But I agree it causes confusing to existing brcmnand_read_data_bus.
We are working on a better solution and will update.
Yours, Linus Walleij