Skip to contentSkip to conversation

Using Micron (Numonyx) m28w640hcb with u-boot

U-Boot Gudjon I. Gudjonsson 2 participants 5 messages Nov 12, 2011 – Nov 15, 2011 1 message not in the archive

lore
Share & tools
lore
#0 lore raw

Hi list
I have replaced the at49bv642d nor flash memory on my Atmel ngw100 board
with the pin compatible m28w640hcb flash memory from Micron (formerly Numonyx).

I can program the U-boot to the flash without problems using a JTAG. I can
also program the full buildroot Linux system using JTAG and verify the bytes using the md.b command in U-boot. Therefore I assume there is nothing wrong with my hardware. However, I can neither make U-boot nor Linux write to the flash and Linux doesn't boot from the flash.
I did start the Linux system from an NFS root and could detect the memory
as a read only device in Linux but the /dev/mtdblockX devices did not appear.
I have spent a lot of time on the problem without success and I am
wondering how to proceed. Hopefully someone spots the problem directly.
The spear3xx series boards include the m28w640hct device. I could buy such
a board to test but is anyone using that board with U-boot? If so can you please confirm that U-boot can write to the flash?
Another idea is to replace the at64bv642 chip with some other NOR-flash,
has anyone done that with success?

The u-boot debug output can be found below. There are some (null)
addresses that don't appear when using the working at49bv642d flash

Thanks a lot for any help
Gudjon

/******************************
U-boot startup
*******************************/
U-Boot 2010.06 (Nov 12 2011 - 11:48:36)

U-Boot code: (null) -> 00011ae0 data: 00018e38 -> 0004e7b8 VMR table @ 0x11fca684
DMA: Using memory from 0x11f6d000 to 0x11f71000 flash detect cfi
fwc addr (null) cmd f0 f0 8bit x 8 bit
fwc addr (null) cmd ff ff 8bit x 8 bit
fwc addr 00000055 cmd 98 98 8bit x 8 bit
is= cmd 51(Q) addr 00000010 is= ff 51
fwc addr 00000555 cmd 98 98 8bit x 8 bit
is= cmd 51(Q) addr 00000010 is= ff 51
fwc addr (null) cmd f0 f0f0 16bit x 8 bit
fwc addr (null) cmd ff ffff 16bit x 8 bit
fwc addr 000000aa cmd 98 9898 16bit x 8 bit
is= cmd 51(Q) addr 00000020 is= 0051 5151
fwc addr 00000aaa cmd 98 9898 16bit x 8 bit
is= cmd 51(Q) addr 00000020 is= 0051 5151
fwc addr (null) cmd f0 00f0 16bit x 16 bit
fwc addr (null) cmd ff 00ff 16bit x 16 bit
fwc addr 000000aa cmd 98 0098 16bit x 16 bit
is= cmd 51(Q) addr 00000020 is= 0051 0051
is= cmd 52(R) addr 00000022 is= 0052 0052
is= cmd 59(Y) addr 00000024 is= 0059 0059
device interface is 1
found port 2 chip 2 port 16 bits chip 16 bits

00 : 51 52 59 03 00 35 00 00 00 00 00 27 36 b4 c6 04  QRY..5.....'6...
10 : 04 0a 00 05 05 03 00 17 01 00 03 00 02 07 00 20  ............... 
20 : 00 7e 00 00 01 50 52 49 31 30 e6 00 00 11 fb 4e  .~...PRI10.....N

fwc addr (null) cmd ff 00ff 16bit x 16 bit fwc addr (null) cmd 90 0090 16bit x 16 bit fwc addr (null) cmd ff 00ff 16bit x 16 bit fwc addr 000000aa cmd 98 0098 16bit x 16 bit manufacturer is 3
manufacturer id is 0x20
device id is 0x49
device id2 is 0x0
cfi version is 0x3130
size_ratio 1 port 16 bits chip 16 bits found 2 erase regions
erase region 0: 0x00200007 erase_region_count = 8 erase_region_size = 8192 erase region 1: 0x0100007e erase_region_count = 127 erase_region_size = 65536 fwc addr (null) cmd ff 00ff 16bit x 16 bit flash_protect ON: from 0x00000000 to 0x0001AC37 protect on 0
protect on 1
protect on 2
protect on 3
protect on 4
protect on 5
protect on 6
protect on 7
protect on 8
flash_protect ON: from 0x007F0000 to 0x007FFFFF protect on 134
Flash: 8 MiB at address 0x00000000
DRAM Configuration:
Bank #0: 10000000 32 MiB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   macb0, macb1

Press SPACE to abort autoboot in 1 seconds
### JFFS2 loading 'uImage' to 0x10400000
Scanning JFFS2 FS:  done.

find_inode failed for name=uImage

load: Failed to find inode

### JFFS2 LOAD ERROR<0> for uImage!
Wrong Image Format for bootm command
ERROR: can't get kernel image!

/******************************
Flash info
*******************************/

U-Boot> fli

Bank # 1: CFI conformant FLASH (16 x 16) Size: 8 MB in 135 Sectors
Intel Standard command set, Manufacturer ID: 0x20, Device ID: 0x49 Erase timeout: 8192 ms, write timeout: 1 ms
Buffer write timeout: 1 ms, buffer size: 8 bytes

Sector Start Addresses:
00000000 RO 00002000 RO 00004000 RO 00006000 RO 00008000
RO
0000A000 RO 0000C000 RO 0000E000 RO 00010000 RO 00020000
RO
00030000 RO 00040000 RO 00050000 RO 00060000 RO 00070000
RO
00080000 RO 00090000 RO 000A0000 RO 000B0000 RO 000C0000
RO
000D0000 RO 000E0000 RO 000F0000 RO 00100000 RO 00110000
RO
00120000 RO 00130000 RO 00140000 RO 00150000 RO 00160000
RO
00170000 RO 00180000 RO 00190000 RO 001A0000 RO 001B0000
RO
001C0000 RO 001D0000 RO 001E0000 RO 001F0000 RO 00200000
RO
00210000 RO 00220000 RO 00230000 RO 00240000 RO 00250000
RO
00260000 RO 00270000 RO 00280000 RO 00290000 RO 002A0000
RO
002B0000 RO 002C0000 RO 002D0000 RO 002E0000 RO 002F0000
RO
00300000 RO 00310000 RO 00320000 RO 00330000 RO 00340000
RO
00350000 RO 00360000 RO 00370000 RO 00380000 RO 00390000
RO
003A0000 RO 003B0000 RO 003C0000 RO 003D0000 RO 003E0000
RO
003F0000 RO 00400000 RO 00410000 RO 00420000 RO 00430000
RO
00440000 RO 00450000 RO 00460000 RO 00470000 RO 00480000
RO
00490000 RO 004A0000 RO 004B0000 RO 004C0000 RO 004D0000
RO
004E0000 RO 004F0000 RO 00500000 RO 00510000 RO 00520000
RO
00530000 RO 00540000 RO 00550000 RO 00560000 RO 00570000
RO
00580000 RO 00590000 RO 005A0000 RO 005B0000 RO 005C0000
RO
005D0000 RO 005E0000 RO 005F0000 RO 00600000 RO 00610000
RO
00620000 RO 00630000 RO 00640000 RO 00650000 RO 00660000
RO
00670000 RO 00680000 RO 00690000 RO 006A0000 RO 006B0000
RO
006C0000 RO 006D0000 RO 006E0000 RO 006F0000 RO 00700000
RO
00710000 RO 00720000 RO 00730000 RO 00740000 RO 00750000
RO
00760000 RO 00770000 RO 00780000 RO 00790000 RO 007A0000
RO
007B0000 RO 007C0000 RO 007D0000 RO 007E0000 RO 007F0000
RO

/******************************
Unprotecting memory
*******************************/

U-Boot> protect off 0x20000 0x7effff

/******************************
Flash info
*******************************/
U-Boot> fli

Bank # 1: CFI conformant FLASH (16 x 16) Size: 8 MB in 135 Sectors
Intel Standard command set, Manufacturer ID: 0x20, Device ID: 0x49 Erase timeout: 8192 ms, write timeout: 1 ms
Buffer write timeout: 1 ms, buffer size: 8 bytes

Sector Start Addresses:
00000000 RO 00002000 RO 00004000 RO 00006000 RO 00008000
RO

  0000A000   RO   0000C000   RO   0000E000   RO   00010000   RO   00020000      
  00030000        00040000        00050000        00060000        00070000      
  00080000        00090000        000A0000        000B0000        000C0000      
  000D0000        000E0000        000F0000        00100000        00110000      
  00120000        00130000        00140000        00150000        00160000      
  00170000        00180000        00190000        001A0000        001B0000      
  001C0000        001D0000        001E0000        001F0000        00200000      
  00210000        00220000        00230000        00240000        00250000      
  00260000        00270000        00280000        00290000        002A0000      
  002B0000        002C0000        002D0000        002E0000        002F0000      
  00300000        00310000        00320000        00330000        00340000      
  00350000        00360000        00370000        00380000        00390000      
  003A0000        003B0000        003C0000        003D0000        003E0000      
  003F0000        00400000        00410000        00420000        00430000      
  00440000        00450000        00460000        00470000        00480000      
  00490000        004A0000        004B0000        004C0000        004D0000      
  004E0000        004F0000        00500000        00510000        00520000      
  00530000        00540000        00550000        00560000        00570000      
  00580000        00590000        005A0000        005B0000        005C0000      
  005D0000        005E0000        005F0000        00600000        00610000      
  00620000        00630000        00640000        00650000        00660000      
  00670000        00680000        00690000        006A0000        006B0000      
  006C0000        006D0000        006E0000        006F0000        00700000      
  00710000        00720000        00730000        00740000        00750000      
  00760000        00770000        00780000        00790000        007A0000      
  007B0000        007C0000        007D0000        007E0000        007F0000   

RO

Un-Protected 125 sectors

/******************************
Erasing memory
*******************************/

U-Boot> erase 0x20000 0x7effff

fwc addr 00020000 cmd 50 0050 16bit x 16 bit
fwc addr 00020000 cmd 20 0020 16bit x 16 bit
fwc addr 00020000 cmd d0 00d0 16bit x 16 bit
flash_is_busy: 0
........
fwc addr 007d0000 cmd ff 00ff 16bit x 16 bit
.fwc addr 007e0000 cmd 50 0050 16bit x 16 bit
fwc addr 007e0000 cmd 20 0020 16bit x 16 bit
fwc addr 007e0000 cmd d0 00d0 16bit x 16 bit
flash_is_busy: 0
fwc addr 007e0000 cmd ff 00ff 16bit x 16 bit
. done
Erased 125 sectors

/******************************
Display memory at 0x20000
*******************************/

U-Boot> md.b 0x20000

00020000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
00020010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
00020020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
00020030: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................

/******************************
I want to try to copy some bytes to the memory with the cp.b command. This works with the at49bc642d flash.
Look at the memory at 0x90000000 in ram before copying it to flash at 0x20000
*******************************/
U-Boot> md.b 0x90000000

90000000: 00 00 00 00 33 cc 63 4c 77 cc 13 48 23 ec 37 dc ....3.cLw..H#.7.
90000010: 13 ce 33 cc 33 cc b3 cc 37 cc 73 ce 31 cc 33 cc ..3.3...7.s.1.3.

/******************************
Copy from RAM memory at 0x90000000 to Flash memory, this works on a normal ngw100 with at49bv642d
*******************************/
U-Boot> cp.b 0x90000000 0x20000 0x10

Copy to Flash... fwc addr (null) cmd 50 0050 16bit x 16 bit fwc addr (null) cmd 40 0040 16bit x 16 bit
flash_is_busy: 0
fwc addr 00020000 cmd ff 00ff 16bit x 16 bit
fwc addr (null) cmd 50 0050 16bit x 16 bit
fwc addr (null) cmd 40 0040 16bit x 16 bit
......
flash_is_busy: 0
fwc addr 00020000 cmd ff 00ff 16bit x 16 bit
fwc addr (null) cmd 50 0050 16bit x 16 bit
fwc addr (null) cmd 40 0040 16bit x 16 bit
flash_is_busy: 0
fwc addr 00020000 cmd ff 00ff 16bit x 16 bit
done

