[U-Boot] [PATCH 1/1] NAND Re: mtdparts fails with NAND >= 4GB - Second try

Aaron Williams Aaron.Williams at caviumnetworks.com
Wed Feb 9 02:56:14 CET 2011


On Tuesday, February 08, 2011 03:11:54 pm Aaron Williams wrote:
> On Tuesday, February 08, 2011 07:38:44 am Andrew Dyer wrote:
> > On Mon, Feb 7, 2011 at 16:58, Scott Wood <scottwood at freescale.com> wrote:
> > > On Mon, Jan 31, 2011 at 06:56:48PM -0800, Aaron Williams wrote:
> > >> Trying again submitting the patch.
> > >> 
> > >>               /* Do manufacturer-specific fixups */
> > >>               switch (info->manufacturer_id) {
> > >> 
> > >> +             case 0x0000:
> > >>               case 0x0001:
> > >>                       flash_fixup_amd(info, &qry);
> > >>                       break;
> > > 
> > > This seems unrelated.
> > > 
> > > Otherwise, the patch looks good.  Whose tree should it go through?
> > > It's not really a NAND patch, though NAND is the reason for it.
> > 
> > NAK
> > 
> > This is not only unrelated (which the OP was told to fix on the
> > previous post of this patch), but wrong.  The S29GL series chips don't
> > return 0x0000 for the manufacturer ID.  AMD (later Spansion) have
> > always had mfg. ID 0x0001.
> > 
> > I have various boards with S29GL064, S29GL128N, and S29GL256P, and
> > they all return the correct value (0x0001) for the mfg. ID.  I looked
> > up the latest datasheet and they have not changed that section.
> 
> I always get 0x0000 for the mfg ID and cannot explain it. The full part
> number is S29GL064N90TF103 010FF058. That is why it was added. Without it,
> the proper fixup doesn't happen with this chip.
> 
> -Aaron

Note that in our case the port width is 16-bits and the chip width is 8 bits.

I added some printf statements for all read accesses to help.

Here's the output when I enable debugging:

flash detect cfi                                                                                         
fwc addr 1f400000 cmd f0 f0f0 16bit x 8 bit                                                              
fwc addr 1f400000 cmd ff ffff 16bit x 8 bit                                                              
fwc addr 1f4000aa cmd 98 9898 16bit x 8 bit                                                              
is= cmd 51(Q) addr 1f400020 flash_read16: address 1f400020, value 0x5151                                 
is= 5151 5151                                                                                            
flash_read16: address 1f400020, value 0x5151                                                             
is= cmd 52(R) addr 1f400022 flash_read16: address 1f400022, value 0x5252                                 
is= 5252 5252                                                                                            
flash_read16: address 1f400022, value 0x5252                                                             
is= cmd 59(Y) addr 1f400024 flash_read16: address 1f400024, value 0x5959                                 
is= 5959 5959                                                                                            
flash_read16: address 1f400024, value 0x5959                                                             
flash_read8: address 1f400021, value 0x51                                                                
flash_read8: address 1f400023, value 0x52                                                                
flash_read8: address 1f400025, value 0x59                                                                
flash_read8: address 1f400027, value 0x2                                                                 
flash_read8: address 1f400029, value 0x0                                                                 
flash_read8: address 1f40002b, value 0x40                                                                
flash_read8: address 1f40002d, value 0x0                                                                 
flash_read8: address 1f40002f, value 0x0                                                                 
flash_read8: address 1f400031, value 0x0                                                                 
flash_read8: address 1f400033, value 0x0                                                                 
flash_read8: address 1f400035, value 0x0                                                                 
flash_read8: address 1f400037, value 0x27                                                                
flash_read8: address 1f400039, value 0x36                                                                
flash_read8: address 1f40003b, value 0x0                                                                 
flash_read8: address 1f40003d, value 0x0                                                                 
flash_read8: address 1f40003f, value 0x7                                                                 
flash_read8: address 1f400041, value 0x7                                                                 
flash_read8: address 1f400043, value 0xa                                                                 
flash_read8: address 1f400045, value 0x0                                                                 
flash_read8: address 1f400047, value 0x3                                                                 
flash_read8: address 1f400049, value 0x5                                                                 
flash_read8: address 1f40004b, value 0x4                                                                 
flash_read8: address 1f40004d, value 0x0                                                                 
flash_read8: address 1f40004f, value 0x17                                                                
flash_read8: address 1f400051, value 0x2                                                                 
flash_read8: address 1f400053, value 0x0                                                                 
flash_read8: address 1f400055, value 0x5                                                                 
flash_read8: address 1f400057, value 0x0                                                                 
flash_read8: address 1f400059, value 0x2                                                                 
flash_read8: address 1f40005b, value 0x7                                                                 
flash_read8: address 1f40005d, value 0x0                                                                 
flash_read8: address 1f40005f, value 0x20                                                                
flash_read8: address 1f400061, value 0x0                                                                 
flash_read8: address 1f400063, value 0x7e                                                                
flash_read8: address 1f400065, value 0x0                                                                 
flash_read8: address 1f400067, value 0x0                                                                 
flash_read8: address 1f400069, value 0x1                                                                 
flash_read8: address 1f40006b, value 0x0                                                                 
flash_read8: address 1f40006d, value 0x0                                                                 
flash_read8: address 1f40006f, value 0x0                                                                 
flash_read8: address 1f400071, value 0x0                                                                 
flash_read8: address 1f400073, value 0x0                                                                 
flash_read8: address 1f400075, value 0x0                                                                 
flash_read8: address 1f400077, value 0x0                                                                 
flash_read8: address 1f400079, value 0x0                                                                 
device interface is 2                                                                                    
found port 2 chip 1 port 16 bits chip 8 bits                                                             
flash_read8: address 1f400087, value 0x31                                                                
flash_read8: address 1f400089, value 0x33                                                                
00 : 51 52 59 02 00 40 00 00 00 00 00 27 36 00 00 07  QRY.. at .....'6...                                   
10 : 07 0a 00 03 05 04 00 17 02 00 05 00 02 07 00 20  ...............                                    
20 : 00 7e 00 00 01 00 00 00 00 00 00 00 00 00 00 10  .~..............                                   
fwc addr 1f400000 cmd f0 f0f0 16bit x 8 bit                                                              
fwc addr 1f401554 cmd aa aaaa 16bit x 8 bit                                                              
fwc addr 1f400aaa cmd 55 5555 16bit x 8 bit                                                              
fwc addr 1f401554 cmd 90 9090 16bit x 8 bit                                                              
flash_read8: address 1f400001, value 0x0                                                                 
flash_read8: address 1f400003, value 0x3f                                                                
fwc addr 1f400000 cmd f0 f0f0 16bit x 8 bit                                                              
fwc addr 1f4000aa cmd 98 9898 16bit x 8 bit                                                              
flash_read8: address 1f40009f, value 0x3                                                                 
manufacturer is 2                                                                                        
manufacturer id is 0x0                                                                                   
device id is 0x3f                                                                                        
device id2 is 0x0                                                                                        
cfi version is 0x3133                                                                                    
size_ratio 1 port 16 bits chip 8 bits                                                                    
found 2 erase regions                                                                                    
erase region 0: 0x0100007e                                                                               
erase_region_count = 127 erase_region_size = 65536                                                       
erase region 1: 0x00200007                                                                               
erase_region_count = 8 erase_region_size = 8192                                                          
fwc addr 1f400000 cmd f0 f0 8bit x 8 bit                                                                 
fwc addr 1fbfe000 cmd 70 70 8bit x 8 bit                                                                 
flash_read8: address 1fbfe000, value 0xe5                                                                
flash_read8: address 1fbfe000, value 0xe5                                                                
flash_is_busy: 0                                                                                         
Flash: 8 MiB                                                           


More information about the U-Boot mailing list