中校
- 注册时间
- 2014-3-29
- 金币
- 5172 个
- 威望
- 2 个
- 荣誉
- 1 个
累计签到:495 天 连续签到:0 天 [LV.730]常住居民
|
第一波硬件图片请看:http://www.anywlan.com/thread-329110-1-1.html
其实很简单的一个修改加编译过程,只说方法
这个板子上自带的是4M+16M配置,连上TTL之后打印:
U-Boot 1.1.8 (Mar 13 2012 - 16:24:24)
Board: Ralink APSoC DRAM: 16 MB
relocate_code Pointer at: 80fb0000
spi_wait_nsec: 42
spi device id: ef 40 16 0 0 (40160000)
find flash: W25Q32BV
raspi_read: from:30000 len:1000
.*** Warning - bad CRC, using default environment
============================================
Ralink UBoot Version: 3.6.0.0
--------------------------------------------
ASIC 5350_MP (Port5<->None)
DRAM_CONF_FROM: Boot-Strapping
DRAM_TYPE: SDRAM
DRAM_SIZE: 128 Mbits
DRAM_WIDTH: 16 bits
DRAM_TOTAL_WIDTH: 16 bits
TOTAL_MEMORY_SIZE: 16 MBytes
Flash component: SPI Flash
Date:Mar 13 2012 Time:16:24:24
============================================
............
............
红色部分就是原来的配置,更换16M+32M之后,TTL打印时,以上两个信息均不正常,一个不识别的Flash和只识别32M内存的前16M
修改代码和硬件,使之可以支持这个配置。修改方法和用到的工具:
1、Ubuntu12.04,做编译环境。可以用虚拟机。
2、下载Ralink提供的SDK,版本就用这个打印提到的Ralink UBoot Version: 3.6.0.0,百度,或在坛子里找找,是有的。
ubuntu下解压SDK,里面带有编译器,解压那个已经编译好的,如果不能运行,解压那个源代码的自行编译安装
解压命令
tar -jxvf xxxx文件名
然后进入Uboot目录,运行
make menuconfig
弹出一个Uboot的配置界面(瞬间高大上的赶脚)
第一项是编译器的路径,就是刚才解压的编译器在哪。
第二项是芯片类型,就一种直接选。
第三项是芯片型号,当然是RT5350
第四项内存大小,选256Mb,就是换上去的32MB。
后面的都不要选,留空,我试过了,有的不太好使,感兴趣的也可以试试。
然后退出,保存。
执行 make
不要用-j 参数,因为我试过,没有生成想要的文件
如果使用了make -j 2/3/4,完了还要在make一次,才会生成烧写flah的uboot.img,注意不是使用uboot .bin
此时还没有修改代码,我就直接点吧,既然是支持Flash,那么肯定是驱动不完善
进入目录cd Uboot/drivers/
可以看到文件spi_flash.c,可以找到支持flash列表:
static struct chip_info chips_data [] = {
/* REVISIT: fill in JEDEC ids, for parts that have them */
{ "AT25DF321", 0x1f, 0x47000000, 64 * 1024, 64, 0 },
{ "AT26DF161", 0x1f, 0x46000000, 64 * 1024, 32, 0 },
{ "FL016AIF", 0x01, 0x02140000, 64 * 1024, 32, 0 },
{ "FL064AIF", 0x01, 0x02160000, 64 * 1024, 128, 0 },
{ "MX25L1605D", 0xc2, 0x2015c220, 64 * 1024, 32, 0 },
{ "MX25L3205D", 0xc2, 0x2016c220, 64 * 1024, 64, 0 },
{ "MX25L6405D", 0xc2, 0x2017c220, 64 * 1024, 128, 0 },
{ "MX25L12805D", 0xc2, 0x2018c220, 64 * 1024, 256, 0 },
#ifdef MX_4B_MODE
{ "MX25L25635E", 0xc2, 0x2019c220, 64 * 1024, 512, 1 },
#endif
{ "S25FL128P", 0x01, 0x20180301, 64 * 1024, 256, 0 },
{ "S25FL129P", 0x01, 0x20184D01, 64 * 1024, 256, 0 },
{ "S25FL032P", 0x01, 0x02154D00, 64 * 1024, 64, 0 },
{ "S25FL064P", 0x01, 0x02164D00, 64 * 1024, 128, 0 },
{ "EN25F16", 0x1c, 0x31151c31, 64 * 1024, 32, 0 },
{ "EN25F32", 0x1c, 0x31161c31, 64 * 1024, 64, 0 },
{ "EN25F64", 0x1c, 0x20171c20, 64 * 1024, 128, 0 }, //EN25P64
{ "EN25Q64", 0x1c, 0x30171c30, 64 * 1024, 128, 0 },
{ "W25Q32BV", 0xef, 0x40160000, 64 * 1024, 64, 0 }, //S25FL032K
{ "W25Q64BV", 0xef, 0x40170000, 64 * 1024, 128, 0 }, //S25FL064K
{ "W25Q128BV", 0xef, 0x40180000, 64 * 1024, 256, 0 },
};
蓝色是原厂flash大小,红色是我加的一行意义就是:芯片名字、厂家代号、芯片ID,刷新块大小,总块数,0不知道是什么
这个数据可以从华邦的芯片手册获得。修改之后,退出,编译,就获得16M+32M的uboot了
但是问题是,居然仍然不能识别32M内存,经过一番努力,找了一些资料:
看到方案原理图启动配置有内存配置,不知道是设计人员的恶搞,还是RT5350F原本就要配置一下管脚电平才能识别32M
再借用别人发的一张华美MPR-A2的改法,蓝色框的电阻换到下方红色位置:
如此一改,再上电,可以看到16M的flash和32M内存均识别出来了:
U-Boot 1.1.3 (Aug 15 2014 - 23:35:13)
Board: Ralink APSoC DRAM: 32 MB
relocate_code Pointer at: 81fb4000
spi_wait_nsec: 42
spi device id: ef 40 18 0 0 (40180000)
find flash: W25Q128BV
raspi_read: from:30000 len:1000
.*** Warning - bad CRC, using default environment
============================================
Ralink UBoot Version: 3.6.0.0
--------------------------------------------
ASIC 5350_MP (Port5<->None)
DRAM_CONF_FROM: Boot-Strapping
DRAM_TYPE: SDRAM
DRAM_SIZE: 256 Mbits
DRAM_WIDTH: 16 bits
DRAM_TOTAL_WIDTH: 16 bits
TOTAL_MEMORY_SIZE: 32 MBytes
Flash component: SPI Flash
Date:Aug 15 2014 Time:23:35:13
============================================
。。。。。。。
本来准备再加一个WEB升级界面的,但高openwrt的固件搞死我了,还没有时间整这个,下一个帖子整一下也不错
现在16M的openwrt固件已经跑起来了,我正在使用改过的MPR-P1发帖子..
后天发固件,今天没还没整理好,是网盘才能发吗?第一次,以前没搞过......
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
|