您尚未登录。

楼主 #1 2018-11-11 05:00:41

C37R
会员
注册时间: 2018-11-06
已发帖子: 3
积分: 3
个人网站

Lichee PI V3S W25Q128 启动入坑

这里率先发表一下自己最近入坑的感想吧:
1.lichee 派的文档和资料组织比较混乱,新手慎入
2.目前主线的uboot尚未增加对spi-flash的支持
3.不知道我买的是否是一家,总感觉硬件不是特别稳定,经常无法启动
进入正题:
开发环境:
ubuntu 16.04 - 18.04,不推荐14.04,因为GCC版本太老(apt-get install 的),如果更新不了的话,自己又要折腾一番。
机器:实体机 (我试过虚拟机,V3S FEL模式进入后不知道为什么转到虚拟机上面时,总是会丢失连接。) 实体机也不贵,300元全套带回家
板子:lichee zero
电源(important):推荐使用淘宝上的降压模块,然后接入12V电源后降到5V,这样供电能力比电脑的USB会强一些
flash:w25q128

至于编译过程,坑网已经有大佬写了,我就不赘述了。注意几点:
1.拉spi分支的uboot
2.kernel 的相关配置需要修改
3.jffs2 擦除块为8K, 而kernel的spi-nor.c中,w25q128默认是开启4K擦除的,需要将其去除
第一点在首页的帖子就有,我不重复了
第二点,kernel中开启spi-flash支持,文件arch\arm\configs\licheepi_zero_defconfig:
CONFIG_MTD=y
CONFIG_MTD_M25P80=y
CONFIG_MTD_SPI_NOR=y
这个默认是打开的
其次要开启jffs2文件系统支持(如果你用的是jffs2文件系统的话):
CONFIG_JFFS2_FS=y
CONFIG_JFFS2_FS_DEBUG=0
CONFIG_JFFS2_FS_WRITEBUFFER=y
CONFIG_JFFS2_ZLIB=y
dts中增加相关节点:
arch\arm\boot\dts\sun8i-v3s-licheepi-zero.dts
&spi0 {
        status ="okay";

        w25q128:w25q128@0 {
                compatible = "jedec,spi-nor";
                reg = <0x0>;
                spi-max-frequency = <50000000>;
                #address-cells = <1>;
                #size-cells = <1>;
        };

};
以上配置好后,可以执行 make ARCH=arm licheepi_zero_defconfig
会在当前目录下生成.config文件,这个.config文件可以留有以后备用,省得clean过后每次都去配置,也可以合并进入licheepi_zero_defconfig文件中(推荐)
接着就是要修改drivers\mtd\spi-nor\spi-nor.c 中,你对应的flash的信息,将SECT_4K去除:
{ "w25q128", INFO(0xef4018, 0, 64 * 1024, 256, 0) }, //c37r changed SECT_4K =》 0
因为如果开启此flag,会导致jffs2启动不成功。
如上,即可愉快的进行编译啦,至于如何制作系统,请参考:
http://zero.lichee.pro/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91/SPI_flash_build.html
按照这个来就可以了
如有错误,欢迎指正。






不求连城璧,但求杀人剑。超越自己,成就他人

离线

楼主 #2 2018-11-11 05:02:23

C37R
会员
注册时间: 2018-11-06
已发帖子: 3
积分: 3
个人网站

Re: Lichee PI V3S W25Q128 启动入坑

补充一下,uboot spi分支,默认是开启winbond flash支持的,无需配置






不求连城璧,但求杀人剑。超越自己,成就他人

离线

#3 2018-11-11 11:01:52

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,233
积分: 9197

Re: Lichee PI V3S W25Q128 启动入坑

非常感谢分享, 入门过程确实很恼人,当战胜一个又一个的坑,觉得成就感满满,楼主加油.


帖子里面可以加 bbcode, 会更有层次感:
https://whycan.cn/help.php#bbcode





离线

#4 2018-11-30 08:05:23

vigour1000
会员
注册时间: 2018-11-19
已发帖子: 100
积分: 6

Re: Lichee PI V3S W25Q128 启动入坑

USB电流不够呢

离线

#5 2018-11-30 08:06:36

vigour1000
会员
注册时间: 2018-11-19
已发帖子: 100
积分: 6

Re: Lichee PI V3S W25Q128 启动入坑

楼主试过w25q256吗?

离线

#6 2018-11-30 08:26:58

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,233
积分: 9197

Re: Lichee PI V3S W25Q128 启动入坑

vigour1000 说:

楼主试过w25q256吗?

w25q256 没有问题的, 我就是用 w25q256/mx25l256





离线

#7 2019-01-11 18:46:58

千石级灯
会员
注册时间: 2018-12-20
已发帖子: 47
积分: 47

Re: Lichee PI V3S W25Q128 启动入坑

@晕哥
晕哥,请问下以下这个结构体是在哪个文件的呢?因为我现在使用的flash型号不在上面显示,需要修改下这个文件:
static const struct spi_device_id m25p_ids[] = {
        /*
        * Allow non-DT platform devices to bind to the "spi-nor" modalias, and
        * hack around the fact that the SPI core does not provide uevent
        * matching for .of_match_table
        */
        {"spi-nor"},

        /*
        * Entries not used in DTs that should be safe to drop after replacing
        * them with "spi-nor" in platform data.
        */
        {"s25sl064a"},  {"w25x16"},     {"m25p10"},     {"m25px64"},

        /*
        * Entries that were used in DTs without "jedec,spi-nor" fallback and
        * should be kept for backward compatibility.
        */
        {"at25df321a"}, {"at25df641"},  {"at26df081a"},
        {"mx25l4005a"}, {"mx25l1606e"}, {"mx25l6405d"}, {"mx25l12805d"},
        {"mx25l25635e"},{"mx66l51235l"},
        {"n25q064"},    {"n25q128a11"}, {"n25q128a13"}, {"n25q512a"},
        {"s25fl256s1"}, {"s25fl512s"},  {"s25sl12801"}, {"s25fl008k"},
        {"s25fl064k"},
        {"sst25vf040b"},{"sst25vf016b"},{"sst25vf032b"},{"sst25wf040"},
        {"m25p40"},     {"m25p80"},     {"m25p16"},     {"m25p32"},
        {"m25p64"},     {"m25p128"},
        {"w25x80"},     {"w25x32"},     {"w25q32"},     {"w25q32dw"},
        {"w25q80bl"},   {"w25q128"},    {"w25q256"},

        /* Flashes that can't be detected using JEDEC */
        {"m25p05-nonjedec"},    {"m25p10-nonjedec"},    {"m25p20-nonjedec"},
        {"m25p40-nonjedec"},    {"m25p80-nonjedec"},    {"m25p16-nonjedec"},
        {"m25p32-nonjedec"},    {"m25p64-nonjedec"},    {"m25p128-nonjedec"},

        /* Everspin MRAMs (non-JEDEC) */
        { "mr25h256" }, /* 256 Kib, 40 MHz */
        { "mr25h10" },  /*   1 Mib, 40 MHz */
        { "mr25h40" },  /*   4 Mib, 40 MHz */

        { },
};

离线

#8 2019-01-11 19:06:55

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,233
积分: 9197

Re: Lichee PI V3S W25Q128 启动入坑

你用哪个 flash?





离线

#9 2019-01-14 09:07:12

千石级灯
会员
注册时间: 2018-12-20
已发帖子: 47
积分: 47

Re: Lichee PI V3S W25Q128 启动入坑

@晕哥
晕哥,我的flash型号是:MX25L25645

离线

#10 2019-01-14 09:42:36

晕哥
管理员
所在地: 微信 whycan_cn
注册时间: 2017-09-06
已发帖子: 9,233
积分: 9197

Re: Lichee PI V3S W25Q128 启动入坑

千石级灯 说:

@晕哥
晕哥,我的flash型号是:MX25L25645

MX25L25645 与其他 MAX25L256 的 Id应该是相同的,
如果是相同的, 你什么都不用改。





离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn