[U-Boot] Using Micron (Numonyx) m28w640hcb with u-boot
Gudjon I. Gudjonsson
gudjon at gudjon.org
Sat Nov 12 13:01:58 CET 2011
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>
More information about the U-Boot
mailing list