Hi,
I'va a custom board with a i.MX8MQ and a Micron MT29F2G08A which should be used as boot device.
The flash is detected in linux and u-boot (using SD-boot) and I made some flashcp / dd tests in linux to verify the connection works.
However I'm not able to boot from the flash after writing the image using either kobs-ng in linux or nandbcb in u-boot.
Using the Lauterbach I can see parts of the u-boot-spl loaded to the internal RAM, but starting at a offset of ~9K there is some wrong code ever 2K for 32bytes.
instead of:
00002380 db ff ff 97 00 00 80 52 fd 7b c1 a8 c0 03 5f d6 |.......R.{...._.|
00002390 a0 02 80 12 c0 03 5f d6 fd 7b be a9 e6 03 01 2a |......_..{.....*|there is
00002380 c0 2b 7e 00 00 00 00 00 04 02 00 00 00 00 00 d6 |.+~.............|
00002390 a0 2b 7e 00 00 00 00 00 04 02 00 00 00 00 00 d6 |.+~.............|
and 2K later:
00002b80 21 00 80 52 80 09 80 52 e4 ff ff 17 a0 00 00 b0 |!..R...R........|
00002b90 00 38 12 91 d4 0d 00 14 fd 7b be a9 fd 03 00 91 |.8.......{......|
00002b80 c0 33 7e 00 00 00 00 00 05 02 00 00 00 00 00 b0 |.3~.............|
00002b90 00 33 7e 00 00 00 00 00 05 02 00 00 00 00 00 b0 |.3~.............|
and so on. Reading back the flash from linux the spl-content is correct.
u-boot=> nandbcb dump 0
device 0 whole chip
NAND FCB read from 0x0 offset 0x400 read: OK
NAND FCB read from 0x20000 offset 0x400 read: OK
NAND FCB read from 0x40000 offset 0x400 read: OK
NAND FCB read from 0x60000 offset 0x400 read: OK
NAND DBBT read from 0x80000 offset 0x14 read: OK
DBBT data read from 0x82000 offset 0x800 read: OK
NAND DBBT read from 0xa0000 offset 0x14 read: OK
DBBT data read from 0xa2000 offset 0x800 read: OK
NAND DBBT read from 0xc0000 offset 0x14 read: OK
DBBT data read from 0xc2000 offset 0x800 read: OK
NAND DBBT read from 0xe0000 offset 0x14 read: OK
DBBT data read from 0xe2000 offset 0x800 read: OK
FCB
checksum = 0xfffffc34
fingerprint = 0x20424346
version = 0x01000000
datasetup = 80
datahold = 60
addr_setup = 25
dsample_time = 6
pagesize = 2048
oob_pagesize = 2176
sectors = 64
nr_nand = 0
nr_die = 0
celltype = 0
ecc_type = 4
ecc_nr = 512
ecc_size = 512
ecc_level = 4
meta_size = 10
nr_blocks = 3
ecc_type_sdk = 0
ecc_nr_sdk = 0
ecc_size_sdk = 0
ecc_level_sdk = 0
nr_blocks_sdk = 0
meta_size_sdk = 0
erase_th = 0
bootpatch = 0
patch_size = 0
fw1_start = 512
fw2_start = 65792
fw1_pages = 52
fw2_pages = 52
dbbt_start = 256
bb_byte = 1999
bb_start_bit = 0
phy_offset = 2048
bchtype = 0
readlatency = 0
predelay = 0
cedelay = 0
postdelay = 0
cmdaddpause = 0
datapause = 0
tmspeed = 0
busytimeout = 0
disbbm = 0
spare_offset = 0
onfi_sync_enable = 0
onfi_sync_speed = 0
onfi_sync_nand_data = 0
disbbm_search = 0
disbbm_search_limit = 0
read_retry_enable = 0
DBBT :
checksum = 0x00000000
fingerprint = 0x54424244
version = 0x01000000
dbbtpages = 1
0 Firmware: image #0 @ 0x200 size 0x1a000
Firmware: image #1 @ 0x10100 size 0x1a000
I have no idea what could cause this? As it's 32Bytes ever 2K it might be the metadata??
BR
Ralf