WinBond NAND device connected to iMX6 SoloXGPMI nand controller is not booting up.
NAND device can be detected by U-boot and Kernel.
Strange Bad Blocks detected on Block 0 and 1 which is guaranteed by manufacturer.
I have setup the IOMUX for NAND in both u-boot and kernel dts file.
I have attached the logs from the serial console.
U-Boot 2015.04-imx_v2015.04_3.14.52_1.1.0_ga+g6cf684a (Jun 16 2016 - 15:05:37)
CPU: Freescale i.MX6SX rev1.2 at 792 MHz
CPU: Temperature 41 C
Reset cause: POR
Board: MX6SX SABRE SDB
I2C: ready
DRAM: 512 MiB
PMIC: PFUZE100 ID=0x30
NAND: 128 MiB
Using default environment
In: serial
Out: serial
Err: serial
Net: CPU Net Initialization Failed
No ethernet found.
Boot from USB for mfgtools
Use default environment for mfgtools
Run bootcmd_mfg: run mfgtool_args;bootz ${loadaddr} ${initrd_addr} ${fdt_addr};
Hit any key to stop autoboot: 0
Kernel image @ 0x80800000 [ 0x000000 - 0x48b760 ]
## Loading init Ramdisk from Legacy Image at 83800000 ...
Image Name: fsl-image-mfgtool-initramfs-imx6
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 7508220 Bytes = 7.2 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
Using Device Tree in place at 83000000, end 8300db6d
Starting kernel ...
Booting Linux on physical CPU 0x0
Linux version 3.14.52-1.1.0_ga (administrator@sghelivm03) (gcc version 4.9.1 (GCC) ) #10 SMP PREEMPT Thu Jun 16 17:34:22 MYT 2016
CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine model: Freescale i.MX6 SoloX SDB Board
cma: CMA: reserved 320 MiB at 8c000000
Memory policy: Data cache writealloc
PERCPU: Embedded 8 pages/cpu @8bb3c000 s8256 r8192 d16320 u32768
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048
Kernel command line: console=ttymxc0,115200 rdinit=/linuxrc g_mass_storage.stall=0 g_mass_storage.removable=1 g_mass_storage.idVendor=0x066F g_mass_storage.idProduct=0x37FF g_mass_storage.iSerialNumber=
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 175124K/524288K available (5976K kernel code, 333K rwdata, 1864K rodata, 248K init, 387K bss, 349164K reserved, 0K highmem)
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
vmalloc : 0xa0800000 - 0xff000000 (1512 MB)
lowmem : 0x80000000 - 0xa0000000 ( 512 MB)
pkmap : 0x7fe00000 - 0x80000000 ( 2 MB)
modules : 0x7f000000 - 0x7fe00000 ( 14 MB)
.text : 0x80008000 - 0x807b04fc (7842 kB)
.init : 0x807b1000 - 0x807ef040 ( 249 kB)
.data : 0x807f0000 - 0x80843720 ( 334 kB)
.bss : 0x8084372c - 0x808a4434 ( 388 kB)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Preemptible hierarchical RCU implementation.
RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
NR_IRQS:16 nr_irqs:16 16
L310 cache controller enabled
l2x0: 16 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x32030000, Cache size: 256 kB
Switching to timer-based delay loop
sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655765682ns
clocksource_of_init: no matching clocksources found
Console: colour dummy device 80x30
Calibrating delay loop (skipped), value calculated using timer frequency.. 6.00 BogoMIPS (lpj=30000)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x805b0f80 - 0x805b0fd8
Brought up 1 CPUs
SMP: Total of 1 processors activated (6.00 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
pinctrl core: initialized pinctrl subsystem
regulator-dummy: no parameters
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
cpuidle: using governor ladder
cpuidle: using governor menu
Use WDOG1 as reset source
syscon 20c8000.anatop: regmap [mem 0x020c8000-0x020c8fff] registered
vdd1p1: 800 <--> 1375 mV at 1100 mV
vdd3p0: 2625 <--> 3400 mV at 3000 mV
vdd2p5: 2100 <--> 2875 mV at 2500 mV
cpu: 725 <--> 1450 mV at 1150 mV
vddpcie-phy: 725 <--> 1450 mV
vddsoc: 725 <--> 1450 mV at 1175 mV
syscon 20e4000.iomuxc-gpr: regmap [mem 0x020e4000-0x020e7fff] registered
syscon 21bc000.ocotp-ctrl: regmap [mem 0x021bc000-0x021bffff] registered
syscon 21ac000.romcp: regmap [mem 0x021ac000-0x021affff] registered
hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
hw-breakpoint: maximum watchpoint size is 4 bytes.
imx6sx-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver
20dc000.gpc supply pu not found, using dummy regulator
MU is ready for cross core communication!
bio: create slab <bio-0> at 0
mxs-dma 1804000.dma-apbh: initialized
VCC_SD3: 3000 mV
PSU-5V0: 5000 mV
vref-3v3: 3300 mV
usb_otg1_vbus: 5000 mV
usb_otg2_vbus: 5000 mV
MPCIE_3V3: 3300 mV
i2c-core: driver [max17135] using legacy suspend method
i2c-core: driver [max17135] using legacy resume method
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
usbphy_nop1.12 supply vcc not found, using dummy regulator
i2c i2c-0: IMX I2C adapter registered
i2c i2c-1: IMX I2C adapter registered
i2c i2c-2: IMX I2C adapter registered
i2c i2c-3: IMX I2C adapter registered
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
PTP clock support registered
MIPI CSI2 driver module loaded
Switched to clocksource mxc_timer1
cfg80211: Calling CRDA to update world regulatory domain
NET: Registered protocol family 2
TCP established hash table entries: 4096 (order: 2, 16384 bytes)
TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP: reno registered
UDP hash table entries: 256 (order: 1, 8192 bytes)
UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
Trying to unpack rootfs image as initramfs...
Freeing initrd memory: 7328K (83801000 - 83f29000)
hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available
imx rpmsg driver is registered.
Bus freq driver module loaded
futex hash table entries: 256 (order: 2, 16384 bytes)
VFS: Disk quotas dquot_6.5.2
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
NFS: Registering the id_resolver key type
Key type id_resolver registered
Key type id_legacy registered
jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
fuse init (API version 7.22)
msgmni has been set to 996
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
imx-weim 21b8000.weim: Driver registered.
imx-sdma 20ec000.sdma: no iram assigned, using external mem
imx-sdma 20ec000.sdma: no event needs to be remapped
imx-sdma 20ec000.sdma: loaded firmware 3.2
imx-sdma 20ec000.sdma: initialized
pfuze100-regulator 0-0008: Illegal ID: 30
pfuze100-regulator 0-0008: unrecognized pfuze chip ID!
Serial: IMX driver
2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 58, base_baud = 5000000) is a IMX
console [ttymxc0] enabled
21f4000.serial: ttymxc4 at MMIO 0x21f4000 (irq = 62, base_baud = 5000000) is a IMX
serial: Freescale lpuart driver
imx sema4 driver is registered.
brd: module loaded
loop: module loaded
nand: device found, Manufacturer ID: 0xef, Chip ID: 0xf1
nand: Unknown W29N01GV
nand: 128MiB, SLC, page size: 2048, OOB size: 64
gpmi-nand 1806000.gpmi-nand: mode:4 ,failed in set feature.
Bad block table found at page 65472, version 0x01
Bad block table found at page 65408, version 0x01
nand_read_bbt: bad block at 0x000000000000
nand_read_bbt: bad block at 0x000000020000
nand_read_bbt: bad block at 0x000000080000
nand_read_bbt: bad block at 0x0000000a0000
nand_read_bbt: bad block at 0x0000000c0000
nand_read_bbt: bad block at 0x0000000e0000
nand_read_bbt: bad block at 0x000000100000
nand_read_bbt: bad block at 0x000000120000
nand_read_bbt: bad block at 0x000000140000
nand_read_bbt: bad block at 0x000000160000
nand_read_bbt: bad block at 0x000000180000
nand_read_bbt: bad block at 0x0000001a0000
nand_read_bbt: bad block at 0x0000001c0000
nand_read_bbt: bad block at 0x0000001e0000
nand_read_bbt: bad block at 0x000000200000
nand_read_bbt: bad block at 0x000000220000
nand_read_bbt: bad block at 0x000000240000
nand_read_bbt: bad block at 0x000000260000
gpmi-nand 1806000.gpmi-nand: driver registered.
imx6sx-pinctrl 20e0000.iomuxc: pin MX6SX_PAD_ENET2_COL already requested by 2020000.serial; cannot claim for 2188000.ethernet
imx6sx-pinctrl 20e0000.iomuxc: pin-37 (2188000.ethernet) status -22
imx6sx-pinctrl 20e0000.iomuxc: could not request pin 37 (MX6SX_PAD_ENET2_COL) from group enet1grp on device 20e0000.iomuxc
fec 2188000.ethernet: Error applying setting, reverse things back
2188000.ethernet supply phy not found, using dummy regulator
pps pps0: new PPS source ptp0
fec 2188000.ethernet (unregistered net_device): Invalid MAC address: 00:00:00:00:00:00
fec 2188000.ethernet (unregistered net_device): Using random MAC address: de:31:ae:b0:77:35
libphy: fec_enet_mii_bus: probed
fec 2188000.ethernet eth0: registered PHC device 0
21b4000.ethernet supply phy not found, using dummy regulator
pps pps1: new PPS source ptp1
fec 21b4000.ethernet (unregistered net_device): Invalid MAC address: 00:00:00:00:00:00
fec 21b4000.ethernet (unregistered net_device): Using random MAC address: f2:e5:f0:b6:1e:e2
fec 21b4000.ethernet eth1: registered PHC device 1
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-mxc: Freescale On-Chip EHCI Host driver
usbcore: registered new interface driver usb-storage
2184800.usbmisc supply vbus-wakeup not found, using dummy regulator
ci_hdrc ci_hdrc.1: EHCI Host Controller
ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1
ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
mousedev: PS/2 mouse device common for all mice
snvs_pwrkey 20cc000.snvs-pwrkey: can't get snvs clock
input: 20cc000.snvs-pwrkey as /devices/soc0/soc.0/2000000.aips-bus/20cc000.snvs-pwrkey/input/input0
snvs_pwrkey 20cc000.snvs-pwrkey: i.MX snvs powerkey probed
egalax_ts 1-0004: Failed to read firmware version
egalax_ts: probe of 1-0004 failed with error -5
2-0044 supply vdd not found, using dummy regulator
i2c-core: driver [isl29023] using legacy suspend method
i2c-core: driver [isl29023] using legacy resume method
snvs_rtc 20cc034.snvs-rtc-lp: can't get snvs-rtc clock
snvs_rtc 20cc034.snvs-rtc-lp: rtc core: registered 20cc034.snvs-rtc-lp as rtc0
i2c /dev entries driver
2-000e supply vdd not found, using dummy regulator
2-000e supply vddio not found, using dummy regulator
mag3110 2-000e: check mag3110 chip ID
mag3110 2-000e: read chip ID 0xffffff92 is not equal to 0xc4!
mag3110: probe of 2-000e failed with error -22
i2c-core: driver [mag3110] using legacy suspend method
i2c-core: driver [mag3110] using legacy resume method
2-001c supply vdd not found, using dummy regulator
2-001c supply vddio not found, using dummy regulator
usb 1-1: new high-speed USB device number 2 using ci_hdrc
mma8451 2-001c: read chip ID 0x1 is not equal to 0x1a or 0x2a!
mma8451: probe of 2-001c failed with error -22
imx2-wdt 20bc000.wdog: IMX2+ Watchdog Timer enabled. timeout=60s (nowayout=0)
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 7 ports detected
snvs-secvio 20cc000.caam-snvs: can't get snvs clock
snvs-secvio 20cc000.caam-snvs: violation handlers armed - non-secure state
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
NET: Registered protocol family 26
TCP: cubic registered
NET: Registered protocol family 10
sit: IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
8021q: 802.1Q VLAN Support v1.8
Key type dns_resolver registered
cpu cpu0: dev_pm_opp_get_opp_count: device OPP not found (-19)
usb_otg1_vbus: disabling
PSU-5V0: disabling
VCC_SD3: disabling
regulator-dummy: disabling
imx mcc test is registered.
Number of LUNs=8
Mass Storage Function, version: 2009/09/11
LUN: removable file: (no medium)
Number of LUNs=1
LUN: removable file: (no medium)
Number of LUNs=1
g_mass_storage gadget: Mass Storage Gadget, version: 2009/09/11
g_mass_storage gadget: g_mass_storage ready
snvs_rtc 20cc034.snvs-rtc-lp: setting system clock to 1970-01-01 00:00:01 UTC (1)
Freeing unused kernel memory: 248K (807b1000 - 807ef000)
Starting UTP
uuc 0.5 [built Dec 3 2015 08:26:46]
UTP: Waiting for device to appear
UTP: file/device node /dev/utp already exists
cpu_id is 0
g_mass_storage gadget: high-speed config #1: Linux File-Backed Storage
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.
utp_poll: pass returned.
UTP: received command '$ mtdinfo'
UTP: executing "mtdinfo"
Count of MTD devices: 1
Present MTD devices: mtd0
Sysfs interface supported: yes
UTP: sending Success to kernel for command $ mtdinfo.
utp_poll: pass returned.
UTP: received command '$ flash_erase /dev/mtd0 0 0'
UTP: executing "flash_erase /dev/mtd0 0 0"
flash_erase: Skipping bad block at 00000000
flash_erase: Skipping bad block at 00020000
Erasing 128 Kibyte @ 60000 -- 0 % complete flash_erase: Skipping bad block at 00080000
flash_erase: Skipping bad block at 000a0000
flash_erase: Skipping bad block at 000c0000
flash_erase: Skipping bad block at 000e0000
flash_erase: Skipping bad block at 00100000
flash_erase: Skipping bad block at 00120000
flash_erase: Skipping bad block at 00140000
flash_erase: Skipping bad block at 00160000
flash_erase: Skipping bad block at 00180000
flash_erase: Skipping bad block at 001a0000
flash_erase: Skipping bad block at 001c0000
flash_erase: Skipping bad block at 001e0000
flash_erase: Skipping bad block at 00200000
flash_erase: Skipping bad block at 00220000
flash_erase: Skipping bad block at 00240000
flash_erase: Skipping bad block at 00260000
Erasing 128 Kibyte @ 6e40000 -- 86 % crandom: nonblocking pool is initialized
Erasing 128 Kibyte @ 7f60000 -- 99 % complete flash_erase: Skipping bad block at 07f80000
flash_erase: Skipping bad block at 07fa0000
flash_erase: Skipping bad block at 07fc0000
flash_erase: Skipping bad block at 07fe0000
Erasing 128 Kibyte @ 7fe0000 -- 100 % complete
UTP: sending Success to kernel for command $ flash_erase /dev/mtd0 0 0.
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: opening: "/dev/mtd0"
mtd: '/dev/mtd0' bad block @ 0x100000 (MTD)
mtd: '/dev/mtd0' bad block @ 0x120000 (MTD)
mtd: '/dev/mtd0' bad block @ 0x140000 (MTD)
mtd: '/dev/mtd0' bad block @ 0x160000 (MTD)
mtd: '/dev/mtd0' bad block @ 0x180000 (MTD)
mtd: '/dev/mtd0' bad block @ 0x1a0000 (MTD)
mtd: '/dev/mtd0' bad block @ 0x1c0000 (MTD)
mtd: '/dev/mtd0' bad block @ 0x1e0000 (MTD)
mtd: '/dev/mtd0' bad block @ 0x200000 (MTD)
mtd: '/dev/mtd0' bad block @ 0x220000 (MTD)
mtd: '/dev/mtd0' bad block @ 0x240000 (MTD)
mtd: '/dev/mtd0' bad block @ 0x260000 (MTD)
mtd: '/dev/mtd0' bad block @ 0x7f80000 (MTD)
mtd: '/dev/mtd0' bad block @ 0x7fa0000 (MTD)
mtd: '/dev/mtd0' bad block @ 0x7fc0000 (MTD)
mtd: '/dev/mtd0' bad block @ 0x7fe0000 (MTD)
NFC geometry :
ECC Strength : 2
Page Size in Bytes : 2071
Metadata size : 10
ECC Chunk Size in byte : 512
ECC Chunk count : 4
Block Mark Byte Offset : 2028
Block Mark Bit Offset : 2
====================================================
mtd: opened '/dev/mtd0' - '(null)'
mtd: max_boot_stream_size_in_bytes = 66584576
mtd: boot_stream_size_in_bytes = 319488
mtd: boot_stream_size_in_pages = 156
mtd: #1 0x00100000 - 0x04080000 (0x0014e000)
mtd: #2 0x04080000 - 0x08000000 (0x040ce000)
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 = 1
m_u32EccBlock0Size = 512
m_u32EccBlockNSize = 512
m_u32EccBlock0EccType = 1
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 = 33024
m_u32PagesInFirmware1 = 156
m_u32PagesInFirmware2 = 156
m_u32DBBTSearchAreaStartAddress = 256
m_u32BadBlockMarkerByte = 2028
m_u32BadBlockMarkerStartBit = 2
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 = 1
BBTN#0
uNAND = 0
uNumberBB = 16
BADBLOCKS:
0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf 0x10 0x11 0x12 0x13 0x3fc 0x3fd 0x3fe 0x3ff
Firmware: image #0 @ 0x100000 size 0x4e000 nand: nand_erase_nand: attempt to erase a bad block at page 0x00000000
- available 0x3f80000
Firmware: nand: nand_erase_nand: attempt to erase a bad block at page 0x00000040
image #1 @ 0x4080000 size 0x4e000 - available 0x3f80000
--------nand: nand_erase_nand: attempt to erase a bad block at page 0x00000100
------ Start to write the [ FCB ]nand: nand_erase_nand: attempt to erase a bad block at page 0x00000140
-----
mtd: erasing @0:0x0-0x200nand: nand_erase_nand: attempt to erase a bad block at page 0x00000180
00
mtd: device 0 fails MEMERASE nand: nand_erase_nand: attempt to erase a bad block at page 0x000001c0
(0x0 - 0x20000)
mtd: Failed to erase block @0x0
mtd: erasing @0:0x20000-0x40000
mtd: device 0 fails MEMERASE (0x20000 - 0x20000)
mtd: Failed to erase block @0x20000
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 2
-------------- Start to write the [ DBBT ] -----
mtd: erasing @0:0x80000-0xa0000
mtd: device 0 fails MEMERASE (0x80000 - 0x20000)
mtd: Failed to erase block @0x80000
mtd: erasing @0:0xa0000-0xc0000
mtd: device 0 fails MEMERASE (0xa0000 - 0x20000)
mtd: Failed to erase block @0xa0000
mtd: erasing @0:0xc0000-0xe0000
mtd: device 0 fails MEMERASE (0xc0000 - 0x20000)
mtd: Failed to erase block @0xc0000
mtd: erasing @0:0xe0000-0x100000
mtd: device 0 fails MEMERASE (0xe0000 - 0x20000)
mtd: Failed to erase block @0xe0000
mtd_commit_bcb(DBBT): status 4
mtd: PUTTING down DBBT0 BBTN0 @0x82000 (0x800)
mtd: PUTTING down DBBT1 BBTN0 @0xa2000 (0x800)
mtd: PUTTING down DBBT2 BBTN0 @0xc2000 (0x800)
mtd: PUTTING down DBBT3 BBTN0 @0xe2000 (0x800)
---------- Start to write the [ .tmp_kobs_ng ]----
mtd: Writting .tmp_kobs_ng: #0 @0: 0x00100000 - 0x0014e000
mtd: Skipping bad block at 0x100000
mtd: Skipping bad block at 0x120000
mtd: Skipping bad block at 0x140000
mtd: Skipping bad block at 0x160000
mtd: Skipping bad block at 0x180000
mtd: Skipping bad block at 0x1a0000
mtd: Skipping bad block at 0x1c0000
mtd: Skipping bad block at 0x1e0000
mtd: Skipping bad block at 0x200000
mtd: Skipping bad block at 0x220000
mtd: Skipping bad block at 0x240000
mtd: Skipping bad block at 0x260000
mtd: erasing @0:0x280000-0x2a0000
mtd: erasing @0:0x2a0000-0x2c0000
mtd: erasing @0:0x2c0000-0x2e0000
mtd: We write one page for save guard. *
mtd: Writting .tmp_kobs_ng: #1 @0: 0x04080000 - 0x040ce000
mtd: erasing @0:0x4080000-0x40a0000
mtd: erasing @0:0x40a0000-0x40c0000
mtd: erasing @0:0x40c0000-0x40e0000
mtd: We write one page for save guard. *
UTP: sending Success toutp_poll: pass returned.
kernel for command $ kobs-ng init -x -v --chip_0_device_path=/dev/mtd0 $FILE.
UTP: received command '$ echo Update Complete!'
UTP: executing "echo Update Complete!"
Update Complete!
UTP: sending Success to kernel for command $ echo Update Complete!.
utp_poll: pass returned.
Solved! Go to Solution.
Hello,
Please look at my comments below.
NAND is supported on i.MX6 SABRE-AI platform, assuming NXP Linux BSP.
Please refer to the following thread for more details how to boot from NAND.
"How to boot from NAND Flash"
< https://community.nxp.com/message/642374#comment-642374 >
Please use the MFG tool for NAND preparing, as mentioned in the following discussion
"i.MX6 boot from Nand flash"
< https://community.nxp.com/message/575636#comment-575636 >
More information about NAND parameters are provided in FCB (Firmware Configuration Block) on the
NAND. It should be written by the kobs-ng utility dufing MFG session.
Have a great day,
Yuri
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hello,
Please look at my comments below.
NAND is supported on i.MX6 SABRE-AI platform, assuming NXP Linux BSP.
Please refer to the following thread for more details how to boot from NAND.
"How to boot from NAND Flash"
< https://community.nxp.com/message/642374#comment-642374 >
Please use the MFG tool for NAND preparing, as mentioned in the following discussion
"i.MX6 boot from Nand flash"
< https://community.nxp.com/message/575636#comment-575636 >
More information about NAND parameters are provided in FCB (Firmware Configuration Block) on the
NAND. It should be written by the kobs-ng utility dufing MFG session.
Have a great day,
Yuri
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------