[U-Boot] Between 2015.10 and 2016.01, SPI flash changed erase size, and saveenv stopped working
Pavel Machek
pavel at denx.de
Thu Jun 2 15:41:58 CEST 2016
On Mon 2016-05-30 10:43:39, Fabio Estevam wrote:
> On Mon, May 30, 2016 at 5:33 AM, Pavel Machek <pavel at denx.de> wrote:
>
> > Commit c3c016cf75360c2a0d0a065b64b438aaf7720576 is a part of the problem:
> >
> > offset 0x40000 is protected and cannot be erased
> > => sf help
> > No SPI flash selected. Please run `sf probe'
> > => sf probe
> > ...
> > SF: Detected N25Q512 with page size 256 Bytes, erase size 4 KiB, total
> > 64 MiB
> > cadence_spi_set_speed: speed=1000000
> > => sf protect unlock 0x40000 0x20000
> > cadence_spi_xfer: len=1 [bytes]
> > cadence_spi_xfer: len=1 [bytes]
> > => saveenv
> > Saving Environment to SPI Flash...
>
> Does this quick hack help? I am wondering if yous SPI flash power up
> with the SR field protected:
This may be stupid but... is it possible that changes made by
write_sr() persist over powerdown?
Best regards,
Pavel
> --- a/drivers/mtd/spi/spi_flash.c
> +++ b/drivers/mtd/spi/spi_flash.c
> @@ -1021,11 +1021,7 @@ int spi_flash_scan(struct spi_flash *flash)
> return -EPROTONOSUPPORT;
> }
>
> - /* Flash powers up read-only, so clear BP# bits */
> - if (idcode[0] == SPI_FLASH_CFI_MFR_ATMEL ||
> - idcode[0] == SPI_FLASH_CFI_MFR_MACRONIX ||
> - idcode[0] == SPI_FLASH_CFI_MFR_SST)
> - write_sr(flash, 0);
> + write_sr(flash, 0);
>
> /* Assign spi data */
> flash->name = params->name;
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
More information about the U-Boot
mailing list