AnsweredAssumed Answered

Production Mode on imx25

Question asked by Leonardo Almeida on Oct 30, 2013
Latest reply on Mar 6, 2014 by Leonardo Almeida

Hello all.

 

I've got a problem and I hope anyone can help.

 

I'll say what have been done...

 

First, I've blown srk fuses and boot fuses. The board was booted sucessfully.

 

The Dryice DSR register after boot: "DRYICE_DSR = 00000100".

The HAB state was:

MX25 U-Boot > md.b 0x780018D4 0x10

780018d4: f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

 

Then, right after, I've blowed the HAB_TYPE fuse for production mode. Here is the commented log (I've made a u-boot command for that):

 

//Getting a unsigned u-boot image:
MX25 U-Boot > sf probe 1 0 0;sf erase 0 0x40000;tftpboot ${loadaddr} u-boot-Fabrica.bin;sf write ${loadaddr} 0 0x40000;reset
4096 KiB M25P32 at 0:1 is now current device
SF: STMicro: Successfully erased 262144 bytes @ 0x0
cmdtp = L¸òƒ
argc = åðŸåðŸåðŸåðŸåðŸåðŸåðŸåt…@
argv[0] = tftpboot
argv[1] = 0x80800000
FEC: enable RMII gasket
Using FEC0 device
TFTP from server XXX.XXX.XXX.XXX; our IP address is XXX.XXX.XXX.XXX
Filename 'u-boot-Fabrica.bin'.
Load address: 0x80800000
Loading: T #########################################
done
Bytes transferred = 204824 (32018 hex)
resetting ...


U-Boot 2009.08-svn356 (Oct 30 2013 - 16:08:33)

CPU:   Freescale i.MX25 at 398 MHz
mx25 cpu clock: 398MHz
ipg clock     : 66498560Hz
Board: i.MX25 MAX PDK (3DS)
I2C:   ready
DRAM:  64 MB
NAND:  2 NAND chips detected
Manufacturer      : Micron (0x2c)
Device Code       : 0xdc
Cell Technology   : SLC
Chip Size         : 512 MiB
Pages per Block   : 64
Page Geometry     : 2048+64
ECC Strength      : 4 bits
ECC Size          : 512 B
Data Setup Time   : 20 ns
Data Hold Time    : 10 ns
Address Setup Time: 10 ns
GPMI Sample Delay : 6 ns
tREA              : Unknown
tRLOH             : Unknown
tRHOH             : Unknown
Description       : MT29F4G08AAA
Bad block table found at page 524224, version 0x01
Bad block table found at page 524160, version 0x01
1024 MiB
DRYICE_DSR = 00000100
MMC:   FSL_ESDHC: 0
In:    serial
Out:   serial
Err:   serial
i2c_addr:chip address cycle fail(a1)
Net:   FEC: enable RMII gasket
FEC0
Hit any key to stop autoboot:  0
Environment size: 1219/262140 bytes
//Getting HAB State
MX25 U-Boot > md.b 0x780018D4 0x10
780018d4: 4e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    N...............


//Getting a signed image
MX25 U-Boot > sf probe 1 0 0;sf erase 0 0x40000;tftpboot ${loadaddr} u-boot-Alone-signed-FUSE.bin;sf write ${loadaddr} 0 0x40000;reset
4096 KiB M25P32 at 0:1 is now current device
SF: STMicro: Successfully erased 262144 bytes @ 0x0
cmdtp = t¸òƒ
argc = åðŸåðŸåðŸåðŸåðŸåðŸåðŸåt…@
argv[0] = tftpboot
argv[1] = 0x80800000
FEC: enable RMII gasket
Using FEC0 device
TFTP from server XXX.XXX.XXX.XXX; our IP address is XXX.XXX.XXX.XXX
Filename 'u-boot-Alone-signed-FUSE.bin'.
Load address: 0x80800000
Loading: ############################################
done
Bytes transferred = 223002 (3671a hex)
resetting ...


U-Boot 2009.08-svn356 (Oct 30 2013 - 16:08:33)

