您尚未登录。

楼主 # 2021-12-16 17:05:17

丨晋丨
会员
注册时间: 2021-01-06
已发帖子: 20
积分: 170

《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

  • 通过参考荔枝派nano官方和论坛大佬的帖子,总结了烧录 spi-flash 启动的方法。

  • 通过搜寻资料,把其中有错误或者做了多余的操作的步骤做了修正,以免大家再次踩坑,耗费青春。

  • 以下包括 uboot、kernel、buildroot 和 烧录的详细步骤和需要注意的问题,尽量精简方法,以期容易上手和理解。

  • 各种配置项也做了详细注释,要知其然,也知其所以然。

  • 最理想的状态应该是是:有的坑,踩的人多了,也便没有了坑。

论坛不太好排版,有需要的也可以去我的博客看:P:全志F1C100S/F1C200S学习笔记(11)——spi-flash 启动全流程适配烧录及踩坑指南

big_smile 正文开始 big_smile

分区规划
分区序号	分区大小              分区作用	     地址空间及分区名
mtd0	        1MB (0x100000)        spl+uboot	     0x0000000-0x0100000 : “uboot”
mtd1	        64KB (0x10000)        dtb文件        0x0100000-0x0110000 : “dtb”
mtd2	        4MB (0x400000)        linux内核	     0x0110000-0x0510000 : “kernel”
mtd3	        剩余 (0xAF0000)       根文件系统     0x0510000-0x1000000 : “rootfs”

cool

uboot 配置和编译

这种方法只需要修改配置就行,不需要修改源码和设备树:
这里只写使spi-flash需要做的修改,详细配置参考:全志F1C100S/F1C200S学习笔记(3)——u-boot编译与烧录

git clone https://gitee.com/LicheePiNano/u-boot.git -b nano-v2018.01&&cd u-boot
make licheepi_nano_spiflash_defconfig
make menuconfig
# 对应 `CONFIG_BOOTCMD` 的宏定义
# 选中 然后 run distro_bootcmd 修改为以下参数
[*] Enable a default value for bootcmd
	(sf probe 0 50000000; sf read 0x80C00000 0x100000 0x4000; sf read 0x80008000 0x110000 0x400000; bootz 0x80008000 - 0x80C00000) bootcmd value

# 对应 `CONFIG_BOOTARGS` 的宏定义
[*] Enable boot arguments
	(console=ttyS0,115200 earlyprintk panic=5 rootwait; mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,4M(kernel)ro,-(rootfs) root=/dev/mtdblock3 rw rootfstype=jffs2)    Boot arguments

参数说明

# 初始化Flash设备(CS拉低)
sf probe 0 50000000;
# 从flash0x100000(1MB)位置读取dtb放到内存0x41800000偏移处。
sf read 0x41800000 0x100000 0x10000; 
# 从flash0x110000(1MB+64KB)位置读取dtb放到内存0x41000000偏移处。
sf read 0x41000000 0x110000 0x400000; 
# 启动内核
bootz 0x41000000 (内核地址)- 0x41800000(dtb地址) 

# 在串口0上输出信息,如果要用串口1做控制台就改为 console=ttyS1
# 由于在kernel刚启动的过程中,还没有为串口等设备等注册console(在device probe阶段实现),此时无法通过正常的console来输出log。
# early console机制,用于实现为设备注册console之前的早期log的输出。
# earlyprintk 是基于 early console的基础上实现
console=ttyS0,115200 earlyprintk panic=5 rootwait

# spi32766.0是设备名,后面是分区大小,名字,读写属性。
# 根文件系统是mtd3;jffs2格式  root=31:03 等同于 /dev/mtdblock3 指的是mtd设备第三分区
mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,4M(kernel)ro,-(rootfs) root=31:03 rw rootfstype=jffs2 

说明
1. 重要!!!官方文档这里有错误,不是 "sf probe 0:50000000; " ,应该是 "sf probe 0 50000000; "
2. root=/dev/mtdblock3 也可以用 root=31:03 表示。
3. mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,4M(kernel)ro,-(rootfs) 是FLASH分区,分区指定也可以在dts中声明。即修改内核源码目录下的 ./arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts。

添加FLASH支持_xt25f128b
由于我这开发板的FLASH没在支持列表(xt25f128b),所以需要自己添加,不然的话启动后报错 SF: unrecognized JEDEC id bytes: 0b, 40, 18。

