[PATCH] mtd: spi-nor: add support for Winbond W25Q512JV

Shuhao Mai shuhao.mai.1990 at gmail.com
Wed May 5 03:25:50 BST 2021


On Fri, Apr 16, 2021 at 09:24:39PM +0200, David Bauer wrote:
> Hi Shuhao,
> 
> Sorry for coming back late to this.
> 
> On 3/10/21 8:41 AM, Shuhao Mai wrote:
> > On Tue, Mar 09, 2021 at 07:53:59AM +0000, Tudor.Ambarus at microchip.com wrote:
> >> On 3/8/21 8:03 PM, David Bauer wrote:
> >>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> >>>
> >>> Hi Tudor,
> >>>
> >>> On 3/8/21 6:50 AM, Tudor.Ambarus at microchip.com wrote:
> >>>> On 2/13/21 5:10 PM, David Bauer wrote:
> >>>>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> >>>>>
> >>>>> The Winbond W25Q512JV is a 512mb SPI-NOR chip. It supports 4K
> >>>>> sectors as well as block protection and Dual-/Quad-read.
> >>>>>
> >>>>> Tested on: Ubiquiti UniFi 6 LR
> >>>>>
> >>>>> Signed-off-by: David Bauer <mail at david-bauer.net>
> >>>>
> >>>> David, I'll take Shuhao's patch because he sent it first:
> >>>> https://patchwork.ozlabs.org/project/linux-mtd/patch/20210208075303.4200-1-shuhao.mai.1990@gmail.com/
> >>>
> >>> Fine with me, I have not found this patch :)
> >>>
> >>>>
> >>>> Would you make an incremental patch on top op Shuhao's, to add the
> >>>> locking support?
> >>>
> >>> Sure, It's necessary for the board (UniFi 6 LR), as the bootloader locks the flash on boot.
> >>
> >> Is it necessary to unlock the flash at boot time?
> >> You can unlock the flash from user-space, using mtd-utils.
> >>
> >> Have you tried to lock/unlock portions of the flash using mtd-utils,
> >> and check if what was locked corresponds to what the datasheet indicates?
> >>
> >>>
> >>> I'll send a new patch for the lock support.
> >>>
> >> Great, thanks!
> >> ta
> > 
> > Hi Tudor and David,
> > 
> > 
> > I made a quick test on flash_lock with kernel 5.8.18 and mtd-utils
> > v2.1.2. It returns "could not lock device: /dev/mtd0" and "error 22
> > (Invalid argument)".
> > 
> > Could be the error caused by my test environment, if it's functional on
> > UniFi 6 LR.
> Were these partitions starting with the first / ending with the last block on the flash chip?
> Locking / unlocking mtd partitions not aligned at the beginning / end of the chip sound will
> return invalid argument.
> 
> For the UniFi 6 LR, these flags are required, as otherwise the lower half of the flash
> remains write protected (the bootloader actively enables this protection for whatever reason).
> 
> I'll send a rebased patch adding the required flags shortly.
> 
> Best wishes
> David
>

Hi David,

Thanks for advise, but the invalid argument is not caused by partition
alignment. I traced the flow of flash_lock, and it does relate to my
choice of platform.

In the function 'spi_nor_write_16bit_sr_and_check()', it will try to
read SR2 before writing to SR1. However, there's no handler for reading
SR2 in 'spi-nor/controllers/intel-spi.c'. It will return Invalid argument
if we try to do any operation to SR2 on Intel's platform currently.


Best Regards,
Shuhao

> > 
> > 
> > Sincerely
> > Shuhao
> > 



More information about the linux-mtd mailing list