• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » ARM® Processors » Sitara™ ARM® » AM3x Sitara ARM Processors Forum » rootfs flashed to K9F1G08 doesn't work
Share
Sitara™ ARM®
  • Forum
  • Announcements
Options
  • Subscribe via RSS

Forums

rootfs flashed to K9F1G08 doesn't work

This question is not answered
Amir Lee
Posted by Amir Lee
on Aug 10 2012 04:45 AM
Intellectual280 points

Hi,

I have a AM3359 board which the NandFlash on the board is K9F1G08.I flash kernel and ubi rootfs to the NandFlash using u-boot,as the following content shows,

U-Boot# tftp 0x82000000 uImage

U-Boot# nand erase 0x280000 0x500000

U-Boot# nandecc hw 0

U-Boot# nand write 0x82000000 0x280000 0x500000

U-Boot# tftp 0x82000000 ubi.img  

U-Boot# nand erase 0x780000 0x7880000

U-Boot# nandecc hw 0

U-Boot# nand write 0x82000000 0x780000 ${filesize}

then the kernel can't boot file system sucessfully and end up with error:

VFS: Cannot open root device "ubi0:rootfs" or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available partitions:
1f00 128 mtdblock0 (driver?)
1f01 128 mtdblock1 (driver?)
1f02 128 mtdblock2 (driver?)
1f03 128 mtdblock3 (driver?)
1f04 1920 mtdblock4 (driver?)
1f05 128 mtdblock5 (driver?)
1f06 5120 mtdblock6 (driver?)
1f07 123392 mtdblock7 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Backtrace:
[<c00178f8>] (dump_backtrace+0x0/0x110) from [<c03dfb84>] (dump_stack+0x18/0x1c)
r6:cf98b000 r5:c0564d04 r4:c05caf48 r3:c0594ec8
[<c03dfb6c>] (dump_stack+0x0/0x1c) from [<c03dfbf4>] (panic+0x6c/0x1a0)
[<c03dfb88>] (panic+0x0/0x1a0) from [<c0538cb4>] (mount_block_root+0x184/0x228)
r3:c0594ec8 r2:00000000 r1:cf81df78 r0:c04a9000
r7:00008000
[<c0538b30>] (mount_block_root+0x0/0x228) from [<c0538fd0>] (prepare_namespace+0xac/0x1d4)
[<c0538f24>] (prepare_namespace+0x0/0x1d4) from [<c053890c>] (kernel_init+0x124/0x130)
r5:c0572cd4 r4:c0572cd4
[<c05387e8>] (kernel_init+0x0/0x130) from [<c003f0e4>] (do_exit+0x0/0x67c)
r5:c05387e8 r4:00000000

In addition,the kernel can boot the file system  from NandFlash named M29F2G08ABAEA.

I don't know why it happens and how to fix the problem now?

Please help me!

Thanks and Regards?

Linux AM335x
Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • Renjith Thomas
    Posted by Renjith Thomas
    on Aug 12 2012 12:58 PM
    Guru26150 points

    John,

    You have to verify couple of things here. You've to see whether the ECC algorithm chosen in kernel is same as u-boot. nand hwecc 0 selects 1-bit hamming code. hwecc 2 selects BCH-8. What I recommend is to first verify the kernel NAND driver by creating and writing the UBIFS from kernel itself using mtd-utils.

    If you are unsure on how to figure out the NAND ECC algorithm used in kernel, could you please send me the following files to the email renjith.thomas@pathpartnertech.com?

    1. arch/arm/mach-omap2/board-335xevm.c 
    2. arch/arm/mach-omap2/board-flash.c
    3. arch/arm/mach-omap2/gpmc.c
    4. drivers/mtd/nand/nand_base.c
    5. drivers/mtd/nand/omap2.c
    Also send me the complete kernel logs.

    -Renjith | www.pathpartnertech.com | Verify the answer if you think your query is resolved

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Amir Lee
    Posted by Amir Lee
    on Aug 14 2012 04:01 AM
    Intellectual280 points

    I choose nand hwecc 0 when I flash both u-boot and kernl to flash,

    And I Modify the ecc_opt passed through platform data in board-335xevm.c

    static void __init evm_nand_init(void)

    {
    struct omap_nand_platform_data *pdata;
    struct gpmc_devices_info gpmc_device[2] = {
    { NULL, 0 },
    { NULL, 0 },
    };

    setup_pin_mux(nand_pin_mux);
    pdata = omap_nand_init(am335x_nand_partitions,
    ARRAY_SIZE(am335x_nand_partitions), 0, 0,
    &am335x_nand_timings);
    if (!pdata)
    return;
    //pdata->ecc_opt =OMAP_ECC_BCH8_CODE_HW;
    pdata->ecc_opt = OMAP_ECC_HAMMING_CODE_HW;  // select haming code
    pdata->elm_used = true;
    gpmc_device[0].pdata = pdata;
    gpmc_device[0].flag = GPMC_DEVICE_NAND;

    omap_init_gpmc(gpmc_device, sizeof(gpmc_device));
    omap_init_elm();
    }


    AM3359 Linux K9F1G08
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
TI E2E™ Community
  • Support Forums
  • Blogs
  • Videos
  • Groups
  • Site Support & Feedback
  • Settings
TI E2E™ Community Groups
  • TI University Program
  • Make the Switch
  • Microcontroller Projects
  • Motor Drive & Control
Other Communities
  • Deyisupport
  • Designsomething.org
  • beagleboard.org
  • TI on Element 14
  • TI on TechXchangeSM
Other Technical & Support Resources
  • WEBENCH® Design Center
  • Product Information Centers
  • Technical Documents
  • TI Design Network
  • TI Technical Articles
  • TI Training

All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
embedded processors, along with software, tools and the industry’s largest sales/support staff.

© Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy Policy | Terms of Use