# 显示spiflash的信息 
$ sudo sunxi-fel spiflash-info
Manufacturer: Unknown (0Bh), model: 40h, size: 16777216 bytes.

修改 u-boot/drivers/mtd/spi/spi_flash_ids.c,根据上面查询的信息增加 xt25f128b:

const struct spi_flash_info spi_flash_ids[] = {
    ...
	{"w25q128fw",	   INFO(0xef6018, 0x0,	64 * 1024,   256, RD_FULL | WR_QPP | SECT_4K) },
	{"xt25f128b",	   INFO(0x0b4018, 0x0,	64 * 1024,   256, RD_FULL | WR_QPP | SECT_4K) },
    ...
};

修改 u-boot/arch/arm/dts/suniv-f1c100s-licheepi-nano.dts:

&spi0 {
	...
	flash@0 {
        ...
		compatible = "winbond,xt25f128b", "jedec,spi-nor";
		...
	};
};

cool

kernel 配置

这里只写使用spi-flash需要做的修改,详细配置参考:
全志F1C100S/F1C200S学习笔记(5)——主线Linux编译
全志F1C100S/F1C200S学习笔记(6)——设备树添加节点

# 以下适配了 800*480屏幕 和 xt25f128bflash
git clone https://gitee.com/LicheePiNano/Linux.git && cd linux/
wget http://dl.sipeed.com/LICHEE/Nano/SDK/config
cp config .config
make menuconfig
File systems  --->
	[*] Miscellaneous filesystems  --->
		<*>   Journalling Flash File System v2 (JFFS2) support	# 打开jffs2的文件系统支持
		(0)     JFFS2 debugging verbosity (0 = quiet, 2 = noisy)
		[*]     JFFS2 write-buffering support
		[ ]     JFFS2 summary support
		[ ]     JFFS2 XATTR support
		[ ]     Advanced compression options for JFFS2
Device Drivers  --->
	<*> Memory Technology Device (MTD) support  --->
		<*>   Command line partition table parsing	# 勾选,用来解析uboot传递过来的flash分区信息。(如果 bootarg 是用的我的方法一就需要勾选)
		<*>   Caching block device access to MTD devices	# 勾选,读写块设备用户模块
		<*>   SPI-NOR device support  --->
			[ ]   Use small 4096 B erase sectors	# 取消勾选,否则jffs2文件系统会报错

注:

  • lichee官方的u-boot 中 kernel cmdline 使用jffs2格式的 mtdblock3 作为rootfs,但config中没有打开mtdblock设备接口。所以需要勾选 Caching block device access to MTD devices。

  • mkfs.jffs2 使用的最小擦除尺寸是 8KB,而spi flash的扇区大小是 4KB,所以按照扇区擦除的话,会无法使用,所以必须使用块擦除。即勾选 Use small 4096 B erase sectors。这样以后添加FLASH也不用再修改源文件 linux/drivers/mtd/spi-nor/spi-nor.c 了

  • 如果不勾选 Caching block device access to MTD devices,会卡在 Waiting for root device /dev/mtdblock3。

添加FLASH支持_xt25f128b
修改文件 linux/drivers/mtd/spi-nor/spi-nor.c :,在 { "w25q128", INFO(0xef4018, 0, 64 * 1024, 256, SECT_4K) }下面添加:

{ "xt25f128b", INFO(0x0b4018, 0, 64 * 1024, 256, SECT_4K) },

cool

buildroot 配置

参考:全志F1C100S/F1C200S学习笔记(7)——根文件系统编译

git clone https://gitee.com/LicheePiNano/buildroot-2017.08.git
cd buildroot-2017.08/
make menuconfig
Target options  --->
	Target Architecture (ARM (little endian))  --->
	Target Architecture Variant (arm926t)  --->
Toolchain  ---> 
	C library (musl)  --->
System configuration  --->
	(gateway) System hostname	# 主机名,随便改
	(Welcome to gateway) System banner	# 欢迎语,随便改
	[*] Enable root login with password (NEW)
		(123456) Root password	# 登录密码,随便改
	[*] remount root filesystem read-write during boot (NEW)	# 重新挂载根文件系统到可读写
	[*] Install timezone info	# 安装时区信息,可选
		(asia) timezone list
		(Asia/Shanghai) default local time	
Target packages  --->
	System tools  --->
	[*] util-linux  --->
		[*]   mount/umount	# 访问其它文件系统中的资源,如果要用overlayfs,那就要用这个挂载

