打印
[嵌入式linux]

关于 imx6q NANDflash mtd分区 修改

[复制链接]
5363|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
首先,我们需要更大一点的根目录,以存放 应用程序;目前我们的根目录只有198M,(nand flash为4G);如下:



我修改的地方为 /drivers/mtd/mtdpart.c,如下图,因为打印信息上显示"nand_rootfs"大小为256M,所以我
直接判断 256 M,然后改为 512M

                           
   启动时打印显示已经改过来了:

                                 

但是启动时却起不来了!如下红色字体
Bus freq driver Enabled
mxc_dvfs_core_probe
DVFS driver module loaded
snvs_rtc snvs_rtc.0: setting system clock to 1970-01-01 00:00:00 UTC (0)
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            1024 mtdblock0  (driver?)
1f01            1024 mtdblock1  (driver?)
1f02           16384 mtdblock2  (driver?)
1f03           16384 mtdblock3  (driver?)
1f04          524288 mtdblock4  (driver?)
1f05         3637248 mtdblock5  (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[<800464ac>] (unwind_backtrace+0x0/0xf8) from [<8044661c>] (panic+0x74/0x18c)
[<8044661c>] (panic+0x74/0x18c) from [<80008d8c>] (mount_block_root+0x170/0x224)
[<80008d8c>] (mount_block_root+0x170/0x224) from [<80008fd4>] (prepare_namespace+0x8c/0x184)
[<80008fd4>] (prepare_namespace+0x8c/0x184) from [<80008a54>] (kernel_init+0x108/0x13c)
[<80008a54>] (kernel_init+0x108/0x13c) from [<80040a18>] (kernel_thread_exit+0x0/0x8)
CPU3: stopping
[<800464ac>] (unwind_backtrace+0x0/0xf8) from [<8003a294>] (do_IPI+0x150/0x17c)
[<8003a294>] (do_IPI+0x150/0x17c) from [<8003f9cc>] (__irq_svc+0x4c/0xc4)
Exception stack(0xbffa3e10 to 0xbffa3e58)
3e00:                                     7fffffff bffbc000 00000000 00000000
3e20: bffa3ec4 bffa3ec0 7fffffff bffa2000 00000000 00000000 00000002 bffa3e94
3e40: 80038e40 bffa3e58 8044aba0 8044a6ac 60000013 ffffffff
[<8003f9cc>] (__irq_svc+0x4c/0xc4) from [<8044a6ac>] (wait_for_common+0xac/0x150)
[<8044a6ac>] (wait_for_common+0xac/0x150) from [<8031fcd0>] (mmc_wait_for_req_done+0x1c/0x5c)
[<8031fcd0>] (mmc_wait_for_req_done+0x1c/0x5c) from [<8031fdd8>] (mmc_wait_for_cmd+0x7c/0x9c)
[<8031fdd8>] (mmc_wait_for_cmd+0x7c/0x9c) from [<803246d4>] (mmc_send_op_cond+0xa0/0x100)
[<803246d4>] (mmc_send_op_cond+0xa0/0x100) from [<80323d64>] (mmc_attach_mmc+0x34/0x1b8)
[<80323d64>] (mmc_attach_mmc+0x34/0x1b8) from [<803217fc>] (mmc_rescan+0x22c/0x25c)
[<803217fc>] (mmc_rescan+0x22c/0x25c) from [<80087d88>] (process_one_work+0x10c/0x38c)
[<80087d88>] (process_one_work+0x10c/0x38c) from [<800885c0>] (worker_thread+0x170/0x37c)
[<800885c0>] (worker_thread+0x170/0x37c) from [<8008ca60>] (kthread+0x80/0x88)
[<8008ca60>] (kthread+0x80/0x88) from [<80040a18>] (kernel_thread_exit+0x0/0x8)
CPU1: stopping
[<800464ac>] (unwind_backtrace+0x0/0xf8) from [<8003a294>] (do_IPI+0x150/0x17c)
[<8003a294>] (do_IPI+0x150/0x17c) from [<8003f9cc>] (__irq_svc+0x4c/0xc4)
Exception stack(0xbffadf90 to 0xbffadfd8)
df80:                                     00000001 00000002 0002fe62 f40c4000
dfa0: bffac000 805fc184 805c3a70 8044f018 805c6de4 412fc09a 00000000 00000000
................略....................

请问我该怎么办呢?求救!!




相关帖子

沙发
JohnSmith@sq|  楼主 | 2014-6-10 11:51 | 只看该作者
好吧!自己顶一下,问题已解决,mfg工具烧写时得两个uboot!

使用特权

评论回复
板凳
lqland| | 2014-6-19 09:35 | 只看该作者
顶楼主分享解决之道

使用特权

评论回复
地板
JohnSmith@sq|  楼主 | 2014-7-2 11:19 | 只看该作者
就是他这个 MFG 有两个uboot,一个是给MFG用的,一个是给板子用的,两个uboot的参数得一致

使用特权

评论回复
5
JohnSmith@sq|  楼主 | 2014-7-2 11:23 | 只看该作者
但是我将分区改大了之后 发现启动不太稳定了,启动偶尔会出现类似如下的错误,待解决

Bus freq driver Enabled
mxc_dvfs_core_probe
DVFS driver module loaded
snvs_rtc snvs_rtc.0: setting system clock to 1970-01-01 00:00:00 UTC (0)
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            1024 mtdblock0  (driver?)
1f01            1024 mtdblock1  (driver?)
1f02           16384 mtdblock2  (driver?)
1f03           16384 mtdblock3  (driver?)
1f04          524288 mtdblock4  (driver?)
1f05         3637248 mtdblock5  (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[<800464ac>] (unwind_backtrace+0x0/0xf8) from [<8044661c>] (panic+0x74/0x18c)
[<8044661c>] (panic+0x74/0x18c) from [<80008d8c>] (mount_block_root+0x170/0x224)
[<80008d8c>] (mount_block_root+0x170/0x224) from [<80008fd4>] (prepare_namespace+0x8c/0x184)
[<80008fd4>] (prepare_namespace+0x8c/0x184) from [<80008a54>] (kernel_init+0x108/0x13c)
[<80008a54>] (kernel_init+0x108/0x13c) from [<80040a18>] (kernel_thread_exit+0x0/0x8)
CPU3: stopping
[<800464ac>] (unwind_backtrace+0x0/0xf8) from [<8003a294>] (do_IPI+0x150/0x17c)
[<8003a294>] (do_IPI+0x150/0x17c) from [<8003f9cc>] (__irq_svc+0x4c/0xc4)
Exception stack(0xbffa3e10 to 0xbffa3e58)
3e00:                                     7fffffff bffbc000 00000000 00000000
3e20: bffa3ec4 bffa3ec0 7fffffff bffa2000 00000000 00000000 00000002 bffa3e94
3e40: 80038e40 bffa3e58 8044aba0 8044a6ac 60000013 ffffffff

使用特权

评论回复
6
outstanding| | 2014-7-2 12:06 | 只看该作者
不错 学习一下

使用特权

评论回复
7
shell.albert| | 2014-7-7 11:03 | 只看该作者
记得Freescale针对IMX系列有相应的MFGTools工具使用,
在这个工具下有config文件,里面有一个mksdcard.sh脚本大体看了一下,就是使用fdisk对目标Flash进行分区,
你在这里调整一个分区大小即可。
附上我的参数:
#!/bin/sh

#edited by zhangshaoyan,2012/12/25
#uboot:10MB
#root:1GB-uboot
#user:4GB-uboot-root

# destroy the partition table
node=$1
dd if=/dev/zero of=${node} bs=1024 count=1
# call sfdisk to create partition table
sfdisk --force -uM ${node} << EOF
10,1024,83
1025,,83
EOF

使用特权

评论回复
8
wshini7316| | 2014-11-26 15:29 | 只看该作者
您好。怎么添加nand的mtd分区?

使用特权

评论回复
9
HORSE7812| | 2014-12-16 20:46 | 只看该作者
mark

使用特权

评论回复
10
xiongxiao| | 2014-12-18 22:17 | 只看该作者
mark,分享

使用特权

评论回复
11
JohnSmith@sq|  楼主 | 2015-1-6 14:08 | 只看该作者
其实烧写和启动用的 uboot不一样,我之前只是改了启动用的uboot,而没有改烧写用的uboot,所以改不过来,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

12

帖子

0

粉丝