事先烧写“分享一个 5寸的 800x480 的 f1c100s 固件, 感谢 @xm1994”帖子里的固件可以正常开机进入kernel。
下载linux代码:
git clone https://github.com/Lichee-Pi/linux.git
git checkout nano-5.2-flash
参考“U-Boot的编译和填坑”:https://whycan.cn/t_2179.html
编译出来zImage和dtb文件进行烧写替换,开机后log停在 “Starting kernel ...”,屏幕黑白条纹一直闪烁刷新。
log如下:
U-Boot 2018.01-05679-g013ca45 (Sep 19 2019 - 15:38:15 +0800) 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
*** Warning - bad CRC, using default environment
Setting up a 800x480 lcd console (overscan 0x0)
In: serial
Out: vga
Err: vga
Net: No ethernet found.
starting USB...
No controllers found
Hit any key to stop autoboot: 0
SF: Detected w25q128bv with page size 256 Bytes, erase size 4 KiB, total 16 MiB
sf - SPI flash sub-system
Usage:
sf probe [[bus:]cs] [hz] [mode] - init flash device on given SPI bus
and chip select
sf read addr offset|partition len - read `len' bytes starting at
`offset' or from start of mtd
`partition'to memory at `addr'
sf write addr offset|partition len - write `len' bytes from memory
at `addr' to flash at `offset'
or to start of mtd `partition'
sf erase offset|partition [+]len - erase `len' bytes from `offset'
or from start of mtd `partition'
`+len' round up `len' to block size
sf update addr offset|partition len - erase and write `len' bytes from memory
at `addr' to flash at `offset'
or to start of mtd `partition'
sf protect lock/unlock sector len - protect/unprotect 'len' bytes starting
at address 'sector'
device 0 offset 0x100000, size 0x10000
SF: 65536 bytes @ 0x100000 Read: OK
device 0 offset 0x110000, size 0x400000
SF: 4194304 bytes @ 0x110000 Read: OK
## Flattened Device Tree blob at 80c00000
Booting using the fdt blob at 0x80c00000
Loading Device Tree to 80e5f000, end 80e63ddc ... OK
Starting kernel ...
离线
你的Linux 是不是烧在 这个位置: 0x110000 , 大小是: 0x400000 ?
是的
参考这个说明来烧写的:
“
目前支持 w25q128, 其他 flash 未测, 烧录命令:
sunxi-fel -p spiflash-write 0x000000 u-boot-sunxi-with-spl.bin
sunxi-fel -p spiflash-write 0x060000 whycan.bmp.gz
sunxi-fel -p spiflash-write 0x110000 zImage
sunxi-fel -p spiflash-write 0x100000 suniv-f1c100s-licheepi-nano-800480.dtb
sunxi-fel -p spiflash-write 0x510000 jffs2.bin
”
最近编辑记录 luckymist (2019-09-20 09:36:40)
离线
检查一下 zImage 有没有超过 4M, 如果没有就开启 early printk: https://whycan.cn/t_2402.html#p18838
开启了 ealyprintk 才会提示具体的错误信息。
改用nano-4.14-exp分支,可以进入kernel了。
nano-5.2-flash分支进不去的问题下午打开early printk看下。
离线
nano-5.2-flash分支的menuconfig没有Allwinner的选项,是否是这个差异导致该问题? 有人用过nano-5.2-flash分支吗?
“
SPI-Flash的支持
进入 Device Drivers -> SPI support,将 Allwinner A10 SoCs SPI controller取消勾选,然后勾上下面的Allwinner A31 SPI Controller。这是为了修正配置文件中SPI驱动不正确的问题。
”
离线
https://whycan.cn/t_2703.html#p21662
0x01: 开机卡在waiting for rootfs
原因有两点
1. 找不到SPI flash
f1c100s应使用A31的spi控制器驱动,但lichee官方config中是启用的A10 SoC的驱动。
表现为开机ttl日志中没有dts中的spiflash 分区信息打印,且卡在waiting for rootfs
启用:Device Driver ---> SPI Support ---> Allwinner A31 SPI controller
禁用:Device Driver ---> SPI Support ---> Allwinner A10 SoCs SPI controller
兄台,你用的是nano-5.2-flash分支吗?
离线