** 生成 rootfs.jffs2 格式的rootfs,打开后会自动下载 mtd-utils 软件包。 **
看官方和论坛生成 rootfs.jffs2 格式的rootfs 都是自己再次打包的,其实 buildroot 可以直接选择生成这个格式的 rootfs :

Filesystem images  --->
	[*] jffs2 root filesystem
			Flash Type (Parallel flash with 64 kB erase size)  ---> # 具有64 kB擦除大小的并行闪存 -e 参数
		[*]   Do not use Cleanmarker	# 用于标记一个块是_完整地_被擦除了。 -n 参数 Do not use cleanmarkers if using NAND flash or Dataflash where the pagesize is not a power of 
		[*]   Pad output
			(0xAF0000) Pad output size (0x0 = to end of EB) 	# 指定 jffs2 分区总空间 -p(--pad) 参数
		Endianess (little-endian)  --->
		[ ]   Produce a summarized JFFS2 image (NEW)	# 生成镜像的
		[*]   Select custom virtual memory page size
		(0x100) Virtual memory page size	# 虚拟内存页大小	-s 参数

当然,要自己用命令行手动生成方法也列在下面,并做了详细注释:(要把内核模块直接打包进文件系统还是要自己动手)

# 下载jffs2文件系统制作工具
sudo apt-get install mtd-utils

# 解压
# -C 当前目录的绝对目录
mkdir rootfs && sudo tar -xvf rootfs.tar -C ./rootfs

# 生成 rootfs.jffs2
# -r :指定要做成image的目录名
# -o : 指定输出image的文件名
# -s :页大小 0x100 256 字节
# -e :块大小 0x10000 64k
# -p :或--pad 参数指定 jffs2 分区总空间
# 由此计算得到 0x1000000(16M)-0x10000(64K)-0x100000(1M)-0x400000(4M)=0xAF0000
# -n 如果挂载后会出现类似:CLEANMARKER node found at0x0042c000 has totlen 0xc != normal 0x0  的警告,则加上-n 就会消失。
# jffs2.img 是生成的文件系统镜像
sudo mkfs.jffs2 -s 0x100 -e 0x10000 -p 0xAF0000 -r rootfs -o rootfs.jffs2 -n

# 为根文件系统制作jffs2镜像包
sudo mkfs.jffs2 -s 0x100 -e 0x10000 -p 0xAF0000 -d rootfs/ -o jffs2.img
# 或者
sudo mkfs.jffs2 -s 0x100 -e 0x10000 --pad=0xAF0000 -d rootfs/ -o jffs2.img

cool

烧录

sunxi-fel使用方法看这里:全志sunxi-tools烧录工具安装和使用
烧录单独镜像

sudo sunxi-fel -p spiflash-write 0 ./u-boot/u-boot-sunxi-with-spl.bin   
sudo sunxi-fel -p spiflash-write 0x0100000 ./linux/arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dtb
sudo sunxi-fel -p spiflash-write 0x0110000 ./linux/arch/arm/boot/zImage 
sudo sunxi-fel -p spiflash-write 0x0510000 ./buildroot-2017.08/output/images/rootfs.jffs2

烧录完整镜像
16M 大小flash镜像打包脚本:nano_flash_dd.sh
先用脚本打包成 flashimg.bin

# 下载jffs2文件系统制作工具
sudo apt-get install mtd-utils
# 给脚本权限
chmod 777 nano_flash_dd.sh
# 加 sudo,不然会报错 tar: 由于前次错误,将以上次的错误状态退出
sudo ./nano_flash_dd.sh

在执行以下命令烧录:

sudo sunxi-fel -p spiflash-write 0 flashimg.bin

最近编辑记录 丨晋丨 (2021-12-16 17:09:33)

离线

楼主 #1 2021-12-16 17:31:31

丨晋丨
会员
注册时间: 2021-01-06
已发帖子: 20
积分: 170

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

big_smile 关于 spi-flash 方式的配置等可以参考的资料链接如下:
荔枝派Nano | spi-flash 启动适配
荔枝派Zero | SPI Flash 系统编译
荔枝派Zero | jffs2文件系统挂载不上的常见原因
荔枝派Zero | Zero Spi Nor Flash启动系统制作指南
sipeed | spi_flash编译
lichee nano官方linux config文件踩坑与填坑(常见配置误区)
荔枝派nano(f1c100s)的SPI-Flash系统编译创建全过程

big_smile

问题解决汇总

这一楼就当成问题解决汇总楼层吧,方便大家踩到坑快速解决
跟博客同步更新:全志F1C100S/F1C200S学习笔记(12)——问题解决汇总

问题1:
$ sudo sunxi-fel ver
Warning: no 'soc_sram_info' data for your SoC (id=1663)
AWUSBFEX soc=00001663(unknown) 00000001 ver=0001 44 08 scratchpad=00007e00 00000000 00000000

解决:
sunxi-tools 分支不对,用 git checkout 切换分支,具体可查看 全志sunxi-tools烧录工具安装和使用

问题2:
SF: unrecognized JEDEC id bytes: 0b, 40, 18
*** Warning - spi_flash_probe_bus_cs() failed, using default environment

解决:
uboot没有板上使用的FLASH支持,参考 1 楼的添加FLASH支持章节。
识别成功后会显示:

SF: Detected xt25f128b with page size 256 Bytes, erase size 4 KiB, total 16 MiB
问题3:
spi_flash@0:50000000: failed to activate chip-select 50000000
SF: error -2 reading JEDEC ID
Failed to initialize SPI flash at 0:50000000 (error -2)
No SPI flash selected. Please run `sf probe'
No SPI flash selected. Please run `sf probe'

解决:
上面说了,官方文档的错误,"sf probe 0:50000000; " ,修改为 "sf probe 0 50000000; "

问题4:

日志中有dts中的spiflash 分区信息打印,但仍然卡在 waiting for rootfs
解决:
内核配置:

Device Drivers  --->
	<*> Memory Technology Device (MTD) support  --->
		<*>   Caching block device access to MTD devices	# 勾选,读写块设备用户模块
        [*] SPI support  --->
               < >   Allwinner A10 SoCs SPI controller   # 取消勾选
               <*>   Allwinner A31 SPI controller   # 勾选
问题5:
[    1.476051] VFS: Cannot open root device "mtdblock3" or unknown-block(31,3): error -19
[    1.484131] Please append a correct "root=" boot option; here are the available partitions:
[    1.492542] 1f00            1024 mtdblock0 
[    1.492554]  (driver?)
[    1.499197] 1f01              64 mtdblock1 
[    1.499208]  (driver?)
[    1.505747] 1f02            4096 mtdblock2 
[    1.505753]  (driver?)
[    1.512349] 1f03           11200 mtdblock3 
[    1.512358]  (driver?)

解决:

  • 这个问题一般是 flash分区信息 没有正确配置导致的。

  • 如果 bootarg 是用的我的传参方法配置的,内核需要勾选上mtd的 <*> Command line partition table parsing 支持,该项是用来解析uboot传递过来的flash分区信息。

  • 没添加对jffs2文件系统的支持,需要勾选 File systems ‣ Miscellaneous filesystems ‣ Journalling Flash File System v2 (JFFS2) support

最近编辑记录 丨晋丨 (2021-12-16 20:06:16)

离线

#2 2021-12-16 17:58:30

资本家大善人
会员
注册时间: 2021-03-26
已发帖子: 188
积分: 143.5

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

匿名大佬:)

离线

#3 2021-12-16 18:06:14

txl
会员
注册时间: 2018-12-08
已发帖子: 13
积分: 12

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

楼主真牛,这个非常详细,谢谢。

离线

#4 2021-12-16 21:30:17

touchey
会员
注册时间: 2020-05-18
已发帖子: 143
积分: 16

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

@丨晋丨
太牛皮了,必须手工点赞👍

离线

#5 2021-12-16 21:48:30

mine_3216
会员
注册时间: 2021-11-20
已发帖子: 5
积分: 0

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

正好需要,太好了!

离线

#6 2021-12-16 21:50:57

转角1068
会员
注册时间: 2019-12-14
已发帖子: 6
积分: 5

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

谢谢楼主让后来人少走弯路。

离线

#7 2021-12-18 22:00:30

1062298577
会员
注册时间: 2021-12-18
已发帖子: 0
积分: 0

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

该评论内容与本帖子无关,鼓励各位坑友积极发言讨论与帖子有关的内容!

离线

  • 不通过:其他

#8 2021-12-24 22:02:25

CHSHIQING
会员
注册时间: 2020-11-27
已发帖子: 46
积分: 6

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

感谢楼主,按照步骤顺利生成spi镜像,就是windows下打开sunxi-fel老是闪退,不知道咋回事

离线

#9 2021-12-28 22:02:45

wonderxue
会员
注册时间: 2021-04-16
已发帖子: 12
积分: 33

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

U-Boot SPL 2018.01-05679-g013ca457fd-dirty (Dec 28 2021 - 08:40:34)
DRAM: 32 MiB
Trying to boot from MMC1
Card did not respond to voltage select!
mmc_init: -95, time 22
spl: mmc init failed with error: -95
Trying to boot from sunxi SPI


U-Boot 2018.01-05679-g013ca457fd-dirty (Dec 28 2021 - 08:40:34 -0500) Allwinner Technology

CPU:   Allwinner F Series (SUNIV)
Model: Lichee Pi Nano
DRAM:  32 MiB
MMC:   SUNXI SD/MMC: 0
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB
In:    serial@1c25000
Out:   serial@1c25000
Err:   serial@1c25000
Net:   No ethernet found.
starting USB...
No controllers found
Hit any key to stop autoboot:  0 
Card did not respond to voltage select!
mmc_init: -95, time 22
starting USB...
No controllers found
USB is stopped. Please issue 'usb start' first.
starting USB...
No controllers found
No ethernet found.
missing environment variable: pxeuuid
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm-sunxi
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default
No ethernet found.
Config file not found
starting USB...
No controllers found
No ethernet found.
No ethernet found.

进不去Linux,楼主救命

离线

#10 2021-12-30 21:33:25

wenunit
会员
注册时间: 2020-04-22
已发帖子: 30
积分: 0

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

该评论内容与本帖子无关,鼓励各位坑友积极发言讨论与帖子有关的内容!

离线

  • 不通过:其他

#11 2021-12-30 22:27:14

东哥
会员
注册时间: 2021-04-15
已发帖子: 11
积分: 5.5

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

搞了好久终于搞好了,多谢大佬

离线

#12 2022-01-01 21:31:53

wonderxue
会员
注册时间: 2021-04-16
已发帖子: 12
积分: 33

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

@wonderxue
重新编译后进入系统了,谢谢大佬

离线

#13 2022-01-02 02:03:34

Dr.Providence
会员
注册时间: 2022-01-02
已发帖子: 1
积分: 1

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

感谢大佬,终于搞到了,烧录完进去了

离线

#14 2022-01-18 17:56:20

jordonwu
会员
注册时间: 2021-07-05
已发帖子: 59
积分: 40

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

该评论内容与本帖子无关,鼓励各位坑友积极发言讨论与帖子有关的内容!

离线

  • 不通过:其他

#15 2022-01-18 20:04:12

markjok
会员
注册时间: 2022-01-18
已发帖子: 0
积分: 0

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

该评论内容与本帖子无关,鼓励各位坑友积极发言讨论与帖子有关的内容!

离线

  • 不通过:其他

#16 2022-01-18 20:36:19

somnus
会员
注册时间: 2021-11-29
已发帖子: 17
积分: 2

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

该评论内容与本帖子无关,鼓励各位坑友积极发言讨论与帖子有关的内容!

离线

  • 不通过:其他

#17 2022-01-19 07:46:55

xiongxinjian
会员
注册时间: 2019-01-13
已发帖子: 43
积分: 13

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

感谢大神,我的板还在吃灰,改天有空也按教程试试。

离线

#18 2022-01-20 11:44:39

jordonwu
会员
注册时间: 2021-07-05
已发帖子: 59
积分: 40

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

这个支持vga显示吗?编译烧写后接了sipeed的lvds2vga没显示,之前licheepi-nano自带的固件启动阶段是有显示的。

离线

#19 2022-02-18 15:24:16

ding001288
会员
注册时间: 2022-01-20
已发帖子: 21
积分: 7

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

真是保姆级,通俗易懂,感谢大神

离线

#20 2022-02-20 12:03:05

v8second
会员
注册时间: 2022-01-25
已发帖子: 11
积分: 26

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

荔枝派的资料看得一头雾水

离线

#21 2022-02-25 11:48:12

hhy
会员
注册时间: 2021-11-25
已发帖子: 11
积分: 2

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

楼主救命!编译内核出现这个这么选。没有遇到过

vvv@ubuntu:~/nanopi/linux$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4
  HOSTCC  scripts/kconfig/conf.o
  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf  --silentoldconfig Kconfig
*
* Restart config...
*
*
* Enable the block layer
*
Enable the block layer (BLOCK) [Y/?] y
  Support for large (2TB+) block devices and files (LBDAF) [Y/n/?] (NEW) 

离线

#22 2022-02-25 11:49:00

吕氏春秋
会员
注册时间: 2020-03-18
已发帖子: 36
积分: 36

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

@hhy
一看就用错了配置文件,这明显是 x86 的

离线

#23 2022-07-13 16:58:59

tsms5
会员
注册时间: 2020-07-19
已发帖子: 2
积分: 7

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

潜水很久,看到这个太详细,得感谢一下。 尤其是这一段:

lichee官方的u-boot 中 kernel cmdline 使用jffs2格式的 mtdblock3 作为rootfs,但config中没有打开mtdblock设备接口。所以需要勾选 Caching block device access to MTD devices。

mkfs.jffs2 使用的最小擦除尺寸是 8KB,而spi flash的扇区大小是 4KB,所以按照扇区擦除的话,会无法使用,所以必须使用块擦除。即勾选 Use small 4096 B erase sectors。,这样以后添加FLASH也不用再修改源文件 linux/drivers/mtd/spi-nor/spi-nor.c 了

如果不勾选 Caching block device access to MTD devices,会卡在 Waiting for root device /dev/mtdblock3。

离线

#26 2022-08-31 13:54:17

huhujiajia
会员
注册时间: 2022-08-31
已发帖子: 3
积分: 3

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

D1好像也使用荔枝派来做的修改吧,不知道能不能改改这个代码给D1用

离线

#30 2023-03-09 15:13:43

staticman
会员
注册时间: 2023-03-09
已发帖子: 1
积分: 1

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

新人学习诸多踩坑,多亏了这个保姆级教程,必须支持一下

离线

#31 2023-03-23 21:29:03

routon0214
会员
注册时间: 2023-03-23
已发帖子: 1
积分: 1

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

好像有点复杂,看不懂

离线

#33 2023-03-24 17:12:07

nuozhihui
会员
注册时间: 2023-03-15
已发帖子: 6
积分: 26

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

支持下 资料很详细 但是我买不起csdn啊(知道知识付费)

离线

#34 2023-03-24 20:18:06

jolewe4317
会员
注册时间: 2023-03-24
已发帖子: 5
积分: 5

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

The kernel cmdline in Lichee's official u-boot uses mtdblock3 in jffs2 format as rootfs, but the mtdblock device interface is not enabled in the config. So you need to check Caching block device access to MTD devices.

离线

#37 2023-03-28 06:35:19

zgchen
会员
注册时间: 2023-03-16
已发帖子: 7
积分: 2

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

看完这保姆级教程感觉我已经学废了…

离线

#40 2023-06-08 21:42:32

xjl00
会员
注册时间: 2023-06-08
已发帖子: 3
积分: 3

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

万分感谢楼主无私分享,真的保姆级,我们小白的福音啊!!!

离线

#41 2023-06-08 21:43:53

xjl00
会员
注册时间: 2023-06-08
已发帖子: 3
积分: 3

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

nuozhihui 说:

支持下 资料很详细 但是我买不起csdn啊(知道知识付费)

偷偷告诉你,某宝可以代下载哦
不要告诉别人哈

离线

#42 2023-06-09 00:36:25

jiabuda
会员
注册时间: 2023-06-05
已发帖子: 24
积分: 9

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

2022年购买sipeed的荔枝派,其中有个坑就是sipeed提供的git,nano-lcd800480其实已经修复了xt25系列flash的问题,但是nano-v2018.01这个branch里面没有,网上很多文章都是基于nano-v2018.01的,很多人就是这一步编译u-boot然后启动不了,吃了灰

另外就是sunxi-fel工具,烧录spiflash-write的时候没有自动刷新flash,每次烧录的u-boot都是一样的,怀疑人生

离线

#43 2023-06-24 13:19:12

bidezhi7777
会员
注册时间: 2021-04-22
已发帖子: 23
积分: 3

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

没看懂,可以做个烧录工具吗???

离线

#44 2023-06-25 23:52:38

ygs
会员
注册时间: 2023-06-22
已发帖子: 6
积分: 1

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

日志中有dts中的spiflash 分区信息打印,但仍然卡在 waiting for rootfs
解决:
内核配置:

Device Drivers  --->
    <*> Memory Technology Device (MTD) support  --->
               < >   Allwinner A10 SoCs SPI controller   # 取消勾选
               <*>   Allwinner A31 SPI controller   # 勾选

