On Wed, Oct 31, 2018 at 9:41 AM Rajat Srivastava <rajat.srivast...@nxp.com> wrote: > > > > > -----Original Message----- > > From: Simon Goldschmidt <simon.k.r.goldschm...@gmail.com> > > Sent: Wednesday, October 31, 2018 2:06 AM > > To: Rajat Srivastava <rajat.srivast...@nxp.com>; u-boot@lists.denx.de > > Cc: ja...@openedev.com > > Subject: Re: [U-Boot] [PATCH 0/3] Read SFDP parameters and access flash > > above 16MB > > > > On 17.10.2018 13:27, Rajat Srivastava wrote: > > > Add functionality to read and parse SFDP parameters to auto-detect > > > flash size, page size and address width of flash. This enables > > > flash access above 16MB using 4-byte addressing mode. > > > > > > Add driver support to get SFDP information of flash and use it to > > > access flash above 16MB. > > > > > > Enable reading and parsing of SFDP parameters for Spansion's > > > s25fs512 flash to auto-detect its size, its page size and the > > > addressing mode it supports. > > > > Why do you need driver-specific code to read the sfdp parameters? > > Wouldn't it be much cleaner to solve this from spi_flash.c only? > > That would have been cleaner only if it was possible. To read SFDP parameters > of > any flash, a READ_SFDP (0x5A) command needs to be sent to flash. > > The mtd framework does not allow sending any command to any flash directly > from mtd layer. Any transaction initiated from mtd framework will call > spi_xfer() function of the respective SPI driver which will further send the > actual > command to flash. > > Linux has also implemented reading SFDP parameters functionality in a > similar way.
I don't know the Linux way. I only looked at the driver my platform uses (cadence_qspi) and I can't match this to your driver. The cadence driver more or less sends 'dout' as command, so using 'spi_flash_read_common()' in spi_flash.c should work. Is this different in your driver? > > If so, just adding the 'spi_flash_parse_sfdp()' function on top of > > Stefan's patch should work? > > > > I tried testing this patch, but just like for Stefan, but it just didn't > > work for me and I failed to see some simple steps to adjust my spi > > driver to make it work. > > You can see these patches for SFDP implementation in SPI driver: > https://patchwork.ozlabs.org/patch/985329/ > https://patchwork.ozlabs.org/patch/985328/ Well, of course I saw those patches. As written above, I had a hard time adapting your fsl_qspi changes to the cadence_qspi driver and I think it would be better if this wasn't needed. Simon > > You, basically, need to send: > - 0x5A command (READ_SFDP command) > - 3-byte address (address will be provided by framework) > - 8 dummy cycles > > > > > Simon > > > > > > > > Rajat Srivastava (3): > > > mtd/spi: Add JEDEC SFDP support in SPI framework > > > fsl_qspi: Access flash above 16MB using SFDP > > > spi_flash_ids: Enable SFDP parsing for s25fs512 flash > > > > > > drivers/mtd/spi/sf_internal.h | 4 + > > > drivers/mtd/spi/spi_flash.c | 297 > > +++++++++++++++++++++++++++++++++++++--- > > > drivers/mtd/spi/spi_flash_ids.c | 3 +- > > > drivers/spi/fsl_qspi.c | 103 +++++++++++++- > > > include/spi.h | 2 + > > > include/spi_flash.h | 120 ++++++++++++++++ > > > 6 files changed, 501 insertions(+), 28 deletions(-) > > > > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot