AnsweredAssumed Answered

mx28 can't boot from nand, just 0x80502004 printed

Question asked by h k on Jan 13, 2016
Latest reply on Jan 13, 2016 by h k

Hi all,

    I have a Micron nand flash on board. 128MB SLC Tech with 2048+64 page. After loading the kernel and rootfs, turning on BM2 bit which is nand boot mode, there's only 0x80502004 printed on console.

 

MFGTool version is 1.6.2.055

 

Following is partial console log when I update the firmware.

 

i.MX GPMI NFC

NFC: Version 1, 8-chip GPMI and BCH

Boot ROM: Version 1, Single-chip boot area, block mark swapping supported

Scanning for NAND Flash chips...

NAND device: Manufacturer ID: 0x2c, Chip ID: 0xf1 (Micron NAND 128MiB 3,3V 8-bit)

-----------------------------

NAND Flash Device Information

-----------------------------

Manufacturer      : Micron (0x2c)

Device Code       : 0xf1

Cell Technology   : SLC

Chip Size         : 128 MiB

Pages per Block   : 64

Page Geometry     : 2048+64

ECC Strength      : 4 bits

ECC Size          : 512 B

Data Setup Time   : 10 ns

Data Hold Time    : 7 ns

Address Setup Time: 15 ns

GPMI Sample Delay : 6 ns

tREA              : Unknown

tRLOH             : Unknown

tRHOH             : Unknown

Description       : MT29F1G08ABADAWP

-----------------

Physical Geometry

-----------------

Chip Count             : 1

Page Data Size in Bytes: 2048 (0x800)

Page OOB Size in Bytes : 64

Block Size in Bytes    : 131072 (0x20000)

Block Size in Pages    : 64 (0x40)

Chip Size in Bytes     : 134217728 (0x8000000)

Chip Size in Pages     : 65536 (0x10000)

Chip Size in Blocks    : 1024 (0x400)

Medium Size in Bytes   : 134217728 (0x8000000)

------------

NFC Geometry

------------

ECC Algorithm          : BCH

ECC Strength           : 8

Page Size in Bytes     : 2112

Metadata Size in Bytes : 10

ECC Chunk Size in Bytes: 512

ECC Chunk Count        : 4

Payload Size in Bytes  : 2048

Auxiliary Size in Bytes: 16

Auxiliary Status Offset: 12

Block Mark Byte Offset : 1999

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

Boot area protection is enabled.

Creating 2 MTD partitions on "gpmi-nfc-main":

0x000000000000-0x000001400000 : "gpmi-nfc-0-boot"

0x000001400000-0x000008000000 : "gpmi-nfc-general-use"

FEC Ethernet Driver

fec_enet_mii_bus: probed

ARC USBOTG Device Controller driver (1 August 2005)

check_parameters:UTP settings are in place now, overriding defaults

g_file_storage gadget: File-backed Storage Gadget, version: 20 November 2008

g_file_storage gadget: Number of LUNs=1

fsl-usb2-udc: bind to driver g_file_storage

mice: PS/2 mouse device common for all mice

input: gpio-keys as /devices/platform/gpio-keys.0/input/input0

input: MXS touchscreen as /devices/virtual/input/input1

MXS RTC driver v1.0 hardware v2.3.0

mxs-rtc mxs-rtc.0: rtc core: registered mxs-rtc as rtc0

i2c /dev entries driver

IR NEC protocol handler initialized

IR RC5(x) protocol handler initialized

IR RC6 protocol handler initialized

IR JVC protocol handler initialized

IR Sony protocol handler initialized

Linux video capture interface: v2.00

This is 5V only build.

dcp dcp.0: DCP crypto enabled.!

TCP cubic registered

NET: Registered protocol family 17

can: controller area network core (rev 20090105 abi 8)

NET: Registered protocol family 29

can: raw protocol (rev 20090105)

regulator_init_complete: incomplete constraints, leaving vbus5v on

mxs-rtc mxs-rtc.0: setting system clock to 1970-01-01 00:00:24 UTC (24)

Freeing init memory: 176K

Starting UTP

disable turn off display

uuc 0.4 [built Feb 21 2014 08:19:00]

UTP: Waiting for device to appear

utp_mk_devnode: creating node '/dev/utp' with 10+222

cpu_id is 28

g_file_storage gadget: high speed config #1

UTP: received command 'mknod class/mtd,mtd0,/dev/mtd0'

class = 'class/mtd'

item = 'mtd0'

node = /dev/mtd0

type = (null)

UTP: running utp_mk_devnode(class/mtd,mtd0,/dev/mtd0,0x2000)

utp_mk_devnode: creating node '/dev/mtd0' with 90+0

UTP: sending Success

UTP: received command 'mknod class/mtd,mtd1,/dev/mtd1'

class = 'class/mtd'

item = 'mtd1'

node = /dev/mtd1

type = (null)

UTP: running utp_mk_devnode(class/mtd,mtd1,/dev/mtd1,0x2000)

utp_mk_devnode: creating node '/dev/mtd1' with 90+2

UTP: sending Success

UTP: received command 'mknod class/misc,ubi_ctrl,/dev/ubi_ctrl'

class = 'class/misc'

item = 'ubi_ctrl'

node = /dev/ubi_ctrl

type = (null)

UTP: running utp_mk_devnode(class/misc,ubi_ctrl,/dev/ubi_ctrl,0x2000)

utp_mk_devnode: creating node '/dev/ubi_ctrl' with 10+60

UTP: sending Success

