imx6 system boot

imx6开机启动就进入download模式,有的板子进入文件系统之后会进入download模式。查看datasheet,Chapter 8 System Boot查找原因,记录于此。

freescale论坛有关于这个问题的讨论,有硬件也有软件方面的原因。

参考链接

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

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

boot mode pin settings

8.2.1 Boot mode pin settings
BOOT_MODE is initialized by sampling the BOOT_MODE0 and BOOT_MODE1
inputs on the rising edge of POR_B. After these inputs are sampled, their subsequent
state does not affect the contents of the BOOT_MODE internal register. The state of the
internal BOOT_MODE register may be read from the BMOD[1:0] field of the SRC Boot
Mode Register (SRC_SBMR2). The available boot modes are: Boot From Fuses, serial
boot via USB, and Internal Boot. See the table below for settings
根据BOOT_MODE[1:0]引脚的值选择启动类型
BOOT_MODE[1:0]      Boot Type
00                  Boot From Fuses
01                  Serial Downloader
10                  Internal Boot
11                  Reserved

在POR_B引脚的上升沿读取BOOT_MODE0和BOOT_MODE1的值作为启动的模式。

如果boot一开始就进入download模式,应该查看POR_B上升沿时,BOOT_MODE, BOOT_CFG引脚配置的值是否正确。

Boot devices(Internal Boot)

当选择为Internal Boot时,根据BOOT_CFG1[7:4]选择启动设备的类型,如果没有选择的设备,则进入download模式。 

NOR Flash with External Interface Module (EIM), located on CS0, 16-bit bus width
• OneNAND Flash with EIM interface, located on CS0, 16-bits bus width
• Raw NAND (MLC and SLC), and Toggle-mode NAND flash through GPMI-2
interface. Page sizes of 2 Kbyte, 4 Kbyte and 8 Kbyte. Bus widths of 8-bit with 2
through 40-bit BCH Hardware ECC (Error Correction) are supported.
• SD/MMC/eSD/SDXC/eMMC4.4 via USDHC interface, supporting high capacity
cards
• EEPROM boot via SPI (serial flash) and I2C(via ECSPI and I2C blocks respectively)
The selection of external boot device type is controlled by BOOT_CFG1[7:4] eFUSEs.
See the table below for more details

BOOT_CFG1[7:4]      Boot Device
0000                NOR/OneNAND (EIM)
0001                Reserved
0011                Serial ROM (I2C/SPI)
010x                SD/eSD/SDXC
011x                MMC/eMMC
1xxx                Raw NAND

BOOT_CFG其他引脚

BOOT_CFG1,BOOT_CFG2,BOOT_CFG3,BOOT_CFG4引脚进一步确定其他的参数。

例如sd/emmc,如下:
8.5.3 Expansion Device
The ROM supports booting from MMC/eMMC and SD/eSD compliant devices.
8.5.3.1 Expansion Device eFUSE Configuration
SD/MMC/eSD/eMMC/SDXC boot can be performed using either USDHC ports, based
on setting of the BOOT_CFG2[4:3] (Port Select) fuse or it's associated GPIO input value
at boot. All USDHC ports support eMMC4.3 and eMMC4.4 fast boot.

BOOT_CFG2[7:5]         选择SD/EMMC的参数
        SD/eSD/SDXC (BOOT_CFG1[5]=0)
        Bus Width
        xx0 - 1-bit
        xx1 - 4-bit
        SD Calibration Step
        00x - 1 delay cells
        01x - 1 delay cells
        10x - 2 delay cells
        11x - 3 delay cells
        MMC/eMMC (BOOT_CFG1[5]=1)
        000 - 1-bit
        001 - 4-bit
        010 - 8-bit
        101 - 4-bit DDR (MMC 4.4)
        110 - 8-bit DDR (MMC 4.4)
        Else - reserved.
BOOT_CFG2[4:3]    选择从哪个设备启动
        01 - USDHC-2
        10 - USDHC-3
        11 - USDHC-4

Author

Tony Liu

2016-10-31, Shenzhen

原文地址:https://www.cnblogs.com/helloworldtoyou/p/6016659.html