首页 / 操作系统 / Linux / FS2410 开发板Linux-2.6.35内核 jffs2根文件系统镜像
1.了解 NandFlash 信息 :
FS2410开发板的Nand Flash 型号K91208 ;
PageSize = 512 Bytes + 16 Bytes(OOB);
BlockSize = 32 pages *(512 Bytes + 16 Bytes(OOB)) = 32 pages * 528 Bytes = 16K +512 Bytes(OOB) ;
DeviceSize = 4096 blocks * (32 *(512 Bytes + 16 Bytes(OOB))) = 4096 blocks * 16K +4096 *512 Bytes(OOB) = 64MBytes + 2KBytes (OOB) ;所以 制作文件系统竟像时的 -e/--eraseblock = 0x4000 -s/--pagesize = 0x200 -p/--pad = 根文件系统分区大小,这里为20MBytes; S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c24xx-nand s3c2410-nand: Tacls=3, 29ns Twrph0=7 69ns, Twrph1=3 29ns
s3c24xx-nand s3c2410-nand: NAND soft ECC
NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)
Scanning device for bad blocks
Bad eraseblock 3946 at 0x000003da8000
Creating 4 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x000000000000-0x000000040000 : "u-boot"
0x000000040000-0x000000400000 : "kernel-linux-2.6.35"
0x000000400000-0x000001800000 : "rootfs"
0x000001800000-0x000004000000 : "userdata"
Nand Flash 分区修改,linux-2.6.35/arch/arm/plat-s3c24xx/common-smdk.c 109 line;2. 创建 jffs2 文件系统镜像 :sudo ~/bin/mkfs.jffs2 -e 0x4000 -s 0x200 -d filesystem -o filesystem.jffs2 -p 1400000
3. 复制文件系统镜像www.linuxidc.com到/tftpboot/目录
4. tftp下载 jffs2文件系统镜像:
fs2410# tftp 30800000 filesystem.jffs2
TFTP from server 192.168.20.192; our IP address is 192.168.20.253
Filename "filesystem.jffs2".
Load address: 0x30800000
Loading: #################################################################
####################
done
Bytes transferred = 5062656 (4d4000 hex)
5. 擦写nand flash 擦除跟文件系统分区部分的flash空间
fs2410# nand erase 400000 1400000
NAND erase: device 0 offset 4194304, size 20971520 ...
OK
6. 写jffs2文件系统镜像到nandflash 根文件系统分区
fs2410# nand write.jffs2 30800000 400000 4d4000 //烧写jffs2文件系统镜像,文件系统下载是多大,这里的烧录大小就写多大,否则会出现如下错误提示:
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x003f0000: 0x80b0 instead
NAND write: device 0 offset 4194304, size 5062656 ...
5062656 bytes written: OK
7. 烧录ok,设置启动参数 setenv bootargs root=/dev/mtdblock2 rootfstype=jffs2 rw console=ttySAC0,115200 init=/linuxrc mem=64M saveenv