correct fuses programming to boot from nand

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

correct fuses programming to boot from nand

1,915 Views
diegoperez
Contributor II

Hi,

My target is boot from NANDFLASH, the chip is MT29F8G08ABACAH4-IT:C. So, I have to program the fuses in BOOT_CFG1 and BOOT_CFG2, as table 8-10 of the reference manual show. I would like to be sure, before programming fuses because I only have a few prototypes of my custon imx6solo board.

I paste an image with the values I think are correct squared in red color.

 fuses.png

 

 

  • BOOT_CFG1[7]: Obviously this bit need to be 1 to indicate boot NAND.
  • BOOT_CFG1[5]: I don’t understand this bit, ¿What is the value that I need to put in?
  • BOOT_CFG1[4]: I understood this fuse is for config IO pad settings, so for now I am going to leave as 0.
  • BOOT_CFG1[3:2]: I only have one chip in mi design, so this fuse will be 00.
  • BOOT_CFG1[1:0]: Row Address Bytes. I don’t understand this bit, but the “kobs-ng” command in linux say that “row_address_size = 3”, if this info is related whit this fuse I think the value need to be 00.
  • BOOT_CFG2[7:5]: I don’t know what is my optimal value, and I don’t understand these fuses. ¿Are related with BOOT_CFG1[5]?
  • BOOT_CFG2[4:3]: For now I leave these fuses as 00, But I think it could be 10 since “kobs-ng” repeat 4 times the FCB structure.
  • BOOT_CFG[2:1]: These fuses need to be 01 since the nand flash datasheet says that chips has 64 pages per block.
  • BOOT_CFG2[0]: I don’t understand this fuse, but for now I leave as 0.

 

Assuming RAW mode, 16 GPMICLK cycles, reset time 12ms, the values for BOOT_CFG1 and BOOT_CFG2 are:

BOOT_CFG1

Bit position

7

6

5

4

3

2

1

0

Value=0x80

1

0

0

0

0

0

0

0

 

BOOT_CFG2

Bit position

7

6

5

4

3

2

1

0

Value=0x02

0

0

0

0

0

0

1

0

 

Using uboot command to program fuses:

=>fuse prog 0 5 0x00000280

 

Questions:

  1. Is it necessary program some fuse in BOOT_CFG2 or BOOT_CFG3, or other fuse to boot form my nand?
  2. Is the fuse uboot command correct (fuse prog 0 5 0x00000280)?
  3. Please, could you give me the values for fuses that I don’t understand? And a brief explication:
  • BOOT_CFG1[5]
  • BOOT_CFG2[7:5]
  • BOOT_CFG1[1:0]
  • BOOT_CFG2[0]
Labels (1)
0 Kudos
5 Replies

1,199 Views
diegoperez
Contributor II

I discovered the application Boot_Tester.exe that show the boot log, I paste the output of the tool.

---

MX6DL opened.

HAB_TYPE: DEVELOP

Image loading...

download Image to IRAM OK

 

Re-open imx device.

Running BOOT DEBUG., press "ESC" key to exit.

 

 

*********************************************

    Boot Debug (1.6.2) for MX6DL

    Build: Nov 24 2015, 17:40:23

    Freescale Semiconductor, Inc.

*********************************************

 

WDOG Fuse Disabled

 

Boot_cfg_1    = 0x80

Boot_cfg_2    = 0x02

Boot_cfg_3    = 0x00

Boot_cfg_4    = 0x00

 

SBMR2         = 0x00000001

  BMOD        = 00      Boot from Fuses

  BT_FUSE_SEL = 0

  DIR_BT_DIS  = 0

  SEC_CONFIG  = 01

 

Persistent Reg Value: 0x00000000

 

iROM Version  = 0x13

 

ANALOG_DIGPROG  = 0x00610003

    Device      = MX6 Solo/Duallite

    Si Revision = 1.3

 

Log Entry #0    (0x00010000)  BOOTMODE - Internal Fuse

Log Entry #1    (0x000200f0)  Security Mode - Open

Log Entry #2    (0x00030000)  DIR_BT_DIS = 0

Log Entry #3    (0x00040000)  BT_FUSE_SEL = 0

Log Entry #4    (0x00062001)  MFG Mode USDHC

Log Entry #5    (0x00070000)  Device INIT Call

Log Entry #6    (0x00070033)  Device INIT Fail

Log Entry #7    (0x000c0000)  Serial Downloader Entry

Log Entry #8    (0x00090000)  HAB Authentication Status Code:

                (0x00032233)  Invalid Address

Log Entry #10   (0x000d0000)  Serial Downloader Call

                (0x0091712c)  Address: 0x0091712c

 

 

Type 0 to Exit

Type 1 to Read Memory

Type 2 to Write Memory

Type 3 to Read Boot Page

Type 4 to Memory Dump

Type 5 to OCOTP Bank Display

0 Kudos

1,199 Views
diegoperez
Contributor II

Hi Igor,

If the row cycles are 3, I assume the commnad "fuse prog 0 5 0x00000280" is correct.

addr offset of the CFG1, CFG2, CFG3 and CFG4 is 0x450, and base address is 0x400, so bank=0 word=5.

I read the i.MX6Q NAND boot issues and it says that there is a boot log of the ROM code.i.MX6Q NAND boot issues

Is there any documentation available on interpreting the ROM log buffer contents?

BR

Diego.

0 Kudos

1,199 Views
diegoperez
Contributor II

Hi Igor,

I have tried to program the fuses with the command:
fuse prog 0 5 0x00000280
But it does not boot from nand

Also the nand has been programmed with "kobs-ng -x -v u-boot.imx"


It could be the row address cyles. Now I have value 3 and as I see in table 2 of the datasheet it should be 2. is it correct, I'm not sure I understand the table2.

nand.png

BR

0 Kudos

1,199 Views
igorpadykov
NXP Employee
NXP Employee

Hi  Diego

Table 2 shows 3 rows cycles (3,4,5). One can try nand programming using mfg tool

i.MX 6 / i.MX 7 Series Software and Development Tool|NXP 

may be useful to look at nand boot debug steps

https://community.nxp.com/thread/307723 

Best regards
igor

0 Kudos

1,199 Views
igorpadykov
NXP Employee
NXP Employee

Hi  Diego

I think your settings are correct.

    BOOT_CFG1[5] - for toggle more please check sect.4.10.3 Samsung Toggle Mode AC Timing

    i.MX6SDL Datasheet
http://www.nxp.com/docs/en/data-sheet/IMX6SDLCEC.pdf


    BOOT_CFG2[7:5] for toggle nand, MT29F8G08ABACAH4 is raw nand
    BOOT_CFG1[1:0] raw cycles can be found in MT29F8G08ABACAH4 datasheet Table 2: Array Addressing
    BOOT_CFG2[0] default setting will be fine

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos