[U-Boot] [Patch V2 4/4] dm: env_sf: fix saveenv() to use driver model

Qianyu Gong qianyu.gong at nxp.com
Mon Dec 21 07:01:19 CET 2015



> -----Original Message-----
> From: Qianyu Gong
> Sent: Monday, December 21, 2015 1:25 PM
> To: 'Simon Glass'; Gong Qianyu
> Cc: U-Boot Mailing List; Mingkai Hu; R58495 at freescale.com;
> yao.yuan at freescale.com; Jagan Teki
> Subject: RE: [Patch V2 4/4] dm: env_sf: fix saveenv() to use driver model
> 
> 
> 
> > -----Original Message-----
> > From: sjg at google.com [mailto:sjg at google.com] On Behalf Of Simon Glass
> > Sent: Saturday, December 19, 2015 10:51 AM
> > To: Gong Qianyu
> > Cc: U-Boot Mailing List; Mingkai Hu; R58495 at freescale.com;
> > yao.yuan at freescale.com; Jagan Teki
> > Subject: Re: [Patch V2 4/4] dm: env_sf: fix saveenv() to use driver
> > model
> >
> > Hi Gong,
> >
> > On 15 December 2015 at 03:32, Gong Qianyu <Qianyu.Gong at freescale.com>
> > wrote:
> > >
> > > It might be missed when converting spi_flash_probe() in cmd_sf.c.
> > >
> > > This commit refers to fbb099183e3a53f77a975964cdf2e73d11e565af.
> > >
> > > Signed-off-by: Gong Qianyu <Qianyu.Gong at freescale.com>
> > > ---
> > > V2:
> > >  - New Patch.
> > >
> > >  common/env_sf.c | 49
> > > +++++++++++++++++++++++++++++++++++++++++++++++++
> > >  1 file changed, 49 insertions(+)
> >
> > The 'saveenv' command seems to work OK for me with driver model. Can
> > you please explain what problem this patch solves?
> >
> > Regards,
> > Simon
> 
> Hi Simon,
> 
> The saveenv() always keeps the latest 'sf probe' value of env_flash. So
> if I run 'sf probe'
> a few more times till it returns a different value, saveenv() will then
> get into sync abort.
> 
> Actually the problem I met is:
> => saveenv
> Saving Environment to SPI Flash...
> SF: Detected S25FL128S_64K with page size 256 Bytes, erase size 64 KiB,
> total 16MiB Erasing SPI flash...Writing to SPI flash...done => sf probe
> SF: Detected S25FL128S_64K with page size 256 Bytes, erase size 64 KiB,
> total 16MiB => saveenv Saving Environment to SPI Flash...
> "Synchronous Abort" handler, esr 0x02000000
> ELR:     fffa8520
> LR:      fff6fd28
> x0 : 00000000ffe44850 x1 : 0000000000102000
> x2 : 000000000000e000 x3 : 00000000ffe6a670
> x4 : 00000000fffa8520 x5 : 00000000fffa89c0
> x6 : 00000000fffa8340 x7 : 0000000000000053
> x8 : 0000000000000000 x9 : 000000000000000c
> x10: 00000000ffe6a660 x11: 00000000fff90000
> x12: 000000000000000f x13: 0000000040000000
> x14: 0000000000200000 x15: 00000000fff490d0
> x16: 00000000fff4984c x17: 0000000000000064
> x18: 00000000ffe43da0 x19: 00000000fffb7000
> x20: 00000000ffe6a670 x21: 00000000fffb7000
> x22: 00000000fffb7000 x23: 0000000000000001
> x24: 00000000fffb6db0 x25: 0000000000000000
> x26: 0000000000000000 x27: 0000000000000000
> x28: 0000000000000000 x29: 00000000ffe3f4d0
> 
> Resetting CPU ...
> 
> resetting ...
> 
> 

This patch makes 'saveenv' probes the flash every time like 'sf probe'. Maybe there is a better way
to solve this. I'm also confused why the current 'sf probe' may return different 
values for the same SPI flash(the same cs and bus)..Isn't it freed cleanly?

Regards,
Qianyu



More information about the U-Boot mailing list