I get the same results using kobs-ng from the i.MX28 10.12.01 release as from the i.MX53 11.03 release. I just tried the latter as an experiment. The output listed below is from the i.MX28 10.12.01 version, unmodified, with the "-v" option.
================================================
FYI, here is the output from the "NAND Scan" dring kernel booting:
Scanning for NAND Flash chips...
nand_get_flash_type ##### Micron MT29F32G08CBACA detected! #####
NAND device: Manufacturer ID: 0x2c, Chip ID: 0x68 (Micron NAND 512MiB 3,3V 8-bit
)
-----------------------------
NAND Flash Device Information
-----------------------------
Manufacturer : Micron (0x2c)
Device Code : 0x68
Cell Technology : MLC
Chip Size : 4 GiB
Pages per Block : 256
Page Geometry : 4096+224
ECC Strength : 16 bits
ECC Size : 512 B
Data Setup Time : 15 ns
Data Hold Time : 10 ns
Address Setup Time: 20 ns
GPMI Sample Delay : 6 ns
tREA : 20 ns
tRLOH : 5 ns
tRHOH : 15 ns
Description : MT29F32G08CBABA (4GB, 1CE); MT29F32G08CBACA (4GB, 1CE); MT29
F64G08CEABA (8GB, 2CE); MT29F64G08CFABA (8GB, 2CE)
-----------------
Physical Geometry
-----------------
Chip Count : 1
Page Data Size in Bytes: 4096 (0x1000)
Page OOB Size in Bytes : 224
Block Size in Bytes : 1048576 (0x100000)
Block Size in Pages : 256 (0x100)
Chip Size in Bytes : 4294967296 (0x100000000)
Chip Size in Pages : 1048576 (0x100000)
Chip Size in Blocks : 4096 (0x1000)
Medium Size in Bytes : 4294967296 (0x100000000)
------------
NFC Geometry
------------
ECC Algorithm : BCH
ECC Strength : 16
Page Size in Bytes : 4320
Metadata Size in Bytes : 10
ECC Chunk Size in Bytes: 512
ECC Chunk Count : 8
Payload Size in Bytes : 4096
Auxiliary Size in Bytes: 20
Auxiliary Status Offset: 12
Block Mark Byte Offset : 3904
Block Mark Bit Offset : 0
-----------------
Boot ROM Geometry
-----------------
Boot Area Count : 1
Boot Area Size in Bytes : 20971520 (0x1400000)
Stride Size in Pages : 64
Search Area Stride Exponent: 2
Scanning device for bad blocks
Bad eraseblock 90 at 0x000005a00000
Bad eraseblock 91 at 0x000005b00000
Bad eraseblock 2350 at 0x000092e00000
Bad eraseblock 3721 at 0x0000e8900000
Boot area protection is enabled.
Creating 2 MTD partitions on "gpmi-nfc-main":
0x000000000000-0x000001400000 : "gpmi-nfc-0-boot"
0x000001400000-0x000100000000 : "gpmi-nfc-general-use"
Creating 2 MTD partitions on "gpmi-nfc-general-use":
0x000000000000-0x000080000000 : "gpmi-nfc-ubi-0"
0x000080000000-0x0000fec00000 : "gpmi-nfc-ubi-1"
================================================
Here is the output from flashing the NAND boot partition:
root@imx28evk ~$ kobs-ng init -v /boot/imx28_ivt_linux.sb
WARNING: Parameter 'chip_count' is no longer used, ignoring
MTD CONFIG:
chip_0_device_path = "/dev/mtd0"
chip_1_device_path = "(null)"
search_exponent = 2
data_setup_time = 80
data_hold_time = 60
address_setup_time = 25
data_sample_time = 6
row_address_size = 3
column_address_size = 2
read_command_code1 = 0
read_command_code2 = 48
boot_stream_major_version = 1
boot_stream_minor_version = 0
boot_stream_sub_version = 0
ncb_version = 3
boot_stream_1_address = 0
boot_stream_2_address = 22020096
/boot/imx28_ivt_linux.sb: verifying using key '00000000000000000000000000000000'
boot image header:
m_digest = dbd32a21925cd39866991c8645489b1140f5beca
m_signature = STMP
m_majorVersion = 1
m_minorVersion = 1
m_flags = ROM_DISPLAY_PROGRESS (1)
m_imageBlocks = 158823
m_firstBootTagBlock = 9
m_firstBootableSectionID = 0
m_keyCount = 1
m_keyDictionaryBlock = 7
m_headerBlocks = 6
m_sectionCount = 1
m_sectionHeaderSize = 1
m_timestamp = Thu Nov 17 12:48:46 2011
m_productVersion.m_major = 0x9909
m_productVersion.m_minor = 0x9909
m_productVersion.m_revision = 0x9909
m_componentVersion.m_major = 0x9909
m_componentVersion.m_minor = 0x9909
m_componentVersion.m_revision = 0x9909
m_driveTag = 0
* Using user supplied key='00000000000000000000000000000000'
section header #0:
m_identifier = 0
m_offset = 10
m_length = 158811
m_flags = ROM_SECTION_BOOTABLE (0x1)
* calculated-mac = ec09ba86b06b388e489db43c4e422096
dek dictionary entry #0:
m_mac = ec09ba86b06b388e489db43c4e422096
m_dek = 38fef40f4f646906803f669f30034bcd
* Key matched at #0
* session_key = 205c6c61d6a9d94053bdbaff83d3d19c
LOAD m_address=0x00000000 m_count=0x00000dcc
LOAD m_address=0x00000dcc m_count=0x00000348
LOAD m_address=0x00001114 m_count=0x0000004c
LOAD m_address=0x00001160 m_count=0x00000084
LOAD m_address=0x000011e4 m_count=0x000000a0
LOAD m_address=0x00001284 m_count=0x00000024
LOAD m_address=0x000012a8 m_count=0x00000024
LOAD m_address=0x000012cc m_count=0x00000008
LOAD m_address=0x000012d4 m_count=0x00000010
LOAD m_address=0x000012e4 m_count=0x0000006c
LOAD m_address=0x00001350 m_count=0x0000007c
LOAD m_address=0x000013cc m_count=0x0000000c
LOAD m_address=0x000013d8 m_count=0x00000064
LOAD m_address=0x0000143c m_count=0x00000050
LOAD m_address=0x0000148c m_count=0x00000134
LOAD m_address=0x000015c0 m_count=0x00000050
LOAD m_address=0x00001610 m_count=0x00000144
LOAD m_address=0x00001754 m_count=0x00000030
LOAD m_address=0x00001784 m_count=0x00000030
LOAD m_address=0x000017b4 m_count=0x0000005c
LOAD m_address=0x00001810 m_count=0x00000030
LOAD m_address=0x00001840 m_count=0x000000c0
LOAD m_address=0x00001900 m_count=0x0000005c
LOAD m_address=0x0000195c m_count=0x00000084
LOAD m_address=0x000019e0 m_count=0x000000a8
LOAD m_address=0x00001a88 m_count=0x00000068
LOAD m_address=0x00001af0 m_count=0x0000001c
LOAD m_address=0x00001b0c m_count=0x00000028
LOAD m_address=0x00001b34 m_count=0x0000001c
LOAD m_address=0x00001b50 m_count=0x00000028
LOAD m_address=0x00001b78 m_count=0x00000020
LOAD m_address=0x00001b98 m_count=0x00000140
LOAD m_address=0x00001cd8 m_count=0x00000034
LOAD m_address=0x00001d0c m_count=0x00000014
LOAD m_address=0x00001d20 m_count=0x00000034
LOAD m_address=0x00001d54 m_count=0x00000014
LOAD m_address=0x00001d68 m_count=0x00000030
LOAD m_address=0x00001d98 m_count=0x00000034
LOAD m_address=0x00001dcc m_count=0x00000030
LOAD m_address=0x00001dfc m_count=0x00000004
LOAD m_address=0x00001e00 m_count=0x00000020
LOAD m_address=0x00001e20 m_count=0x0000003c
LOAD m_address=0x00001e5c m_count=0x00000014
LOAD m_address=0x00001e70 m_count=0x00000018
LOAD m_address=0x00001e88 m_count=0x00000018
LOAD m_address=0x00001ea0 m_count=0x00000018
LOAD m_address=0x00001eb8 m_count=0x00000020
LOAD m_address=0x00001ed8 m_count=0x00000020
LOAD m_address=0x00001ef8 m_count=0x00000024
LOAD m_address=0x00001f1c m_count=0x00000024
LOAD m_address=0x00001f40 m_count=0x00000054
LOAD m_address=0x00001f94 m_count=0x00000030
LOAD m_address=0x00001fc4 m_count=0x00000038
LOAD m_address=0x00001ffc m_count=0x000000dc
LOAD m_address=0x000020d8 m_count=0x00000068
LOAD m_address=0x00002140 m_count=0x00000024
LOAD m_address=0x00002164 m_count=0x00000018
LOAD m_address=0x0000217c m_count=0x00000024
LOAD m_address=0x000021a0 m_count=0x00000018
LOAD m_address=0x000021b8 m_count=0x00000024
LOAD m_address=0x000021dc m_count=0x00000008
LOAD m_address=0x000021e4 m_count=0x00000018
LOAD m_address=0x000021fc m_count=0x00000028
LOAD m_address=0x00002224 m_count=0x0000000c
LOAD m_address=0x00002230 m_count=0x000000d8
LOAD m_address=0x00002308 m_count=0x0000001c
LOAD m_address=0x00002324 m_count=0x00000164
LOAD m_address=0x00002488 m_count=0x00000078
LOAD m_address=0x00002500 m_count=0x00000064
LOAD m_address=0x00002564 m_count=0x00000038
LOAD m_address=0x0000259c m_count=0x00000008
LOAD m_address=0x000025a4 m_count=0x000000bc
LOAD m_address=0x00002660 m_count=0x0000008c
LOAD m_address=0x000026ec m_count=0x000000b0
LOAD m_address=0x0000279c m_count=0x00000010
LOAD m_address=0x000027ac m_count=0x00000048
LOAD m_address=0x000027f4 m_count=0x0000002c
LOAD m_address=0x00002820 m_count=0x00000005
FILL m_address=0x00002828 m_count=0x00000024 m_data=0x00000000
LOAD m_address=0x00008000 m_count=0x00000020
CALL m_address=0x00008000 m_data=0x00000000
LOAD m_address=0x00000000 m_count=0x000018a4
LOAD m_address=0x000018a4 m_count=0x000000f4
LOAD m_address=0x00008000 m_count=0x00000020
CALL m_address=0x00008000 m_data=0x00000000
LOAD m_address=0x00002000 m_count=0x00000144
LOAD m_address=0x00002160 m_count=0x0000073c
LOAD m_address=0x000028a0 m_count=0x00000004
LOAD m_address=0x000028c0 m_count=0x00000008
LOAD m_address=0x000028c8 m_count=0x00000028
LOAD m_address=0x00002900 m_count=0x0000019c
LOAD m_address=0x00002aa0 m_count=0x000000a8
FILL m_address=0x00002b60 m_count=0x00000014 m_data=0x00000000
LOAD m_address=0x00008000 m_count=0x00000020
CALL m_address=0x00008000 m_data=0x00000000
LOAD m_address=0x40008000 m_count=0x00267008
LOAD m_address=0x00008000 m_count=0x00000020
JUMP m_address=0x00008000 m_data=0x00000000
* read SHA1 = 7020718ff6dc7a53e7ce926ef819003ddb2d19c4
* calc SHA1 = 7020718ff6dc7a53e7ce926ef819003ddb2d19c4
/boot/imx28_ivt_linux.sb: is a valid bootstream for key '00000000000000000000000
000000000'
mtd: opening: "/dev/mtd0"
NFC Geometry
ECC Algorithm : BCH
ECC Strength : 16
Page Size in Bytes : 4320
Metadata Size in Bytes : 10
ECC Chunk Size in Bytes: 512
ECC Chunk Count : 8
Payload Size in Bytes : 4096
Auxiliary Size in Bytes: 20
Auxiliary Status Offset: 12
Block Mark Byte Offset : 3904
Block Mark Bit Offset : 0
mtd: opened '/dev/mtd0' - '(null)'
mtd: max_boot_stream_size_in_bytes = 9437184
mtd: boot_stream_size_in_bytes = 2541168
mtd: #1 0x00200000 - 0x00b00000 (0x0046c670)
mtd: #2 0x00b00000 - 0x01400000 (0x00d6c670)
m_u32Checksum = 0
m_u32FingerPrint = 541213510
m_u32Version = 16777216
FCB
m_NANDTiming.m_u8DataSetup = 80
m_NANDTiming.m_u8DataHold = 60
m_NANDTiming.m_u8AddressSetup = 25
m_NANDTiming.m_u8DSAMPLE_TIME = 6
m_u32DataPageSize = 4096
m_u32TotalPageSize = 4320
m_u32SectorsPerBlock = 256
m_u32NumberOfNANDs = 0
m_u32TotalInternalDie = 0
m_u32CellType = 0
m_u32EccBlockNEccType = 0
m_u32EccBlock0Size = 512
m_u32EccBlockNSize = 512
m_u32EccBlock0EccType = 0
m_u32MetadataBytes = 10
m_u32NumEccBlocksPerPage = 7
m_u32EccBlockNEccLevelSDK = 0
m_u32EccBlock0SizeSDK = 0
m_u32EccBlockNSizeSDK = 0
m_u32EccBlock0EccLevelSDK = 0
m_u32NumEccBlocksPerPageSDK = 0
m_u32MetadataBytesSDK = 0
m_u32EraseThreshold = 0
m_u32BootPatch = 0
m_u32PatchSectors = 0
m_u32Firmware1_startingSector = 512
m_u32Firmware2_startingSector = 2816
m_u32SectorsInFirmware1 = 621
m_u32SectorsInFirmware2 = 621
m_u32DBBTSearchAreaStartAddress = 256
m_u32BadBlockMarkerByte = 3904
m_u32BadBlockMarkerStartBit = 0
m_u32BBMarkerPhysicalOffset = 4096
m_u32NumberBB = 102317136
m_u32Number2KPagesBB = 0
Firmware: image #0 @ 0x200000 size 0x26d000 - available 0x900000
Firmware: image #1 @ 0xb00000 size 0x26d000 - available 0x900000
NCB versions differ, 3 is used.
mtd: erasing @0:0x0-0x100000
mtd: Writing FCB0 @0:0x0(10e0)
mtd: Writing FCB1 @0:0x40000(10e0)
mtd: Writing FCB2 @0:0x80000(10e0)
mtd: Writing FCB3 @0:0xc0000(10e0)
mtd: erasing @0:0x0-0x100000
mtd: Writing FCB0 @0:0x0(10e0)
mtd: Writing FCB1 @0:0x40000(10e0)
mtd: Writing FCB2 @0:0x80000(10e0)
mtd: Writing FCB3 @0:0xc0000(10e0)
mtd_commit_bcb(FCB): status 0
mtd: erasing @0:0x100000-0x100000
mtd: Writing DBBT0 @0:0x100000(1000)
mtd: Writing DBBT1 @0:0x140000(1000)
mtd: Writing DBBT2 @0:0x180000(1000)
mtd: Writing DBBT3 @0:0x1c0000(1000)
mtd: erasing @0:0x100000-0x100000
mtd: Writing DBBT0 @0:0x100000(1000)
mtd: Writing DBBT1 @0:0x140000(1000)
mtd: Writing DBBT2 @0:0x180000(1000)
mtd: Writing DBBT3 @0:0x1c0000(1000)
mtd_commit_bcb(DBBT): status 0
mtd: Writting firmware image #0 @0: 0x00200000 - 0x0046d000
mtd: erasing @0:0x200000-0x100000
mtd: erasing @0:0x300000-0x100000
mtd: erasing @0:0x400000-0x100000
mtd: Writting firmware image #1 @0: 0x00b00000 - 0x00d6d000
mtd: erasing @0:0xb00000-0x100000
mtd: erasing @0:0xc00000-0x100000
mtd: erasing @0:0xd00000-0x100000
root@imx28evk ~$
================================================
Here is a dump of the first 32 bytes of '/dev/mtd0', with only 2 '0x00' bytes before the start of the checksum instead of the correct 12 bytes:
root@imx28evk ~$ hexdump -C -n 32 /dev/mtd0
00000000 00 00 07 fc ff ff 46 43 42 20 00 00 00 01 50 3c |......FCB ....P<|
00000010 19 06 00 00 00 00 00 10 00 00 e0 10 00 00 00 01 |................|
00000020
================================================
Finally, here is the error I receive when I power down from NFS boot+root fs, reset the EVK boot switches, then attempt to boot from NAND:
The system is going down NOW!
Sent SIGTERM to all processes
Sent SIGKILL to all processes
Power down.
HW_RTC_PERSISTENT0 = 0x220100
HW_RTC_PERSISTENT0 = 0x200100
0x80508001
Thanks for your help,
Darrell