AnsweredAssumed Answered

NAND flashing using kobs-ng

Question asked by Mihaita Ivascu on Sep 27, 2019
Latest reply on Oct 15, 2019 by Mihaita Ivascu

Hello,

 

    I am trying to update the mtd partitions on imx6ul platform using mfgtools . I have created a .xml script

    Everything runs without issues until I want to flash the new barebox bootloader using kobs-ng tool.

 

UTP: received command '$ mount -t debugfs debugfs /sys/kernel/debug'
UTP: executing "mount -t debugfs debugfs /sys/kernel/debug"
UTP: sending Success to kernel for command $ mount -t debugfs debugfs /sys/kernel/debug.
[ 6.009463] utp_poll: pass returned.
UTP: received command '$ mount | grep ^debugfs'
UTP: executing "mount | grep ^debugfs"
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
UTP: sending Success to kernel for command $ mount | grep ^debugfs.
[ 6.271066] utp_poll: pass returned.
UTP: received command '$ flash_erase /dev/mtd0 0 0'
UTP: executing "flash_erase /dev/mtd0 0 0"
Erasing 128 Kibyte @ 64004e0000 -- -1 % complete
UTP: sending Success to kernel for command $ flash_erase /dev/mtd0 0 0.
[ 6.530622] utp_poll: pass returned.
UTP: received command 'send'
UTP: sending Success to kernel for command send.
UTP: received command '$ kobs-ng init -x -v --chip_0_device_path=/dev/mtd0 $FILE'
UTP: executing "kobs-ng init -x -v --chip_0_device_path=/dev/mtd0 $FILE"
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 = 0
-- We add the 1k-padding to the uboot.
.tmp_kobs_ng: verifying using key '00000000000000000000000000000000'
.tmp_kobs_ng: is a valid bootstream for key '00000000000000000000000000000000'
mtd: Linux[ 6.693158] ------------[ cut here ]------------
[ 6.698005] Kernel BUG at c057cdfc [verbose debug info unavailable]
[ 6.704291] Internal error: Oops - BUG: 0 [#1] SMP ARM
[ 6.709449] Modules linked in:
[ 6.712552] CPU: 0 PID: 111 Comm: kobs-ng Not tainted 4.8.0 #18
[ 6.718486] Hardware name: Freescale i.MX6 Ultralite (Device Tree)
[ 6.724684] task: c3e58000 task.stack: c3e2e000
[ 6.729248] PC is at nand_fill_oob+0x44/0xac
[ 6.733546] LR is at mtd_ooblayout_free+0x5c/0x74
[ 6.738272] pc : [<c057cdfc>] lr : [<c055f88c>] psr: a0000013
[ 6.738272] sp : c3e2fca0 ip : c3e2fbf0 fp : c3e2fcc4
[ 6.749770] r10: c3d89800 r9 : 00000100 r8 : 00000000
[ 6.755013] r7 : 00000000 r6 : c3e2fdc8 r5 : de42e0b8 r4 : 00000010
[ 6.761561] r3 : c3e2fc50 r2 : c3e2fc50 r1 : 00000001 r0 : ffffffde
[ 6.768109] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
[ 6.775262] Control: 10c5387d Table: 83e6006a DAC: 00000051
[ 6.781023] Process kobs-ng (pid: 111, stack limit = 0xc3e2e210)
[ 6.787046] Stack: (0xc3e2fca0 to 0xc3e30000)
[ 6.791432] fca0: 00000000 c3e2fcb0 de42e0b8 00000800 00000800 00000000 c3e2fd34 c3e2fcc8
[ 6.799634] fcc0: c057d19c c057cdc4 c3e2fcec c3e2fcd8 c0964e78 c0173f98 de42e0b8 de42e710
[ 6.807838] fce0: c3e2fd34 0000003f 00000000 00000000 00000000 00000010 00000010 c3d89800
[ 6.816039] fd00: 00000100 00000000 60000013 c3e2fdc8 de42e0b8 00080000 00000000 00000800
[ 6.824241] fd20: 00000000 00000000 c3e2fd5c c3e2fd38 c057d6a8 c057ce70 c3e2fdc8 c3e2fd48
[ 6.832444] fd40: 00000000 00000000 00080800 00000000 c3e2fd84 c3e2fd60 c0562670 c057d614
[ 6.840646] fd60: c3e2fdc8 00000800 c0562604 00000051 c3ccb800 bede4ac8 c3e2fda4 c3e2fd88
[ 6.848847] fd80: c055ec9c c0562610 c3e2fdc8 bede4ac8 00000800 00099110 c3e2fedc c3e2fda8
[ 6.857049] fda0: c0564b8c c055ec64 c3e2fdc8 00000002 c0f229e8 00000000 c3e2fe4c c3e2fdc8
[ 6.865249] fdc0: c016f49c c016e4e8 00000001 00000800 00000000 00000000 00000000 00000000
[ 6.873451] fde0: c3d89800 00000010 00080000 00000000 00000800 00000000 00000000 00000000
[ 6.881654] fe00: 00098910 00000000 00099110 00000000 00000001 00080000 c3e2e000 00000000
[ 6.889856] fe20: c3e2fe54 c3e2fe30 c016ec14 c016e4e8 c096101c c3e58000 00000001 c173d414
[ 6.898059] fe40: c3e58000 c3e2e000 c3e2fe74 c3e2fe58 c016ed78 c016ebb4 c0f35cc4 60000013
[ 6.906261] fe60: c0f35cc8 c173d414 c3e2fe84 c3e2fe78 c016ee44 c016ec48 c3e2fedc c3e2fe88
[ 6.914462] fe80: c096101c c016ee3c 00000001 00000000 c056554c c3e2fea0 c0962da4 c014e30c
[ 6.922665] fea0: 00000001 c3e2fea0 c3e2fedc c0f35cc4 00000000 c0f35cc4 c3e01dc0 c0304d18
[ 6.930865] fec0: bede4ac8 00000007 c3e2e000 00000000 c3e2fefc c3e2fee0 c056555c c0564130
[ 6.939068] fee0: bede4ac8 de7eef50 c3e01dc0 c02319c4 c3e2ff7c c3e2ff00 c0230fc0 c0565530
[ 6.947269] ff00: de64e8c8 c022d69c 00000002 de5c96a0 ffffff9c c3cdc000 00000000 00000000
[ 6.955471] ff20: c3e2e000 0000002a de64e8c0 de5c96a0 00000002 de64e8c8 c3e2e000 00000000
[ 6.963672] ff40: c3e2ff7c c3e2ff50 c021e030 c02610a0 00000000 c3e01dc0 00000007 c3e01dc0
[ 6.971874] ff60: c0304d18 bede4ac8 c3e2e000 00000000 c3e2ffa4 c3e2ff80 c02319c4 c0230f30
[ 6.980075] ff80: 00097838 00000000 00000001 00000036 c0107fc4 c3e2e000 00000000 c3e2ffa8
[ 6.988278] ffa0: c0107e20 c0231994 00097838 00000000 00000007 c0304d18 bede4ac8 00000000
[ 6.996480] ffc0: 00097838 00000000 00000001 00000036 00098910 00000800 00000800 00097838
[ 7.004682] ffe0: 0003f064 bede4a9c 0001470c b6ebab9c 20000010 00000007 9eff6861 9eff6c61
[ 7.012872] Backtrace:
[ 7.015377] [<c057cdb8>] (nand_fill_oob) from [<c057d19c>] (nand_do_write_ops+0x338/0x41c)
[ 7.023657] r7:00000000 r6:00000800 r5:00000800 r4:de42e0b8
[ 7.029435] [<c057ce64>] (nand_do_write_ops) from [<c057d6a8>] (nand_write_oob+0xa0/0xc0)
[ 7.037627] r10:00000000 r9:00000000 r8:00000800 r7:00000000 r6:00080000 r5:de42e0b8
[ 7.045582] r4:c3e2fdc8
[ 7.048166] [<c057d608>] (nand_write_oob) from [<c0562670>] (part_write_oob+0x6c/0x7c)
[ 7.056095] r7:00000000 r6:00080800 r5:00000000 r4:00000000
[ 7.061870] [<c0562604>] (part_write_oob) from [<c055ec9c>] (mtd_write_oob+0x44/0x5c)
[ 7.069713] r7:bede4ac8 r6:c3ccb800 r5:00000051 r4:c0562604
[ 7.075491] [<c055ec58>] (mtd_write_oob) from [<c0564b8c>] (mtdchar_ioctl+0xa68/0x1400)
[ 7.083507] r4:00099110
[ 7.086092] [<c0564124>] (mtdchar_ioctl) from [<c056555c>] (mtdchar_unlocked_ioctl+0x38/0x50)
[ 7.094629] r10:00000000 r9:c3e2e000 r8:00000007 r7:bede4ac8 r6:c0304d18 r5:c3e01dc0
[ 7.102584] r4:c0f35cc4
[ 7.105167] [<c0565524>] (mtdchar_unlocked_ioctl) from [<c0230fc0>] (do_vfs_ioctl+0x9c/0xa64)
[ 7.113705] r7:c02319c4 r6:c3e01dc0 r5:de7eef50 r4:bede4ac8
[ 7.119474] [<c0230f24>] (do_vfs_ioctl) from [<c02319c4>] (SyS_ioctl+0x3c/0x64)
[ 7.126798] r10:00000000 r9:c3e2e000 r8:bede4ac8 r7:c0304d18 r6:c3e01dc0 r5:00000007
[ 7.134751] r4:c3e01dc0
[ 7.137335] [<c0231988>] (SyS_ioctl) from [<c0107e20>] (ret_fast_syscall+0x0/0x1c)
[ 7.144922] r9:c3e2e000 r8:c0107fc4 r7:00000036 r6:00000001 r5:00000000 r4:00097838
[ 7.152803] Code: 0a00000c 3a000002 e3530002 0a000000 (e7f001f2)
[ 7.158925] ---[ end trace 99ebc33cf53f1bb5 ]---
4.8
mtd: use new bch layout raw access mode
mtd: opening: "/dev/mtd0"
Cannot open BCH geometry node: "/sys/kernel/debug/gpmi-nand/bch_geometry"
NFC geometry :
ECC Strength : 8
Page Size in Bytes : 2112
Metadata size : 10
ECC Chunk Size in byte : 512
ECC Chunk count : 4
Block Mark Byte Offset : 1999
Block Mark Bit Offset : 0
====================================================
mtd: opened '/dev/mtd0' - '(null)'
mtd: max_boot_stream_size_in_bytes = 2097152
mtd: boot_stream_size_in_bytes = 603649
mtd: boot_stream_size_in_pages = 295
mtd: #1 0x00100000 - 0x00300000 (0x00193601)
mtd: #2 0x00300000 - 0x00500000 (0x00393601)
FCB
m_u32Checksum = 0x00000000
m_u32FingerPrint = 0x20424346
m_u32Version = 0x01000000
m_NANDTiming.m_u8DataSetup = 80
m_NANDTiming.m_u8DataHold = 60
m_NANDTiming.m_u8AddressSetup = 25
m_NANDTiming.m_u8DSAMPLE_TIME = 6
m_u32PageDataSize = 2048
m_u32TotalPageSize = 2112
m_u32SectorsPerBlock = 64
m_u32NumberOfNANDs = 0
m_u32TotalInternalDie = 0
m_u32CellType = 0
m_u32EccBlockNEccType = 4
m_u32EccBlock0Size = 512
m_u32EccBlockNSize = 512
m_u32EccBlock0EccType = 4
m_u32MetadataBytes = 10
m_u32NumEccBlocksPerPage = 3
m_u32EccBlockNEccLevelSDK = 0
m_u32EccBlock0SizeSDK = 0
m_u32EccBlockNSizeSDK = 0
m_u32EccBlock0EccLevelSDK = 0
m_u32NumEccBlocksPerPageSDK = 0
m_u32MetadataBytesSDK = 0
m_u32EraseThreshold = 0
m_u32Firmware1_startingPage = 512
m_u32Firmware2_startingPage = 1536
m_u32PagesInFirmware1 = 295
m_u32PagesInFirmware2 = 295
m_u32DBBTSearchAreaStartAddress = 256
m_u32BadBlockMarkerByte = 1999
m_u32BadBlockMarkerStartBit = 0
m_u32BBMarkerPhysicalOffset = 2048
m_u32BCHType = 0
m_NANDTMTiming.m_u32TMTiming2_ReadLatency = 0
m_NANDTMTiming.m_u32TMTiming2_PreambleDelay = 0
m_NANDTMTiming.m_u32TMTiming2_CEDelay = 0
m_NANDTMTiming.m_u32TMTiming2_PostambleDelay = 0
m_NANDTMTiming.m_u32TMTiming2_CmdAddPause = 0
m_NANDTMTiming.m_u32TMTiming2_DataPause = 0
m_NANDTMTiming.m_u32TMSpeed = 0
m_NANDTMTiming.m_u32TMTiming1_BusyTimeout = 0
m_u32DISBBM = 0
m_u32BBMarkerPhysicalOffsetInSpareData = 0
m_u32OnfiSyncEnable = 0
m_NANDONFITiming.m_u32ONFISpeed = 0
m_NANDONFITiming.m_u32ONFITiming_ReadLatency = 0
m_NANDONFITiming.m_u32ONFITiming_CEDelay = 0
m_NANDONFITiming.m_u32ONFITiming_PreambleDelay = 0
m_NANDONFITiming.m_u32ONFITiming_PostambleDelay = 0
m_NANDONFITiming.m_u32ONFITiming_CmdAddPause = 0
m_NANDONFITiming.m_u32ONFITiming_DataPause = 0
m_NANDONFITiming.m_u32ONFITiming_BusyTimeout = 0
m_u32DISBBSearch = 0
m_u32RandomizerEnable = 0
m_u32ReadRetryEnable = 0
m_u32ReadRetrySeqLength = 0
DBBT
m_u32Checksum = 0x00000000
m_u32FingerPrint = 0x54424244
m_u32Version = 0x01000000
m_u32DBBTNumOfPages = 0
Firmware: image #0 @ 0x100000 size 0x93800 - available 0x200000
Firmware: image #1 @ 0x300000 size 0x93800 - available 0x200000
-------------- Start to write the [ FCB ] -----
mtd: erasing @0:0x0-0x20000
mtd: Writing FCB0 [ @0:0x0 ] (840) *
mtd: erasing @0:0x20000-0x40000
mtd: Writing FCB1 [ @0:0x20000 ] (840) *
mtd: erasing @0:0x40000-0x60000
mtd: Writing FCB2 [ @0:0x40000 ] (840) *
mtd: erasing @0:0x60000-0x80000
mtd: Writing FCB3 [ @0:0x60000 ] (840) *
mtd_commit_bcb(FCB): status 0

-------------- Start to write the [ DBBT ] -----
mtd: erasing @0:0x80000-0xa0000
mtd: Writing DBBT0 [ @0:0x80000 ] (800) *

 

As it can be seen debufs seems to be mounted successfully but still i get :

 

Cannot open BCH geometry node: "/sys/kernel/debug/gpmi-nand/bch_geometry"

 

I know similar questions might have been asked before but I was not able to get ans aswer so far

 

Thanks,

      Mihaita

Outcomes