自己在写一个bootloader,有关于nand flash 的几个问题搞不懂,请问有大大帮忙解析一下吗?

Keneth_cs 2014-04-19 11:06:40
在自己写一个简单的bootloader ,
板子是tiny210v2 ,cpu是s5pv210 ,nand flash 是K9GAG08U0F (MLC)
在写的时候遇到了几个问题:
第一个是nand flash mtd的问题,看到的资料好像通常会吧nand flash 以MTD的方法分区,我怎样才能知道nand flash 里面的MTD分区是怎么样。在内核启动的调试信息里面有这一段:
[ 1.136229] NAND device: Manufacturer ID: 0xec, Chip ID: 0xd5 (Samsung NAND 2GiB 3,3V 8-bit)
[ 1.136307] Creating 5 MTD partitions on "s5pv210-nand":
[ 1.137942] 0x0000000c0000-0x000000100000 : "misc"
[ 1.143877] 0x000000100000-0x000000600000 : "recovery"
[ 1.149499] 0x000000600000-0x000000b00000 : "kernel"
[ 1.154450] 0x000000b00000-0x000000e00000 : "ramdisk"
[ 1.159094] 0x000000e00000-0x000080000000 : "system"
这是mtd分区的物理地址吗?如果是那 0xc0000 前面的空间是怎么回事?
MTD分区该怎么样读,需要把整块MTD分区读进内存吗,比如读内核分区的时候吗?
第二个是nand flash bootloader写入的问题?现在的bootloader 基本上都分成BL1,和BL2.看到一个高人改的UBOOT是先分别生成BL1和BL2两个镜像,然后用cat 把两个镜像变成一个。如果是这种BOOTLOADER我该怎样才能动态分得出出那个是bl1,那个是BL2。
第三个问题是关于uboot和linux的MTD信息的具体定义的代码的实现的问题,针对板子的的MTD数据具体定义的是的uboot和linux的在那个文件,有高手能告诉我吗??
...全文
219 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
韩半仙 2014-04-28
  • 打赏
  • 举报
回复
在你的工程里面直接搜add_mtd_partition方法,这个方法会传入一个mtd_partition结构体参数,这个结构体就是具体的分区信息
zhxianbin 2014-04-22
  • 打赏
  • 举报
回复
针对板子的的MTD数据具体定义 应该是在各自的板子文件中
fly 100% 2014-04-21
  • 打赏
  • 举报
回复
看看 mmu的tlb 看看映射的
gruesomeman 2014-04-21
  • 打赏
  • 举报
回复
bootloader有对整个nand进行分区吗? bl1是保存在sdram里面吧,这部分好像是不可以改动。 mtd的driver是在kernel/driver/mtd 仅供参考,我也还在学习这部分。

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