离线

#48 2023-08-16 10:39:41

wyc-0514
会员
注册时间: 2023-07-15
已发帖子: 11
积分: 1

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

你好,荔枝派 nano在执行a.out时出现-sh: ./a.out: not found是什么原因

离线

#49 2023-08-19 13:25:04

技术小白
会员
注册时间: 2020-09-01
已发帖子: 3
积分: 2.5

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

@jiabuda
这个是什么意思,烧录完成 重新上电重启不就可以了?还需要什么指令刷新一下吗

离线

#50 2023-09-01 15:34:21

jiabuda
会员
注册时间: 2023-06-05
已发帖子: 24
积分: 9

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

技术小白 说:

@jiabuda
这个是什么意思,烧录完成 重新上电重启不就可以了?还需要什么指令刷新一下吗

重新上电也发现uboot没更新,最后我是找到帖子,需要先把uboot加载到内存里,然后用指令擦除norflash上面的uboot,再把新uboot烧写一次,才能完成整个过程,不然刷多少次uboot都是旧的那个

离线

#52 2023-09-08 03:15:33

goodluckyou
会员
注册时间: 2020-05-20
已发帖子: 6
积分: 1

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

这个正是需要的,可以帮助我快速上手熟悉开发流程,感谢了

离线

#55 2023-09-16 02:30:46

jianbi
会员
注册时间: 2019-09-06
已发帖子: 10
积分: 0

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

通过这个保姆教程我刚刚买的榴莲派已经跑起来了,淘宝店给的资料编译后都跑不动。太感谢了,等等调试adb去。

离线

#57 2023-09-24 22:09:13

haohop
会员
注册时间: 2023-05-28
已发帖子: 3
积分: 3

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

@wonderxue
你这是uboot没编译

离线

#58 2023-09-27 09:52:44

zhonghuating
会员
注册时间: 2023-09-27
已发帖子: 2
积分: 2

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

荔枝派 nano在执行a.out时出现-sh: ./a.out: not found是什么原因?

离线

#60 2023-09-27 10:49:05

哇酷小二
wechat微信:whycan_cn
所在地: 你猜
注册时间: 2020-04-22
已发帖子: 3,378
积分: 1902
个人网站

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

zhonghuating 说:

荔枝派 nano在执行a.out时出现-sh: ./a.out: not found是什么原因?

两个选择:
① 静态链接
② 用libc的同一个gcc编译app





离线

#65 2023-10-31 14:40:03

jcx0324
会员
注册时间: 2023-10-31
已发帖子: 1
积分: 1

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

全志这两颗芯片很适合裸机开发, 才能发挥出性能

离线

#70 2024-01-23 11:37:22

keaihuan21
会员
注册时间: 2024-01-19
已发帖子: 11
积分: 6

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

我的情况是用flash系统正常可以启动,插入tf卡后就无法识别flash了,和问题2类似,但是uboot是添加过flash支持的

离线

#71 2024-01-23 21:59:28

howudoingwhycan
会员
注册时间: 2023-08-07
已发帖子: 4
积分: 4

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

楼主,请教一下:F1C200S如何将文件从PC端传至开发板中?F1C200S好像不能联网,而且好像不支持adb命令?

离线

#72 2024-01-23 23:42:24

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

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

howudoingwhycan 说:

楼主,请教一下:F1C200S如何将文件从PC端传至开发板中?F1C200S好像不能联网,而且好像不支持adb命令?

支持adb,本站右上角搜一下。





离线

#73 2024-01-24 20:03:13

howudoingwhycan
会员
注册时间: 2023-08-07
已发帖子: 4
积分: 4

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

晕哥 说:
howudoingwhycan 说:

楼主,请教一下:F1C200S如何将文件从PC端传至开发板中?F1C200S好像不能联网,而且好像不支持adb命令?

支持adb,本站右上角搜一下。

感谢晕哥,我去搜一下。

离线

#77 2024-02-16 16:21:30

a61115
会员
注册时间: 2020-11-22
已发帖子: 3
积分: 3

Re: 《保姆级教程》全志F1C100S/F1C200S spi-flash 启动全流程适配烧录及踩坑指南

非常感谢!按照操作半猜半跟着做验证成功了!

有些步骤想去CSDN看看,但是CSDN却看不了。。。非常无语,不过最终结还是弄出来了!

离线

页脚

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

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