请选择 进入手机版 | 继续访问电脑版
查看: 2285|回复: 4

[已解决] imx6q mfg烧写nand,烧写无法完成,无法正常识别nand

[复制链接]
  • TA的每日心情
    难过
    2018-12-29 17:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    6

    帖子

    0

    新手上路

    Rank: 1

    积分
    39
    最后登录
    2019-1-3
    发表于 2018-12-25 11:31:00 | 显示全部楼层 |阅读模式
    朋友们:最近调试imx6 mfg烧写nand,通过nand启动开发板,遇到如下问题,希望大神们不吝赐教,感谢感谢。
    问题如下:
    1、硬件方面是不是需要将nand的供电电压设置在3.3V,还是通过修改uboot中pmic电源管理模块将电压配置成3.3v,供给nand?因为mfg烧写过程,需要引导的uboot和内核,再以此启动uboot和内核,所以在所需的引导uboot中修改pmic供电端VGEN3(给nand供电)为3.3V,烧写过程中串口打印,显示给nand供电的VGEN3始终是1.8v,故没办法识别nand,但是我已经在引导uboot中修改vgen3为3.3V了啊?

    2、uboot下include/configs/目录下mx6q_sabreauto.h mx6q_sabreauto_nand.h mx6q_sabreauto_weimnor.h mx6q_sabreauto_spi-nor.h以及各自加_mfg的头文件,怎么使用?以我现在nand启动为例,是不是需要修改mx6q_sabreauto_nand.h 和mx6q_sabreauto_nand_mfg.h文件,并通过make mx6q_sabreauto_nand_config以及 mx6q_sabreauto_nand_mfg_config再make生成对应的烧写入nand的uboot以及用于mfg引导烧写的uboot?


    3、由于一直没办法识别到nand,想换如下思路,正常nor启动,由于烧进去的uboot可以将nand供电电压设置为3.3v,可以正常识别nand,在内核启动之后,再划分nand分区,再分别烧写,但是不知道怎么操作?

    最佳答案

    首先,我不知道你的PMIC是出厂的时候已经烧写好的,还是空片子,你自己烧写的。因为你说的VGEN2从SabreAI板子上看,应该是1.5V。不应该是3V呀。 1、NAND供电。 对于使用VGEN2来给NAND供电,这个是有问题的,VGEN2的 ...
    项目顺利,拜托~
    回复

    使用道具 举报

    该用户从未签到

    648

    主题

    6301

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    19553
    最后登录
    2024-3-29
    发表于 2018-12-26 12:27:23 | 显示全部楼层
    1、硬件设计上3.3V电压给NAND供电问题。
    首先,你需要确认你使用的PMIC型号,MMPF0100F0AEP/MMPF0100F0ANES/MMPF0100F0AZES这个几个都是针对I.MX6Q上电顺序的,出厂就配置好了,这里F0是针对I.MX6Q供电顺序的默认配置。如果你使用了MMPF0100NPZES,这个型号在出厂的时候是空的,需要你根据你需要的上电顺序去OTP烧写,Sabre AI板子上用的就是这个型号。

    其次,如果你使用的是MMPF0100F0AEP/MMPF0100F0ANES/MMPF0100F0AZES其中的一个,那么你NAND供的3.3V是VGEN3的话,那么VENG3默认输出是2.5V,而你目前输出是1.8V,说明你使用了MMPF0100NPZES,并自己对它做了OTP编程。从Sabre AI CPU板原理图可以看出,VGEN3就是1.8V的输出。

    而NAND 的供电用的是P3V3_DELAYED,这个电源是用VGEN6(2.8V)Enable的,说明P3V3_DELAYED上电顺序排在第4位置。细节请看Sabre AI CPU 板原理图MMPF0100那一页。

    所以,从你的描述看,NAND的电源和NVCC_NAND(CPU端)使用的电源错了。

    2. 软件上。
    Sabre AI的BSP支持NAND Flash,你只要参考这部分代码做就可以。

    3. 换个思路也不行。因为你即使改成3.3V,断电后又会回到原来的1.8V,软件修改电压输出和OTP编程是两回事。板子一上电,CPU 内部ROM CODE马上开始运行,采集你boot config selection引脚配置,发现是NAND启动,那么立刻会去NAND读取代码。而此时,会有2中可能:NAND电源错误;NAND的电源还没上来。所以,你需要硬件上修改你NAND的电源。其他方法很难凑效。





    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2018-12-29 17:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    6

    帖子

    0

    新手上路

    Rank: 1

    积分
    39
    最后登录
    2019-1-3
     楼主| 发表于 2018-12-29 16:53:35 | 显示全部楼层
    1、硬件上,使用的确实是MMPF0100NPZES,按照您所说的,这个型号是空的,无法给Nand提供有效的供电电压。于是,我们在硬件上将Nand的供电电压改为VGEN2,即3V电压,这样是能够正常识别Nand的。但是烧写过程中还是出现问题。烧写过程的log信息见附件,错误如下:
    regulator_init_complete: PFUZE100_VGEN2: incomplete constraints, leaving on
    regulator_init_complete: vmmc: incomplete constraints, leaving on
    snvs_rtc snvs_rtc.0: setting system clock to 1970-01-01 00:00:00 UTC (0)
    VFS: Cannot open root device "(null)" or unknown-block(0,0)
    Please append a correct "root=" boot option; here are the available partitions:
    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)


    [<80046868>] (unwind_backtrace+0x0/0xf8) from [<804f895c>] (panic+0x74/0x18c)
    [<804f895c>] (panic+0x74/0x18c) from [<80008ce8>] (mount_block_root+0x170/0x224)
    [<80008ce8>] (mount_block_root+0x170/0x224) from [<80008e84>] (mount_root+0xe8/0x108)
    [<80008e84>] (mount_root+0xe8/0x108) from [<80008fc4>] (prepare_namespace+0x120/0x178)
    [<80008fc4>] (prepare_namespace+0x120/0x178) from [<800089b0>] (kernel_init+0x108/0x13c)
    [<800089b0>] (kernel_init+0x108/0x13c) from [<80040a64>] (kernel_thread_exit+0x0/0x8)


    mfg工具显示如附件图所示
    mfg_nand.png

    log.zip

    5.75 KB, 下载次数: 1, 下载积分: 威望 1

    项目顺利,拜托~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2018-12-29 17:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    1

    主题

    6

    帖子

    0

    新手上路

    Rank: 1

    积分
    39
    最后登录
    2019-1-3
     楼主| 发表于 2018-12-29 17:02:37 | 显示全部楼层
    小恩GG 发表于 2018-12-26 12:27
    1、硬件设计上3.3V电压给NAND供电问题。
    首先,你需要确认你使用的PMIC型号,MMPF0100F0AEP/MMPF0100F0ANES ...

    还有,我烧写的使用的mfg工具版本是MfgTools-Rel-4.00_130424_MX6Q_UPDATE。
    我如果只替换原有的工具下OS_Firmware下的uboot,以及files文件夹下我们自己生成的供烧写使用的uboot和uImage,能够正常烧写,但是烧写完成后无法正常启动,打开mfg工具,依然显示是HID-compliant device。并且我们的启动模式已经改为Nand启动方式,BOOT_MODE[1:0]为10,即Internal(development模式)。
    项目顺利,拜托~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    648

    主题

    6301

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    19553
    最后登录
    2024-3-29
    发表于 2019-1-2 10:37:17 | 显示全部楼层
    首先,我不知道你的PMIC是出厂的时候已经烧写好的,还是空片子,你自己烧写的。因为你说的VGEN2从SabreAI板子上看,应该是1.5V。不应该是3V呀。
    1、NAND供电。
    对于使用VGEN2来给NAND供电,这个是有问题的,VGEN2的即使是3V,其输出的顺序应该是比较靠后的,其输出电流最大250MA。你参考一下我们的SabreSDB板子,如果给NAND供电,你需要使用PMIC的SW2,GEN_3V3供电,才符合上电顺序。
    2.启动
    仅仅把BOOT_MODE[1:0]配置internal boot是不够的,这只是告诉ROM CODE 从板子上某个存储芯片启动系统,具体从哪里启动。还要对boot config selection做选择(从NAND Flash启动),关于这个,你可以参考SabreAI板子。


    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-3-29 12:53 , Processed in 0.129094 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表