通过u-boot把内核和文件系统烧录到Nand Flash
2010-12-14 22:04
537 查看
前提条件:
板子可以启动到u-boot环境;
内核文件、文件系统都准备好而且能正常运行;
tftp服务器打开;
测试环境:
AT91SAM9263-EK;
设置板子和tftp服务器的ip地址以及板子的mac地址;
U-Boot>setenv ipaddr 192.168.1.2
U-Boot>setenv serverip 192.168.1.100
U-Boot>setenv ethaddr 0:1:2:3:4:5
通过tftp下载内核文件vmlinux和文件系统ramdisk.gz,并将他们写入Nand Flash中;
先擦除flash
U-Boot>nand scrub 或者 nand erase
下载并写入flash
U-Boot>tftp 0x22000000 vmlinux
U-Boot>nand write 0x22000000 0x0 0x200000
U-Boot>tftp 0x22000000 ramdisk.gz
U-Boot>nand write 0x22000000 0x400000 0x300000
从Nand Flash读出内核和文件系统到SDRAM上,注意此处读出操作可以省,只要上一步的下载地址指定好既可;
U-Boot>nand read 0x22000000 0x0 0x16c58a (vmlinux大小)
U-Boot>nand read 0x20500000 0x400000 0x24bc12 (ramdisk.gz大小)
从SDRAM启动系统
U-Boot>go 0x22000000
如果能正确运行系统,烧录文件到Nand Flash成功。
自动启动(自动从Nand Flash拷贝文件到SDRAM里),设置U-boot的环境变量:
U-Boot>setenv bootcmd nand read 0x22000000 0x0 0x16c58a/;nand read 0x20500000 0x400000 0x24bc12/;go 0x22000000
U-Boot>saveenv
reset板子即可。
附上U-boot下Nand Flash的相关命令(u-boot-<version>/common/cmd_nand.c -- U_BOOT_CMD) :
板子可以启动到u-boot环境;
内核文件、文件系统都准备好而且能正常运行;
tftp服务器打开;
测试环境:
AT91SAM9263-EK;
设置板子和tftp服务器的ip地址以及板子的mac地址;
U-Boot>setenv ipaddr 192.168.1.2
U-Boot>setenv serverip 192.168.1.100
U-Boot>setenv ethaddr 0:1:2:3:4:5
通过tftp下载内核文件vmlinux和文件系统ramdisk.gz,并将他们写入Nand Flash中;
先擦除flash
U-Boot>nand scrub 或者 nand erase
下载并写入flash
U-Boot>tftp 0x22000000 vmlinux
U-Boot>nand write 0x22000000 0x0 0x200000
U-Boot>tftp 0x22000000 ramdisk.gz
U-Boot>nand write 0x22000000 0x400000 0x300000
从Nand Flash读出内核和文件系统到SDRAM上,注意此处读出操作可以省,只要上一步的下载地址指定好既可;
U-Boot>nand read 0x22000000 0x0 0x16c58a (vmlinux大小)
U-Boot>nand read 0x20500000 0x400000 0x24bc12 (ramdisk.gz大小)
从SDRAM启动系统
U-Boot>go 0x22000000
如果能正确运行系统,烧录文件到Nand Flash成功。
自动启动(自动从Nand Flash拷贝文件到SDRAM里),设置U-boot的环境变量:
U-Boot>setenv bootcmd nand read 0x22000000 0x0 0x16c58a/;nand read 0x20500000 0x400000 0x24bc12/;go 0x22000000
U-Boot>saveenv
reset板子即可。
附上U-boot下Nand Flash的相关命令(u-boot-<version>/common/cmd_nand.c -- U_BOOT_CMD) :
"nand - NAND sub-system/n", "info - show available NAND devices/n" "nand device [dev] - show or set current device/n" "nand read[.jffs2] - addr off|partition size/n" "nand write[.jffs2] - addr off|partiton size - read/write `size' bytes starting/n" " at offset `off' to/from memory address `addr'/n" "nand erase [clean] [off size] - erase `size' bytes from/n" " offset `off' (entire device if not specified)/n" "nand bad - show bad blocks/n" "nand dump[.oob] off - dump page/n" "nand scrub - really clean NAND erasing bad blocks (UNSAFE)/n" "nand markbad off - mark bad block at offset (UNSAFE)/n" "nand biterr off - make a bit error at offset (UNSAFE)/n" "nand lock [tight] [status] - bring nand to lock state or display locked pages/n" "nand unlock [offset] [size] - unlock section/n"; |
相关文章推荐
- 通过u-boot把内核和文件系统烧录到Nand Flash
- 移植u-boot-2011.03到S3C2440(utu2440)的方法与步骤###8. u-boot引导启动nand flash中内核和根文件系统cramfs和用户文件系统yaffs2支持
- u-boot通过nfs从服务器下载内核,并且启动内核,挂载根文件系统的方法
- 嵌入式uboot,内核启动通过nfs挂载根文件系统
- u-boot-2011.06在基于s3c2440开发板的移植之引导内核与加载根文件系统
- mini2440 uboot使用nfs方式引导内核,文件系统
- u-boot 使用 jffs2 文件系统加载内核
- 6410 UBOOT 支持SD/SDHC卡启动 FAT32文件系统 yaffs2烧录 图片显示烧录状态
- mini6410基于linux2.6.36内核通过NFS启动根文件系统总结(四制作根文件系统及通过NFS挂载文件系统)
- Linux_UBOOT,LINUX内核编译,根文件系统的15个弱智问题
- 内核kernel、根文件系统rootfs如何映射到对应的nand flash
- 【Android 系统开发】 编译 Android文件系统 u-boot 内核 并烧写到 OK-6410A 开发板上
- tiny210 u-boot 引导内核及文件系统笔记
- 嵌入式开发之旅-----OK6410开发笔记(2)----Uboot,内核,文件系统编译
- armboot和内核文件系统烧写总结
- d717 GZSD6410板子 UBOOT + 内核 + 文件系统布置成功
- u-boot-2011.06在基于s3c2440开发板的移植之引导内核与加载根文件系统
- 【Android 系统开发】 编译 Android文件系统 u-boot 内核 并烧写到 OK-6410A 开发板上
- 牛人博客(关于uboot,内核和文件系统)
- 用tftp服务器烧录内核和文件系统时”Retry cout exceeded; starting again “解决方法