Loading...
首页问答详情

开发板替换SPI flash(w25q256fv)后如何修改uboot和kernel

 
zhangtower
zhangtower  发布于  2015-11-19 23:47:24
采纳率 0%
3个问答
如题,新的开发板替换了SPI flash,型号为w25q256fv,如何修改uboot和kernel内的读写flash的驱动啊?
谢谢各位大侠!
目前已经将flash的型号添加进去,启动时也可以读取到flash信息,但是启动内核的时候出现错误
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x02480000: 0x19f7 instead
下一步不知如何调整了!
我来回答
回答可得5积分
52113
3
2
回答
64个
myearth 发布于2015-11-20 08:56:22
例如:3520D
uboot-Hi3520D-bvt_No1_660_330_660_ddr_innerFEPHY.xls 产生一个文件,然后mkboot.sh;
在uboot_tools目录下,看文档吧,很简单的。
0
zhangtower 发布于2015-11-20 15:27:59
[quote][url=forum.php?mod=redirect&goto=findpost&pid=22378&ptid=9363]myearth 发表于 2015-11-20 08:56[/url]
例如:3520D
uboot-Hi3520D-bvt_No1_660_330_660_ddr_innerFEPHY.xls 产生一个文件,然后mkboot.sh;
在u ...[/quote]

谢谢!
我用的SPI芯片在这个表格里没有,那样的话是不是得修改kernel的hisfc300new_spi_ids.c部分啊?
我在代码里已经增加了这个芯片的支持,增加了如下代码
#include "hisfc300new_spi_w25q256fv.c"
static struct spi_driver  spi_driver_w25q256fv = {
        .wait_ready   = spi_general_wait_ready,
        .write_enable = spi_general_write_enable,
        .entry_4addr  = spi_w25q256fv_entry_4addr,
        .bus_prepare  = spi_general_bus_prepare,
        .qe_enable = spi_general_qe_enable,
};




        {
                "W25Q256FV", {0xEF, 0x40, 0x19}, 3, _32M, _64K, 3,
                {
                        &READ_STD(0, INFINITE, 33),
                        &READ_FAST(1, INFINITE, 104),
                        &READ_DUAL(1, INFINITE, 104),
                        &READ_QUAD(1, INFINITE, /*70*/80),
                        0
                },

                {
                        &WRITE_STD(0, 256, 104),
                        &WRITE_QUAD(0, 256, /*70*/80),
                        0
                },

                {
                        &ERASE_SECTOR_64K(0, _64K, 104),
                        0
                },
                &spi_driver_w25q256fv,
        },




不知标红的数值是否需要修正?

