Welcome 微信登录

首页 / 操作系统 / 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