CPU:   Freescale i.MX25 at 398 MHz
mx25 cpu clock: 398MHz
ipg clock     : 66498560Hz
Board: i.MX25 MAX PDK (3DS)
I2C:   ready
DRAM:  64 MB
NAND:  2 NAND chips detected
Manufacturer      : Micron (0x2c)
Device Code       : 0xdc
Cell Technology   : SLC
Chip Size         : 512 MiB
Pages per Block   : 64
Page Geometry     : 2048+64
ECC Strength      : 4 bits
ECC Size          : 512 B
Data Setup Time   : 20 ns
Data Hold Time    : 10 ns
Address Setup Time: 10 ns
GPMI Sample Delay : 6 ns
tREA              : Unknown
tRLOH             : Unknown
tRHOH             : Unknown
Description       : MT29F4G08AAA
Bad block table found at page 524224, version 0x01
Bad block table found at page 524160, version 0x01
1024 MiB
DRYICE_DSR = 00000100
MMC:   FSL_ESDHC: 0
In:    serial
Out:   serial
Err:   serial
i2c_addr:chip address cycle fail(a1)
Net:   FEC: enable RMII gasket
FEC0
Hit any key to stop autoboot:  0
//Getting HAB State
MX25 U-Boot > md.b 0x780018D4 0x10
780018d4: f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................


//Blowing SRK0_LOCK96 and SRK0_LOCK160 fuses
MX25 U-Boot > fuse init srklock
bank = 2 - row = 0000 - value = 03
iim_addr = 00000000
Blowing fuse at bank:2 row:0 value:3
blowing addr_h=0x10, addr_l=0x0
blowing addr_h=0x10, addr_l=0x1
sense_fuse: addr_h=0x10, addr_l=0x00
fuses at (bank:2, row:0) = 0x3
Read fuse at bank:2 row:0
sense_fuse: addr_h=0x10, addr_l=0x00
fuses at (bank:2, row:0) = 0x3
MX25 U-Boot > reset
resetting ...


U-Boot 2009.08-svn356 (Oct 30 2013 - 16:08:33)

CPU:   Freescale i.MX25 at 398 MHz
mx25 cpu clock: 398MHz
ipg clock     : 66498560Hz
Board: i.MX25 MAX PDK (3DS)
I2C:   ready
DRAM:  64 MB
NAND:  2 NAND chips detected
Manufacturer      : Micron (0x2c)
Device Code       : 0xdc
Cell Technology   : SLC
Chip Size         : 512 MiB
Pages per Block   : 64
Page Geometry     : 2048+64
ECC Strength      : 4 bits
ECC Size          : 512 B
Data Setup Time   : 20 ns
Data Hold Time    : 10 ns
Address Setup Time: 10 ns
GPMI Sample Delay : 6 ns
tREA              : Unknown
tRLOH             : Unknown
tRHOH             : Unknown
Description       : MT29F4G08AAA
Bad block table found at page 524224, version 0x01
Bad block table found at page 524160, version 0x01
1024 MiB
DRYICE_DSR = 00000100
MMC:   FSL_ESDHC: 0
In:    serial
Out:   serial
Err:   serial
i2c_addr:chip address cycle fail(a1)
Net:   FEC: enable RMII gasket
FEC0
Hit any key to stop autoboot:  0
//Getting HAB State
MX25 U-Boot > md.b 0x780018D4 0x10
780018d4: f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
//Blowing HAB_TYPE and BOOT_LOCK fuses
MX25 U-Boot > fuse init bootlock
bank = 0 - row = 0004 - value = 0b
iim_addr = 00000010
Blowing fuse at bank:0 row:4 value:11
blowing addr_h=0x0, addr_l=0x20
blowing addr_h=0x0, addr_l=0x21
blowing addr_h=0x0, addr_l=0x23
sense_fuse: addr_h=0x00, addr_l=0x20
fuses at (bank:0, row:4) = 0xb
Read fuse at bank:0 row:4
sense_fuse: addr_h=0x00, addr_l=0x20
fuses at (bank:0, row:4) = 0xb
bank = 0 - row = 0000 - value = 01
iim_addr = 00000000
Blowing fuse at bank:0 row:0 value:1
blowing addr_h=0x0, addr_l=0x0
sense_fuse: addr_h=0x00, addr_l=0x00
fuses at (bank:0, row:0) = 0x11
Read fuse at bank:0 row:0
sense_fuse: addr_h=0x00, addr_l=0x00
fuses at (bank:0, row:0) = 0x11
MX25 U-Boot > reset
resetting ...
//No boot! It goes to UART boot

Here becomes the problem. The board is not booting anymore, it goes to UART boot. When I power on the board, the windows pc identifies the USB driver from board.

 

On ATK MAX, when I send any command (such as memory dump), it comes the error attached.


Can anyone help how to use ATK for download a signed u-boot image and how to figure out why this board is not booting anymore? As far as I know, if HAB state was in 0xf0 in Engineering Mode, then in production mode it should work, too.

 

Another question, if Dryice  enables an alarm, would be also possible to download a signed u-boot image?

 

I appreciate your help!

Leonardo

Attachments

Outcomes