目前使用编译出来的内核出现错误,
Spi id table Version 1.22
Hisilicon Spi Flash Controller V300 New Device Driver, Version 1.10
Check Spi Flash Controller V300 New.
Found
Spi(cs1) ID: 0xEF 0x40 0x19 0x00 0x00 0x00
Spi(cs1):
Block:64KB
Chip:32MB
Name:"W25Q256FV"
spi size: 0x33554432
chip num: 1
4 cmdlinepart partitions found on MTD device hi_sfc
Creating 4 MTD partitions on "hi_sfc":
0x000000000000-0x000000100000 : "boot"
0x000000100000-0x000000500000 : "kernel"
0x000000500000-0x000001f00000 : "rootfs"
0x000001f00000-0x000002000000 : "config"
Special nand id table Version 1.35
Hisilicon Nand Flash Controller V301 Device Driver, Version 1.10
Nand ID: 0x40 0x40 0x40 0x40 0x40 0x40 0x40 0x40
No NAND device found.
Fixed MDIO Bus: probed
usbcore: registered new interface driver rt2500usb
usbcore: registered new interface driver rt73usb
usbmon: debugfs is not available
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
hiusb-ehci hiusb-ehci.0: HIUSB EHCI
hiusb-ehci hiusb-ehci.0: new USB bus registered, assigned bus number 1
hiusb-ehci hiusb-ehci.0: irq 63, io mem 0x100b0000
hiusb-ehci hiusb-ehci.0: USB 0.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
hiusb-ohci hiusb-ohci.0: HIUSB OHCI
hiusb-ohci hiusb-ohci.0: new USB bus registered, assigned bus number 2
hiusb-ohci hiusb-ohci.0: irq 64, io mem 0x100a0000
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
usbcore: registered new interface driver cdc_acm
cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
usbcore: registered new interface driver cdc_wdm
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver ums-alauda
usbcore: registered new interface driver ums-datafab
usbcore: registered new interface driver ums-freecom
usbcore: registered new interface driver ums-isd200
usbcore: registered new interface driver ums-jumpshot
usbcore: registered new interface driver ums-sddr09
usbcore: registered new interface driver ums-sddr55
usbcore: registered new interface driver mdc800
mdc800: v0.7.5 (30/10/2000):USB Driver for Mustek MDC800 Digital Camera
mousedev: PS/2 mouse device common for all mice
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
TCP cubic registered
Initializing XFRM netlink socket
NET: Registered protocol family 17
NET: Registered protocol family 15
lib80211: common routines for IEEE802.11 drivers
Registering the dns_resolver key type
registered taskstats version 1
ata1: SATA link down (SStatus 0 SControl 300)
ata2: SATA link down (SStatus 0 SControl 300)
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000000: 0x998d instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000004: 0x88ab instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000008: 0xeeee instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0000000c: 0x8889 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000010: 0x8888 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000014: 0x888a instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000018: 0xd99d instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0000001c: 0x8c8b instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000020: 0xffce instead

从信息看spi flash已经找到,但是读出的jiffs文件系统有问题,不知如何进一步解决了,麻烦不吝赐教!谢过!
0
myearth 发布于2015-11-20 15:30:04
本帖最后由 myearth 于 2015-11-20 15:33 编辑

不用改代码啊,只需要修改hi_boot的配置。
0
myearth 发布于2015-11-20 15:34:20
然后mkboot.sh 命令(linux下)
有没有Hi3520D IIC驱动啊,还有NVP6114?
0
zhangtower 发布于2015-11-20 15:40:13
附图是我的sdk中对应的flash配置部分

里面没有我所使用的芯片,怎么修改呢?
请详细说下吧:)
0
myearth 发布于2015-11-20 15:47:25
w25q128fv和w25q128就是我自己添加的,对下pdf,添加一个
0
zhangtower 发布于2015-11-20 15:55:01
w25q128在hisfc200new_spi_ids.c中是支持的
        {
                "W25Q128BV", {0xEF, 0x40, 0x18}, 3, _16M, _64K, 3,
                {
                        &READ_STD(0, INFINITE, 33),
                        &READ_FAST(1, INFINITE, 104),
                        &READ_DUAL(1, INFINITE, 104),
                        &READ_QUAD(1, INFINITE, /*70*/80),
                        0
                },

                {
                        &WRITE_STD(0, 256, 104),
                        &WRITE_QUAD(0, 256, /*70*/80),
                        0
                },

                {
                        &ERASE_SECTOR_64K(0, _64K, 104),
                        0
                },
                &spi_driver_general,
        },

应该是不需要修改的代码,而我的w25q256fv里面没有,
我不清楚w25q128fv和w25q128的Nand ID和w25q256fv是不是一样,
w25q256fv的Nand ID是Spi(cs1) ID: 0xEF 0x40 0x19 0x00 0x00 0x00

方便的话你能帮我看一下吗?
0
zhangtower 发布于2015-11-20 15:59:05
从内核代码看,如果Spi ID不同的话,spi控制器就识别不出是哪类spi芯片
0
myearth 发布于2015-11-20 16:02:04
本帖最后由 myearth 于 2015-11-20 16:04 编辑

ID:EF 40 19 copy128的配置,修改大小等参数就好吧
0
zhangtower 发布于2015-11-20 16:25:47
[quote][url=forum.php?mod=redirect&goto=findpost&pid=22420&ptid=9363]myearth 发表于 2015-11-20 16:02[/url]
ID:EF 40 19 copy128的配置,修改大小等参数就好吧[/quote]

