Author: GuoWenxue QQ: 281143292 武汉大学生嵌入式Linux学习辅导 以前我的FL2440只有一片K9F2G08的Nandflash,上次拿到一个网友的新的FL2440开发板帮他调试这个板子,他的板子上有一片HY27UF082G2B Nandflash和一片4MB 的js28f320j3d75 Norflash。前两天终于抽了点时间改了一下u-boot,能够让同一个bin文件同时支持这两片Nandflash或Norflash启动,只需要修改跳线设置。下面是烧录过程: [ s3c2440@guowenxue ]# pri bootargs=console=ttyS0,115200 mem=64M initrd=0x30800000,16M root=/dev/ram0 rw loglevel=7 bootcmd=run bootcmd_ramdisk cpu=s3c2440 bbl=nand erase 0 50000;tftp 30008000 u-boot-$cpu.bin;nand write 30008000 0 $filesize nbbl=erase bank 1;tftp 30008000 u-boot-$cpu.bin;cp.b 30008000 0 $filesize bkr=tftp 30008000 uImage-$cpu.gz;nand erase 100000 300000;nand write 30008000 100000 $filesize bfs=tftp 30800000 ramdisk-$cpu.gz;nand erase 400000 600000;nand write 30800000 400000 600000 bootcmd_ramdisk=nand read 30008000 100000 300000;nand read 30800000 400000 600000;bootm 30008000 tb=tftp 30008000 uImage-$cpu.gz;tftp 30800000 ramdisk-$cpu.gz;bootm 30008000 bootdelay=2 baudrate=115200 ethaddr=08:00:3e:26:0a:6b ipaddr=192.168.1.244 serverip=192.168.1.100 netmask=255.255.255.0 ethact=dm9000 stdin=serial stdout=serial stderr=serial Environment size: 826/131068 bytes 将u-boot烧录到nandflash上去 [ s3c2440@guowenxue ]# run bbl NAND erase: device 0 offset 0x0, size 0x50000 Erasing at 0x40000 -- 120% complete. OK dm9000 i/o: 0x20000300, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 08:00:3e:26:0a:6b could not establish link operating at 100M full duplex mode Using dm9000 device TFTP from server 192.168.1.100; our IP address is 192.168.1.244 Filename 'u-boot-s3c2440.bin'. Load address: 0x30008000 Loading: T ##########T ## done Bytes transferred = 164864 (28400 hex) NAND write: device 0 offset 0x0, size 0x28800 165888 bytes written: OK 将u-boot烧录到norflash上去 [ s3c2440@guowenxue ]# run nbbl Erase Flash Bank # 1 ........Flash erase timeout at address 1a0000 dm9000 i/o: 0x20000300, id: 0x90000a46 DM9000: running in 16 bit mode MAC: 08:00:3e:26:0a:6b could not establish link operating at 100M full duplex mode Using dm9000 device TFTP from server 192.168.1.100; our IP address is 192.168.1.244 Filename 'u-boot-s3c2440.bin'. Load address: 0x30008000 Loading: T ############ done Bytes transferred = 164864 (28400 hex) Copy to Flash... done 关于FL2440上的两个跳线帽子J2和J5: 首先来解释J5这个跳线帽子,它是为了设置究竟是从Nandflash启动,还是从Norflash启动,参考原理图如下: 如果接上J5的跳线帽子的话,那么OM0就被拉为低电平,另外参考原理图可以看到OM1这个管脚在CPU上是直接被接到地上的,这样OM1=0 OM0=0。 如果不短接的话,那么0M0就被拉为高电平,这样OM1=0, OM=1了。 为什么要说这两个管脚呢?大家请看s3c2440的datasheet的Memeory Controller中关于BANK0 BUS WIDTH的介绍: 从上面的描述可以得知,如果0M1=0,OM=0的话,那么BANK0就配置Nand Flash启动模式,这样S3C2440的Stepping Stone就会被映射到这个BANK上来,支持从Nandflash启动了。 如果我们不端接J5的跳线帽子的话,那么0M1=0,OM0=1,这样BANK0就配置为Norflash(16bit)启动了。 所以这里,如果我们要从Norflash启动的话,一定不要接上J5这个跳线帽子,如果从Nandflash启动的话,就要短接上。 关于J2这个跳线帽子请大家也看FL2440核心板的原理图: 从上面的原理图上看出,如果J2连接2,3的话那么就是把Norflash映射到NGCS0也就是BANK0上,这时他的地址空间为0x0000 0000~0x0800 0000; 如果跳线连接J1,J2的话,那么Norflash将接到NGCS1上,这时他的地址空间为0x0800 0000~0x1000 0000。 所以,如果要从Norflash启动的话,就一定要把J2这个跳线帽子接到0(开发板上的丝印为0,我想意思就是NGCS0)上,如果想从Nandflash启动,但同时想用Norflash的话,这时应该把J2跳到1上,同时在u-boot里修改include/configs/fl2440.h中的#define PHYS_FLASH_1 0x00000000: #define PHYS_FLASH_1 0x08000000 综上所述,如果我们要从Nandflash启动的话,J5跳线帽子要接上,J2无所谓(因为如果是从Nandflash启动的话,CPU会将Stepping Stone映射到地址0上这样,norflash就不能访问了,这也就是为什么下面u-boot启动时会打印## Unknown FLASH on Bank 0: ID 0xffff, Size = 0x00000000 = 0 MB。如果我们在u-boot中将PHYS_FLASH_1 改为 0x08000000,同时将跳线帽子跳到1上,就可以探测到Norflash了); 如果要从Norflash启动,J5跳线帽子拔掉,J2跳到0上(不是论坛上其他人所说的跳到1上)。 关于S3C2440为什么能够从Nandflash上启动,大家可以参考我的blogger: http://hi.baidu.com/kkernel/blog ... 08b1d180cb4a63.html 下面我测试的结果: 将J2接到0上,J5也接上,从Nandflash启动: U-Boot 2010.09-00000-gdfb808a (Nov 06 2011 - 09:40:47) Modified by guowenxue for s3c2440/s3c2410 board. DRAM: 64 MiB ## Unknown FLASH on Bank 0: ID 0xffff, Size = 0x00000000 = 0 MB Flash: 0 Bytes NAND: 256 MiB In: serial Out: serial Err: serial Net: dm9000 Hit any key to stop autoboot: 0 将J2接到0上,J5拔掉,从Norflash启动: U-Boot 2010.09-00000-gdfb808a (Nov 06 2011 - 09:40:47) Modified by guowenxue for s3c2440/s3c2410 board. DRAM: 64 MiB Flash: 4 MiB NAND: 256 MiB In: serial Out: serial Err: serial Net: dm9000 Hit any key to stop autoboot: 0 [ s3c2440@guowenxue ]# |
同时支持HY27UF082G2B,js28f320j3,K9F2G08启动的u-boot,分析J2,J5跳线设置
最新推荐文章于 2022-02-16 21:26:10 发布