/******************************
Display memory at 0x20000, nothing has been written.
*******************************/
U-Boot> md.b 0x20000

00020000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
00020010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
U-Boot>

#1 lore raw
Quoted 1 line · Gudjon I. Gudjonsson

Hi list

Hi Gudjon,

Quoted 4 lines

I have replaced the at49bv642d nor flash memory on my Atmel ngw100 board
with the pin compatible m28w640hcb flash memory from Micron (formerly Numonyx).

Quoted 9 lines

I can program the U-boot to the flash without problems using a JTAG. I can
also program the full buildroot Linux system using JTAG and verify the bytes using the md.b command in U-boot. Therefore I assume there is nothing wrong with my hardware. However, I can neither make U-boot nor Linux write to the flash and Linux doesn't boot from the flash.
I did start the Linux system from an NFS root and could detect the memory
as a read only device in Linux but the /dev/mtdblockX devices did not appear.
I have spent a lot of time on the problem without success and I am
wondering how to proceed. Hopefully someone spots the problem directly.

I have had a similar problem with spear3xx board. Basically, this flash is write protected in hardware by default. It has to be specifically made writable. Please define a flag CONFIG_SYS_FLASH_PROTECTION in your config file.

Quoted 3 lines

The spear3xx series boards include the m28w640hct device. I could buy such
a board to test but is anyone using that board with U-boot? If so can you please confirm that U-boot can write to the flash?

I am the maintainer of this baord in u-boot and it works with version u-boot-2010.03

Quoted 6 lines

Another idea is to replace the at64bv642 chip with some other NOR-flash,
has anyone done that with success?

The u-boot debug output can be found below. There are some (null)
addresses that don't appear when using the working at49bv642d flash

Please try it and let me know if it helps

Regards
Vipin

Quoted 283 lines

Thanks a lot for any help
Gudjon

/******************************
U-boot startup
*******************************/
U-Boot 2010.06 (Nov 12 2011 - 11:48:36)

U-Boot code: (null) -> 00011ae0 data: 00018e38 -> 0004e7b8 VMR table @ 0x11fca684
DMA: Using memory from 0x11f6d000 to 0x11f71000 flash detect cfi
fwc addr (null) cmd f0 f0 8bit x 8 bit
fwc addr (null) cmd ff ff 8bit x 8 bit
fwc addr 00000055 cmd 98 98 8bit x 8 bit
is= cmd 51(Q) addr 00000010 is= ff 51
fwc addr 00000555 cmd 98 98 8bit x 8 bit
is= cmd 51(Q) addr 00000010 is= ff 51
fwc addr (null) cmd f0 f0f0 16bit x 8 bit
fwc addr (null) cmd ff ffff 16bit x 8 bit
fwc addr 000000aa cmd 98 9898 16bit x 8 bit
is= cmd 51(Q) addr 00000020 is= 0051 5151
fwc addr 00000aaa cmd 98 9898 16bit x 8 bit
is= cmd 51(Q) addr 00000020 is= 0051 5151
fwc addr (null) cmd f0 00f0 16bit x 16 bit
fwc addr (null) cmd ff 00ff 16bit x 16 bit
fwc addr 000000aa cmd 98 0098 16bit x 16 bit
is= cmd 51(Q) addr 00000020 is= 0051 0051
is= cmd 52(R) addr 00000022 is= 0052 0052
is= cmd 59(Y) addr 00000024 is= 0059 0059
device interface is 1
found port 2 chip 2 port 16 bits chip 16 bits

00 : 51 52 59 03 00 35 00 00 00 00 00 27 36 b4 c6 04  QRY..5.....'6...
10 : 04 0a 00 05 05 03 00 17 01 00 03 00 02 07 00 20  ...............
20 : 00 7e 00 00 01 50 52 49 31 30 e6 00 00 11 fb 4e  .~...PRI10.....N

