前提条件:
板子可以启动到 u -boot 环境;
内核文件、文件系统都准备好而且能正常运行;
tftp 服务器打开;
板子可以启动到 u -boot 环境;
内核文件、文件系统都准备好而且能正常运行;
tftp 服务器打开;
测试环境:
AT91SAM9263-EK;
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
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
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 成功。
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>setenv bootcmd nand read 0x22000000 0x0 0x16c58a\;nand read 0x20500000 0x400000 0x24bc12\;go 0x22000000
U-Boot>saveenv
reset 板子即可。
附上 U -boot 下 Nand Flash 的相关命令 (u-boot-/common/cmd_nand.c — U_BOOT_CMD):
"nand - NAND sub-system\n", |
正文完
发表至: 未分类
2015-11-09