This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

am335x nandflash 驱动

内核从SD卡启动以后后,在dmesg打印的log中,可以发现nandflash已经初始化,那么为什么我在nandflash的omap_nand_probe(struct platform_device *pdev)函数中写的一个打印语句没有执行到,还有从nandflash里边启动的时候,为什么会有mmc的log,请问这时候mmc和nand的关系是什么?

[    0.715724] bone-capemgr bone_capemgr.9: slot #4: dtbo 'cape-bone-2g-emmc1.de
[    0.715919] bone-capemgr bone_capemgr.9: slot #4: #2 overlays               
[    0.716511] bone-capemgr bone_capemgr.9: slot #4: Applied #2 overlays.      
[    0.716530] bone-capemgr bone_capemgr.9: loader: done slot-4 BB-BONE-EMMC-2G)
[    0.717958] OneNAND driver initializing    aaaaa                                 
[    0.718170] bone-capemgr bone_capemgr.9: loader: after slot-5 BB-BONELT-HDMI)
[    0.718196] bone-capemgr bone_capemgr.9: slot #5: Requesting firmware 'cape-'
[    0.718224] bone-capemgr bone_capemgr.9: slot #5: dtbo 'cape-boneblack-hdmi-e
[    0.718775] bone-capemgr bone_capemgr.9: slot #5: #4 overlays          

  0.903142] mmc1: BKOPS_EN bit is not set                                   
[    0.905585] mmc1: new high speed MMC card at address 0001                   
[    0.906109] mmcblk0: mmc1:0001 MMC02G 1.78 GiB                              
[    0.906323] mmcblk0boot0: mmc1:0001 MMC02G partition 1 1.00 MiB             
[    0.906520] mmcblk0boot1: mmc1:0001 MMC02G partition 2 1.00 MiB             
[    0.908316]  mmcblk0: p1 p2                                                 
[    0.910129]  mmcblk0boot1: unknown partition table                          
[    0.911527]  mmcblk0boot0: unknown partition table       

这里看到从nand里边启动显示的大小是和nand大小相同的,所以我猜这里mmc就是nand,请大神指导

  • module_init()会执行platform_driver驱动注册。

    只有对应的platform_device也注册了,才会执行probe()

  • 您好,我这里的问题是,我现在不知道am335x从nand中启动以后,nand的驱动是哪个文件?driver/mtd/nand/omap2.c 和/driver/mtd/onenand/omap2.c这两个文件是他的驱动吗?从log中看,

     mmc1: new high speed MMC card at address 0001                   
    [    0.906109] mmcblk0: mmc1:0001 MMC02G 1.78 GiB                              
    [    0.906323] mmcblk0boot0: mmc1:0001 MMC02G partition 1 1.00 MiB             
    [    0.906520] mmcblk0boot1: mmc1:0001 MMC02G partition 2 1.00 MiB             
    [    0.908316]  mmcblk0: p1 p2                                                 
    [    0.910129]  mmcblk0boot1: unknown partition table                          
    [    0.911527]  mmcblk0boot0: unknown partition table 

    这块我怀疑就是nand驱动打印出来的log,您好,麻烦您告诉我下,nand驱动用的哪个文件,在哪儿打印出nand的大小和型号?谢谢

  • nand驱动是driver/mtd/nand/omap2.c,omap_nand_probe()是驱动初始化函数。

    你列出来的打印信息是MMC的,和NAND无关

     

  • 你好,我这列出的是我从nand启动的,并且当时没有接sd卡,并且我们是eMMCflash,板子上没有其他存储设备,只有nand,如果从SD卡上启动的话,会显示出这样的log,这里会显示SD卡的大小7.21 GiB

     create_regulator: DCDC2: Failed to create debugfs directory     
    [    1.788818] smartreflex smartreflex: am33xx_sr_probe: Driver initialized    
    [    1.799835] clock: disabling unused clocks to save power                    
    [    1.811187] mmc0: host does not support reading read-only switch. assuming w.
    [    1.821655] mmc0: new high speed SDHC card at address 1234                  
    [    1.827911] mmcblk0: mmc0:1234 SA08G 7.21 GiB                               
    [    1.834411]  mmcblk0: p1 p2                                                 
    [    1.839569] Detected MACID=c8:a0:30:aa:51:e8                                
    [    1.844940] cpsw: Detected MACID = c8:a0:30:aa:51:ea                        
    [    1.850921] omap_rtc am33xx-rtc: setting system clock to 2000-01-01 00:00:01)
    [    1.863342] EXT3-fs (mmcblk0p2): recovery required on readonly filesystem   
    [    1.870483] EXT3-fs (mmcblk0p2): write access will be enabled during recovery

    麻烦您帮我分析下,从nand启动不会打印出上边的log,

     mmc1: new high speed MMC card at address 0001                   
    [    0.906109] mmcblk0: mmc1:0001 MMC02G 1.78 GiB                              
    [    0.906323] mmcblk0boot0: mmc1:0001 MMC02G partition 1 1.00 MiB             
    [    0.906520] mmcblk0boot1: mmc1:0001 MMC02G partition 2 1.00 MiB             
    [    0.908316]  mmcblk0: p1 p2                                                 
    [    0.910129]  mmcblk0boot1: unknown partition table                          
    [    0.911527]  mmcblk0boot0: unknown partition table

    我想这块打印出了的1.78 GiB 不会是其他的存储设备,应该是nand

  • 你好Zhou工:

    还麻烦您能帮我解答下问题,刚才看到有这句话:

     MMC0 supports booting from the MMC/SD card cage and also supports booting from
    eMMC/eSD/managed NAND memory devices with less than 4GB capacity.
    • MMC1 supports booting from eMMC/eSD/managed NAND memory device with 4GB capacity or
    greater

    eMMc管理nand是怎么做的呢?

  • 我想先和你确认下,你们板子上用的是NAND FLASH还是eMMC NAND?还是两者都用?

  • 只有用的是eMMC NAND

  • 是这样,你可以EMMC NAND完全理解为SD/MMC卡,和NAND/OneNAND的驱动没有任何关系的。

    请问你这些打印信息是基于BB black板子还是自己做的板子?如果是BB Black,eMMC的信息就是MMC1的信息

  • 你好,是bbb的板子不是我自己做的,你好,因为我刚开始接触这块,所以不是很懂,你有emmc nand的驱动的文档吗?讲的比较详细点的,谢谢

  • 我们的eMMC驱动都是MMC的标准驱动,不需要做太多修改就可以用的。

    具体代码你可以看下:\drivers\mmc\host\omap_hsmmc.c

    至于驱动介绍,网上介绍也很多,可参考:http://blog.csdn.net/liuhaoyutz/article/details/17414095

x 出现错误。请重试或与管理员联系。