fwc addr (null) cmd ff 00ff 16bit x 16 bit fwc addr (null) cmd 90 0090 16bit x 16 bit fwc addr (null) cmd ff 00ff 16bit x 16 bit fwc addr 000000aa cmd 98 0098 16bit x 16 bit manufacturer is 3
manufacturer id is 0x20
device id is 0x49
device id2 is 0x0
cfi version is 0x3130
size_ratio 1 port 16 bits chip 16 bits found 2 erase regions
erase region 0: 0x00200007 erase_region_count = 8 erase_region_size = 8192 erase region 1: 0x0100007e erase_region_count = 127 erase_region_size = 65536 fwc addr (null) cmd ff 00ff 16bit x 16 bit flash_protect ON: from 0x00000000 to 0x0001AC37 protect on 0
protect on 1
protect on 2
protect on 3
protect on 4
protect on 5
protect on 6
protect on 7
protect on 8
flash_protect ON: from 0x007F0000 to 0x007FFFFF protect on 134
Flash: 8 MiB at address 0x00000000
DRAM Configuration:
Bank #0: 10000000 32 MiB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   macb0, macb1

Press SPACE to abort autoboot in 1 seconds
### JFFS2 loading 'uImage' to 0x10400000
Scanning JFFS2 FS:  done.

find_inode failed for name=uImage

load: Failed to find inode

### JFFS2 LOAD ERROR<0> for uImage!
Wrong Image Format for bootm command
ERROR: can't get kernel image!

/******************************
Flash info
*******************************/

U-Boot> fli

Bank # 1: CFI conformant FLASH (16 x 16) Size: 8 MB in 135 Sectors
Intel Standard command set, Manufacturer ID: 0x20, Device ID: 0x49 Erase timeout: 8192 ms, write timeout: 1 ms
Buffer write timeout: 1 ms, buffer size: 8 bytes

Sector Start Addresses:

   00000000   RO   00002000   RO   00004000   RO   00006000   RO   00008000

RO
0000A000 RO 0000C000 RO 0000E000 RO 00010000 RO 00020000
RO
00030000 RO 00040000 RO 00050000 RO 00060000 RO 00070000
RO
00080000 RO 00090000 RO 000A0000 RO 000B0000 RO 000C0000
RO
000D0000 RO 000E0000 RO 000F0000 RO 00100000 RO 00110000
RO
00120000 RO 00130000 RO 00140000 RO 00150000 RO 00160000
RO
00170000 RO 00180000 RO 00190000 RO 001A0000 RO 001B0000
RO
001C0000 RO 001D0000 RO 001E0000 RO 001F0000 RO 00200000
RO
00210000 RO 00220000 RO 00230000 RO 00240000 RO 00250000
RO
00260000 RO 00270000 RO 00280000 RO 00290000 RO 002A0000
RO
002B0000 RO 002C0000 RO 002D0000 RO 002E0000 RO 002F0000
RO
00300000 RO 00310000 RO 00320000 RO 00330000 RO 00340000
RO
00350000 RO 00360000 RO 00370000 RO 00380000 RO 00390000
RO
003A0000 RO 003B0000 RO 003C0000 RO 003D0000 RO 003E0000
RO
003F0000 RO 00400000 RO 00410000 RO 00420000 RO 00430000
RO
00440000 RO 00450000 RO 00460000 RO 00470000 RO 00480000
RO
00490000 RO 004A0000 RO 004B0000 RO 004C0000 RO 004D0000
RO
004E0000 RO 004F0000 RO 00500000 RO 00510000 RO 00520000
RO
00530000 RO 00540000 RO 00550000 RO 00560000 RO 00570000
RO
00580000 RO 00590000 RO 005A0000 RO 005B0000 RO 005C0000
RO
005D0000 RO 005E0000 RO 005F0000 RO 00600000 RO 00610000
RO
00620000 RO 00630000 RO 00640000 RO 00650000 RO 00660000
RO
00670000 RO 00680000 RO 00690000 RO 006A0000 RO 006B0000
RO
006C0000 RO 006D0000 RO 006E0000 RO 006F0000 RO 00700000
RO
00710000 RO 00720000 RO 00730000 RO 00740000 RO 00750000
RO
00760000 RO 00770000 RO 00780000 RO 00790000 RO 007A0000
RO
007B0000 RO 007C0000 RO 007D0000 RO 007E0000 RO 007F0000
RO

/******************************
Unprotecting memory
*******************************/

U-Boot> protect off 0x20000 0x7effff

/******************************
Flash info
*******************************/
U-Boot> fli

Bank # 1: CFI conformant FLASH (16 x 16) Size: 8 MB in 135 Sectors
Intel Standard command set, Manufacturer ID: 0x20, Device ID: 0x49 Erase timeout: 8192 ms, write timeout: 1 ms
Buffer write timeout: 1 ms, buffer size: 8 bytes

Sector Start Addresses:

   00000000   RO   00002000   RO   00004000   RO   00006000   RO   00008000
RO
   0000A000   RO   0000C000   RO   0000E000   RO   00010000   RO   00020000
   00030000        00040000        00050000        00060000        00070000
   00080000        00090000        000A0000        000B0000        000C0000
   000D0000        000E0000        000F0000        00100000        00110000
   00120000        00130000        00140000        00150000        00160000
   00170000        00180000        00190000        001A0000        001B0000
   001C0000        001D0000        001E0000        001F0000        00200000
   00210000        00220000        00230000        00240000        00250000
   00260000        00270000        00280000        00290000        002A0000
   002B0000        002C0000        002D0000        002E0000        002F0000
   00300000        00310000        00320000        00330000        00340000
   00350000        00360000        00370000        00380000        00390000
   003A0000        003B0000        003C0000        003D0000        003E0000
   003F0000        00400000        00410000        00420000        00430000
   00440000        00450000        00460000        00470000        00480000
   00490000        004A0000        004B0000        004C0000        004D0000
   004E0000        004F0000        00500000        00510000        00520000
   00530000        00540000        00550000        00560000        00570000
   00580000        00590000        005A0000        005B0000        005C0000
   005D0000        005E0000        005F0000        00600000        00610000
   00620000        00630000        00640000        00650000        00660000
   00670000        00680000        00690000        006A0000        006B0000
   006C0000        006D0000        006E0000        006F0000        00700000
   00710000        00720000        00730000        00740000        00750000
   00760000        00770000        00780000        00790000        007A0000
   007B0000        007C0000        007D0000        007E0000        007F0000

RO

Un-Protected 125 sectors

/******************************
Erasing memory
*******************************/

U-Boot> erase 0x20000 0x7effff

fwc addr 00020000 cmd 50 0050 16bit x 16 bit
fwc addr 00020000 cmd 20 0020 16bit x 16 bit
fwc addr 00020000 cmd d0 00d0 16bit x 16 bit
flash_is_busy: 0
........
fwc addr 007d0000 cmd ff 00ff 16bit x 16 bit
.fwc addr 007e0000 cmd 50 0050 16bit x 16 bit
fwc addr 007e0000 cmd 20 0020 16bit x 16 bit
fwc addr 007e0000 cmd d0 00d0 16bit x 16 bit
flash_is_busy: 0
fwc addr 007e0000 cmd ff 00ff 16bit x 16 bit
. done
Erased 125 sectors

/******************************
Display memory at 0x20000
*******************************/

U-Boot> md.b 0x20000

00020000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
00020010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
00020020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
00020030: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................

/******************************
I want to try to copy some bytes to the memory with the cp.b command. This works with the at49bc642d flash.
Look at the memory at 0x90000000 in ram before copying it to flash at 0x20000
*******************************/
U-Boot> md.b 0x90000000

90000000: 00 00 00 00 33 cc 63 4c 77 cc 13 48 23 ec 37 dc ....3.cLw..H#.7.
90000010: 13 ce 33 cc 33 cc b3 cc 37 cc 73 ce 31 cc 33 cc ..3.3...7.s.1.3.

/******************************
Copy from RAM memory at 0x90000000 to Flash memory, this works on a normal ngw100 with at49bv642d
*******************************/
U-Boot> cp.b 0x90000000 0x20000 0x10