UTP: received command '$ flash_eraseall /dev/mtd0'

UTP: sending Busy

UTP: executing "flash_eraseall /dev/mtd0"

Erautp_poll: pass returned. -- 68 % complete.

Erasing 128 Kibyte @ 1400000 -- 100 % complete.

UTP: sending Success

UTP: received command '$ flash_eraseall /dev/mtd1'

UTP: sending Busy

UTP: executing "flash_eraseall /dev/mtd1"

Erasinutp_poll: pass returned.- 93 % complete.

Erasing 128 Kibyte @ 6c00000 -- 100 % complete.

UTP: sending Success

UTP: received command 'send'

UTP: sending Success

UTP: received command '$ kobs-ng init $FILE'

UTP: sending Busy

UTP: executing "kobs-ng init $FILE"

UTP: sending Success

utp_poll: pass returned.

UTP: received command '$ ubiattach /dev/ubi_ctrl -m 1 -d 0'

UTP: sending Busy

UTP: executing "ubiattach /dev/ubi_ctrl -m 1 -d 0"

UBI: attaching mtd1 to ubi0

UBI: physical eraseblock size:   131072 bytes (128 KiB)

UBI: logical eraseblock size:    126976 bytes

UBI: smallest flash I/O unit:    2048

UBI: VID header offset:          2048 (aligned 2048)

UBI: data offset:                4096

UBI: empty MTD device detected

UBI: create volume table (copy #1)

UBI: create volume table (copy #2)

UBI: attached mtd1 to ubi0

UBI: MTD device name:            "gpmi-nfc-general-use"

UBI: MTD device size:            108 MiB

UBI: number of good PEBs:        864

UBI: number of bad PEBs:         0

UBI: max. allowed volumes:       128

UBI: wear-leveling threshold:    4096

UBI: number of internal volumes: 1

UBI: number of user volumes:     0

UBI: available PEBs:             852

UBI: total number of reserved PEBs: 12

UBI: number of PEBs reserved for bad PEB handling: 8

UBI: max/mean erase counter: 0/0

UBI: image sequence number: 0

UBI: background thread "ubi_bgt0d" started, PID 996

UBI device number 0, total 864 LEBs (109707264 bytes, 10utp_poll: pass returned.

4.6 MiB), available 852 LEBs (108183552 bytes, 103.2 MiB), LEB size 126976 bytes (124.0 KiB)

UTP: sending Success

UTP: received command 'mknod class/ubi,ubi0,/dev/ubi0'

class = 'class/ubi'

item = 'ubi0'

node = /dev/ubi0

type = (null)

UTP: running utp_mk_devnode(class/ubi,ubi0,/dev/ubi0,0x2000)

utp_mk_devnode: creating node '/dev/ubi0' with 252+0

UTP: sending Success

UTP: received command '$ ubimkvol /dev/ubi0 -n 0 -N rootfs0 -m'

UTP: sending Busy

UTP: executing "ubimkvol /dev/ubi0 -n 0 -N rootfs0 -m"

Set volume size to 108183552

ubiblka: unknown partition table

Volume ID 0, size 852 LEBs (108183552 bytes, 103.2 MiB), LEB size 126976 bytes (124.0 KiB), dynamic, name "rootfs0", alignment 1

UTP: sending Success

utp_poll: pass returned.

UTP: received command '$ mkdir -p /mnt/ubi0; mount -t ubifs ubi0_0 /mnt/ubi0'

UTP: sending Busy

UTP: executing "mkdir -p /mnt/ubi0; mount -t ubifs ubi0_0 /mnt/ubi0"

UBIFS: default file-system created

UBIFS: mounted UBI device 0, volume 0, name "rootfs0"

UBIFS: file system size:   106913792 bytes (104408 KiB, 101 MiB, 842 LEBs)

UBIFS: journal size:       5332992 bytes (5208 KiB, 5 MiB, 42 LEBs)

UBIFS: media format:       w4/r0 (latest is w4/r0)

UBIFS: default compressor: lzo

UBIFS: reserved for root:  4952683 bytes (4836 KiB)

UTP: sending Success

utp_poll: pass returned.

UTP: received command 'pipe tar -jxv -C /mnt/ubi0'

UTP: sending Success

bin/

bin/echo

bin/kbd_mode

bin/iostat

bin/setserial

bin/printenv

bin/ln

bin/tar

bin/chmod

。。。。

 

var/ftp/bin/

var/ftp/etc/

var/ftp/lib/

var/ftp/pub/

UTP: files were flushed.

UTP: sending Success

g_file_storage gadget: high speed config #1

UTP: received command '$ umount /mnt/ubi0'

UTP: sending Busy

UTP: executing "umount /mnt/ubi0"

UBIFS: un-mount UBI device 0, volume 0

UTP: sending Success

utp_poll: pass returned.

UTP: received command '$ echo Update Complete!'

UTP: sending Busy

UTP: executing "echo Update Complete!"

Update Complete!

UTP: sending Success

utp_poll: pass returned.

g_file_storage gadget: high speed config #1

 

 

I googled 0x80502004, it says AntiGuide:iMX223Errors

"

//! 0x80502004

//! Error reported by the send/recv if the device is not yet configured

#define ERROR_ROM_USB_DEVICE_NOT_CONFIGURED     (ERROR_ROM_GROUP | ERROR_ROM_USB_DRIVER_GROUP | 0x4)

"

 

What does it mean. Anyone knows? Waiting on the line...

 

Thanks

 

 

Outcomes