谢谢!我试验一下!
0
zhangtower 发布于2015-11-20 16:40:56
[quote][url=forum.php?mod=redirect&goto=findpost&pid=22423&ptid=9363]zhangtower 发表于 2015-11-20 16:25[/url]
谢谢!我试验一下![/quote]

另外还有个问题,这种改法适合uboot和kernel吗?uboot和kernel都不用修改源码了吗?
0
zhangtower 发布于2015-11-20 16:42:30
[quote][url=forum.php?mod=redirect&goto=findpost&pid=22420&ptid=9363]myearth 发表于 2015-11-20 16:02[/url]
ID:EF 40 19 copy128的配置,修改大小等参数就好吧[/quote]

另外还有个问题,这种改法适合uboot和kernel吗?uboot和kernel都不用修改源码了吗?
0
serveXX 发布于2015-12-03 23:29:11
你好,我刚入手开发板也碰到这问题,你现在解决了吗!指导下!
0
orinwu 发布于2016-04-12 22:00:41
楼主 解决了吗?我最近遇到跟你一样的问题 hi3518e 用w25q256fv的flash 在uboot下不能读写flash。你是怎么解决的?
0
default 发布于2016-04-12 22:45:59
我简单分析过excel配置表生成的reg_info.bin的构成,并没有关于flash ID的生成,所以必须要在源码上改ID
0
Jin涛 发布于2016-05-11 13:10:18
我在execl表最后一页添加了相应的一行flash的信息,然后点击Generate reg bin file之后生成的bin文件并没有变化啊?是我哪里操作有错吗?
0
1305_xiaolong 发布于2016-05-19 14:23:27
[quote][url=forum.php?mod=redirect&goto=findpost&pid=28349&ptid=9363]orinwu 发表于 2016-4-12 22:00[/url]
楼主 解决了吗?我最近遇到跟你一样的问题 hi3518e 用w25q256fv的flash 在uboot下不能读写flash。你是怎么 ...[/quote]

问题感觉是读写flash的方式上出问题,我是这样解决的:
1、在excel中添加flash的信息,如之前同学所说。
2、uboot代码中搜索W25Q256字段,找到设置相应读写方式的代码,屏蔽除STD读,STD写的其余方式。
3、内核中的修改与uboot一致~
0
orinwu 发布于2016-05-23 18:16:39
已经解决了
0
orinwu 发布于2016-05-23 18:30:51
你可以把 &READ_QUAD(1, INFINITE, /*70*/80), &WRITE_QUAD(0, 256, /*70*/80),注释掉再试试
0
Jacky 发布于2016-06-23 16:51:43
怎么解决的?楼主能解释下思路么。我的HI3520D,spi FLASH 8 PIN MX25L25635F,换成 16pin的就不行了,不知道怎么回事
0

Markdown 语法

  • 加粗 **内容**
  • 斜体 *内容*
  • 删除线 ~~内容~~
  • 引用 > 引用内容
  • 代码 `代码`
  • 代码块 ```编程语言↵代码```
  • 链接 [链接标题](url)
  • 无序列表 - 内容
  • 有序列表 1. 内容
  • 缩进 内容
  • 图片 ![alt](url)

Markdown 语法

  • 加粗 **内容**
  • 斜体 *内容*
  • 删除线 ~~内容~~
  • 引用 > 引用内容
  • 代码 `代码`
  • 代码块 ```编程语言↵代码```
  • 链接 [链接标题](url)
  • 无序列表 - 内容
  • 有序列表 1. 内容
  • 缩进 内容
  • 图片 ![alt](url)
+ 添加网盘链接/附件
或将文件直接拖到这里
悬赏:
EBC
文件格式必须为doc,docx,xls,xlsx,pdf,ppt,pptx,txt,zip,rar,tar,7z,gz
网盘
* 网盘链接:
* 提取码:
悬赏:
EBC
易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区