Copy to Flash... fwc addr (null) cmd 50 0050 16bit x 16 bit fwc addr (null) cmd 40 0040 16bit x 16 bit
flash_is_busy: 0
fwc addr 00020000 cmd ff 00ff 16bit x 16 bit
fwc addr (null) cmd 50 0050 16bit x 16 bit
fwc addr (null) cmd 40 0040 16bit x 16 bit
......
flash_is_busy: 0
fwc addr 00020000 cmd ff 00ff 16bit x 16 bit
fwc addr (null) cmd 50 0050 16bit x 16 bit
fwc addr (null) cmd 40 0040 16bit x 16 bit
flash_is_busy: 0
fwc addr 00020000 cmd ff 00ff 16bit x 16 bit
done

/******************************
Display memory at 0x20000, nothing has been written.
*******************************/
U-Boot> md.b 0x20000

00020000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
00020010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
U-Boot>
_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
.

A message that is not in the archive (sent off-list or not yet received): [email protected]

#3 lore raw

Hi Vipin

Quoted 6 lines

I have had a similar problem with spear3xx board. Basically, this flash is write protected in hardware by default. It has to be specifically made writable. Please define a flag CONFIG_SYS_FLASH_PROTECTION in your config file.

Thanks a lot. This works like charm :)

Now I have spent the whole day on trying to mount the device from Linux as a read/write partition but without luck.

I can mount the partition but if I try to do some writing to it I get:

Write clean marker to block at 0x00030000 failed: -30
...
repeated for all sector boundaries. If I reboot the device the partition is empty.

Then I tried to use flash_eraseall but it fails as well

# flash_eraseall -j /dev/mtd1
Erasing 64 Kibyte @ 0 --  0 % complete.
flash_eraseall: /dev/mtd1: MTD write failure: Read-only file system

I tried to unlock the flash (using protect off) before booting Linux but without any success.

I can't find any configuration option related to the NOR CFI flash in the spear3xx kernel configuration files.
Do you have any useful hint on this as well?

Regards
Gudjon

#4 lore raw
Quoted 2 lines · Gudjon I. Gudjonsson

Hi Vipin

Quoted 1 line

Hello Gudjon,

Quoted 10 lines
Quoted 5 lines

I have had a similar problem with spear3xx board. Basically, this flash is write protected in hardware by default. It has to be specifically made writable. Please define a flag CONFIG_SYS_FLASH_PROTECTION in your config file.

Thanks a lot. This works like charm :)

Now I have spent the whole day on trying to mount the device from Linux as a read/write partition but without luck.

Ideally, it should have happened now

Quoted 8 lines

I can mount the partition but if I try to do some writing to it I get:

Write clean marker to block at 0x00030000 failed: -30
...
repeated for all sector boundaries. If I reboot the device the partition is empty.

Quoted 8 lines

Then I tried to use flash_eraseall but it fails as well

# flash_eraseall -j /dev/mtd1
Erasing 64 Kibyte @ 0 --  0 % complete.
flash_eraseall: /dev/mtd1: MTD write failure: Read-only file system

I tried to unlock the flash (using protect off) before booting Linux but without any success.

There is one environment variable to do it. setenv unlock yes I think this should be sufficient

Quoted 4 lines

I can't find any configuration option related to the NOR CFI flash in the spear3xx kernel configuration files.
Do you have any useful hint on this as well?

Sorry, I dont have any other idea specifically for this. I will let you know if something comes to mind

Vipin

Quoted 7 lines

Regards
Gudjon
_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

#5 lore raw

[U-Boot] Using Micron (Numonyx) m28w640hcb with u-boot (Solved)

Hello Vipin

Quoted 5 lines
Quoted 3 lines

Now I have spent the whole day on trying to mount the device from Linux as a read/write partition but without luck.

Ideally, it should have happened now

Setting FORCE_WORD_WRITE to 1 in the cfi_cmdset_0001.c fixes the problem. #define FORCE_WORD_WRITE 1
but it is set to 0 by default.

Thanks again a lot for your help

Regards
Gudjon