[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