mini2440的nand flash分区有关问题。重新烧uboot,内核程序,重启是原来的uboot和内核
mini2440的nand flash分区问题。重新烧uboot,内核程序,重启是原来的uboot和内核
一 修改nandflash分区信息:
vi arch/arm/mach-s3c2440/mach-mini2440.c
static struct mtd_partition friendly_arm_default_nand_part[] = {
[0] = {
.name = "Uboot",
.size = 0x00100000, //1M
.offset = 0,
},
[1] = {
.name = "Kernel",
.offset = 0x00100000,
.size = 0x00500000, //5M
},
[2] = {
.name = "Root",
.offset = 0x00600000,
.size = 0x05000000, //80M
},
[3] = {
.name = "fs",
.offset = 0x05600000,
.size = 0x2A00000, //42M
},
};
二 烧录uboot到nandflash第一个分区
tftp 0x33000000 u-boot.bin
nand erase 0 0x100000
nand write 0x33000000 0 0x100000
三 烧录内核到nandflash第二个分区
tftp 0x32000000 zImage
nand erase 0x100000 0x500000
nand write 0x32000000 0x100000 0x500000
修改bootcmd,开机从nandflash分区读取内核到内存中
set bootcmd nand read 0x33000000 0x100000 0x300000 \; bootm
save
...........................................................................等等。。。。
我想重新下载一个uboot,当我重新用:
tftp 0x33000000 u-boot.bin
nand erase 0 0x100000
nand write 0x33000000 0 0x100000
或者重新下载一个内核是,用:
tftp 0x32000000 zImage
nand erase 0x100000 0x500000
nand write 0x32000000 0x100000 0x500000
然后重新启动。发现一个很奇怪的问题,明明新uboot和新内核都用网线烧写成功了,但运行时依然还是原来的程序。我就
不知道哪错了。有哪个 高手指点下。。。
------解决方案--------------------
你确定你uImage拷贝过去了?
------解决方案--------------------
地址明显错了啊
------解决方案--------------------
你的程序是在文件系统里吧?你都没变文件系统
------解决方案--------------------
没看懂你的用法。。。但是nand 要想写东西进去则必须先把该块擦除掉才行。貌似看你的地址不对;
------解决方案--------------------
烧写进去后,用nand dump看下是否是你烧写的最新内核和文件系统。
------解决方案--------------------
有个手册叫《 mini2440之uboot移植详细手册》的,可以参考一下。
------解决方案--------------------
我没有像你这样做过,你把uboot 下来之后用fastboot 可以试试
一 修改nandflash分区信息:
vi arch/arm/mach-s3c2440/mach-mini2440.c
static struct mtd_partition friendly_arm_default_nand_part[] = {
[0] = {
.name = "Uboot",
.size = 0x00100000, //1M
.offset = 0,
},
[1] = {
.name = "Kernel",
.offset = 0x00100000,
.size = 0x00500000, //5M
},
[2] = {
.name = "Root",
.offset = 0x00600000,
.size = 0x05000000, //80M
},
[3] = {
.name = "fs",
.offset = 0x05600000,
.size = 0x2A00000, //42M
},
};
二 烧录uboot到nandflash第一个分区
tftp 0x33000000 u-boot.bin
nand erase 0 0x100000
nand write 0x33000000 0 0x100000
三 烧录内核到nandflash第二个分区
tftp 0x32000000 zImage
nand erase 0x100000 0x500000
nand write 0x32000000 0x100000 0x500000
修改bootcmd,开机从nandflash分区读取内核到内存中
set bootcmd nand read 0x33000000 0x100000 0x300000 \; bootm
save
...........................................................................等等。。。。
我想重新下载一个uboot,当我重新用:
tftp 0x33000000 u-boot.bin
nand erase 0 0x100000
nand write 0x33000000 0 0x100000
或者重新下载一个内核是,用:
tftp 0x32000000 zImage
nand erase 0x100000 0x500000
nand write 0x32000000 0x100000 0x500000
然后重新启动。发现一个很奇怪的问题,明明新uboot和新内核都用网线烧写成功了,但运行时依然还是原来的程序。我就
不知道哪错了。有哪个 高手指点下。。。
------解决方案--------------------
你确定你uImage拷贝过去了?
------解决方案--------------------
地址明显错了啊
------解决方案--------------------
你的程序是在文件系统里吧?你都没变文件系统
------解决方案--------------------
没看懂你的用法。。。但是nand 要想写东西进去则必须先把该块擦除掉才行。貌似看你的地址不对;
------解决方案--------------------
烧写进去后,用nand dump看下是否是你烧写的最新内核和文件系统。
------解决方案--------------------
有个手册叫《 mini2440之uboot移植详细手册》的,可以参考一下。
------解决方案--------------------
我没有像你这样做过,你把uboot 下来之后用fastboot 可以试试