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.

Unable to mount root fs on unknown-block(179,2)

Other Parts Discussed in Thread: AM3517

Hi,

I am testing am3517, and when I boot from micro SD, not SD, then I can't enter the system, and log printed on the console is like this:

----------------------------------------------------------------------------------------------------------------------------------------

...... 

...... 

emac-mii: probed

rtc-s35390a 1-0030: setting system clock to 2000-01-01 00:19:10 UTC (946685950)

omapdss DPI error: display already enabled

omap_vout omap_vout: 'lcd' Display already enabled

omapdss DPI error: display already enabled

omap_vout omap_vout: 'lcd' Display already enabled

omap_vout omap_vout: Buffer Size = 3686400

omap_vout omap_vout: : registered and initialized video device 1

omap_vout omap_vout: Buffer Size = 3686400

omap_vout omap_vout: : registered and initialized video device 2

Waiting 1sec before mounting root device...

VFS: Cannot open root device "mmcblk0p2" or unknown-block(179,2)

Please append a correct "root=" boot option; here are the available partitions:

1f00             512 mtdblock0 (driver?)

1f01            1792 mtdblock1 (driver?)

1f02             256 mtdblock2 (driver?)

1f03            5120 mtdblock3 (driver?)

1f04          516608 mtdblock4 (driver?)

b300         1921024 mmcblk0 driver: mmcblk

  b301           72261 mmcblk0p1

  b302          955867 mmcblk0p2

  b303          891607 mmcblk0p3

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)

 

I am not sure what is the problem.

When I boot from SD card, using the the same system, that is OK. but now I have a similar board with micro SD. I have no idea.

 

Thanks,

Kevin

 

  • The difference between Micro SD and SD is that, SD has a write-protect pin, but Micro SD doesn't, however the kernel will check the mmc-wp pin, and we can avoid it.

    Changes:

     

    @kernel/drivers/mmc/host/omap_hsmmc.c

    @line 1267

    ----------------------from----------------------
    static int omap_hsmmc_get_ro(struct mmc_host *mmc)
    {
        struct omap_hsmmc_host *host = mmc_priv(mmc);
        if (!mmc_slot(host).get_ro)
        return -ENOSYS;

        return mmc_slot(host).get_ro(host->dev, 0);
    }

    -----------------------to-----------------------

    static int omap_hsmmc_get_ro(struct mmc_host *mmc)
    {
        return 0;
    }

    The problem has been solved. :-)

  • Hi Kevin,

    Could you please provide the boot args what you had used for booting?

    Regards

    AnilKumar

  • Hi AniKumar,

    boot args:

    mmcargs=setenv bootargs console=${console} root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait

    --------------------------------------

    And uboot environment variables:

    AM3517_EVM # pri

    bootcmd=if mmc init; then if run loadbootscript; then run bootscript; else if run loaduimage; then run mmcboot; else run nandboot; fi; fi; else run nandboot; fi

    baudrate=115200

    bootfile=uImage

    loadaddr=0x82000000

    console=ttyS2,115200n8

    mmcargs=setenv bootargs console=${console} root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait

    loadbootscript=fatload mmc 0 ${loadaddr} boot.scr

    bootscript=echo Running bootscript from mmc ...; source ${loadaddr}

    loaduimage=fatload mmc 0 ${loadaddr} uImage

    mmcboot=echo Booting from mmc ...; run mmcargs; bootm ${loadaddr}

    nandboot=echo Booting from nand ...; run nandargs; nand read ${loadaddr} 280000 400000; bootm ${loadaddr}

    dieid#=2e54000100000000015da3940301c004

    ethact=DaVinci EMAC

    boot_nand_offset=0x280000

    boot_nand_size=0x29d000

    system_nand_offset=0x780000

    system_nand_size=0x44c0000

    xloader_nand_offset=0x0

    xloader_nand_size=0x4800

    bootloader_nand_offset=0x80000

    bootloader_nand_size=0x35000

    nandargs=setenv bootargs console=${console} ubi.mtd=4 rootfstype=ubifs root=ubi0:rootfs rw init=/init

    bootdelay=2

    stdin=serial

    stdout=serial

    stderr=serial

     

    Thanks,

    Kevin