您尚未登录。

#1 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 讨论一下MQTT物联网安全问题 » 2024-04-23 11:50:47

https://www.cnblogs.com/k1two2/p/4760868.html

上周结束的Hackpwn上,黑客们脑洞大开,破解了比亚迪汽车、小米手环、乐小宝、长虹电视、TCL洗衣机和九阳豆浆机等一系列最新的智能硬件,据黑客介绍,TCL是一家把家门“砌死”的企业,由于得到了将要被现场破解的消息,在HackPwn前一天,TCL就已经关闭了云服务器,在黑客童鞋以消费者身份苦苦哀求了一晚上以后,终于恢复服务,但是在Hackpwn当天又关闭了,又关闭了……

TCL的洗衣机在云端可以相互识别。但正常来说,一台洗衣机是无法给另一台洗衣机下命令的。不过,黑客团队发现了一招制敌妙计,那就是:把命令中禁止发送的字符换成小写字母,换成小写字母,换成小写字母。(重要的事情说三遍)

没错,绕过系统控制就是这么简单。通过此种方法可以通过模仿云端的控制器“京东微联”向任何一台洗衣机下达指令,指令可以精确到温度和转速。

所以,当你回家发现洗衣机以90度的设定温度,以1200转每分钟的转速转了一天的时候,请不要太惊讶哦,你的洗衣机只不过是“认贼作父”了。




通过京东微联手机APP,我们可以查看洗衣机的状态,可以选择多种洗衣模式,调整洗衣机的转速、洗衣的温度等参数。可以实现在任何地点只要洗衣机能接入互联网都可以控制。

对于洗衣机的攻击点分析

使用TCP智能洗衣机时需要对洗衣机进行配置,才能够接入网络,从而使用手机客户端进行远程控制。TCL洗衣机使用的是”京东微联”物联网平台,京东微联是京东旗下针对智能硬件产品专门推出的一项云服务,致力于打造一个多方共赢的智能硬件生态链。



我们可以通过简单的配置将设备通过wifi接入互联网,配置成功后就可以使用京东微联手机客户端来反向控制洗衣机,达到洗衣机设备能够通过手机远程控制的功能,这也就是为什么说这个型号的洗衣机是”智能洗衣机”的原因了。


TCL智能洗衣机最主要的问题时能够绕过”京东微联”平台的统一管控,再利用传输未加密、使用单一因素作为身份鉴权标识,还有XMPP会话登陆机制等特性,最终实现可以通过任意账号横向控制TCL所有的智能洗衣机。在国内主流的一些智能家居设备,接入到大的IOT平台中也有可能存在同样的问题。

#2 Re: 工业芯 匠芯创 » 有没有好用迷你的程序和gui工具推荐? » 2024-04-23 09:07:10

当然是用LVGL,一次编写到处运行,足够轻量足够漂亮。

#3 Re: 全志 SOC » 移植RTL8733BU蓝牙模组 » 2024-04-19 15:39:38

具体是什么问题,看起来好像也没啥问题

#4 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 讨论一下MQTT物联网安全问题 » 2024-04-07 17:57:09

目前我能想到的办法,一机一密码,或者一机一密钥。

但是这样对小公司好像不太现实,维护起来有些困难。

#5 VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 讨论一下MQTT物联网安全问题 » 2024-04-07 17:54:54

memory
回复: 7

MQTT客户端的登录账号密码都在嵌入式设备里面,总是有办法把用户名密码明文抓出来,

MQTTS/WSS 也只是保证通讯链路的安全,防止在路由器抓到明文的登录用户名和密码。

如果有人用这个账号密码,向指定主题发送一堆数据,那岂不是很危险?

特别是员工离职之后,成千上万的MQTT终端已经在线上运行了,MQTT的登录账号密码其实已经泄露,

这个时候怎么修补漏洞?

#6 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 用阿里云免费的SSL证书搭建 WebSocket MQTT 平台 » 2024-04-07 17:46:09

buildroot 2024.02 版本编译出来的,发现嵌入式系统跑不了,也是出错:

# mosquitto_sub -h mqtt2.test.com -t "/control/#" -p 8883 -u test-P test-os.com -d
Client null sending CONNECT
OpenSSL Error[0]: error:0A000086:SSL routines::certificate verify failed
Error: Protocol error

然后一顿骚操作,升级了openssl版本,仍然没有解决,继续跟踪openssl源码,发现需要去找 /etc/ssl 目录

然后把ubuntu 的 /etc/ssl 目录备份解压到 buildroot,OK!

tar cvf /mnt/hgfs/D/s.tar /etc/ssl/ /usr/share/ca-certificates/

#8 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 用阿里云免费的SSL证书搭建 WebSocket MQTT 平台 » 2024-04-07 13:11:07

memory 说:

应该是前面用Ubuntu18.04 的openssl 版本问题,怪不得在google play下载一堆MQTT app都能正常连接到8883端口MQTTS。

到此为止,MQTT,MQTTS,WSS 三种协议完全打通,并且可以互通。

#9 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 用阿里云免费的SSL证书搭建 WebSocket MQTT 平台 » 2024-04-07 11:55:49

应该是前面用Ubuntu18.04 的openssl 版本问题,怪不得在google play下载一堆MQTT app都能正常连接到8883端口MQTTS。

#11 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 用阿里云免费的SSL证书搭建 WebSocket MQTT 平台 » 2024-04-07 11:52:37

创建用户名test的密码文件:

mosquitto_passwd -c /etc/mosquitto/passwd test

强制密码登录:

/etc/mosquitto/mosquitto.conf
# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example

pid_file /var/run/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto/

allow_anonymous false
password_file  /etc/mosquitto/passwd
listener 1883 0.0.0.0

listener 8883 0.0.0.0
cafile /etc/mosquitto/ssl/Digicert-OV-DV-root.cer
certfile /etc/mosquitto/ssl/mqtt1.test.com.pem
keyfile /etc/mosquitto/ssl/mqtt1.test.com.key
protocol mqtt



listener 8884 0.0.0.0
cafile /etc/mosquitto/ssl/Digicert-OV-DV-root.cer
keyfile /etc/mosquitto/ssl/mqtt1.test.com.key
certfile /etc/mosquitto/ssl/mqtt1.test.com.pem
protocol websockets



log_dest file /var/log/mosquitto/mosquitto.log

include_dir /etc/mosquitto/conf.d

这个配置 MQTT, MQTTS, WSS 用MQTTX软件测试均正常,强制账号密码登录,但是MQTTS用mosquitto_sub测试未成功。

#13 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 用阿里云免费的SSL证书搭建 WebSocket MQTT 平台 » 2024-04-05 18:25:05

/etc/mosquitto/mosquitto.conf 这个配置

# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example

pid_file /var/run/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto/

listener 1883 0.0.0.0

listener 8883 0.0.0.0
cafile /etc/mosquitto/ssl/Digicert-OV-DV-root.cer
certfile /etc/mosquitto/ssl/mqtt1.xxx.com.pem
keyfile /etc/mosquitto/ssl/mqtt1.xxx.com.key
protocol mqtt



listener 8884 0.0.0.0
cafile /etc/mosquitto/ssl/Digicert-OV-DV-root.cer
keyfile /etc/mosquitto/ssl/mqtt1.xxx.com.key
certfile /etc/mosquitto/ssl/mqtt1.xxx.com.pem
protocol websockets



log_dest file /var/log/mosquitto/mosquitto.log

include_dir /etc/mosquitto/conf.d

这个配置 MQTT, MQTTS, WSS 用MQTTX软件测试均正常了,但是MQTTS用mosquitto_sub测试未成功。

#17 VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 用阿里云免费的SSL证书搭建 WebSocket MQTT 平台 » 2024-04-05 14:14:57

memory
回复: 10

QQ截图20240407132334.png

三个月有效期的 DigiCert 免费SSL证书。


参考:

https://blog.csdn.net/mgledu/article/details/118573075

https://blog.csdn.net/qq_43547555/article/details/106628783

下载 Nginx PEM/KEY 证书和 根证书


修改:
/etc/mosquitto/mosquitto.conf

增加:

listener 1883 0.0.0.0
listener 8883 0.0.0.0
listener 8884 0.0.0.0

protocol websockets

cafile /etc/mosquitto/ssl/Digicert-OV-DV-root.cer
keyfile /etc/mosquitto/ssl/mqtt1.test.com.key
certfile /etc/mosquitto/ssl/mqtt1.test.com.pem

#18 Re: 全志 SOC » Ubuntu22.04用原来Ubuntu18.04的密钥无法登录了,显示Server refused our key » 2024-04-05 11:27:46

打开 /etc/ssh/sshd_config

添加 PubkeyAcceptedAlgorithms  +ssh-rsa

然后禁止密码登录:PasswordAuthentication no

搞定收工

#19 Re: 全志 SOC » Ubuntu22.04用原来Ubuntu18.04的密钥无法登录了,显示Server refused our key » 2024-04-05 11:27:01

看授权日志 /var/log/auth.log

No supported authentication methods available [preauth]
userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]

根据这个问 chatgpt

#21 Re: 全志 SOC » A133 Android 无法打开WiFi » 2024-04-03 23:35:43

root@TinaLinux:/# wpa_supplicant -i wlan0 -Dnl80211 -c/etc/wifi/wpa_supplicant.conf -O /etc/wifi/sockets -B
Successfully initialized wpa_supplicant
[  796.252780] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
mkdir[ctrl_interface=/etc/wifi/sockets]: Read-only file system
Failed to initialize control interface '/etc/wifi/sockets'.

日志提示很清晰:启动wpa_supplicant服务时依赖的套接字路径和配置文件是只读的。



看是否文件系统原因

#22 Re: 全志 SOC » T113-S3 SPI NAND 操作笔记 » 2024-04-03 22:49:17

#
# ubinfo /dev/ubi0_0
Volume ID:   0 (on ubi0)
Type:        static
Alignment:   1
Size:        66 LEBs (17031168 bytes, 16.2 MiB)
Data bytes:  16777216 bytes (16.0 MiB)
State:       OK
Name:        mbr
Character device major/minor: 243:1
#
#
#
# ubinfo /dev/ubi0_1
Volume ID:   1 (on ubi0)
Type:        dynamic
Alignment:   1
Size:        2 LEBs (516096 bytes, 504.0 KiB)
State:       OK
Name:        boot-resource
Character device major/minor: 243:2
#
#
#
#
# ubinfo /dev/ubi0_2
Volume ID:   2 (on ubi0)
Type:        dynamic
Alignment:   1
Size:        1 LEBs (258048 bytes, 252.0 KiB)
State:       OK
Name:        env
Character device major/minor: 243:3
#

#23 Re: 全志 SOC » T113-S3 SPI NAND 操作笔记 » 2024-04-03 22:43:06

linux 操作

ubinfo /dev/ubi0

# ubinfo /dev/ubi0
ubi0
Volumes count:                           9
Logical eraseblock size:                 258048 bytes, 252.0 KiB
Total amount of logical eraseblocks:     1004 (259080192 bytes, 247.0 MiB)
Amount of available logical eraseblocks: 0 (0 bytes)
Maximum count of volumes                 128
Count of bad physical eraseblocks:       0
Count of reserved physical eraseblocks:  40
Current maximum erase counter value:     2
Minimum input/output unit size:          4096 bytes
Character device major/minor:            243:0
Present volumes:                         0, 1, 2, 3, 4, 5, 6, 7, 8
#

#25 全志 SOC » T113-S3 SPI NAND 操作笔记 » 2024-04-03 21:44:57

memory
回复: 3

串口终端一直 ssssssssss,重新上电进入 u-boot 命令行,

输入 ubi info

=> ubi info
UBI: MTD device name:            "sys"
UBI: MTD device size:            251 MiB
UBI: physical eraseblock size:   262144 bytes (256 KiB)
UBI: logical eraseblock size:    258048 bytes
UBI: number of good PEBs:        1004
UBI: number of bad PEBs:         0
UBI: smallest flash I/O unit:    4096
UBI: VID header offset:          2048 (aligned 2048)
UBI: data offset:                4096
UBI: max. allowed volumes:       128
UBI: wear-leveling threshold:    4096
UBI: number of internal volumes: 1
UBI: number of user volumes:     8
UBI: available PEBs:             693
UBI: total number of reserved PEBs: 311
UBI: number of PEBs reserved for bad PEB handling: 40
UBI: max/mean erase counter: 2/1

输入ubi part sys

=> ubi part sys
[96.979]ubi0: attaching mtd4
[97.183]ubi0: scanning is finished
[97.190]ubi0: attached mtd4 (name "sys", size 251 MiB)
[97.195]ubi0: PEB size: 262144 bytes (256 KiB), LEB size: 258048 bytes
[97.201]ubi0: min./max. I/O unit sizes: 4096/4096, sub-page size 2048
[97.207]ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[97.213]ubi0: good PEBs: 1004, bad PEBs: 0, corrupted PEBs: 0
[97.219]ubi0: user volume: 8, internal volumes: 1, max. volumes count: 128
[97.225]ubi0: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 0
[97.233]ubi0: available PEBs: 693, total reserved PEBs: 311, PEBs reserved for bad PEB handling: 40

输入ubi create UDISK创建UDISK volume:

=> ubi create UDISK
No size specified -> Using max size (178827264)
Creating dynamic volume UDISK of size 178827264

输入ubi remove UDISK删除volume:

=> ubi remove UDISK
Remove UBI volume UDISK (id 8)

#26 Re: 全志 SOC » 求助A133 Android 编译问题 » 2024-03-31 16:46:38

可能环境问题,ubuntu 18.04 LTS编译正常。

#27 Re: 全志 SOC » 请问t113的nand 刷机这样问题,可能是什么造成的? » 2024-03-31 16:10:54

ubi volume total size is larger than mtd size.

超过大小了?

#28 全志 SOC » A133 TINA5 gt911 芯片可以检测到,但是不能卸载驱动 » 2024-03-31 09:45:13

memory
回复: 0
root@TinaLinux:/# i2cdetect -y 6
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- 14 -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- 35 -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- 58 -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@TinaLinux:/#
root@TinaLinux:/# i2cdump -y 6 0x14
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
40: 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ?...............
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0c    ...............?
d0: 11 83 02 20 11 83 02 20 11 83 02 20 11 a3 02 20    ??? ??? ??? ???
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
root@TinaLinux:/#

无法卸载:

root@TinaLinux:/# lsmod
gt9xxnew_ts            47774  0
root@TinaLinux:/#
root@TinaLinux:/# rmmod gt9xxnew_ts
[  134.176774] Unable to handle kernel NULL pointer dereference at virtual address 00000000
[  134.185945] pgd = ffffffc078a6e000
[  134.189780] [0000000000000000] *pgd=00000000b8326003, *pud=00000000b8326003, *pmd=0000000000000000
[  134.199913] Internal error: Oops: 96000006 [#1] PREEMPT SMP
[  134.206156] Modules linked in: gt9xxnew_ts(-)
[  134.211049] CPU: 3 PID: 2117 Comm: rmmod Not tainted 4.9.191 #5
[  134.217681] Hardware name: sun50iw10 (DT)
[  134.222171] task: ffffffc0789e5180 task.stack: ffffffc078334000
[  134.228815] PC is at i2c_do_del_adapter+0x34/0x8c
[  134.234086] LR is at __process_removed_driver+0x30/0x44
[  134.239939] pc : [<ffffff80084e2f00>] lr : [<ffffff80084e2fa4>] pstate: 60000145
[  134.248226] sp : ffffffc078337d50
[  134.251935] x29: ffffffc078337d50 x28: ffffffc0789e5180
[  134.257893] x27: ffffff8008792000 x26: 000000000000006a
[  134.263850] x25: 00000000000001b3 x24: 0000000000000015
[  134.269806] x23: dead000000000200 x22: dead000000000100
[  134.275763] x21: ffffffc07a1b6e90 x20: ffffff80007989c0
[  134.281720] x19: 0000000000000000 x18: 0000000000000000
[  134.287676] x17: 0000007f90acc420 x16: ffffff80080ff310
[  134.293632] x15: 0000000000000020 x14: 0000000000000002
[  134.299590] x13: ffffffffff000000 x12: ffffffffffffffff
[  134.305547] x11: 0000000000000018 x10: 7f7f7f7f7f7f7f7f
[  134.311503] x9 : fefefefefefefeff x8 : 0000000000000000
[  134.317460] x7 : ffffffffffffffff x6 : 000000ffffffffff
[  134.323417] x5 : 8080808080000000 x4 : 0000000000000000
[  134.329374] x3 : ffffffc07a1b6f00 x2 : ffffff8008b59dd0
[  134.335331] x1 : ffffffc07a1b6e90 x0 : fffffffffffffd28
[  134.341289]
[  134.341289] SP: 0xffffffc078337cd0:
[  134.346850] 7cd0  00000100 dead0000 00000200 dead0000 00000015 00000000 000001b3 00000000
[  134.356052] 7cf0  0000006a 00000000 08792000 ffffff80 789e5180 ffffffc0 78337d50 ffffffc0
[  134.365252] 7d10  084e2fa4 ffffff80 78337d50 ffffffc0 084e2f00 ffffff80 60000145 00000000
[  134.374451] 7d30  78337d40 ffffffc0 08778a44 ffffff80 ffffffff 0000007f 087705f0 ffffff80
[  134.383650] 7d50  78337d90 ffffffc0 084e2fa4 ffffff80 00000000 00000000 007988f8 ffffff80
[  134.392848] 7d70  084e2f74 ffffff80 084e2f74 ffffff80 60000000 00000000 0000006a 00000000
[  134.402047] 7d90  78337da0 ffffffc0 083d0dcc ffffff80 78337de0 ffffffc0 084e3344 ffffff80
[  134.411247] 7db0  08b59da0 ffffff80 08b59e98 ffffff80 007988f8 ffffff80 084e3330 ffffff80
[  134.420447]
[  134.420447] X0: 0xfffffffffffffca8:
[  134.426007] fca8  ******** ******** ******** ******** ******** ******** ******** ********
[  134.435211] fcc8  ******** ******** ******** ******** ******** ******** ******** ********
[  134.444411] fce8  ******** ******** ******** ******** ******** ******** ******** ********
[  134.453610] fd08  ******** ******** ******** ******** ******** ******** ******** ********
[  134.462810] fd28  ******** ******** ******** ******** ******** ******** ******** ********
[  134.472009] fd48  ******** ******** ******** ******** ******** ******** ******** ********
[  134.481210] fd68  ******** ******** ******** ******** ******** ******** ******** ********
[  134.490410] fd88  ******** ******** ******** ******** ******** ******** ******** ********
[  134.499612]
[  134.499612] X1: 0xffffffc07a1b6e10:
[  134.505173] 6e10  cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
[  134.514372] 6e30  cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
[  134.523572] 6e50  cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
[  134.532770] 6e70  cccccccc cccccccc cccccccc cccccccc 7a759e80 ffffffc0 00000006 00000001
[  134.541970] 6e90  00000000 00000000 00000081 00000000 08813898 ffffff80 7a1b6e80 ffffffc0
[  134.551168] 6eb0  08813178 ffffff80 00000000 00000000 00000000 00000000 00000000 00000000
[  134.560365] 6ed0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[  134.569566] 6ef0  00000000 00000000 000004e2 00000003 7a759e90 ffffffc0 7a223380 ffffffc0
[  134.578766]
[  134.578766] X3: 0xffffffc07a1b6e80:
[  134.584327] 6e80  7a759e80 ffffffc0 00000006 00000001 00000000 00000000 00000081 00000000
[  134.593526] 6ea0  08813898 ffffff80 7a1b6e80 ffffffc0 08813178 ffffff80 00000000 00000000
[  134.602724] 6ec0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[  134.611923] 6ee0  00000000 00000000 00000000 00000000 00000000 00000000 000004e2 00000003
[  134.621121] 6f00  7a759e90 ffffffc0 7a223380 ffffffc0 7a2d1e80 ffffffc0 7a2e00b8 ffffffc0
[  134.630321] 6f20  7a15bd30 ffffffc0 7a759ea0 ffffffc0 7b638080 ffffffc0 08b3a298 ffffff80
[  134.639521] 6f40  7a2bf568 ffffffc0 00000009 00000007 00000000 00000000 08b59dd0 ffffff80
[  134.648720] 6f60  00000001 00020002 7a1b6f68 ffffffc0 7a1b6f68 ffffffc0 00000000 00000000
[  134.657922]
[  134.657922] X13: 0xfffffffffeffff80:
[  134.663580] ff80  ******** ******** ******** ******** ******** ******** ******** ********
[  134.672779] ffa0  ******** ******** ******** ******** ******** ******** ******** ********
[  134.681980] ffc0  ******** ******** ******** ******** ******** ******** ******** ********
[  134.691181] ffe0  ******** ******** ******** ******** ******** ******** ******** ********
[  134.700381] 0000  ******** ******** ******** ******** ******** ******** ******** ********
[  134.709581] 0020  ******** ******** ******** ******** ******** ******** ******** ********
[  134.718781] 0040  ******** ******** ******** ******** ******** ******** ******** ********
[  134.727981] 0060  ******** ******** ******** ******** ******** ******** ******** ********
[  134.737183]
[  134.737183] X21: 0xffffffc07a1b6e10:
[  134.742840] 6e10  cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
[  134.752040] 6e30  cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
[  134.761238] 6e50  cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
[  134.770437] 6e70  cccccccc cccccccc cccccccc cccccccc 7a759e80 ffffffc0 00000006 00000001
[  134.779636] 6e90  00000000 00000000 00000081 00000000 08813898 ffffff80 7a1b6e80 ffffffc0
[  134.788835] 6eb0  08813178 ffffff80 00000000 00000000 00000000 00000000 00000000 00000000
[  134.798034] 6ed0  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[  134.807232] 6ef0  00000000 00000000 000004e2 00000003 7a759e90 ffffffc0 7a223380 ffffffc0
[  134.816436]
[  134.816436] X28: 0xffffffc0789e5100:
[  134.822094] 5100  cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
[  134.831292] 5120  cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
[  134.840490] 5140  cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
[  134.849689] 5160  cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc cccccccc
[  134.858889] 5180  00000012 00000000 ffffffff ffffffff 00000001 00000000 00000000 00000000
[  134.868088] 51a0  78334000 ffffffc0 00000002 00404100 00000000 00000000 00000000 00000000
[  134.877285] 51c0  00000001 00000003 0000000f 00000000 ffff5df8 00000000 7839ec80 ffffffc0
[  134.886484] 51e0  00000003 00000001 00000078 00000078 00000078 00000000 08799370 ffffff80
[  134.895685]
[  134.895685] X29: 0xffffffc078337cd0:
[  134.901343] 7cd0  00000100 dead0000 00000200 dead0000 00000015 00000000 000001b3 00000000
[  134.910543] 7cf0  0000006a 00000000 08792000 ffffff80 789e5180 ffffffc0 78337d50 ffffffc0
[  134.919741] 7d10  084e2fa4 ffffff80 78337d50 ffffffc0 084e2f00 ffffff80 60000145 00000000
[  134.928941] 7d30  78337d40 ffffffc0 08778a44 ffffff80 ffffffff 0000007f 087705f0 ffffff80
[  134.938139] 7d50  78337d90 ffffffc0 084e2fa4 ffffff80 00000000 00000000 007988f8 ffffff80
[  134.947338] 7d70  084e2f74 ffffff80 084e2f74 ffffff80 60000000 00000000 0000006a 00000000
[  134.956537] 7d90  78337da0 ffffffc0 083d0dcc ffffff80 78337de0 ffffffc0 084e3344 ffffff80
[  134.965737] 7db0  08b59da0 ffffff80 08b59e98 ffffff80 007988f8 ffffff80 084e3330 ffffff80
[  134.974936]
[  134.976600] Process rmmod (pid: 2117, stack limit = 0xffffffc078334000)
[  134.984012] Stack: (0xffffffc078337d50 to 0xffffffc078338000)
[  134.990450] 7d40:                                   ffffffc078337d90 ffffff80084e2fa4
[  134.999228] 7d60: 0000000000000000 ffffff80007988f8 ffffff80084e2f74 ffffff80084e2f74
[  135.008005] 7d80: 0000000060000000 000000000000006a ffffffc078337da0 ffffff80083d0dcc
[  135.016782] 7da0: ffffffc078337de0 ffffff80084e3344 ffffff8008b59da0 ffffff8008b59e98
[  135.025560] 7dc0: ffffff80007988f8 ffffff80084e3330 ffffffc07a4eb528 ffffffc07a2233e8
[  135.034338] 7de0: ffffffc078337e10 ffffff80084e33f8 ffffff80007988f8 ffffff8008a51000
[  135.043117] 7e00: ffffff8008b92000 ffffff8008a3d000 ffffffc078337e30 ffffff80007952b4
[  135.051895] 7e20: ffffff8000798e18 ffffff8008a3d000 ffffffc078337e50 ffffff80080ff40c
[  135.060672] 7e40: ffffff8000798b00 ffffff80080ff400 0000000000000000 ffffff8008083200
[  135.069449] 7e60: fffffffffffffe95 0000004075540000 ffffffffffffffff 0000007f90acc444
[  135.078228] 7e80: 77656e7878397467 000000000073745f ffffffffffffffff 0000007f90ac82a4
[  135.087005] 7ea0: 0000000020000000 0000000000000015 00000000000001b3 00000000000409bf
[  135.095782] 7ec0: 0000000034eb0950 0000000000000000 000000000000000b 0000000000000073
[  135.104558] 7ee0: 000000000000002d 0000000034eb09c3 0000000000000073 0000000000000073
[  135.113336] 7f00: 000000000000006a 7f7f7f7f7f7f7f7f 4e46ff323c4b554b 7f7f7f7f7f7f7f7f
[  135.122114] 7f20: 0101010101010101 0000000000000028 0000000000000002 0000000000000020
[  135.130891] 7f40: 0000000000413fe0 0000007f90acc420 0000000000000000 0000007fec3f1ea4
[  135.139669] 7f60: 0000007fec3f16b8 0000000000000002 0000000000414028 0000000000403383
[  135.148446] 7f80: 0000000000414000 0000000000000000 0000000000000000 0000000000000000
[  135.157224] 7fa0: 0000000000000000 0000007fec3f1460 0000000000401848 0000007fec3f1460
[  135.166000] 7fc0: 0000007f90acc444 0000000060000000 0000000034eb0950 000000000000006a
[  135.174776] 7fe0: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[  135.183551] Call trace:
[  135.186287] Exception stack(0xffffffc078337b80 to 0xffffffc078337cb0)
[  135.193506] 7b80: 0000000000000000 0000007fffffffff ffffffc078337d50 ffffff80084e2f00
[  135.202283] 7ba0: 0000000000080060 ffffff80082acfc8 ffffffc078337be0 ffffff800808a7a8
[  135.211059] 7bc0: ffffff8008778718 0000000000000001 ffffffc078337c10 ffffff80082acfc8
[  135.219838] 7be0: ffffff8008a01b18 ffffff8008a4ff00 ffffffc07872eb10 0000000000000140
[  135.228616] 7c00: 0000000000000000 ffffffc078337c60 ffffffc078337c50 ffffff80082acfc8
[  135.237392] 7c20: fffffffffffffd28 ffffffc07a1b6e90 ffffff8008b59dd0 ffffffc07a1b6f00
[  135.246168] 7c40: 0000000000000000 8080808080000000 000000ffffffffff ffffffffffffffff
[  135.254945] 7c60: 0000000000000000 fefefefefefefeff 7f7f7f7f7f7f7f7f 0000000000000018
[  135.263722] 7c80: ffffffffffffffff ffffffffff000000 0000000000000002 0000000000000020
[  135.272499] 7ca0: ffffff80080ff310 0000007f90acc420
[  135.277966] [<ffffff80084e2f00>] i2c_do_del_adapter+0x34/0x8c
[  135.284405] [<ffffff80084e2fa4>] __process_removed_driver+0x30/0x44
[  135.291432] [<ffffff80083d0dcc>] bus_for_each_dev+0x68/0x98
[  135.297676] [<ffffff80084e3344>] i2c_for_each_dev+0x40/0x60
[  135.303921] [<ffffff80084e33f8>] i2c_del_driver+0x1c/0x30
[  135.309996] [<ffffff80007952b4>] _2+0x2c/0x78 [gt9xxnew_ts]
[  135.316245] [<ffffff80080ff40c>] SyS_delete_module+0xfc/0x1d8
[  135.322685] [<ffffff8008083200>] el0_svc_naked+0x34/0x38
[  135.328639] Code: f2fbd5b6 f84c8e80 f2fbd5b7 d10b6000 (f9416c13)
[  135.335468] ---[ end trace 2be21a22e270aa69 ]---
Segmentation fault
root@TinaLinux:/#

#29 全志 SOC » 奇怪,A133 加载 gt911 驱动出错 » 2024-03-30 19:11:04

memory
回复: 0
root@TinaLinux:/#
root@TinaLinux:/#
root@TinaLinux:/# insmod  /lib/modules/4.9.191/gt9xxnew_ts.ko
[  333.070165] Error: Driver 'gt9xxnew_ts' is already registered, aborting...
failed to insert /lib/modules/4.9.191/gt9xxnew_ts.ko
root@TinaLinux:/#
root@TinaLinux:/#
root@TinaLinux:/#
root@TinaLinux:/# rmmod gt9xxnew_ts
module is not loaded
root@TinaLinux:/#
root@TinaLinux:/#
root@TinaLinux:/#

#31 Re: 全志 SOC » 开源智能家居V3s CAN转以太网网关,附openwrt19.07.7 » 2024-03-25 15:58:47

damiaa 说:

楼主 T113-S3能跑openwrt吗?

可以,我就是跑Openwrt做4G路由器。

#33 全志 SOC » 真是渣渣,T113-S3 tplayerdemo 测试播放1280x720视频,两小时就挂了 » 2024-03-24 10:57:39

memory
回复: 1

QQ截图20240324105525.png

64 bytes from 183.2.193.224: seq=2593 ttl=56 time=52.159 ms
64 bytes from 183.2.193.224: seq=2594 ttl=56 time=9.867 ms
64 bytes from 183.2.193.224: seq=2595 ttl=56 time=9.895 ms
[1970-01-01 02:22:37] WARNING: cedarc <waitInterruptDecoder:748>: wait ve interrupt timeout. ret = 0
64 bytes from 183.2.193.224: seq=2596 ttl=56 time=10.993 ms
64 bytes from 183.2.193.224: seq=2597 ttl=56 time=30.195 ms
64 bytes from 183.2.193.224: seq=2598 ttl=56 time=12.402 ms
64 bytes from 183.2.193.224: seq=2599 ttl=56 time=6.879 ms
64 bytes from 183.2.193.224: seq=2600 ttl=56 time=12.246 ms
64 bytes from 183.2.193.224: seq=2601 ttl=56 time=21.728 ms
64 bytes from 183.2.193.224: seq=2602 ttl=56 time=17.808 ms
64 bytes from 183.2.193.224: seq=2603 ttl=56 time=6.241 ms
64 bytes from 183.2.193.224: seq=2604 ttl=56 time=20.518 ms
64 bytes from 183.2.193.224: seq=2605 ttl=56 time=9.801 ms
64 bytes from 183.2.193.224: seq=2606 ttl=56 time=11.661 ms
64 bytes from 183.2.193.224: seq=2607 ttl=56 time=8.761 ms
64 bytes from 183.2.193.224: seq=2608 ttl=56 time=16.567 ms
64 bytes from 183.2.193.224: seq=2609 ttl=56 time=7.684 ms
64 bytes from 183.2.193.224: seq=2610 ttl=56 time=47.762 ms
64 bytes from 183.2.193.224: seq=2611 ttl=56 time=16.499 ms
64 bytes from 183.2.193.224: seq=2612 ttl=56 time=25.055 ms
64 bytes from 183.2.193.224: seq=2613 ttl=56 time=13.752 ms
64 bytes from 183.2.193.224: seq=2614 ttl=56 time=11.462 ms
64 bytes from 183.2.193.224: seq=2615 ttl=56 time=7.686 ms
[1970-01-01 02:22:57] WARNING: cedarc <RequestVideoStreamBuffer:1275>: request stream buffer fail,                  3143162 bytes valid data in SBM[0], total buffer size is 3145728 bytes.
64 bytes from 183.2.193.224: seq=2616 ttl=56 time=5.880 ms
[1970-01-01 02:22:57] WARNING: cedarc <RequestVideoStreamBuffer:1275>: request stream buffer fail,                  3143162 bytes valid data in SBM[0], total buffer size is 3145728 bytes.
[1970-01-01 02:22:57] WARNING: cedarc <RequestVideoStreamBuffer:1275>: request stream buffer fail,                  3143162 bytes valid data in SBM[0], total buffer size is 3145728 bytes.
[1970-01-01 02:22:57] WARNING: cedarc <RequestVideoStreamBuffer:1275>: request stream buffer fail,                  3143162 bytes valid data in SBM[0], total buffer size is 3145728 bytes.
[1970-01-01 02:22:57] WARNING: cedarc <RequestVideoStreamBuffer:1275>: request stream buffer fail,                  3143162 bytes valid data in SBM[0], total buffer size is 3145728 bytes.
[1970-01-01 02:22:58] WARNING: cedarc <RequestVideoStreamBuffer:1275>: request stream buffer fail,                  3143162 bytes valid data in SBM[0], total buffer size is 3145728 bytes.
64 bytes from 183.2.193.224: seq=2617 ttl=56 time=41.615 ms
[1970-01-01 02:22:58] WARNING: cedarc <RequestVideoStreamBuffer:1275>: request stream buffer fail,                  3143162 bytes valid data in SBM[0], total buffer size is 3145728 bytes.
[1970-01-01 02:22:58] WARNING: cedarc <RequestVideoStreamBuffer:1275>: request stream buffer fail,                  3143162 bytes valid data in SBM[0], total buffer size is 3145728 bytes.
[1970-01-01 02:22:58] WARNING: cedarc <RequestVideoStreamBuffer:1275>: request stream buffer fail,                  3143162 bytes valid data in SBM[0], total buffer size is 3145728 bytes.
[1970-01-01 02:22:58] WARNING: cedarc <RequestVideoStreamBuffer:1275>: request stream buffer fail,                  3143162 bytes valid data in SBM[0], total buffer size is 3145728 bytes.
[1970-01-01 02:22:59] WARNING: cedarc <RequestVideoStreamBuffer:1275>: request stream buffer fail,                  3143162 bytes valid data in SBM[0], total buffer size is 3145728 bytes.

#35 Re: 全志 SOC » 有没有大佬搞过全志量产的厂测软件啊 » 2024-03-15 16:04:54

不一定能用的,wifimanager就有1.0和2.0版本,接口都完全不同了。

#36 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 临时百度帐号? » 2024-03-13 10:50:28

soso 说:
memory 说:

淘宝可以买临时账号

淘宝骗子多。哈哈哈哈。

就几毛钱,临时用几个小时而已。

#40 Re: 全志 SOC » D1s 用新买的SPI FLASH W25N01GVZEIG 烧录失败,换一片又可以 » 2024-03-09 22:35:55

[945]fes begin commit:88480af-dirty
[948]set pll start
[954]periph0 has been enabled
[957]set pll end
[959][pmu]: bus read error
[961]board init ok
[963]beign to init dram
[965]ZQ value = 0x2f
[967]get_pmu_exist() = -1
[970]ddr_efuse_type: 0xa
[972]trefi:7.8ms
[974][AUTO DEBUG] single rank and full DQ!
[979]ddr_efuse_type: 0xa
[981]trefi:7.8ms
[983][AUTO DEBUG] rank 0 row = 13
[986][AUTO DEBUG] rank 0 bank = 8
[990][AUTO DEBUG] rank 0 page size = 2 KB
[994]DRAM BOOT DRIVE INFO: V0.33
[997]DRAM CLK = 936 MHz
[999]DRAM Type = 3 (2:DDR2,3:DDR3)
[1002]DRAMC read ODT  off.
[1005]DRAM ODT value: 0x42.
[1007]ddr_efuse_type: 0xa
[1011]DRAM SIZE =128 M
[1013]dram_tpr4:0x0
[1015]PLL_DDR_CTRL_REG:0xf8004d00
[1018]DRAM_CLK_REG:0xc0000000
[1020][TIMING DEBUG] MR2= 0x20
[1025]DRAM simple test OK.
[1027]rtc standby flag is 0x0, super standby flag is 0x0
[1032]init dram ok


U-Boot 2018.05-g24521d6-dirty (Mar 09 2024 - 17:21:03 +0800) Allwinner Technology

[03.307]CPU:   Allwinner Family
[03.310]Model: sun8iw20
I2C:   FDT ERROR:fdt_set_all_pin:[twi0]-->FDT_ERR_BADPATH
FDT ERROR:fdt_set_all_pin:[twi1]-->FDT_ERR_BADPATH
ready
[03.331]DRAM:  128 MiB
[03.335]Relocation Offset is: 04eca000
[03.359]secure enable bit: 0
[03.362]CPU=1008 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz  MBus=300Mhz
[03.368]gic: normal mode
[03.370]flash init start
[03.372]workmode = 16,storage type = 0
try card 0
set card number 0
get card number 0
[03.380][mmc]: mmc driver ver uboot2018:2021-11-19 15:38:00
[03.386][mmc]: get sdc_type fail and use default host:tm1.
[03.392][mmc]: can't find node "mmc0",will add new node
[03.397][mmc]: fdt err returned <no error>
[03.401][mmc]: Using default timing para
[03.404][mmc]: SUNXI SDMMC Controller Version:0x50310
[03.418][mmc]: mmc 0 cmd timeout 100 status 100
[03.422][mmc]: smc 0 err, cmd 8,  RTO
[03.426][mmc]: mmc 0 close bus gating and reset
[03.431][mmc]: mmc 0 cmd timeout 100 status 100
[03.435][mmc]: smc 0 err, cmd 55,  RTO
[03.438][mmc]: mmc 0 close bus gating and reset
[03.447][mmc]: mmc 0 cmd timeout 100 status 100
[03.451][mmc]: smc 0 err, cmd 1,  RTO
[03.454][mmc]: mmc 0 close bus gating and reset
[03.459][mmc]: Card did not respond to voltage select!
[03.463][mmc]: mmc_init: -95, time 54
[03.467][mmc]: mmc_init: mmc init fail, err -95
MMC init failed
try emmc fail
[03.474]sunxi-spinand: AW SPINand MTD Layer Version: 1.5 20200407
[03.480]sunxi-spinand-phy: AW SPINand Phy Layer Version: 1.9 20200306
[03.488]sunxi-spinand-phy: request spi0 gpio ok
[03.492]sunxi-spinand-phy: request general tx dma channel ok!
[03.497]sunxi-spinand-phy: request general rx dma channel ok!
[03.503]sunxi-spinand-phy: set spic0 clk to 20 Mhz
[03.507]sunxi-spinand-phy: init spic0 clk ok
sspi->base_addr = 0x4025000, the SPI control register:
[VER] 0x4025000 = 0x00010001, [GCR] 0x4025004 = 0x00000083, [TCR] 0x4025008 = 0x00000184
[ICR] 0x4025010 = 0x00000f00, [ISR] 0x4025014 = 0x00000032, [FCR] 0x4025018 = 0x00200020
[FSR] 0x402501c = 0x00000000, [WCR] 0x4025020 = 0x00000000, [CCR] 0x4025024 = 0x00000002
[SDC] 0x4025028 = 0x00002000, [BCR] 0x4025030 = 0x00000000, [TCR] 0x4025034 = 0x00000000
[BCC] 0x4025038 = 0x00000000, [DMA] 0x4025088 = 0x000000e5

[03.553]sunxi-spinand-phy: not detect any munufacture from id table
[03.559]sunxi-spinand-phy: get spi-nand Model from fdt fail
[03.564]sunxi-spinand-phy: get phy info from fdt fail
[03.569]sunxi-spinand-phy: not detect munufacture from fdt
[03.574]sunxi-spinand-phy: detect munufacture from id table: Winbond
[03.580]sunxi-spinand-phy: detect spinand id: ff21aaef ffffffff
[03.586]sunxi-spinand-phy: ========== arch info ==========
[03.591]sunxi-spinand-phy: Model:               W25N01GVZEIG
[03.596]sunxi-spinand-phy: Munufacture:         Winbond
[03.601]sunxi-spinand-phy: DieCntPerChip:       1
[03.606]sunxi-spinand-phy: BlkCntPerDie:        1024
[03.610]sunxi-spinand-phy: PageCntPerBlk:       64
[03.615]sunxi-spinand-phy: SectCntPerPage:      4
[03.619]sunxi-spinand-phy: OobSizePerPage:      64
[03.624]sunxi-spinand-phy: BadBlockFlag:        0x0
[03.628]sunxi-spinand-phy: OperationOpt:        0x7
[03.633]sunxi-spinand-phy: MaxEraseTimes:       65000
[03.638]sunxi-spinand-phy: EccFlag:             0x0
[03.642]sunxi-spinand-phy: EccType:             2
[03.647]sunxi-spinand-phy: EccProtectedType:    3
[03.651]sunxi-spinand-phy: ========================================
[03.657]sunxi-spinand-phy:
[03.660]sunxi-spinand-phy: ========== physical info ==========
[03.665]sunxi-spinand-phy: TotalSize:    128 M
[03.669]sunxi-spinand-phy: SectorSize:   512 B
[03.673]sunxi-spinand-phy: PageSize:     2 K
[03.677]sunxi-spinand-phy: BlockSize:    128 K
[03.682]sunxi-spinand-phy: OOBSize:      64 B
[03.686]sunxi-spinand-phy: ========================================
[03.692]sunxi-spinand-phy:
[03.694]sunxi-spinand-phy: ========== logical info ==========
[03.700]sunxi-spinand-phy: TotalSize:    128 M
[03.704]sunxi-spinand-phy: SectorSize:   512 B
[03.708]sunxi-spinand-phy: PageSize:     4 K
[03.712]sunxi-spinand-phy: BlockSize:    256 K
[03.716]sunxi-spinand-phy: OOBSize:      128 B
[03.720]sunxi-spinand-phy: ========================================
[03.727]sunxi-spinand-phy: set spic0 clk to 100 Mhz
[03.731]sunxi-spinand-phy: block lock register: 0x00
[03.736]sunxi-spinand-phy: feature register: 0x00
[03.740]sunxi-spinand-phy: sunxi physic nand init end
[03.745]Loading Environment from SUNXI_FLASH... OK
[03.750]try to burn key
[03.752]out of usb burn from boot: not need burn key
Hit any key to stop autoboot:  0
sunxi work mode=0x10
run usb efex
buf queue page size = 16384
delay time 2500
weak:otg_phy_config
usb init ok
set address 0x3a
set address 0x3a ok
set address 0x3b
set address 0x3b ok
SUNXI_EFEX_ERASE_TAG
erase_flag = 0x12
origin_erase_flag = 0x1
FEX_CMD_fes_verify_status
FEX_CMD_fes_verify last err=0
the 0 mbr table is ok
the 1 mbr table is ok
the 2 mbr table is ok
the 3 mbr table is ok
*************MBR DUMP***************
total mbr part 8

part[0] name      :boot-resource
part[0] classname :DISK
part[0] addrlo    :0x8000
part[0] lenlo     :0x800
part[0] user_type :32768
part[0] keydata   :0
part[0] ro        :0

part[1] name      :env
part[1] classname :DISK
part[1] addrlo    :0x8800
part[1] lenlo     :0x1f8
part[1] user_type :32768
part[1] keydata   :0
part[1] ro        :0

part[2] name      :env-redund
part[2] classname :DISK
part[2] addrlo    :0x89f8
part[2] lenlo     :0x1f8
part[2] user_type :32768
part[2] keydata   :0
part[2] ro        :0

part[3] name      :boot
part[3] classname :DISK
part[3] addrlo    :0x8bf0
part[3] lenlo     :0x21e8
part[3] user_type :32768
part[3] keydata   :0
part[3] ro        :0

part[4] name      :rootfs
part[4] classname :DISK
part[4] addrlo    :0xadd8
part[4] lenlo     :0x11800
part[4] user_type :32768
part[4] keydata   :0
part[4] ro        :0

part[5] name      :private
part[5] classname :DISK
part[5] addrlo    :0x1c5d8
part[5] lenlo     :0x2800
part[5] user_type :32768
part[5] keydata   :0
part[5] ro        :0

part[6] name      :rootfs_data
part[6] classname :DISK
part[6] addrlo    :0x1edd8
part[6] lenlo     :0x15e00
part[6] user_type :32768
part[6] keydata   :0
part[6] ro        :0

part[7] name      :UDISK
part[7] classname :DISK
part[7] addrlo    :0x34bd8
part[7] lenlo     :0x0
part[7] user_type :33024
part[7] keydata   :0
part[7] ro        :0

total part: 9
mbr 0, 8000, 8000
boot-resource 1, 800, 8000
env 2, 1f8, 8000
env-redund 3, 1f8, 8000
boot 4, 21e8, 8000
rootfs 5, 11800, 8000
private 6, 2800, 8000
rootfs_data 7, 15e00, 8000
UDISK 8, 0, 8100
[07.006]erase blk 0 to blk 32
[07.009]blk 0 is bad, skip to erase
[07.012]blk 1 is bad, skip to erase
[07.016]blk 2 is bad, skip to erase
[07.019]blk 3 is bad, skip to erase
[07.022]blk 4 is bad, skip to erase
[07.025]blk 5 is bad, skip to erase
[07.028]blk 6 is bad, skip to erase
[07.032]blk 7 is bad, skip to erase
[07.035]blk 8 is bad, skip to erase
[07.038]blk 9 is bad, skip to erase
[07.041]blk 10 is bad, skip to erase
[07.045]blk 11 is bad, skip to erase
[07.048]blk 12 is bad, skip to erase
[07.051]blk 13 is bad, skip to erase
[07.054]blk 14 is bad, skip to erase
[07.058]blk 15 is bad, skip to erase
[07.061]blk 16 is bad, skip to erase
[07.064]blk 17 is bad, skip to erase
[07.068]blk 18 is bad, skip to erase
[07.071]blk 19 is bad, skip to erase
[07.074]blk 20 is bad, skip to erase
[07.077]blk 21 is bad, skip to erase
[07.081]blk 22 is bad, skip to erase
[07.084]blk 23 is bad, skip to erase
[07.087]blk 24 is bad, skip to erase
[07.091]blk 25 is bad, skip to erase
[07.094]blk 26 is bad, skip to erase
[07.097]blk 27 is bad, skip to erase
[07.101]blk 28 is bad, skip to erase
[07.104]blk 29 is bad, skip to erase
[07.107]blk 30 is bad, skip to erase
[07.110]blk 31 is bad, skip to erase
need erase flash: 18
[07.116]mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)

device nand0 <nand>, # parts = 4
 #: name                size            offset          mask_flags
 0: boot0               0x00100000      0x00000000      1
 1: uboot               0x00300000      0x00100000      1
 2: secure_storage      0x00100000      0x00400000      1
 3: sys                 0x07b00000      0x00500000      0

active partition: nand0,0 - (boot0) 0x00100000 @ 0x00000000

defaults:
mtdids  : nand0=nand
mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)
[07.166]MTD info (4)
[07.168]pagesize: 0x1000
[07.170]blksize: 0x40000
[07.172]num  offset     bytes      name
[07.176]0    0x00000000 0x00100000 boot0
[07.180]1    0x00100000 0x00300000 uboot
[07.183]2    0x00400000 0x00100000 secure_storage
[07.188]3    0x00500000 0x07b00000 sys
[07.191]ubi attach the last part of mtd device: NO.3
[07.206]ubi0: attaching mtd4
[07.209]ubi0: scanning is finished
[07.212]ubi0: empty MTD device detected
[07.216]ubi0 error: ubi_early_get_peb: no free eraseblocks
[07.221]ubi0 error: ubi_attach_mtd_dev: failed to attach mtd4, error -28
[07.227]UBI error: cannot attach mtd4
[07.231]UBI error: cannot initialize UBI, error -28
UBI init error 28
Please check, if the correct MTD partition is used (size big enough?)
[07.243]ubi part sys err !
[07.246]erase blk 0 to blk 32
[07.248]blk 0 is bad, skip to erase
[07.251]blk 1 is bad, skip to erase
[07.255]blk 2 is bad, skip to erase
[07.258]blk 3 is bad, skip to erase
[07.261]blk 4 is bad, skip to erase
[07.264]blk 5 is bad, skip to erase
[07.268]blk 6 is bad, skip to erase
[07.271]blk 7 is bad, skip to erase
[07.274]blk 8 is bad, skip to erase
[07.277]blk 9 is bad, skip to erase
[07.280]blk 10 is bad, skip to erase
[07.284]blk 11 is bad, skip to erase
[07.287]blk 12 is bad, skip to erase
[07.290]blk 13 is bad, skip to erase
[07.294]blk 14 is bad, skip to erase
[07.297]blk 15 is bad, skip to erase
[07.300]blk 16 is bad, skip to erase
[07.303]blk 17 is bad, skip to erase
[07.307]blk 18 is bad, skip to erase
[07.310]blk 19 is bad, skip to erase
[07.313]blk 20 is bad, skip to erase
[07.317]blk 21 is bad, skip to erase
[07.320]blk 22 is bad, skip to erase
[07.323]blk 23 is bad, skip to erase
[07.326]blk 24 is bad, skip to erase
[07.330]blk 25 is bad, skip to erase
[07.333]blk 26 is bad, skip to erase
[07.336]blk 27 is bad, skip to erase
[07.340]blk 28 is bad, skip to erase
[07.343]blk 29 is bad, skip to erase
[07.346]blk 30 is bad, skip to erase
[07.349]blk 31 is bad, skip to erase
[07.353]erase blk 40 to blk 1024
[07.356]blk 40 is bad, skip to erase
[07.359]blk 41 is bad, skip to erase
[07.362]blk 42 is bad, skip to erase
[07.366]blk 43 is bad, skip to erase
[07.369]blk 44 is bad, skip to erase
[07.372]blk 45 is bad, skip to erase
[07.375]blk 46 is bad, skip to erase
[07.379]blk 47 is bad, skip to erase
[07.382]blk 48 is bad, skip to erase
[07.385]blk 49 is bad, skip to erase
[07.389]blk 50 is bad, skip to erase
[07.392]blk 51 is bad, skip to erase
[07.395]blk 52 is bad, skip to erase
[07.399]blk 53 is bad, skip to erase
[07.402]blk 54 is bad, skip to erase
[07.405]blk 55 is bad, skip to erase
[07.408]blk 56 is bad, skip to erase
[07.412]blk 57 is bad, skip to erase
[07.415]blk 58 is bad, skip to erase
[07.418]blk 59 is bad, skip to erase
[07.422]blk 60 is bad, skip to erase
[07.425]blk 61 is bad, skip to erase
[07.428]blk 62 is bad, skip to erase
[07.432]blk 63 is bad, skip to erase
[07.435]blk 64 is bad, skip to erase
[07.438]blk 65 is bad, skip to erase
[07.441]blk 66 is bad, skip to erase
[07.445]blk 67 is bad, skip to erase
[07.448]blk 68 is bad, skip to erase
[07.451]blk 69 is bad, skip to erase
[07.455]blk 70 is bad, skip to erase
[07.458]blk 71 is bad, skip to erase
[07.461]blk 72 is bad, skip to erase
[07.464]blk 73 is bad, skip to erase
[07.468]blk 74 is bad, skip to erase
[07.471]blk 75 is bad, skip to erase
[07.474]blk 76 is bad, skip to erase
[07.478]blk 77 is bad, skip to erase
[07.481]blk 78 is bad, skip to erase
[07.484]blk 79 is bad, skip to erase
[07.487]blk 80 is bad, skip to erase
[07.491]blk 81 is bad, skip to erase
[07.494]blk 82 is bad, skip to erase
[07.497]blk 83 is bad, skip to erase
[07.501]blk 84 is bad, skip to erase
[07.504]blk 85 is bad, skip to erase
[07.507]blk 86 is bad, skip to erase
[07.511]blk 87 is bad, skip to erase
[07.514]blk 88 is bad, skip to erase
[07.517]blk 89 is bad, skip to erase
[07.520]blk 90 is bad, skip to erase
[07.524]blk 91 is bad, skip to erase
[07.527]blk 92 is bad, skip to erase
[07.530]blk 93 is bad, skip to erase
[07.534]blk 94 is bad, skip to erase
[07.537]blk 95 is bad, skip to erase
[07.540]blk 96 is bad, skip to erase
[07.543]blk 97 is bad, skip to erase
[07.547]blk 98 is bad, skip to erase
[07.550]blk 99 is bad, skip to erase
[07.553]blk 100 is bad, skip to erase
[07.557]blk 101 is bad, skip to erase
[07.560]blk 102 is bad, skip to erase
[07.563]blk 103 is bad, skip to erase
[07.567]blk 104 is bad, skip to erase
[07.570]blk 105 is bad, skip to erase
[07.574]blk 106 is bad, skip to erase
[07.577]blk 107 is bad, skip to erase
[07.580]blk 108 is bad, skip to erase
[07.584]blk 109 is bad, skip to erase
[07.587]blk 110 is bad, skip to erase
[07.591]blk 111 is bad, skip to erase
[07.594]blk 112 is bad, skip to erase
[07.597]blk 113 is bad, skip to erase
[07.601]blk 114 is bad, skip to erase
[07.604]blk 115 is bad, skip to erase
[07.607]blk 116 is bad, skip to erase
[07.611]blk 117 is bad, skip to erase
[07.614]blk 118 is bad, skip to erase
[07.618]blk 119 is bad, skip to erase
[07.621]blk 120 is bad, skip to erase
[07.624]blk 121 is bad, skip to erase
[07.628]blk 122 is bad, skip to erase
[07.631]blk 123 is bad, skip to erase
[07.634]blk 124 is bad, skip to erase
[07.638]blk 125 is bad, skip to erase
[07.641]blk 126 is bad, skip to erase
[07.645]blk 127 is bad, skip to erase
[07.648]blk 128 is bad, skip to erase
[07.651]blk 129 is bad, skip to erase
[07.655]blk 130 is bad, skip to erase
[07.658]blk 131 is bad, skip to erase
[07.661]blk 132 is bad, skip to erase
[07.665]blk 133 is bad, skip to erase
[07.668]blk 134 is bad, skip to erase
[07.672]blk 135 is bad, skip to erase
[07.675]blk 136 is bad, skip to erase
[07.678]blk 137 is bad, skip to erase
[07.682]blk 138 is bad, skip to erase
[07.685]blk 139 is bad, skip to erase
[07.689]blk 140 is bad, skip to erase
[07.692]blk 141 is bad, skip to erase
[07.695]blk 142 is bad, skip to erase
[07.699]blk 143 is bad, skip to erase
[07.702]blk 144 is bad, skip to erase
[07.705]blk 145 is bad, skip to erase
[07.709]blk 146 is bad, skip to erase
[07.712]blk 147 is bad, skip to erase
[07.716]blk 148 is bad, skip to erase
[07.719]blk 149 is bad, skip to erase
[07.722]blk 150 is bad, skip to erase
[07.726]blk 151 is bad, skip to erase
[07.729]blk 152 is bad, skip to erase
[07.732]blk 153 is bad, skip to erase
[07.736]blk 154 is bad, skip to erase
[07.739]blk 155 is bad, skip to erase
[07.743]blk 156 is bad, skip to erase
[07.746]blk 157 is bad, skip to erase
[07.749]blk 158 is bad, skip to erase
[07.753]blk 159 is bad, skip to erase
[07.756]blk 160 is bad, skip to erase
[07.760]blk 161 is bad, skip to erase
[07.763]blk 162 is bad, skip to erase
[07.766]blk 163 is bad, skip to erase
[07.770]blk 164 is bad, skip to erase
[07.773]blk 165 is bad, skip to erase
[07.776]blk 166 is bad, skip to erase
[07.780]blk 167 is bad, skip to erase
[07.783]blk 168 is bad, skip to erase
[07.787]blk 169 is bad, skip to erase
[07.790]blk 170 is bad, skip to erase
[07.793]blk 171 is bad, skip to erase
[07.797]blk 172 is bad, skip to erase
[07.800]blk 173 is bad, skip to erase
[07.803]blk 174 is bad, skip to erase
[07.807]blk 175 is bad, skip to erase
[07.810]blk 176 is bad, skip to erase
[07.814]blk 177 is bad, skip to erase
[07.817]blk 178 is bad, skip to erase
[07.820]blk 179 is bad, skip to erase
[07.824]blk 180 is bad, skip to erase
[07.827]blk 181 is bad, skip to erase
[07.830]blk 182 is bad, skip to erase
[07.834]blk 183 is bad, skip to erase
[07.837]blk 184 is bad, skip to erase
[07.841]blk 185 is bad, skip to erase
[07.844]blk 186 is bad, skip to erase
[07.847]blk 187 is bad, skip to erase
[07.851]blk 188 is bad, skip to erase
[07.854]blk 189 is bad, skip to erase
[07.858]blk 190 is bad, skip to erase
[07.861]blk 191 is bad, skip to erase
[07.864]blk 192 is bad, skip to erase
[07.868]blk 193 is bad, skip to erase
[07.871]blk 194 is bad, skip to erase
[07.874]blk 195 is bad, skip to erase
[07.878]blk 196 is bad, skip to erase
[07.881]blk 197 is bad, skip to erase
[07.885]blk 198 is bad, skip to erase
[07.888]blk 199 is bad, skip to erase
[07.891]blk 200 is bad, skip to erase
[07.895]blk 201 is bad, skip to erase
[07.898]blk 202 is bad, skip to erase
[07.901]blk 203 is bad, skip to erase
[07.905]blk 204 is bad, skip to erase
[07.908]blk 205 is bad, skip to erase
[07.912]blk 206 is bad, skip to erase
[07.915]blk 207 is bad, skip to erase
[07.918]blk 208 is bad, skip to erase
[07.922]blk 209 is bad, skip to erase
[07.925]blk 210 is bad, skip to erase
[07.929]blk 211 is bad, skip to erase
[07.932]blk 212 is bad, skip to erase
[07.935]blk 213 is bad, skip to erase
[07.939]blk 214 is bad, skip to erase
[07.942]blk 215 is bad, skip to erase
[07.945]blk 216 is bad, skip to erase
[07.949]blk 217 is bad, skip to erase
[07.952]blk 218 is bad, skip to erase
[07.956]blk 219 is bad, skip to erase
[07.959]blk 220 is bad, skip to erase
[07.962]blk 221 is bad, skip to erase
[07.966]blk 222 is bad, skip to erase
[07.969]blk 223 is bad, skip to erase
[07.972]blk 224 is bad, skip to erase
[07.976]blk 225 is bad, skip to erase
[07.979]blk 226 is bad, skip to erase
[07.983]blk 227 is bad, skip to erase
[07.986]blk 228 is bad, skip to erase
[07.989]blk 229 is bad, skip to erase
[07.993]blk 230 is bad, skip to erase
[07.996]blk 231 is bad, skip to erase
[07.999]blk 232 is bad, skip to erase
[08.003]blk 233 is bad, skip to erase
[08.006]blk 234 is bad, skip to erase
[08.010]blk 235 is bad, skip to erase
[08.013]blk 236 is bad, skip to erase
[08.016]blk 237 is bad, skip to erase
[08.020]blk 238 is bad, skip to erase
[08.023]blk 239 is bad, skip to erase
[08.027]blk 240 is bad, skip to erase
[08.030]blk 241 is bad, skip to erase
[08.033]blk 242 is bad, skip to erase
[08.037]blk 243 is bad, skip to erase
[08.040]blk 244 is bad, skip to erase
[08.043]blk 245 is bad, skip to erase
[08.047]blk 246 is bad, skip to erase
[08.050]blk 247 is bad, skip to erase
[08.054]blk 248 is bad, skip to erase
[08.057]blk 249 is bad, skip to erase
[08.060]blk 250 is bad, skip to erase
[08.064]blk 251 is bad, skip to erase
[08.067]blk 252 is bad, skip to erase
[08.070]blk 253 is bad, skip to erase
[08.074]blk 254 is bad, skip to erase
[08.077]blk 255 is bad, skip to erase
[08.081]blk 256 is bad, skip to erase
[08.084]blk 257 is bad, skip to erase
[08.087]blk 258 is bad, skip to erase
[08.091]blk 259 is bad, skip to erase
[08.094]blk 260 is bad, skip to erase
[08.098]blk 261 is bad, skip to erase
[08.101]blk 262 is bad, skip to erase
[08.104]blk 263 is bad, skip to erase
[08.108]blk 264 is bad, skip to erase
[08.111]blk 265 is bad, skip to erase
[08.114]blk 266 is bad, skip to erase
[08.118]blk 267 is bad, skip to erase
[08.121]blk 268 is bad, skip to erase
[08.125]blk 269 is bad, skip to erase
[08.128]blk 270 is bad, skip to erase
[08.131]blk 271 is bad, skip to erase
[08.135]blk 272 is bad, skip to erase
[08.138]blk 273 is bad, skip to erase
[08.141]blk 274 is bad, skip to erase
[08.145]blk 275 is bad, skip to erase
[08.148]blk 276 is bad, skip to erase
[08.152]blk 277 is bad, skip to erase
[08.155]blk 278 is bad, skip to erase
[08.158]blk 279 is bad, skip to erase
[08.162]blk 280 is bad, skip to erase
[08.165]blk 281 is bad, skip to erase
[08.168]blk 282 is bad, skip to erase
[08.172]blk 283 is bad, skip to erase
[08.175]blk 284 is bad, skip to erase
[08.179]blk 285 is bad, skip to erase
[08.182]blk 286 is bad, skip to erase
[08.185]blk 287 is bad, skip to erase
[08.189]blk 288 is bad, skip to erase
[08.192]blk 289 is bad, skip to erase
[08.196]blk 290 is bad, skip to erase
[08.199]blk 291 is bad, skip to erase
[08.202]blk 292 is bad, skip to erase
[08.206]blk 293 is bad, skip to erase
[08.209]blk 294 is bad, skip to erase
[08.212]blk 295 is bad, skip to erase
[08.216]blk 296 is bad, skip to erase
[08.219]blk 297 is bad, skip to erase
[08.223]blk 298 is bad, skip to erase
[08.226]blk 299 is bad, skip to erase
[08.229]blk 300 is bad, skip to erase
[08.233]blk 301 is bad, skip to erase
[08.236]blk 302 is bad, skip to erase
[08.239]blk 303 is bad, skip to erase
[08.243]blk 304 is bad, skip to erase
[08.246]blk 305 is bad, skip to erase
[08.250]blk 306 is bad, skip to erase
[08.253]blk 307 is bad, skip to erase
[08.256]blk 308 is bad, skip to erase
[08.260]blk 309 is bad, skip to erase
[08.263]blk 310 is bad, skip to erase
[08.267]blk 311 is bad, skip to erase
[08.270]blk 312 is bad, skip to erase
[08.273]blk 313 is bad, skip to erase
[08.277]blk 314 is bad, skip to erase
[08.280]blk 315 is bad, skip to erase
[08.283]blk 316 is bad, skip to erase
[08.287]blk 317 is bad, skip to erase
[08.290]blk 318 is bad, skip to erase
[08.294]blk 319 is bad, skip to erase
[08.297]blk 320 is bad, skip to erase
[08.300]blk 321 is bad, skip to erase
[08.304]blk 322 is bad, skip to erase
[08.307]blk 323 is bad, skip to erase
[08.310]blk 324 is bad, skip to erase
[08.314]blk 325 is bad, skip to erase
[08.317]blk 326 is bad, skip to erase
[08.321]blk 327 is bad, skip to erase
[08.324]blk 328 is bad, skip to erase
[08.327]blk 329 is bad, skip to erase
[08.331]blk 330 is bad, skip to erase
[08.334]blk 331 is bad, skip to erase
[08.337]blk 332 is bad, skip to erase
[08.341]blk 333 is bad, skip to erase
[08.344]blk 334 is bad, skip to erase
[08.348]blk 335 is bad, skip to erase
[08.351]blk 336 is bad, skip to erase
[08.354]blk 337 is bad, skip to erase
[08.358]blk 338 is bad, skip to erase
[08.361]blk 339 is bad, skip to erase
[08.365]blk 340 is bad, skip to erase
[08.368]blk 341 is bad, skip to erase
[08.371]blk 342 is bad, skip to erase
[08.375]blk 343 is bad, skip to erase
[08.378]blk 344 is bad, skip to erase
[08.381]blk 345 is bad, skip to erase
[08.385]blk 346 is bad, skip to erase
[08.388]blk 347 is bad, skip to erase
[08.392]blk 348 is bad, skip to erase
[08.395]blk 349 is bad, skip to erase
[08.398]blk 350 is bad, skip to erase
[08.402]blk 351 is bad, skip to erase
[08.405]blk 352 is bad, skip to erase
[08.408]blk 353 is bad, skip to erase
[08.412]blk 354 is bad, skip to erase
[08.415]blk 355 is bad, skip to erase
[08.419]blk 356 is bad, skip to erase
[08.422]blk 357 is bad, skip to erase
[08.425]blk 358 is bad, skip to erase
[08.429]blk 359 is bad, skip to erase
[08.432]blk 360 is bad, skip to erase
[08.436]blk 361 is bad, skip to erase
[08.439]blk 362 is bad, skip to erase
[08.442]blk 363 is bad, skip to erase
[08.446]blk 364 is bad, skip to erase
[08.449]blk 365 is bad, skip to erase
[08.452]blk 366 is bad, skip to erase
[08.456]blk 367 is bad, skip to erase
[08.459]blk 368 is bad, skip to erase
[08.463]blk 369 is bad, skip to erase
[08.466]blk 370 is bad, skip to erase
[08.469]blk 371 is bad, skip to erase
[08.473]blk 372 is bad, skip to erase
[08.476]blk 373 is bad, skip to erase
[08.479]blk 374 is bad, skip to erase
[08.483]blk 375 is bad, skip to erase
[08.486]blk 376 is bad, skip to erase
[08.490]blk 377 is bad, skip to erase
[08.493]blk 378 is bad, skip to erase
[08.496]blk 379 is bad, skip to erase
[08.500]blk 380 is bad, skip to erase
[08.503]blk 381 is bad, skip to erase
[08.506]blk 382 is bad, skip to erase
[08.510]blk 383 is bad, skip to erase
[08.513]blk 384 is bad, skip to erase
[08.517]blk 385 is bad, skip to erase
[08.520]blk 386 is bad, skip to erase
[08.523]blk 387 is bad, skip to erase
[08.527]blk 388 is bad, skip to erase
[08.530]blk 389 is bad, skip to erase
[08.534]blk 390 is bad, skip to erase
[08.537]blk 391 is bad, skip to erase
[08.540]blk 392 is bad, skip to erase
[08.544]blk 393 is bad, skip to erase
[08.547]blk 394 is bad, skip to erase
[08.550]blk 395 is bad, skip to erase
[08.554]blk 396 is bad, skip to erase
[08.557]blk 397 is bad, skip to erase
[08.561]blk 398 is bad, skip to erase
[08.564]blk 399 is bad, skip to erase
[08.567]blk 400 is bad, skip to erase
[08.571]blk 401 is bad, skip to erase
[08.574]blk 402 is bad, skip to erase
[08.577]blk 403 is bad, skip to erase
[08.581]blk 404 is bad, skip to erase
[08.584]blk 405 is bad, skip to erase
[08.588]blk 406 is bad, skip to erase
[08.591]blk 407 is bad, skip to erase
[08.594]blk 408 is bad, skip to erase
[08.598]blk 409 is bad, skip to erase
[08.601]blk 410 is bad, skip to erase
[08.605]blk 411 is bad, skip to erase
[08.608]blk 412 is bad, skip to erase
[08.611]blk 413 is bad, skip to erase
[08.615]blk 414 is bad, skip to erase
[08.618]blk 415 is bad, skip to erase
[08.621]blk 416 is bad, skip to erase
[08.625]blk 417 is bad, skip to erase
[08.628]blk 418 is bad, skip to erase
[08.632]blk 419 is bad, skip to erase
[08.635]blk 420 is bad, skip to erase
[08.638]blk 421 is bad, skip to erase
[08.642]blk 422 is bad, skip to erase
[08.645]blk 423 is bad, skip to erase
[08.648]blk 424 is bad, skip to erase
[08.652]blk 425 is bad, skip to erase
[08.655]blk 426 is bad, skip to erase
[08.659]blk 427 is bad, skip to erase
[08.662]blk 428 is bad, skip to erase
[08.665]blk 429 is bad, skip to erase
[08.669]blk 430 is bad, skip to erase
[08.672]blk 431 is bad, skip to erase
[08.675]blk 432 is bad, skip to erase
[08.679]blk 433 is bad, skip to erase
[08.682]blk 434 is bad, skip to erase
[08.686]blk 435 is bad, skip to erase
[08.689]blk 436 is bad, skip to erase
[08.692]blk 437 is bad, skip to erase
[08.696]blk 438 is bad, skip to erase
[08.699]blk 439 is bad, skip to erase
[08.703]blk 440 is bad, skip to erase
[08.706]blk 441 is bad, skip to erase
[08.709]blk 442 is bad, skip to erase
[08.713]blk 443 is bad, skip to erase
[08.716]blk 444 is bad, skip to erase
[08.719]blk 445 is bad, skip to erase
[08.723]blk 446 is bad, skip to erase
[08.726]blk 447 is bad, skip to erase
[08.730]blk 448 is bad, skip to erase
[08.733]blk 449 is bad, skip to erase
[08.736]blk 450 is bad, skip to erase
[08.740]blk 451 is bad, skip to erase
[08.743]blk 452 is bad, skip to erase
[08.746]blk 453 is bad, skip to erase
[08.750]blk 454 is bad, skip to erase
[08.753]blk 455 is bad, skip to erase
[08.757]blk 456 is bad, skip to erase
[08.760]blk 457 is bad, skip to erase
[08.763]blk 458 is bad, skip to erase
[08.767]blk 459 is bad, skip to erase
[08.770]blk 460 is bad, skip to erase
[08.774]blk 461 is bad, skip to erase
[08.777]blk 462 is bad, skip to erase
[08.780]blk 463 is bad, skip to erase
[08.784]blk 464 is bad, skip to erase
[08.787]blk 465 is bad, skip to erase
[08.790]blk 466 is bad, skip to erase
[08.794]blk 467 is bad, skip to erase
[08.797]blk 468 is bad, skip to erase
[08.801]blk 469 is bad, skip to erase
[08.804]blk 470 is bad, skip to erase
[08.807]blk 471 is bad, skip to erase
[08.811]blk 472 is bad, skip to erase
[08.814]blk 473 is bad, skip to erase
[08.817]blk 474 is bad, skip to erase
[08.821]blk 475 is bad, skip to erase
[08.824]blk 476 is bad, skip to erase
[08.828]blk 477 is bad, skip to erase
[08.831]blk 478 is bad, skip to erase
[08.834]blk 479 is bad, skip to erase
[08.838]blk 480 is bad, skip to erase
[08.841]blk 481 is bad, skip to erase
[08.844]blk 482 is bad, skip to erase
[08.848]blk 483 is bad, skip to erase
[08.851]blk 484 is bad, skip to erase
[08.855]blk 485 is bad, skip to erase
[08.858]blk 486 is bad, skip to erase
[08.861]blk 487 is bad, skip to erase
[08.865]blk 488 is bad, skip to erase
[08.868]blk 489 is bad, skip to erase
[08.872]blk 490 is bad, skip to erase
[08.875]blk 491 is bad, skip to erase
[08.878]blk 492 is bad, skip to erase
[08.882]blk 493 is bad, skip to erase
[08.885]blk 494 is bad, skip to erase
[08.888]blk 495 is bad, skip to erase
[08.892]blk 496 is bad, skip to erase
[08.895]blk 497 is bad, skip to erase
[08.899]blk 498 is bad, skip to erase
[08.902]blk 499 is bad, skip to erase
[08.905]blk 500 is bad, skip to erase
[08.909]blk 501 is bad, skip to erase
[08.912]blk 502 is bad, skip to erase
[08.915]blk 503 is bad, skip to erase
[08.919]blk 504 is bad, skip to erase
[08.922]blk 505 is bad, skip to erase
[08.926]blk 506 is bad, skip to erase
[08.929]blk 507 is bad, skip to erase
[08.932]blk 508 is bad, skip to erase
[08.936]blk 509 is bad, skip to erase
[08.939]blk 510 is bad, skip to erase
[08.943]blk 511 is bad, skip to erase
[08.946]blk 512 is bad, skip to erase
[08.949]blk 513 is bad, skip to erase
[08.953]blk 514 is bad, skip to erase
[08.956]blk 515 is bad, skip to erase
[08.959]blk 516 is bad, skip to erase
[08.963]blk 517 is bad, skip to erase
[08.966]blk 518 is bad, skip to erase
[08.970]blk 519 is bad, skip to erase
[08.973]blk 520 is bad, skip to erase
[08.976]blk 521 is bad, skip to erase
[08.980]blk 522 is bad, skip to erase
[08.983]blk 523 is bad, skip to erase
[08.986]blk 524 is bad, skip to erase
[08.990]blk 525 is bad, skip to erase
[08.993]blk 526 is bad, skip to erase
[08.997]blk 527 is bad, skip to erase
[09.000]blk 528 is bad, skip to erase
[09.003]blk 529 is bad, skip to erase
[09.007]blk 530 is bad, skip to erase
[09.010]blk 531 is bad, skip to erase
[09.013]blk 532 is bad, skip to erase
[09.017]blk 533 is bad, skip to erase
[09.020]blk 534 is bad, skip to erase
[09.024]blk 535 is bad, skip to erase
[09.027]blk 536 is bad, skip to erase
[09.030]blk 537 is bad, skip to erase
[09.034]blk 538 is bad, skip to erase
[09.037]blk 539 is bad, skip to erase
[09.041]blk 540 is bad, skip to erase
[09.044]blk 541 is bad, skip to erase
[09.047]blk 542 is bad, skip to erase
[09.051]blk 543 is bad, skip to erase
[09.054]blk 544 is bad, skip to erase
[09.057]blk 545 is bad, skip to erase
[09.061]blk 546 is bad, skip to erase
[09.064]blk 547 is bad, skip to erase
[09.068]blk 548 is bad, skip to erase
[09.071]blk 549 is bad, skip to erase
[09.074]blk 550 is bad, skip to erase
[09.078]blk 551 is bad, skip to erase
[09.081]blk 552 is bad, skip to erase
[09.084]blk 553 is bad, skip to erase
[09.088]blk 554 is bad, skip to erase
[09.091]blk 555 is bad, skip to erase
[09.095]blk 556 is bad, skip to erase
[09.098]blk 557 is bad, skip to erase
[09.101]blk 558 is bad, skip to erase
[09.105]blk 559 is bad, skip to erase
[09.108]blk 560 is bad, skip to erase
[09.112]blk 561 is bad, skip to erase
[09.115]blk 562 is bad, skip to erase
[09.118]blk 563 is bad, skip to erase
[09.122]blk 564 is bad, skip to erase
[09.125]blk 565 is bad, skip to erase
[09.128]blk 566 is bad, skip to erase
[09.132]blk 567 is bad, skip to erase
[09.135]blk 568 is bad, skip to erase
[09.139]blk 569 is bad, skip to erase
[09.142]blk 570 is bad, skip to erase
[09.145]blk 571 is bad, skip to erase
[09.149]blk 572 is bad, skip to erase
[09.152]blk 573 is bad, skip to erase
[09.155]blk 574 is bad, skip to erase
[09.159]blk 575 is bad, skip to erase
[09.162]blk 576 is bad, skip to erase
[09.166]blk 577 is bad, skip to erase
[09.169]blk 578 is bad, skip to erase
[09.172]blk 579 is bad, skip to erase
[09.176]blk 580 is bad, skip to erase
[09.179]blk 581 is bad, skip to erase
[09.182]blk 582 is bad, skip to erase
[09.186]blk 583 is bad, skip to erase
[09.189]blk 584 is bad, skip to erase
[09.193]blk 585 is bad, skip to erase
[09.196]blk 586 is bad, skip to erase
[09.199]blk 587 is bad, skip to erase
[09.203]blk 588 is bad, skip to erase
[09.206]blk 589 is bad, skip to erase
[09.210]blk 590 is bad, skip to erase
[09.213]blk 591 is bad, skip to erase
[09.216]blk 592 is bad, skip to erase
[09.220]blk 593 is bad, skip to erase
[09.223]blk 594 is bad, skip to erase
[09.226]blk 595 is bad, skip to erase
[09.230]blk 596 is bad, skip to erase
[09.233]blk 597 is bad, skip to erase
[09.237]blk 598 is bad, skip to erase
[09.240]blk 599 is bad, skip to erase
[09.243]blk 600 is bad, skip to erase
[09.247]blk 601 is bad, skip to erase
[09.250]blk 602 is bad, skip to erase
[09.253]blk 603 is bad, skip to erase
[09.257]blk 604 is bad, skip to erase
[09.260]blk 605 is bad, skip to erase
[09.264]blk 606 is bad, skip to erase
[09.267]blk 607 is bad, skip to erase
[09.270]blk 608 is bad, skip to erase
[09.274]blk 609 is bad, skip to erase
[09.277]blk 610 is bad, skip to erase
[09.281]blk 611 is bad, skip to erase
[09.284]blk 612 is bad, skip to erase
[09.287]blk 613 is bad, skip to erase
[09.291]blk 614 is bad, skip to erase
[09.294]blk 615 is bad, skip to erase
[09.297]blk 616 is bad, skip to erase
[09.301]blk 617 is bad, skip to erase
[09.304]blk 618 is bad, skip to erase
[09.308]blk 619 is bad, skip to erase
[09.311]blk 620 is bad, skip to erase
[09.314]blk 621 is bad, skip to erase
[09.318]blk 622 is bad, skip to erase
[09.321]blk 623 is bad, skip to erase
[09.324]blk 624 is bad, skip to erase
[09.328]blk 625 is bad, skip to erase
[09.331]blk 626 is bad, skip to erase
[09.335]blk 627 is bad, skip to erase
[09.338]blk 628 is bad, skip to erase
[09.341]blk 629 is bad, skip to erase
[09.345]blk 630 is bad, skip to erase
[09.348]blk 631 is bad, skip to erase
[09.351]blk 632 is bad, skip to erase
[09.355]blk 633 is bad, skip to erase
[09.358]blk 634 is bad, skip to erase
[09.362]blk 635 is bad, skip to erase
[09.365]blk 636 is bad, skip to erase
[09.368]blk 637 is bad, skip to erase
[09.372]blk 638 is bad, skip to erase
[09.375]blk 639 is bad, skip to erase
[09.379]blk 640 is bad, skip to erase
[09.382]blk 641 is bad, skip to erase
[09.385]blk 642 is bad, skip to erase
[09.389]blk 643 is bad, skip to erase
[09.392]blk 644 is bad, skip to erase
[09.395]blk 645 is bad, skip to erase
[09.399]blk 646 is bad, skip to erase
[09.402]blk 647 is bad, skip to erase
[09.406]blk 648 is bad, skip to erase
[09.409]blk 649 is bad, skip to erase
[09.412]blk 650 is bad, skip to erase
[09.416]blk 651 is bad, skip to erase
[09.419]blk 652 is bad, skip to erase
[09.422]blk 653 is bad, skip to erase
[09.426]blk 654 is bad, skip to erase
[09.429]blk 655 is bad, skip to erase
[09.433]blk 656 is bad, skip to erase
[09.436]blk 657 is bad, skip to erase
[09.439]blk 658 is bad, skip to erase
[09.443]blk 659 is bad, skip to erase
[09.446]blk 660 is bad, skip to erase
[09.450]blk 661 is bad, skip to erase
[09.453]blk 662 is bad, skip to erase
[09.456]blk 663 is bad, skip to erase
[09.460]blk 664 is bad, skip to erase
[09.463]blk 665 is bad, skip to erase
[09.466]blk 666 is bad, skip to erase
[09.470]blk 667 is bad, skip to erase
[09.473]blk 668 is bad, skip to erase
[09.477]blk 669 is bad, skip to erase
[09.480]blk 670 is bad, skip to erase
[09.483]blk 671 is bad, skip to erase
[09.487]blk 672 is bad, skip to erase
[09.490]blk 673 is bad, skip to erase
[09.493]blk 674 is bad, skip to erase
[09.497]blk 675 is bad, skip to erase
[09.500]blk 676 is bad, skip to erase
[09.504]blk 677 is bad, skip to erase
[09.507]blk 678 is bad, skip to erase
[09.510]blk 679 is bad, skip to erase
[09.514]blk 680 is bad, skip to erase
[09.517]blk 681 is bad, skip to erase
[09.520]blk 682 is bad, skip to erase
[09.524]blk 683 is bad, skip to erase
[09.527]blk 684 is bad, skip to erase
[09.531]blk 685 is bad, skip to erase
[09.534]blk 686 is bad, skip to erase
[09.537]blk 687 is bad, skip to erase
[09.541]blk 688 is bad, skip to erase
[09.544]blk 689 is bad, skip to erase
[09.548]blk 690 is bad, skip to erase
[09.551]blk 691 is bad, skip to erase
[09.554]blk 692 is bad, skip to erase
[09.558]blk 693 is bad, skip to erase
[09.561]blk 694 is bad, skip to erase
[09.564]blk 695 is bad, skip to erase
[09.568]blk 696 is bad, skip to erase
[09.571]blk 697 is bad, skip to erase
[09.575]blk 698 is bad, skip to erase
[09.578]blk 699 is bad, skip to erase
[09.581]blk 700 is bad, skip to erase
[09.585]blk 701 is bad, skip to erase
[09.588]blk 702 is bad, skip to erase
[09.591]blk 703 is bad, skip to erase
[09.595]blk 704 is bad, skip to erase
[09.598]blk 705 is bad, skip to erase
[09.602]blk 706 is bad, skip to erase
[09.605]blk 707 is bad, skip to erase
[09.608]blk 708 is bad, skip to erase
[09.612]blk 709 is bad, skip to erase
[09.615]blk 710 is bad, skip to erase
[09.619]blk 711 is bad, skip to erase
[09.622]blk 712 is bad, skip to erase
[09.625]blk 713 is bad, skip to erase
[09.629]blk 714 is bad, skip to erase
[09.632]blk 715 is bad, skip to erase
[09.635]blk 716 is bad, skip to erase
[09.639]blk 717 is bad, skip to erase
[09.642]blk 718 is bad, skip to erase
[09.646]blk 719 is bad, skip to erase
[09.649]blk 720 is bad, skip to erase
[09.652]blk 721 is bad, skip to erase
[09.656]blk 722 is bad, skip to erase
[09.659]blk 723 is bad, skip to erase
[09.662]blk 724 is bad, skip to erase
[09.666]blk 725 is bad, skip to erase
[09.669]blk 726 is bad, skip to erase
[09.673]blk 727 is bad, skip to erase
[09.676]blk 728 is bad, skip to erase
[09.679]blk 729 is bad, skip to erase
[09.683]blk 730 is bad, skip to erase
[09.686]blk 731 is bad, skip to erase
[09.689]blk 732 is bad, skip to erase
[09.693]blk 733 is bad, skip to erase
[09.696]blk 734 is bad, skip to erase
[09.700]blk 735 is bad, skip to erase
[09.703]blk 736 is bad, skip to erase
[09.706]blk 737 is bad, skip to erase
[09.710]blk 738 is bad, skip to erase
[09.713]blk 739 is bad, skip to erase
[09.717]blk 740 is bad, skip to erase
[09.720]blk 741 is bad, skip to erase
[09.723]blk 742 is bad, skip to erase
[09.727]blk 743 is bad, skip to erase
[09.730]blk 744 is bad, skip to erase
[09.733]blk 745 is bad, skip to erase
[09.737]blk 746 is bad, skip to erase
[09.740]blk 747 is bad, skip to erase
[09.744]blk 748 is bad, skip to erase
[09.747]blk 749 is bad, skip to erase
[09.750]blk 750 is bad, skip to erase
[09.754]blk 751 is bad, skip to erase
[09.757]blk 752 is bad, skip to erase
[09.760]blk 753 is bad, skip to erase
[09.764]blk 754 is bad, skip to erase
[09.767]blk 755 is bad, skip to erase
[09.771]blk 756 is bad, skip to erase
[09.774]blk 757 is bad, skip to erase
[09.777]blk 758 is bad, skip to erase
[09.781]blk 759 is bad, skip to erase
[09.784]blk 760 is bad, skip to erase
[09.788]blk 761 is bad, skip to erase
[09.791]blk 762 is bad, skip to erase
[09.794]blk 763 is bad, skip to erase
[09.798]blk 764 is bad, skip to erase
[09.801]blk 765 is bad, skip to erase
[09.804]blk 766 is bad, skip to erase
[09.808]blk 767 is bad, skip to erase
[09.811]blk 768 is bad, skip to erase
[09.815]blk 769 is bad, skip to erase
[09.818]blk 770 is bad, skip to erase
[09.821]blk 771 is bad, skip to erase
[09.825]blk 772 is bad, skip to erase
[09.828]blk 773 is bad, skip to erase
[09.831]blk 774 is bad, skip to erase
[09.835]blk 775 is bad, skip to erase
[09.838]blk 776 is bad, skip to erase
[09.842]blk 777 is bad, skip to erase
[09.845]blk 778 is bad, skip to erase
[09.848]blk 779 is bad, skip to erase
[09.852]blk 780 is bad, skip to erase
[09.855]blk 781 is bad, skip to erase
[09.858]blk 782 is bad, skip to erase
[09.862]blk 783 is bad, skip to erase
[09.865]blk 784 is bad, skip to erase
[09.869]blk 785 is bad, skip to erase
[09.872]blk 786 is bad, skip to erase
[09.875]blk 787 is bad, skip to erase
[09.879]blk 788 is bad, skip to erase
[09.882]blk 789 is bad, skip to erase
[09.886]blk 790 is bad, skip to erase
[09.889]blk 791 is bad, skip to erase
[09.892]blk 792 is bad, skip to erase
[09.896]blk 793 is bad, skip to erase
[09.899]blk 794 is bad, skip to erase
[09.902]blk 795 is bad, skip to erase
[09.906]blk 796 is bad, skip to erase
[09.909]blk 797 is bad, skip to erase
[09.913]blk 798 is bad, skip to erase
[09.916]blk 799 is bad, skip to erase
[09.919]blk 800 is bad, skip to erase
[09.923]blk 801 is bad, skip to erase
[09.926]blk 802 is bad, skip to erase
[09.929]blk 803 is bad, skip to erase
[09.933]blk 804 is bad, skip to erase
[09.936]blk 805 is bad, skip to erase
[09.940]blk 806 is bad, skip to erase
[09.943]blk 807 is bad, skip to erase
[09.946]blk 808 is bad, skip to erase
[09.950]blk 809 is bad, skip to erase
[09.953]blk 810 is bad, skip to erase
[09.957]blk 811 is bad, skip to erase
[09.960]blk 812 is bad, skip to erase
[09.963]blk 813 is bad, skip to erase
[09.967]blk 814 is bad, skip to erase
[09.970]blk 815 is bad, skip to erase
[09.973]blk 816 is bad, skip to erase
[09.977]blk 817 is bad, skip to erase
[09.980]blk 818 is bad, skip to erase
[09.984]blk 819 is bad, skip to erase
[09.987]blk 820 is bad, skip to erase
[09.990]blk 821 is bad, skip to erase
[09.994]blk 822 is bad, skip to erase
[09.997]blk 823 is bad, skip to erase
[10.000]blk 824 is bad, skip to erase
[10.004]blk 825 is bad, skip to erase
[10.007]blk 826 is bad, skip to erase
[10.011]blk 827 is bad, skip to erase
[10.014]blk 828 is bad, skip to erase
[10.017]blk 829 is bad, skip to erase
[10.021]blk 830 is bad, skip to erase
[10.024]blk 831 is bad, skip to erase
[10.027]blk 832 is bad, skip to erase
[10.031]blk 833 is bad, skip to erase
[10.034]blk 834 is bad, skip to erase
[10.038]blk 835 is bad, skip to erase
[10.041]blk 836 is bad, skip to erase
[10.044]blk 837 is bad, skip to erase
[10.048]blk 838 is bad, skip to erase
[10.051]blk 839 is bad, skip to erase
[10.055]blk 840 is bad, skip to erase
[10.058]blk 841 is bad, skip to erase
[10.061]blk 842 is bad, skip to erase
[10.065]blk 843 is bad, skip to erase
[10.068]blk 844 is bad, skip to erase
[10.071]blk 845 is bad, skip to erase
[10.075]blk 846 is bad, skip to erase
[10.078]blk 847 is bad, skip to erase
[10.082]blk 848 is bad, skip to erase
[10.085]blk 849 is bad, skip to erase
[10.088]blk 850 is bad, skip to erase
[10.092]blk 851 is bad, skip to erase
[10.095]blk 852 is bad, skip to erase
[10.098]blk 853 is bad, skip to erase
[10.102]blk 854 is bad, skip to erase
[10.105]blk 855 is bad, skip to erase
[10.109]blk 856 is bad, skip to erase
[10.112]blk 857 is bad, skip to erase
[10.115]blk 858 is bad, skip to erase
[10.119]blk 859 is bad, skip to erase
[10.122]blk 860 is bad, skip to erase
[10.126]blk 861 is bad, skip to erase
[10.129]blk 862 is bad, skip to erase
[10.132]blk 863 is bad, skip to erase
[10.136]blk 864 is bad, skip to erase
[10.139]blk 865 is bad, skip to erase
[10.142]blk 866 is bad, skip to erase
[10.146]blk 867 is bad, skip to erase
[10.149]blk 868 is bad, skip to erase
[10.153]blk 869 is bad, skip to erase
[10.156]blk 870 is bad, skip to erase
[10.159]blk 871 is bad, skip to erase
[10.163]blk 872 is bad, skip to erase
[10.166]blk 873 is bad, skip to erase
[10.169]blk 874 is bad, skip to erase
[10.173]blk 875 is bad, skip to erase
[10.176]blk 876 is bad, skip to erase
[10.180]blk 877 is bad, skip to erase
[10.183]blk 878 is bad, skip to erase
[10.186]blk 879 is bad, skip to erase
[10.190]blk 880 is bad, skip to erase
[10.193]blk 881 is bad, skip to erase
[10.196]blk 882 is bad, skip to erase
[10.200]blk 883 is bad, skip to erase
[10.203]blk 884 is bad, skip to erase
[10.207]blk 885 is bad, skip to erase
[10.210]blk 886 is bad, skip to erase
[10.213]blk 887 is bad, skip to erase
[10.217]blk 888 is bad, skip to erase
[10.220]blk 889 is bad, skip to erase
[10.224]blk 890 is bad, skip to erase
[10.227]blk 891 is bad, skip to erase
[10.230]blk 892 is bad, skip to erase
[10.234]blk 893 is bad, skip to erase
[10.237]blk 894 is bad, skip to erase
[10.240]blk 895 is bad, skip to erase
[10.244]blk 896 is bad, skip to erase
[10.247]blk 897 is bad, skip to erase
[10.251]blk 898 is bad, skip to erase
[10.254]blk 899 is bad, skip to erase
[10.257]blk 900 is bad, skip to erase
[10.261]blk 901 is bad, skip to erase
[10.264]blk 902 is bad, skip to erase
[10.267]blk 903 is bad, skip to erase
[10.271]blk 904 is bad, skip to erase
[10.274]blk 905 is bad, skip to erase
[10.278]blk 906 is bad, skip to erase
[10.281]blk 907 is bad, skip to erase
[10.284]blk 908 is bad, skip to erase
[10.288]blk 909 is bad, skip to erase
[10.291]blk 910 is bad, skip to erase
[10.295]blk 911 is bad, skip to erase
[10.298]blk 912 is bad, skip to erase
[10.301]blk 913 is bad, skip to erase
[10.305]blk 914 is bad, skip to erase
[10.308]blk 915 is bad, skip to erase
[10.311]blk 916 is bad, skip to erase
[10.315]blk 917 is bad, skip to erase
[10.318]blk 918 is bad, skip to erase
[10.322]blk 919 is bad, skip to erase
[10.325]blk 920 is bad, skip to erase
[10.328]blk 921 is bad, skip to erase
[10.332]blk 922 is bad, skip to erase
[10.335]blk 923 is bad, skip to erase
[10.338]blk 924 is bad, skip to erase
[10.342]blk 925 is bad, skip to erase
[10.345]blk 926 is bad, skip to erase
[10.349]blk 927 is bad, skip to erase
[10.352]blk 928 is bad, skip to erase
[10.355]blk 929 is bad, skip to erase
[10.359]blk 930 is bad, skip to erase
[10.362]blk 931 is bad, skip to erase
[10.365]blk 932 is bad, skip to erase
[10.369]blk 933 is bad, skip to erase
[10.372]blk 934 is bad, skip to erase
[10.376]blk 935 is bad, skip to erase
[10.379]blk 936 is bad, skip to erase
[10.382]blk 937 is bad, skip to erase
[10.386]blk 938 is bad, skip to erase
[10.389]blk 939 is bad, skip to erase
[10.393]blk 940 is bad, skip to erase
[10.396]blk 941 is bad, skip to erase
[10.399]blk 942 is bad, skip to erase
[10.403]blk 943 is bad, skip to erase
[10.406]blk 944 is bad, skip to erase
[10.409]blk 945 is bad, skip to erase
[10.413]blk 946 is bad, skip to erase
[10.416]blk 947 is bad, skip to erase
[10.420]blk 948 is bad, skip to erase
[10.423]blk 949 is bad, skip to erase
[10.426]blk 950 is bad, skip to erase
[10.430]blk 951 is bad, skip to erase
[10.433]blk 952 is bad, skip to erase
[10.436]blk 953 is bad, skip to erase
[10.440]blk 954 is bad, skip to erase
[10.443]blk 955 is bad, skip to erase
[10.447]blk 956 is bad, skip to erase
[10.450]blk 957 is bad, skip to erase
[10.453]blk 958 is bad, skip to erase
[10.457]blk 959 is bad, skip to erase
[10.460]blk 960 is bad, skip to erase
[10.464]blk 961 is bad, skip to erase
[10.467]blk 962 is bad, skip to erase
[10.470]blk 963 is bad, skip to erase
[10.474]blk 964 is bad, skip to erase
[10.477]blk 965 is bad, skip to erase
[10.480]blk 966 is bad, skip to erase
[10.484]blk 967 is bad, skip to erase
[10.487]blk 968 is bad, skip to erase
[10.491]blk 969 is bad, skip to erase
[10.494]blk 970 is bad, skip to erase
[10.497]blk 971 is bad, skip to erase
[10.501]blk 972 is bad, skip to erase
[10.504]blk 973 is bad, skip to erase
[10.507]blk 974 is bad, skip to erase
[10.511]blk 975 is bad, skip to erase
[10.514]blk 976 is bad, skip to erase
[10.518]blk 977 is bad, skip to erase
[10.521]blk 978 is bad, skip to erase
[10.524]blk 979 is bad, skip to erase
[10.528]blk 980 is bad, skip to erase
[10.531]blk 981 is bad, skip to erase
[10.534]blk 982 is bad, skip to erase
[10.538]blk 983 is bad, skip to erase
[10.541]blk 984 is bad, skip to erase
[10.545]blk 985 is bad, skip to erase
[10.548]blk 986 is bad, skip to erase
[10.551]blk 987 is bad, skip to erase
[10.555]blk 988 is bad, skip to erase
[10.558]blk 989 is bad, skip to erase
[10.562]blk 990 is bad, skip to erase
[10.565]blk 991 is bad, skip to erase
[10.568]blk 992 is bad, skip to erase
[10.572]blk 993 is bad, skip to erase
[10.575]blk 994 is bad, skip to erase
[10.578]blk 995 is bad, skip to erase
[10.582]blk 996 is bad, skip to erase
[10.585]blk 997 is bad, skip to erase
[10.589]blk 998 is bad, skip to erase
[10.592]blk 999 is bad, skip to erase
[10.595]blk 1000 is bad, skip to erase
[10.599]blk 1001 is bad, skip to erase
[10.602]blk 1002 is bad, skip to erase
[10.606]blk 1003 is bad, skip to erase
[10.609]blk 1004 is bad, skip to erase
[10.613]blk 1005 is bad, skip to erase
[10.616]blk 1006 is bad, skip to erase
[10.620]blk 1007 is bad, skip to erase
[10.623]blk 1008 is bad, skip to erase
[10.627]blk 1009 is bad, skip to erase
[10.630]blk 1010 is bad, skip to erase
[10.633]blk 1011 is bad, skip to erase
[10.637]blk 1012 is bad, skip to erase
[10.640]blk 1013 is bad, skip to erase
[10.644]blk 1014 is bad, skip to erase
[10.647]blk 1015 is bad, skip to erase
[10.651]blk 1016 is bad, skip to erase
[10.654]blk 1017 is bad, skip to erase
[10.658]blk 1018 is bad, skip to erase
[10.661]blk 1019 is bad, skip to erase
[10.665]blk 1020 is bad, skip to erase
[10.668]blk 1021 is bad, skip to erase
[10.672]blk 1022 is bad, skip to erase
[10.675]blk 1023 is bad, skip to erase
[10.679]sunxi-spinand: no enough good blk between [40 40) for secure storage
[10.685]get secure storage map err
[10.688]sunxi-spinand: no enough good blk between [40 40) for secure storage
[10.695]erase secure storage block 0 err
SUNXI_EFEX_MBR_TAG
mbr size = 0x10000
force mbr

device nand0 <nand>, # parts = 4
 #: name                size            offset          mask_flags
 0: boot0               0x00100000      0x00000000      1
 1: uboot               0x00300000      0x00100000      1
 2: secure_storage      0x00100000      0x00400000      1
 3: sys                 0x07b00000      0x00500000      0

active partition: nand0,0 - (boot0) 0x00100000 @ 0x00000000

defaults:
mtdids  : nand0=nand
mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)
[10.744]MTD info (4)
[10.746]pagesize: 0x1000
[10.748]blksize: 0x40000
[10.750]num  offset     bytes      name
[10.754]0    0x00000000 0x00100000 boot0
[10.758]1    0x00100000 0x00300000 uboot
[10.761]2    0x00400000 0x00100000 secure_storage
[10.766]3    0x00500000 0x07b00000 sys
[10.769]MBR info (unalign):
[10.772]partno   addr       sects      type       name
[10.776]0        0x00000000 0x00008000 0x00000001 mbr
[10.781]1        0x00008000 0x00000800 0x00008000 boot-resource
[10.787]2        0x00008800 0x000001f8 0x00008000 env
[10.792]3        0x000089f8 0x000001f8 0x00008000 env-redund
[10.797]4        0x00008bf0 0x000021e8 0x00008000 boot
[10.802]5        0x0000add8 0x00011800 0x00008000 rootfs
[10.807]6        0x0001c5d8 0x00002800 0x00008000 private
[10.812]7        0x0001edd8 0x00015e00 0x00008000 rootfs_data
[10.817]8        0x00034bd8 0x00000000 0x00008100 UDISK
[10.822]ubi attach the last part of mtd device: NO.3
[10.827]MBR info (align):
[10.829]partno   addr       sects      type       name
[10.834]0        0x00002800 0x000081f0 0x00000001 mbr
[10.839]1        0x0000a9f0 0x000009d8 0x00008000 boot-resource
[10.845]2        0x0000b3c8 0x000001f8 0x00008000 env
[10.849]3        0x0000b5c0 0x000001f8 0x00008000 env-redund
[10.855]4        0x0000b7b8 0x00002370 0x00008000 boot
[10.860]5        0x0000db28 0x00011988 0x00008000 rootfs
[10.865]6        0x0001f4b0 0x00002958 0x00008000 private
[10.870]7        0x00021e08 0x00015e70 0x00008000 rootfs_data
[10.875]8        0x00037c78 0x00000000 0x00008100 UDISK
[10.880]ubi attach the last part of mtd device: NO.3
[10.885]ubi attatch mtd, name: sys

[10.888]ubi0: attaching mtd4
[10.891]ubi0: scanning is finished
[10.894]ubi0: empty MTD device detected
[10.898]ubi0 error: ubi_early_get_peb: no free eraseblocks
[10.903]ubi0 error: ubi_attach_mtd_dev: failed to attach mtd4, error -28
[10.910]UBI error: cannot attach mtd4
[10.913]UBI error: cannot initialize UBI, error -28
UBI init error 28
Please check, if the correct MTD partition is used (size big enough?)
[10.925]ubi part sys err !
[10.928]initialize sunxi spinand ubi failed
download_standard_gpt:write mbr sectors fail ret = 0

又一个新的不行

#41 全志 SOC » D1s 用新买的SPI FLASH W25N01GVZEIG 烧录失败,换一片又可以 » 2024-03-08 12:12:59

memory
回复: 2
[1184]fes begin commit:88480af-dirty
[1187]set pll start
[1189]periph0 has been enabled
[1192]set pll end
[1193][pmu]: bus read error
[1196]board init ok
[1198]beign to init dram
[1200]ZQ value = 0x2f
[1202]get_pmu_exist() = -1
[1205]ddr_efuse_type: 0xa
[1207]trefi:7.8ms
[1209][AUTO DEBUG] single rank and full DQ!
[1213]ddr_efuse_type: 0xa
[1216]trefi:7.8ms
[1218][AUTO DEBUG] rank 0 row = 13
[1221][AUTO DEBUG] rank 0 bank = 4
[1224][AUTO DEBUG] rank 0 page size = 2 KB
[1228]DRAM BOOT DRIVE INFO: V0.33
[1231]DRAM CLK = 528 MHz
[1234]DRAM Type = 2 (2:DDR2,3:DDR3)
[1237]DRAMC read ODT  off.
[1239]DRAM ODT off.
[1241]ddr_efuse_type: 0xa
[1244]DRAM SIZE =64 M
[1246]dram_tpr4:0x0
[1248]PLL_DDR_CTRL_REG:0xf8002b00
[1251]DRAM_CLK_REG:0xc0000000
[1254][TIMING DEBUG] MR2= 0x0
[1258]DRAM simple test OK.
[1261]init dram ok


U-Boot 2018.05-g24521d6-dirty (Mar 07 2024 - 23:26:39 +0800) Allwinner Technology

[04.340]DRAM:  64 MiB
[04.345]Relocation Offset is: 01ee0000
[04.375]secure enable bit: 0
[04.381]CPU=720 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz  MBus=300Mhz
[04.387]flash init start
[04.390]workmode = 16,storage type = 0
try card 0
set card number 0
get card number 0
[04.397][mmc]: mmc driver ver uboot2018:2021-11-19 15:38:00
[04.407][mmc]: get sdc_type fail and use default host:tm1.
FDT ERROR:fdt_get_all_pin:get property handle pinctrl-0 error:FDT_ERR_INTERNAL
[04.423][mmc]: get card0 default pin fail
[04.433][mmc]: can't find node "mmc0",will add new node
[04.438][mmc]: fdt err returned <no error>
[04.441][mmc]: Using default timing para
[04.445][mmc]: sunxi mmc pin set failed!
[04.449]error card no error
[04.451][mmc]: MMC Device -1 not found
fail to find one useful mmc card2
try emmc fail
[04.469]sunxi-spinand: AW SPINand MTD Layer Version: 1.5 20200407
[04.475]sunxi-spinand-phy: AW SPINand Phy Layer Version: 1.9 20200306
[04.540]sunxi-spinand-phy: request spi0 gpio ok
[04.544]sunxi-spinand-phy: request general tx dma channel ok!
[04.550]sunxi-spinand-phy: request general rx dma channel ok!
[04.555]sunxi-spinand-phy: set spic0 clk to 20 Mhz
[04.560]sunxi-spinand-phy: init spic0 clk ok
sspi->base_addr = 0x4025000, the SPI control register:
[VER] 0x4025000 = 0x00010001, [GCR] 0x4025004 = 0x00000083, [TCR] 0x4025008 = 0x00000184
[ICR] 0x4025010 = 0x00000f00, [ISR] 0x4025014 = 0x00000032, [FCR] 0x4025018 = 0x00200020
[FSR] 0x402501c = 0x00000000, [WCR] 0x4025020 = 0x00000000, [CCR] 0x4025024 = 0x00000002
[SDC] 0x4025028 = 0x00002000, [BCR] 0x4025030 = 0x00000000, [TCR] 0x4025034 = 0x00000000
[BCC] 0x4025038 = 0x00000000, [DMA] 0x4025088 = 0x000000e5

[04.606]sunxi-spinand-phy: not detect any munufacture from id table
[04.622]sunxi-spinand-phy: get spi-nand Model from fdt fail
[04.627]sunxi-spinand-phy: get phy info from fdt fail
[04.632]sunxi-spinand-phy: not detect munufacture from fdt
[04.637]sunxi-spinand-phy: detect munufacture from id table: Winbond
[04.643]sunxi-spinand-phy: detect spinand id: ff21aaef ffffffff
[04.649]sunxi-spinand-phy: ========== arch info ==========
[04.654]sunxi-spinand-phy: Model:               W25N01GVZEIG
[04.660]sunxi-spinand-phy: Munufacture:         Winbond
[04.664]sunxi-spinand-phy: DieCntPerChip:       1
[04.669]sunxi-spinand-phy: BlkCntPerDie:        1024
[04.674]sunxi-spinand-phy: PageCntPerBlk:       64
[04.678]sunxi-spinand-phy: SectCntPerPage:      4
[04.683]sunxi-spinand-phy: OobSizePerPage:      64
[04.687]sunxi-spinand-phy: BadBlockFlag:        0x0
[04.692]sunxi-spinand-phy: OperationOpt:        0x7
[04.696]sunxi-spinand-phy: MaxEraseTimes:       65000
[04.701]sunxi-spinand-phy: EccFlag:             0x0
[04.706]sunxi-spinand-phy: EccType:             2
[04.710]sunxi-spinand-phy: EccProtectedType:    3
[04.714]sunxi-spinand-phy: ========================================
[04.720]sunxi-spinand-phy:
[04.723]sunxi-spinand-phy: ========== physical info ==========
[04.728]sunxi-spinand-phy: TotalSize:    128 M
[04.733]sunxi-spinand-phy: SectorSize:   512 B
[04.737]sunxi-spinand-phy: PageSize:     2 K
[04.741]sunxi-spinand-phy: BlockSize:    128 K
[04.745]sunxi-spinand-phy: OOBSize:      64 B
[04.749]sunxi-spinand-phy: ========================================
[04.755]sunxi-spinand-phy:
[04.757]sunxi-spinand-phy: ========== logical info ==========
[04.763]sunxi-spinand-phy: TotalSize:    128 M
[04.767]sunxi-spinand-phy: SectorSize:   512 B
[04.771]sunxi-spinand-phy: PageSize:     4 K
[04.775]sunxi-spinand-phy: BlockSize:    256 K
[04.779]sunxi-spinand-phy: OOBSize:      128 B
[04.784]sunxi-spinand-phy: ========================================
[04.800]sunxi-spinand-phy: set spic0 clk to 6 Mhz
[04.804]sunxi-spinand-phy: block lock register: 0x00
[04.809]sunxi-spinand-phy: feature register: 0x19
[04.814]sunxi-spinand-phy: sunxi physic nand init end
[04.824]Loading Environment from SUNXI_FLASH... OK
[04.838]try to burn key
[04.841]out of usb burn from boot: not need burn key
[04.846]Net:   [04.847]No ethernet found.
Hit any key to stop autoboot:  0
sunxi work mode=0x10
run usb efex
delay time 2500
weak:otg_phy_config
usb init ok
set address 0x9
set address 0x9 ok
set address 0xa
set address 0xa ok
SUNXI_EFEX_ERASE_TAG
erase_flag = 0x1
origin_erase_flag = 0x1
FEX_CMD_fes_verify_status
FEX_CMD_fes_verify last err=0
the 0 mbr table is ok
the 1 mbr table is ok
the 2 mbr table is ok
the 3 mbr table is ok
*************MBR DUMP***************
total mbr part 8

part[0] name      :boot-resource
part[0] classname :DISK
part[0] addrlo    :0x8000
part[0] lenlo     :0x1f8
part[0] user_type :32768
part[0] keydata   :0
part[0] ro        :0

part[1] name      :env
part[1] classname :DISK
part[1] addrlo    :0x81f8
part[1] lenlo     :0x1f8
part[1] user_type :32768
part[1] keydata   :0
part[1] ro        :0

part[2] name      :env-redund
part[2] classname :DISK
part[2] addrlo    :0x83f0
part[2] lenlo     :0x1f8
part[2] user_type :32768
part[2] keydata   :0
part[2] ro        :0

part[3] name      :boot
part[3] classname :DISK
part[3] addrlo    :0x85e8
part[3] lenlo     :0x5000
part[3] user_type :32768
part[3] keydata   :0
part[3] ro        :0

part[4] name      :rootfs
part[4] classname :DISK
part[4] addrlo    :0xd5e8
part[4] lenlo     :0x173c0
part[4] user_type :32768
part[4] keydata   :0
part[4] ro        :0

part[5] name      :recovery
part[5] classname :DISK
part[5] addrlo    :0x249a8
part[5] lenlo     :0x5780
part[5] user_type :32768
part[5] keydata   :0
part[5] ro        :0

part[6] name      :rootfs_data
part[6] classname :DISK
part[6] addrlo    :0x2a128
part[6] lenlo     :0x2800
part[6] user_type :32768
part[6] keydata   :0
part[6] ro        :0

part[7] name      :UDISK
part[7] classname :DISK
part[7] addrlo    :0x2c928
part[7] lenlo     :0x0
part[7] user_type :0
part[7] keydata   :0
part[7] ro        :0

common1(partition3) need it, here is a weak func
total part: 9
mbr 0, 8000, 8000
boot-resource 1, 1f8, 8000
env 2, 1f8, 8000
env-redund 3, 1f8, 8000
boot 4, 5000, 8000
rootfs 5, 173c0, 8000
recovery 6, 5780, 8000
rootfs_data 7, 2800, 8000
UDISK 8, 0, 0
[08.764]erase blk 0 to blk 32
[08.767]blk 0 is bad, skip to erase
need erase flash: 1
[08.796]mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)

device nand0 <nand>, # parts = 4
 #: name                size            offset          mask_flags
 0: boot0               0x00100000      0x00000000      1
 1: uboot               0x00300000      0x00100000      1
 2: secure_storage      0x00100000      0x00400000      1
 3: sys                 0x07b00000      0x00500000      0

active partition: nand0,0 - (boot0) 0x00100000 @ 0x00000000

defaults:
mtdids  : nand0=nand
mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)
[08.856]MTD info (4)
[08.858]pagesize: 0x1000
[08.860]blksize: 0x40000
[08.863]num  offset     bytes      name
[08.866]0    0x00000000 0x00100000 boot0
[08.870]1    0x00100000 0x00300000 uboot
[08.874]2    0x00400000 0x00100000 secure_storage
[08.878]3    0x00500000 0x07b00000 sys
[08.881]ubi attach the last part of mtd device: NO.3
[09.011]ubi0: attaching mtd4
[09.198]ubi0: scanning is finished
[09.201]ubi0: empty MTD device detected
[09.251]ubi0: attached mtd4 (name "sys", size 123 MiB)
[09.256]ubi0: PEB size: 262144 bytes (256 KiB), LEB size: 258048 bytes
[09.262]ubi0: min./max. I/O unit sizes: 4096/4096, sub-page size 2048
[09.268]ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[09.275]ubi0: good PEBs: 492, bad PEBs: 0, corrupted PEBs: 0
[09.280]ubi0: user volume: 0, internal volumes: 1, max. volumes count: 128
[09.287]ubi0: max/mean erase counter: 0/0, WL threshold: 4096, image sequence number: 0
[09.294]ubi0: available PEBs: 468, total reserved PEBs: 24, PEBs reserved for bad PEB handling: 20
no part need to protect user data
[10.663]erase blk 0 to blk 32
[10.666]blk 0 is bad, skip to erase
[10.688]erase blk 40 to blk 1024
SUNXI_EFEX_MBR_TAG
mbr size = 0x10000
force mbr

device nand0 <nand>, # parts = 4
 #: name                size            offset          mask_flags
 0: boot0               0x00100000      0x00000000      1
 1: uboot               0x00300000      0x00100000      1
 2: secure_storage      0x00100000      0x00400000      1
 3: sys                 0x07b00000      0x00500000      0

active partition: nand0,0 - (boot0) 0x00100000 @ 0x00000000

defaults:
mtdids  : nand0=nand
mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)
[11.596]MTD info (4)
[11.598]pagesize: 0x1000
[11.600]blksize: 0x40000
[11.602]num  offset     bytes      name
[11.606]0    0x00000000 0x00100000 boot0
[11.610]1    0x00100000 0x00300000 uboot
[11.613]2    0x00400000 0x00100000 secure_storage
[11.618]3    0x00500000 0x07b00000 sys
[11.621]MBR info (unalign):
[11.624]partno   addr       sects      type       name
[11.628]0        0x00000000 0x00008000 0x00000001 mbr
[11.633]1        0x00008000 0x000001f8 0x00008000 boot-resource
[11.639]2        0x000081f8 0x000001f8 0x00008000 env
[11.644]3        0x000083f0 0x000001f8 0x00008000 env-redund
[11.649]4        0x000085e8 0x00005000 0x00008000 boot
[11.654]5        0x0000d5e8 0x000173c0 0x00008000 rootfs
[11.659]6        0x000249a8 0x00005780 0x00008000 recovery
[11.664]7        0x0002a128 0x00002800 0x00008000 rootfs_data
[11.669]8        0x0002c928 0x00000000 0x00000000 UDISK
[11.674]ubi attach the last part of mtd device: NO.3
[11.679]MBR info (align):
[11.681]partno   addr       sects      type       name
[11.686]0        0x00002800 0x000081f0 0x00000001 mbr
[11.691]1        0x0000a9f0 0x000001f8 0x00008000 boot-resource
[11.697]2        0x0000abe8 0x000001f8 0x00008000 env
[11.701]3        0x0000ade0 0x000001f8 0x00008000 env-redund
[11.707]4        0x0000afd8 0x000050b8 0x00008000 boot
[11.712]5        0x00010090 0x00017418 0x00008000 rootfs
[11.717]6        0x000274a8 0x00005898 0x00008000 recovery
[11.722]7        0x0002cd40 0x00002958 0x00008000 rootfs_data
[11.727]8        0x0002f698 0x00000000 0x00000000 UDISK
[11.732]ubi attach the last part of mtd device: NO.3
[11.737]ubi attatch mtd, name: sys

[11.740]ubi0: detaching mtd4
[11.745]ubi0: mtd4 is detached
[11.748]ubi0: attaching mtd4
[11.935]ubi0: scanning is finished
[11.938]ubi0: empty MTD device detected
[11.989]ubi0: attached mtd4 (name "sys", size 123 MiB)
[11.994]ubi0: PEB size: 262144 bytes (256 KiB), LEB size: 258048 bytes
[12.000]ubi0: min./max. I/O unit sizes: 4096/4096, sub-page size 2048
[12.007]ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[12.013]ubi0: good PEBs: 492, bad PEBs: 0, corrupted PEBs: 0
[12.018]ubi0: user volume: 0, internal volumes: 1, max. volumes count: 128
[12.025]ubi0: max/mean erase counter: 0/0, WL threshold: 4096, image sequence number: 0
[12.033]ubi0: available PEBs: 468, total reserved PEBs: 24, PEBs reserved for bad PEB handling: 20
Creating static volume mbr of size 17031168
Creating dynamic volume boot-resource of size 258048
Creating dynamic volume env of size 258048
Creating dynamic volume env-redund of size 258048
Creating dynamic volume boot of size 10579968
Creating dynamic volume rootfs of size 48771072
Creating dynamic volume recovery of size 11612160
Creating dynamic volume rootfs_data of size 5419008
No size specified -> Using max size (26578944)
[13.713]reset last volume size to 0xcac8
Creating dynamic volume UDISK of size 26578944
[13.825]fill gap start: volume mbr sects 0x7f80
[27.208]ubi0 warning: ubi_io_read_vid_hdr: bad magic number at PEB 149: 55464d65 instead of 55424921
[27.217]Volume identifier header dump:
[27.221]        magic     55464d65
[27.223]        version   69
[27.225]        vol_type  70
[27.227]        copy_flag 68
[27.229]        compat    68
[27.231]        vol_id    1145324612
[27.234]        lnum      1145324612
[27.236]        data_size 1145566276
[27.239]        used_ebs  1145324614
[27.242]        data_pad  1145324612
[27.245]        sqnum     4919131752989213783
[27.248]        hdr_crc   d5c4fce7
[27.250]Volume identifier header hexdump:
[27.254]ubi0 warning: ubi_eba_read_leb: corrupted VID header at PEB 149, LEB 0:0
[27.262]ubi0 warning: ubi_volume_continue_write: volume 0 on UBI device 0 is corrupt
[27.269]fill gap end: volume mbr
[27.273]update partition map
[27.275]logical area info: 468 258048 last_lba: 235871
read from corrupted volume 0[27.297]mbr magic error: woftwtuu wanted softw411
*** ERROR: Can't read MBR header ***
part_get_info_efi: *** ERROR: Invalid GPT ***
read from corrupted volume 0[27.324]mbr magic error: woftwtuu wanted softw411
*** ERROR: Can't read MBR header ***
part_get_info_efi: *** ERROR: Invalid Backup GPT ***
FEX_CMD_fes_verify_status
FEX_CMD_fes_verify last err=0
[27.402]fill gap start: volume boot-resource sects 0x158
[27.600]fill gap end: volume boot-resource
FEX_CMD_fes_verify_value, start 0x8000, size high 0x0:low 0x14000
FEX_CMD_fes_verify_value 0xee7b20a0

#42 Re: 全志 SOC » 求助: T113 视频 编码 问题 » 2024-03-02 11:26:44

这是tina里面自带的 decodertest ?

#46 Re: 全志 SOC » T113-i spi nand 启动失败 » 2024-02-21 21:13:59

重新又烧了一片新的 W25N01GVZEIG :

[1383]fes begin commit:1417090655
[1386]set pll start
[1388]fix vccio detect value:0xc0
[1395]periph0 has been enabled
[1398]set pll end
[1400][pmu]: bus read error
[1402]board init ok
[1404]beign to init dram
[1406]get_pmu_exist() = -1
[1409]ddr_efuse_type: 0x0
[1411]trefi:7.8ms
[1414][AUTO DEBUG] two rank and full DQ!
[1417]ddr_efuse_type: 0x0
[1420]trefi:7.8ms
[1422][AUTO DEBUG] rank 0 row = 15
[1425][AUTO DEBUG] rank 0 bank = 8
[1429][AUTO DEBUG] rank 0 page size = 2 KB
[1433][AUTO DEBUG] rank 1 row = 15
[1436][AUTO DEBUG] rank 1 bank = 8
[1439][AUTO DEBUG] rank 1 page size = 2 KB
[1443]rank1 config same as rank0
[1446]DRAM BOOT DRIVE INFO: V0.33
[1449]DRAM CLK = 792 MHz
[1451]DRAM Type = 3 (2:DDR2,3:DDR3)
[1455]DRAMC ZQ value: 0x7b7bfb
[1457]DRAM ODT value: 0x42.
[1460]ddr_efuse_type: 0x0
[1463]DRAM SIZE =1024 M
[1465]dram_tpr4:0x0
[1467]PLL_DDR_CTRL_REG:0xf8004100
[1470]DRAM_CLK_REG:0xc0000000
[1473][TIMING DEBUG] MR2= 0x18
[1477]DRAM simple test OK.
[1479]rtc standby flag is 0x0, super standby flag is 0x0
[1485]init dram ok


U-Boot 2018.07-gd9e6718-dirty (Feb 21 2024 - 10:47:19 +0800) Allwinner Technology

[03.911]CPU:   Allwinner Family
[03.914]Model: sun8iw20
[03.916]DRAM:  512 MiB
[03.919]Relocation Offset is: 1cebc000
[03.947]secure enable bit: 0
[03.949]CPU=1008 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz  MBus=300Mhz
[03.956]gic: normal mode
sunxi flash map init
SPI ALL:   ready
[03.962]flash init start
[03.965]workmode = 16,storage type = 0
try card 0
set card number 0
get card number 0
[03.972][mmc]: mmc driver ver uboot2018:2022-12-07 18:56:00
[03.978][mmc]: get sdc_type fail and use default host:tm1.
[03.984][mmc]: can't find node "mmc0",will add new node
[03.989][mmc]: fdt err returned <no error>
[03.992][mmc]: Using default timing para
[03.996][mmc]: SUNXI SDMMC Controller Version:0x50310
[04.010][mmc]: mmc 0 cmd timeout 100 status 100
[04.014][mmc]: smc 0 err, cmd 8,  RTO
[04.017][mmc]: mmc 0 close bus gating and reset
[04.023][mmc]: mmc 0 cmd timeout 100 status 100
[04.027][mmc]: smc 0 err, cmd 55,  RTO
[04.030][mmc]: mmc 0 close bus gating and reset
[04.038][mmc]: mmc 0 cmd timeout 100 status 100
[04.043][mmc]: smc 0 err, cmd 1,  RTO
[04.046][mmc]: mmc 0 close bus gating and reset
[04.050][mmc]: Card did not respond to voltage select!
[04.055][mmc]: mmc_init: -95, time 54
[04.058][mmc]: mmc_init: mmc init fail, err -95
MMC init failed
try emmc fail
[04.066]sunxi-spinand: AW SPINand MTD Layer Version: 1.8 20220106
[04.071]sunxi-spinand-phy: AW SPINand Phy Layer Version: 1.11 20211217
[04.079]sunxi-spinand-phy: request spi0 gpio ok
[04.084]sunxi-spinand-phy: request general tx dma channel ok!
[04.089]sunxi-spinand-phy: request general rx dma channel ok!
[04.094]sunxi-spinand-phy: set spic0 clk to 20 Mhz
[04.099]sunxi-spinand-phy: init spic0 clk ok
[04.103]sunxi-spinand-phy: detect munufacture from id table: Winbond
[04.109]sunxi-spinand-phy: detect spinand id: ff21aaef ffffffff
[04.115]sunxi-spinand-phy: ========== arch info ==========
[04.120]sunxi-spinand-phy: Model:               W25N01GVZEIG
[04.125]sunxi-spinand-phy: Munufacture:         Winbond
[04.130]sunxi-spinand-phy: DieCntPerChip:       1
[04.135]sunxi-spinand-phy: BlkCntPerDie:        1024
[04.139]sunxi-spinand-phy: PageCntPerBlk:       64
[04.144]sunxi-spinand-phy: SectCntPerPage:      4
[04.148]sunxi-spinand-phy: OobSizePerPage:      64
[04.153]sunxi-spinand-phy: BadBlockFlag:        0x0
[04.157]sunxi-spinand-phy: OperationOpt:        0x7
[04.162]sunxi-spinand-phy: MaxEraseTimes:       65000
[04.167]sunxi-spinand-phy: EccFlag:             0x0
[04.171]sunxi-spinand-phy: EccType:             2
[04.176]sunxi-spinand-phy: EccProtectedType:    3
[04.180]sunxi-spinand-phy: ========================================
[04.186]sunxi-spinand-phy:
[04.189]sunxi-spinand-phy: ========== physical info ==========
[04.194]sunxi-spinand-phy: TotalSize:    128 M
[04.198]sunxi-spinand-phy: SectorSize:   512 B
[04.202]sunxi-spinand-phy: PageSize:     2 K
[04.206]sunxi-spinand-phy: BlockSize:    128 K
[04.211]sunxi-spinand-phy: OOBSize:      64 B
[04.215]sunxi-spinand-phy: ========================================
[04.221]sunxi-spinand-phy:
[04.223]sunxi-spinand-phy: ========== logical info ==========
[04.229]sunxi-spinand-phy: TotalSize:    128 M
[04.233]sunxi-spinand-phy: SectorSize:   512 B
[04.237]sunxi-spinand-phy: PageSize:     4 K
[04.241]sunxi-spinand-phy: BlockSize:    256 K
[04.245]sunxi-spinand-phy: OOBSize:      128 B
[04.249]sunxi-spinand-phy: ========================================
[04.256]sunxi-spinand-phy: W25N01GVZEIG reset rx bit width to 1
[04.261]sunxi-spinand-phy: W25N01GVZEIG reset tx bit width to 1
[04.267]sunxi-spinand-phy: block lock register: 0x00
[04.271]sunxi-spinand-phy: feature register: 0x19
[04.276]sunxi-spinand-phy: sunxi physic nand init end
[04.685]sunxi-spinand-phy: set spic0 clk to 100 Mhz
[05.802]sunxi-spinand-phy: Sample mode:1  min_delay:5000 max_delay:14760 right_delay:1e)
[05.963]line:703 init_clocks
[05.966]init_clocks:finish
[05.968]Loading Environment from SUNXI_FLASH... OK
[05.973]try to burn key
[05.975]out of usb burn from boot: not boot mode
Hit any key to stop autoboot:  0
sunxi work mode=0x10
run usb efex
delay time 2500
weak:otg_phy_config
usb init ok
set address 0x34
set address 0x34 ok
set address 0x1b
set address 0x1b ok
SUNXI_EFEX_ERASE_TAG
erase_flag = 0x12
origin_erase_flag = 0x1
FEX_CMD_fes_verify_status
FEX_CMD_fes_verify last err=0
the 0 mbr table is ok
the 1 mbr table is ok
the 2 mbr table is ok
the 3 mbr table is ok
*************MBR DUMP***************
total mbr part 9

part[0] name      :boot-resource
part[0] classname :DISK
part[0] addrlo    :0x8000
part[0] lenlo     :0x3fcc
part[0] user_type :32768
part[0] keydata   :0
part[0] ro        :0

part[1] name      :env
part[1] classname :DISK
part[1] addrlo    :0xbfcc
part[1] lenlo     :0x800
part[1] user_type :32768
part[1] keydata   :0
part[1] ro        :0

part[2] name      :env-redund
part[2] classname :DISK
part[2] addrlo    :0xc7cc
part[2] lenlo     :0x800
part[2] user_type :32768
part[2] keydata   :0
part[2] ro        :0

part[3] name      :boot
part[3] classname :DISK
part[3] addrlo    :0xcfcc
part[3] lenlo     :0x8980
part[3] user_type :32768
part[3] keydata   :0
part[3] ro        :0

part[4] name      :rootfs
part[4] classname :DISK
part[4] addrlo    :0x1594c
part[4] lenlo     :0xbe80
part[4] user_type :32768
part[4] keydata   :0
part[4] ro        :0

part[5] name      :recovery
part[5] classname :DISK
part[5] addrlo    :0x217cc
part[5] lenlo     :0xa000
part[5] user_type :32768
part[5] keydata   :0
part[5] ro        :0

part[6] name      :dsp0
part[6] classname :DISK
part[6] addrlo    :0x2b7cc
part[6] lenlo     :0x800
part[6] user_type :32768
part[6] keydata   :0
part[6] ro        :0

part[7] name      :private
part[7] classname :DISK
part[7] addrlo    :0x2bfcc
part[7] lenlo     :0x400
part[7] user_type :32768
part[7] keydata   :0
part[7] ro        :0

part[8] name      :UDISK
part[8] classname :DISK
part[8] addrlo    :0x2c3cc
part[8] lenlo     :0x0
part[8] user_type :33024
part[8] keydata   :0
part[8] ro        :0

total part: 10
mbr 0, 8000, 8000
boot-resource 1, 3fcc, 8000
env 2, 800, 8000
env-redund 3, 800, 8000
boot 4, 8980, 8000
rootfs 5, be80, 8000
recovery 6, a000, 8000
dsp0 7, 800, 8000
private 8, 400, 8000
UDISK 9, 0, 8100
[09.220]erase blk 0 to blk 32
[09.223]sunxi-spinand-phy: [SPINAND]: ecc error 0x2
[09.229]sunxi-spinand-phy: [SPINAND]: ecc error 0x2
[09.234]sunxi-spinand-phy: [SPINAND]: ecc error 0x2
[09.240]sunxi-spinand-phy: [SPINAND]: ecc error 0x2
[09.245]sunxi-spinand-phy: [SPINAND]: ecc error 0x2
[09.251]sunxi-spinand-phy: [SPINAND]: ecc error 0x2
[09.256]sunxi-spinand-phy: [SPINAND]: ecc error 0x2
need erase flash: 18
[09.289]mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)

device nand0 <nand>, # parts = 4
 #: name                size            offset          mask_flags
 0: boot0               0x00100000      0x00000000      1
 1: uboot               0x00300000      0x00100000      1
 2: secure_storage      0x00100000      0x00400000      1
 3: sys                 0x07b00000      0x00500000      0

active partition: nand0,0 - (boot0) 0x00100000 @ 0x00000000

defaults:
mtdids  : nand0=nand
mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)
[09.340]MTD info (4)
[09.341]pagesize: 0x1000
[09.344]blksize: 0x40000
[09.346]num  offset     bytes      name
[09.349]0    0x00000000 0x00100000 boot0
[09.353]1    0x00100000 0x00300000 uboot
[09.357]2    0x00400000 0x00100000 secure_storage
[09.361]3    0x00500000 0x07b00000 sys
[09.365]ubi attach the last part of mtd device: NO.3
[09.437]ubi0: attaching mtd4
[09.662]ubi0: scanning is finished
[09.672]ubi0: attached mtd4 (name "sys", size 123 MiB)
[09.676]ubi0: PEB size: 262144 bytes (256 KiB), LEB size: 258048 bytes
[09.683]ubi0: min./max. I/O unit sizes: 4096/4096, sub-page size 2048
[09.689]ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[09.695]ubi0: good PEBs: 492, bad PEBs: 0, corrupted PEBs: 0
[09.700]ubi0: user volume: 10, internal volumes: 1, max. volumes count: 128
[09.707]ubi0: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 0
[09.715]ubi0: available PEBs: 0, total reserved PEBs: 492, PEBs reserved for bad PEB handling: 20
[09.723]erase blk 0 to blk 32
[09.743]erase blk 40 to blk 1024
[10.450]sunxi-spinand: spinand secure storage ok for phy blk 32 and 33
[10.458]Item0 (Map) magic is bad
[10.461]the secure storage map is empty
[10.552]sunxi-spinand: write secure storage itme 0 ok
[10.557]erase secure storage: 0 ok
SUNXI_EFEX_MBR_TAG
mbr size = 0x10000
force mbr

device nand0 <nand>, # parts = 4
 #: name                size            offset          mask_flags
 0: boot0               0x00100000      0x00000000      1
 1: uboot               0x00300000      0x00100000      1
 2: secure_storage      0x00100000      0x00400000      1
 3: sys                 0x07b00000      0x00500000      0

active partition: nand0,0 - (boot0) 0x00100000 @ 0x00000000

defaults:
mtdids  : nand0=nand
mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)
[10.605]MTD info (4)
[10.607]pagesize: 0x1000
[10.609]blksize: 0x40000
[10.612]num  offset     bytes      name
[10.615]0    0x00000000 0x00100000 boot0
[10.619]1    0x00100000 0x00300000 uboot
[10.622]2    0x00400000 0x00100000 secure_storage
[10.627]3    0x00500000 0x07b00000 sys
[10.630]MBR info (unalign):
[10.633]partno   addr       sects      type       name
[10.638]0        0x00000000 0x00008000 0x00000001 mbr
[10.642]1        0x00008000 0x00003fcc 0x00008000 boot-resource
[10.648]2        0x0000bfcc 0x00000800 0x00008000 env
[10.653]3        0x0000c7cc 0x00000800 0x00008000 env-redund
[10.658]4        0x0000cfcc 0x00008980 0x00008000 boot
[10.663]5        0x0001594c 0x0000be80 0x00008000 rootfs
[10.668]6        0x000217cc 0x0000a000 0x00008000 recovery
[10.673]7        0x0002b7cc 0x00000800 0x00008000 dsp0
[10.678]8        0x0002bfcc 0x00000400 0x00008000 private
[10.683]9        0x0002c3cc 0x00000000 0x00008100 UDISK
[10.688]ubi attach the last part of mtd device: NO.3
[10.693]MBR info (align):
[10.695]partno   addr       sects      type       name
[10.700]0        0x00002800 0x000081f0 0x00000001 mbr
[10.705]1        0x0000a9f0 0x000040f8 0x00008000 boot-resource
[10.710]2        0x0000eae8 0x000009d8 0x00008000 env
[10.715]3        0x0000f4c0 0x000009d8 0x00008000 env-redund
[10.721]4        0x0000fe98 0x000089d0 0x00008000 boot
[10.725]5        0x00018868 0x0000bef8 0x00008000 rootfs
[10.730]6        0x00024760 0x0000a170 0x00008000 recovery
[10.736]7        0x0002e8d0 0x000009d8 0x00008000 dsp0
[10.741]8        0x0002f2a8 0x000005e8 0x00008000 private
[10.746]9        0x0002f890 0x00000000 0x00008100 UDISK
[10.751]ubi attach the last part of mtd device: NO.3
[10.755]ubi attatch mtd, name: sys

[10.759]ubi0: detaching mtd4
[10.761]ubi0: mtd4 is detached
[10.764]ubi0: attaching mtd4
[10.878]ubi0: scanning is finished
[10.881]ubi0: empty MTD device detected
[10.900]ubi0: attached mtd4 (name "sys", size 123 MiB)
[10.905]ubi0: PEB size: 262144 bytes (256 KiB), LEB size: 258048 bytes
[10.911]ubi0: min./max. I/O unit sizes: 4096/4096, sub-page size 2048
[10.917]ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[10.924]ubi0: good PEBs: 492, bad PEBs: 0, corrupted PEBs: 0
[10.929]ubi0: user volume: 0, internal volumes: 1, max. volumes count: 128
[10.936]ubi0: max/mean erase counter: 0/0, WL threshold: 4096, image sequence number: 0
[10.943]ubi0: available PEBs: 468, total reserved PEBs: 24, PEBs reserved for bad PEB handling: 20
Creating static volume mbr of size 17031168
Creating dynamic volume boot-resource of size 8515584
Creating dynamic volume env of size 1290240
Creating dynamic volume env-redund of size 1290240
Creating dynamic volume boot of size 18063360
Creating dynamic volume rootfs of size 25030656
Creating dynamic volume recovery of size 21159936
Creating dynamic volume dsp0 of size 1290240
Creating dynamic volume private of size 774144
No size specified -> Using max size (26320896)
[11.889]reset last volume size to 0xc8d0
Creating dynamic volume UDISK of size 26320896
[11.914]existed volume UDISK size is 51408(sects) , inside ubi part size is 0(sects),existed volume size to update inside ubi part size
[11.926]existed volume UDISK size is 51408(sects) , inside ubi part size is 0(sects),existed volume size to update inside ubi part size
[11.955]fill gap start: volume mbr sects 0x7f80
[17.700]fill gap end: volume mbr
[17.703]update partition map
[17.705]logical area info: 468 258048 last_lba: 235871
[17.718]logical area info: 468 258048 last_lba: 235871
[17.730]logical area info: 468 258048 last_lba: 235871
[17.742]logical area info: 468 258048 last_lba: 235871
[17.754]logical area info: 468 258048 last_lba: 235871
[17.766]logical area info: 468 258048 last_lba: 235871
[17.778]logical area info: 468 258048 last_lba: 235871
[17.790]logical area info: 468 258048 last_lba: 235871
[17.802]logical area info: 468 258048 last_lba: 235871
[17.814]logical area info: 468 258048 last_lba: 235871
[17.827]logical area info: 468 258048 last_lba: 235871
[17.839]logical area info: 468 258048 last_lba: 235871
[17.851]logical area info: 468 258048 last_lba: 235871
[17.863]logical area info: 468 258048 last_lba: 235871
[17.875]logical area info: 468 258048 last_lba: 235871
[17.887]logical area info: 468 258048 last_lba: 235871
[17.899]logical area info: 468 258048 last_lba: 235871
[17.911]logical area info: 468 258048 last_lba: 235871
[17.923]logical area info: 468 258048 last_lba: 235871
[17.935]logical area info: 468 258048 last_lba: 235871
[17.947]logical area info: 468 258048 last_lba: 235871
[17.960]logical area info: 468 258048 last_lba: 235871
[17.972]logical area info: 468 258048 last_lba: 235871
[17.984]logical area info: 468 258048 last_lba: 235871
[17.996]logical area info: 468 258048 last_lba: 235871
[18.008]logical area info: 468 258048 last_lba: 235871
[18.020]logical area info: 468 258048 last_lba: 235871
[18.032]logical area info: 468 258048 last_lba: 235871
[18.044]logical area info: 468 258048 last_lba: 235871
[18.056]logical area info: 468 258048 last_lba: 235871
[18.068]logical area info: 468 258048 last_lba: 235871
FEX_CMD_fes_verify_status
FEX_CMD_fes_verify last err=0
[18.104]fill gap start: volume boot-resource sects 0x3f2c
[18.241]fill gap end: volume boot-resource
FEX_CMD_fes_verify_value, start 0x8000, size high 0x0:low 0x14000
FEX_CMD_fes_verify_value 0xe6f75b5c
[18.287]fill gap start: volume env sects 0x700
[18.374]fill gap end: volume env
FEX_CMD_fes_verify_value, start 0xbfcc, size high 0x0:low 0x20000
FEX_CMD_fes_verify_value 0xcf8ab069
[18.424]fill gap start: volume env-redund sects 0x700
[18.511]fill gap end: volume env-redund
FEX_CMD_fes_verify_value, start 0xc7cc, size high 0x0:low 0x20000
FEX_CMD_fes_verify_value 0xcf8ab069
[19.889]fill gap start: volume boot sects 0x61ac
[20.056]fill gap end: volume boot
FEX_CMD_fes_verify_value, start 0xcfcc, size high 0x0:low 0x4fa800
FEX_CMD_fes_verify_value 0x2db1f660
[27.010]fill gap start: volume rootfs sects 0x280
[27.093]fill gap end: volume rootfs
FEX_CMD_fes_verify_value, start 0x1594c, size high 0x0:low 0x1780000
FEX_CMD_fes_verify_value 0xc9c223e1
[29.953]fill gap start: volume dsp0 sects 0x601
[30.038]fill gap end: volume dsp0
FEX_CMD_fes_verify_value, start 0x2b7cc, size high 0x0:low 0x3fc78
FEX_CMD_fes_verify_value 0xb80b7e41
bootfile_mode=4
SUNXI_EFEX_BOOT1_TAG
boot1 size = 0x150000, max size = 0x200000
uboot size = 0x150000
storage type = 0
[30.127]uboot blk range [8-32)
[30.130]download uboot to block 8 (11 blocks) len 1344K
[30.460]download uboot to block 19 (11 blocks) len 1344K
FEX_CMD_fes_verify_status
FEX_CMD_fes_verify last err=0
bootfile_mode=4
SUNXI_EFEX_BOOT0_TAG
boot0 size = 0xb000
dram para[0] = 318
dram para[1] = 3
dram para[2] = 7b7bfb
dram para[3] = 1
dram para[4] = 10f210f2
dram para[5] = 4001000
dram para[6] = 1c70
dram para[7] = 42
dram para[8] = 18
dram para[9] = 0
dram para[10] = 4a2195
dram para[11] = 2423190
dram para[12] = 8b061
dram para[13] = b4787896
dram para[14] = 0
dram para[15] = 48484848
dram para[16] = 48
dram para[17] = 1620121e
dram para[18] = 0
dram para[19] = 0
dram para[20] = 0
dram para[21] = 770000
dram para[22] = 2
dram para[23] = b4056103
dram para[24] = 0
dram para[25] = 0
dram para[26] = 0
dram para[27] = 0
dram para[28] = 0
dram para[29] = 0
dram para[30] = 0
dram para[31] = 0
storage type = 0
[30.869]download boot0 to block 0 len 44K
[30.884]download boot0 to block 1 len 44K
[30.898]download boot0 to block 2 len 44K
[30.913]download boot0 to block 3 len 44K
[30.927]download boot0 to block 4 len 44K
[30.942]download boot0 to block 5 len 44K
[30.956]download boot0 to block 6 len 44K
[30.971]download boot0 to block 7 len 44K
FEX_CMD_fes_verify_status
FEX_CMD_fes_verify last err=0
sunxi_efex_next_action=2
exit usb
next work 2

启动

▒[138]HELLO! BOOT0 is starting!
[141]BOOT0 commit : 1417090655
[144]set pll start
[150]periph0 has been enabled
[153]set pll end
[155][pmu]: bus read error
[157]board init ok
[159]enable_jtag
[161]get_pmu_exist() = -1
[164]DRAM BOOT DRIVE INFO: V0.33
[167]DRAM CLK = 792 MHz
[169]DRAM Type = 3 (2:DDR2,3:DDR3)
[172]DRAMC ZQ value: 0x7b7bfb
[175]DRAM ODT value: 0x42.
[178]ddr_efuse_type: 0x0
[181]DRAM SIZE =1024 M
[183]dram_tpr4:0x0
[185]PLL_DDR_CTRL_REG:0xf8004100
[188]DRAM_CLK_REG:0xc0000000
[191][TIMING DEBUG] MR2= 0x18
[199]DRAM simple test OK.
[201]rtc standby flag is 0x0, super standby flag is 0x0
[207]dram size =1024
[210]spinand UBOOT_START_BLK_NUM 8 UBOOT_LAST_BLK_NUM 32
[215]block from 8 to 32
[359]Check is correct.
[361]dma 0x2ac4c int is not used yet
[365]dma 0x2ac4c int is free, you do not need to free it again
[370]Entry_name        = u-boot
[378]Entry_name        = optee
[382]Entry_name        = dtb
[385]Jump to second Boot.
M/TC: OP-TEE version: 8b49ce62-dirty (gcc version 5.3.1 20160412 (Linaro GCC 5.3-2016.05)) #1 Fri Aug 12 08:24:15 UTC 2022 arm


U-Boot 2018.07-gd9e6718-dirty (Feb 21 2024 - 10:47:19 +0800) Allwinner Technology

[00.437]CPU:   Allwinner Family
[00.440]Model: sun8iw20
[00.442]DRAM:  1 GiB
[00.445]Relocation Offset is: 3cebc000
[00.473]secure enable bit: 0
E/TC:0   fdt_getprop_u32:343 prop trace_level not found
[00.487]CPU=1008 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz  MBus=300Mhz
[00.493]gic: sec monitor mode
sunxi flash map init
SPI ALL:   ready
[00.500]flash init start
[00.502]workmode = 0,storage type = 0
[00.509]sunxi-spinand-phy: spinand sample_mode:1 sample_delay:1e

device nand0 <nand>, # parts = 4
 #: name                size            offset          mask_flags
 0: boot0               0x00100000      0x00000000      1
 1: uboot               0x00300000      0x00100000      1
 2: secure_storage      0x00100000      0x00400000      1
 3: sys                 0x07b00000      0x00500000      0

active partition: nand0,0 - (boot0) 0x00100000 @ 0x00000000

defaults:
mtdids  : nand0=nand
mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)
[00.624]ubi0: attaching mtd4
[00.850]ubi0: scanning is finished
[00.859]ubi0: attached mtd4 (name "sys", size 123 MiB)
[00.864]ubi0: PEB size: 262144 bytes (256 KiB), LEB size: 258048 bytes
[00.870]ubi0: min./max. I/O unit sizes: 4096/4096, sub-page size 2048
[00.876]ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[00.882]ubi0: good PEBs: 492, bad PEBs: 0, corrupted PEBs: 0
[00.888]ubi0: user volume: 10, internal volumes: 1, max. volumes count: 128
[00.894]ubi0: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 0
[00.902]ubi0: available PEBs: 0, total reserved PEBs: 492, PEBs reserved for bad PEB handling: 20
[00.911]sunxi flash init ok
[00.913]line:703 init_clocks
[00.916]drv_disp_init
[00.921]handle_num : 6
request pwm success, pwm2:pwm2:0x2000c00.
[00.932]drv_disp_init finish
[01.160]Loading Environment from SUNXI_FLASH... OK
[01.197]boot_gui_init:start
[01.199]set disp.dev2_output_type fail. using defval=0
[01.336]set disp.fb0_rot_used fail. using defval=0
[01.340]set disp.fb0_rot_degree fail. using defval=0
[01.346]smallwitpi lcd_panel_init 187 xxxxxxxxxxxxxxxxxx
[01.579]boot_gui_init:finish
partno erro : can't find partition bootloader
[01.608]bmp_name=bootlogo.bmp size 38454
[01.622]Item0 (Map) magic is bad
secure storage read widevine fail
[01.628]secure storage read widevine fail with:-1
secure storage read ec_key fail
[01.635]secure storage read ec_key fFDT ERROR:get muxsel err returned FDT_ERR_INTERNAL
sunxi_pwm_pin_set_state, fdt_set_all_pin, ret=-1
[01.648]LCD open finish
ail with:-1
secure storage read ec_cert1 fail
[01.654]secure storage read ec_cert1 fail with:-1
secure storage read ec_cert2 fail
[01.661]secure storage read ec_cert2 fail with:-1
secure storage read ec_cert3 fail
[01.669]secure storage read ec_cert3 fail with:-1
secure storage read rsa_key fail
[01.676]secure storage read rsa_key fail with:-1
secure storage read rsa_cert1 fail
[01.684]secure storage read rsa_cert1 fail with:-1
secure storage read rsa_cert2 fail
[01.691]secure storage read rsa_cert2 fail with:-1
secure storage read rsa_cert3 fail
[01.699]secure storage read rsa_cert3 fail with:-1
[01.704]usb burn from boot
delay time 0
weak:otg_phy_config
[01.715]usb prepare ok
[01.921]usb sof ok
[01.923]usb probe ok
[01.925]usb setup ok
set address 0x18
set address 0x18 ok
set address 0x1e
set address 0x1e ok
try to update
[02.330]do_burn_from_boot usb : have no handshake
List file under ULI/factory
** Unrecognized filesystem type **
[02.363]update bootcmd
[02.394]change working_fdt 0x7c87be70 to 0x7c85be70
[02.413]update dts
Hit any key to stop autoboot:  0
[03.020]no vendor_boot partition is found
Android's image name: sun8i_arm
ERROR: reserving fdt memory region failed (addr=41900000 size=200000)
ERROR: reserving fdt memory region failed (addr=41c00000 size=400000)
ERROR: reserving fdt memory region failed (addr=41b00000 size=100000)
ERROR: reserving fdt memory region failed (addr=7c8ff000 size=342600)
ERROR: reserving fdt memory region failed (addr=42000000 size=100000)
ERROR: reserving fdt memory region failed (addr=42240000 size=2000)
ERROR: reserving fdt memory region failed (addr=42242000 size=2000)
ERROR: reserving fdt memory region failed (addr=42100000 size=10000)
[03.116]Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.4.61 (whycan@ubuntu) (arm-linux-gnueabi-gcc (Linaro GCC 5.3-2016.05) 5.3.1 20160412, GNU ld (Linaro_Binutils-2016.05) 2.25.0 Linaro 2016_02) #14 SMP PREEMPT Tue Feb 20 16:55:57 CST 2024
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: sun8iw20
[    0.000000] printk: bootconsole [earlycon0] enabled
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] Reserved memory: created DMA memory pool at 0x42200000, size 0 MiB
[    0.000000] OF: reserved mem: initialized node vdev0buffer@42200000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x42244000, size 0 MiB
[    0.000000] OF: reserved mem: initialized node dsp0_rpbuf@42244000, compatible id shared-dma-pool
[    0.000000] cma: Reserved 16 MiB at 0x7f000000
[    0.000000] On node 0 totalpages: 261796
[    0.000000]   Normal zone: 1536 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 196260 pages, LIFO batch:63
[    0.000000]   HighMem zone: 65536 pages, LIFO batch:15
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.0 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.0
[    0.000000] percpu: Embedded 15 pages/cpu s30976 r8192 d22272 u61440
[    0.000000] pcpu-alloc: s30976 r8192 d22272 u61440 alloc=15*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 260260
[    0.000000] Kernel command line: ubi.mtd=sys ubi.block=0,rootfs earlyprintk=sunxi-uart,0x02500000 clk_ignore_unused initcall_debug=0 console=ttyS0,115200 loglevel=8 root=/dev/ubiblock0_5 rootfstype=squashfs init=/init rdinit=/rdinit partitions=mbr@ubi0_0:boot-resource@ubi0_1:env@ubi0_2:env-redund@ubi0_3:boot@ubi0_4:rootfs@ubi0_5:recovery@ubi0_6:dsp0@ubi0_7:private@ubi0_8:UDISK@ubi0_9: cma=16M snum= mac_addr= wifi_mac= bt_mac= specialstr= gpt=1 androidboot.hardware=sun8iw20p1 boot_type=5 androidboot.boot_type=5 gpt=1 uboot_message=2018.07-gd9e6718-dirty(02/21/2024-10:47:19) mbr_offset=1032192 disp_reserve=3417600,0x7c8ff000 aw-ubi-spinand.ubootblks=24 androidboot.dramsize=1024
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 998976K/1047184K available (7168K kernel code, 441K rwdata, 2544K rodata, 1024K init, 193K bss, 31824K reserved, 16384K cma-reserved, 242420K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000]  Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] random: get_random_bytes called from start_kernel+0x250/0x3d0 with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000006] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.008009] Switching to timer-based delay loop, resolution 41ns
[    0.014208] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.024014] Console: colour dummy device 80x30
[    0.028516] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.038886] pid_max: default: 32768 minimum: 301
[    0.043665] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.050997] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.059414] CPU: Testing write buffer coherency: ok
[    0.064681] /cpus/cpu@0 missing clock-frequency property
[    0.070034] /cpus/cpu@1 missing clock-frequency property
[    0.075399] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.081649] Setting up static identity map for 0x40100000 - 0x40100060
[    0.088358] rcu: Hierarchical SRCU implementation.
[    0.093473] BOOTEVENT:        93.463832: ON
[    0.097873] smp: Bringing up secondary CPUs ...
[    0.103702] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.103856] smp: Brought up 1 node, 2 CPUs
[    0.113661] SMP: Total of 2 processors activated (96.00 BogoMIPS).
[    0.119840] CPU: All CPU(s) started in SVC mode.
[    0.125048] devtmpfs: initialized
[    0.142413] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.150630] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.160515] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.168174] pinctrl core: initialized pinctrl subsystem
[    0.174878] NET: Registered protocol family 16
[    0.181145] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.233052] rtc_ccu: sunxi ccu init OK
[    0.239223] ccu: sunxi ccu init OK
[    0.243159] r_ccu: sunxi ccu init OK
[    0.287633] sun6i-dma 3002000.dma-controller: sunxi dma probed
[    0.297212] iommu: Default domain type: Translated
[    0.302370] sunxi iommu: irq = 24
[    0.307037] SCSI subsystem initialized
[    0.311195] usbcore: registered new interface driver usbfs
[    0.317007] usbcore: registered new interface driver hub
[    0.322497] usbcore: registered new device driver usb
[    0.327856] mc: Linux media interface: v0.10
[    0.332223] videodev: Linux video capture interface: v2.00
[    0.339003] Advanced Linux Sound Architecture Driver Initialized.
[    0.345816] Bluetooth: Core ver 2.22
[    0.349555] NET: Registered protocol family 31
[    0.354021] Bluetooth: HCI device and connection manager initialized
[    0.360626] Bluetooth: HCI socket layer initialized
[    0.365522] Bluetooth: L2CAP socket layer initialized
[    0.370720] Bluetooth: SCO socket layer initialized
[    0.375917] pwm module init!
[    0.380497] g2d 5410000.g2d: Adding to iommu group 0
[    0.385993] G2D: rcq version initialized.major:250
[    0.391544] input: sunxi-keyboard as /devices/virtual/input/input0
[    0.399439] clocksource: Switched to clocksource arch_sys_counter
[    0.415102] sun8iw20-pinctrl pio: initialized sunXi PIO driver
[    0.435546] thermal_sys: Registered thermal governor 'step_wise'
[    0.435552] thermal_sys: Registered thermal governor 'user_space'
[    0.441638] thermal_sys: Registered thermal governor 'power_allocator'
[    0.448308] NET: Registered protocol family 2
[    0.460029] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    0.468410] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.476282] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.483573] TCP: Hash tables configured (established 8192 bind 8192)
[    0.490107] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.496767] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.504092] NET: Registered protocol family 1
[    0.509645] sun8iw20-pinctrl pio: pio supply vcc-pc not found, using dummy regulator
[    0.517922] spi spi0: spi0 supply spi not found, using dummy regulator
[    0.524762] sunxi_spi_resource_get()2259 - [spi0] SPI MASTER MODE
[    0.530959] sunxi_spi_resource_get()2306 - sample_mode:1 sample_delay:30
[    0.537688] sunxi_spi_request_dma()988 - [spi0] Request DMA channel dma0chan0 (tx) and dma0chan1 (rx) for DMA transfers
[    0.548523] sunxi_spi_clk_init()2356 - [spi0] mclk 100000000
[    0.555062] spi spi0: chipselect 0 already in use
[    0.559815] spi_master spi0: spi_device register error /soc@3000000/spi@4025000/spi_board@0
[    0.568172] spi_master spi0: Failed to create SPI device for /soc@3000000/spi@4025000/spi_board@0
[    0.577091] sunxi_spi_probe()2809 - [spi0]: driver probe succeed, base f0862000, irq 42
[    0.587198] Initialise system trusted keyrings
[    0.591838] workingset: timestamp_bits=30 max_order=18 bucket_order=0
[    0.609026] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.615335] ntfs: driver 2.1.32 [Flags: R/W].
[    0.620215] fuse: init (API version 7.31)
[    0.653104] NET: Registered protocol family 38
[    0.657562] Key type asymmetric registered
[    0.661740] Asymmetric key parser 'x509' registered
[    0.666703] bounce: pool size: 64 pages
[    0.670630] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[    0.678027] io scheduler mq-deadline registered
[    0.682599] io scheduler kyber registered
[    0.686718] atomic64_test: passed
[    0.691787] [DISP]disp_module_init
[    0.695814] disp 5000000.disp: Adding to iommu group 0
[    0.701644] [DISP] disp_init,line:2331:
[    0.701650] smooth display screen:0 type:1 mode:4
[    0.726709] display_fb_request,fb_id:0
[    0.744367] disp_al_manager_apply ouput_type:1
[    0.749001] [DISP] lcd_clk_config,line:777:
[    0.749013] disp 0, clk: pll(360000000),clk(360000000),dclk(60000000) dsi_rate(60000000)
[    0.749013]      clk real:pll(360000000),clk(360000000),dclk(90000000) dsi_rate(150000000)
[    0.750065] [DISP]disp_module_init finish
[    0.753644] sun8iw20-pinctrl pio: pio supply vcc-pd not found, using dummy regulator
[    0.771616] sunxi_sid_init()783 - insmod ok
[    0.786803] pwm-regulator: supplied by regulator-dummy
[    0.793725] sun8iw20-pinctrl pio: pio supply vcc-pb not found, using dummy regulator
[    0.801950] uart uart0: uart0 supply uart not found, using dummy regulator
[    0.809155] uart0: ttyS0 at MMIO 0x2500000 (irq = 34, base_baud = 1500000) is a SUNXI
[    0.817057] sw_console_setup()1831 - console setup baud 115200 parity n bits 8, flow n
[    0.825069] printk: console [ttyS0] enabled
[    0.825069] printk: console [ttyS0] enabled
[    0.833941] printk: bootconsole [earlycon0] disabled
[    0.833941] printk: bootconsole [earlycon0] disabled
[    0.845307] sun8iw20-pinctrl pio: pio supply vcc-pg not found, using dummy regulator
[    0.854413] uart uart1: uart1 supply uart not found, using dummy regulator
[    0.862434] uart1: ttyS1 at MMIO 0x2500400 (irq = 35, base_baud = 1500000) is a SUNXI
[    0.872374] misc dump reg init
[    0.876397] deinterlace 5400000.deinterlace: Adding to iommu group 0
[    0.884142] deinterlace 5400000.deinterlace: version[1.0.0], ip=0x110
[    0.893213] sunxi-rfkill soc@3000000:rfkill@0: module version: v1.0.9
[    0.900478] sunxi-rfkill soc@3000000:rfkill@0: get gpio chip_en failed
[    0.907756] sunxi-rfkill soc@3000000:rfkill@0: get gpio power_en failed
[    0.915146] sunxi-rfkill soc@3000000:rfkill@0: wlan_busnum (1)
[    0.921663] sunxi-rfkill soc@3000000:rfkill@0: Missing wlan_power.
[    0.928559] sunxi-rfkill soc@3000000:rfkill@0: wlan clock[0] (32k-fanout1)
[    0.936260] sunxi-rfkill soc@3000000:rfkill@0: wlan_regon gpio=204 assert=1
[    0.944070] sunxi-rfkill soc@3000000:rfkill@0: wlan_hostwake gpio=202 assert=1
[    0.952139] sunxi-rfkill soc@3000000:rfkill@0: wakeup source is enabled
[    0.959764] sunxi-rfkill soc@3000000:rfkill@0: Missing bt_power.
[    0.966488] sunxi-rfkill soc@3000000:rfkill@0: bt clock[0] (32k-fanout1)
[    0.974006] sunxi-rfkill soc@3000000:rfkill@0: bt_rst gpio=210 assert=0
[    0.982355] [ADDR_MGT] addr_mgt_probe: module version: v1.0.11
[    0.989627] [ADDR_MGT] addr_init: Failed to get type_def_bt, use default: 0
[    0.997383] [ADDR_MGT] addr_mgt_probe: success.
[    1.003809] sunxi-spinand: AW SPINand MTD Layer Version: 2.3 20211223
[    1.011026] sunxi-spinand-phy: AW SPINand Phy Layer Version: 1.10 20200306
[    1.018851] sunxi-spinand-phy: not detect any munufacture from id table
[    1.026270] sunxi-spinand-phy: get spi-nand Model from fdt fail
[    1.032893] sunxi-spinand-phy: get phy info from fdt fail
[    1.038896] sunxi-spinand-phy: not detect munufacture from fdt
[    1.045477] sunxi-spinand-phy: detect munufacture from id table: Winbond
[    1.052971] sunxi-spinand-phy: detect spinand id: ff21aaef ffffffff
[    1.059955] sunxi-spinand-phy: ========== arch info ==========
[    1.066451] sunxi-spinand-phy: Model:               W25N01GVZEIG
[    1.073144] sunxi-spinand-phy: Munufacture:         Winbond
[    1.079341] sunxi-spinand-phy: DieCntPerChip:       1
[    1.084975] sunxi-spinand-phy: BlkCntPerDie:        1024
[    1.090894] sunxi-spinand-phy: PageCntPerBlk:       64
[    1.096608] sunxi-spinand-phy: SectCntPerPage:      4
[    1.102243] sunxi-spinand-phy: OobSizePerPage:      64
[    1.107957] sunxi-spinand-phy: BadBlockFlag:        0x0
[    1.113778] sunxi-spinand-phy: OperationOpt:        0x7
[    1.119610] sunxi-spinand-phy: MaxEraseTimes:       65000
[    1.125619] sunxi-spinand-phy: EccFlag:             0x0
[    1.131441] sunxi-spinand-phy: EccType:             2
[    1.137062] sunxi-spinand-phy: EccProtectedType:    3
[    1.142689] sunxi-spinand-phy: ========================================
[    1.150062] sunxi-spinand-phy:
[    1.153551] sunxi-spinand-phy: ========== physical info ==========
[    1.160436] sunxi-spinand-phy: TotalSize:    128 M
[    1.165762] sunxi-spinand-phy: SectorSize:   512 B
[    1.171157] sunxi-spinand-phy: PageSize:     2 K
[    1.176291] sunxi-spinand-phy: BlockSize:    128 K
[    1.181637] sunxi-spinand-phy: OOBSize:      64 B
[    1.186876] sunxi-spinand-phy: ========================================
[    1.194246] sunxi-spinand-phy:
[    1.197737] sunxi-spinand-phy: ========== logical info ==========
[    1.204527] sunxi-spinand-phy: TotalSize:    128 M
[    1.209867] sunxi-spinand-phy: SectorSize:   512 B
[    1.215193] sunxi-spinand-phy: PageSize:     4 K
[    1.220348] sunxi-spinand-phy: BlockSize:    256 K
[    1.225668] sunxi-spinand-phy: OOBSize:      128 B
[    1.231004] sunxi-spinand-phy: ========================================
[    1.238447] sunxi-spinand-phy: block lock register: 0x00
[    1.244437] sunxi-spinand-phy: feature register: 0x19
[    1.250080] sunxi-spinand-phy: sunxi physic nand init end
[    1.256569] Creating 4 MTD partitions on "sunxi_mtd_nand":
[    1.262716] 0x000000000000-0x000000100000 : "boot0"
[    1.280537] 0x000000100000-0x000000400000 : "uboot"
[    1.286247] sunxi-spinand-phy: phy blk 9 is bad
[    1.291658] sunxi-spinand-phy: phy blk 12 is bad
[    1.297111] sunxi-spinand-phy: phy blk 16 is bad
[    1.302491] sunxi-spinand-phy: phy blk 19 is bad
[    1.308041] sunxi-spinand-phy: phy blk 23 is bad
[    1.313629] sunxi-spinand-phy: phy blk 27 is bad
[    1.318972] sunxi-spinand-phy: phy blk 29 is bad
[    1.330632] 0x000000400000-0x000000500000 : "secure_storage"
[    1.338080] Freeing logo buffer memory: 3340K
[    1.339685] sunxi-spinand-phy: phy blk 33 is bad
[    1.360598] 0x000000500000-0x000008000000 : "sys"
[    1.366097] sunxi-spinand-phy: phy blk 41 is bad
[    1.371474] sunxi-spinand-phy: phy blk 43 is bad
[    1.376815] sunxi-spinand-phy: phy blk 45 is bad
[    1.382202] sunxi-spinand-phy: phy blk 47 is bad
[    1.387523] sunxi-spinand-phy: phy blk 49 is bad
[    1.392862] random: fast init done
[    1.396665] sunxi-spinand-phy: phy blk 51 is bad
[    1.402022] sunxi-spinand-phy: phy blk 53 is bad
[    1.407353] sunxi-spinand-phy: phy blk 55 is bad
[    1.412716] sunxi-spinand-phy: phy blk 57 is bad
[    1.418048] sunxi-spinand-phy: phy blk 59 is bad
[    1.423390] sunxi-spinand-phy: phy blk 61 is bad
[    1.428710] sunxi-spinand-phy: phy blk 63 is bad
[    1.434075] sunxi-spinand-phy: phy blk 65 is bad
[    1.439404] sunxi-spinand-phy: phy blk 67 is bad
[    1.444743] sunxi-spinand-phy: phy blk 69 is bad
[    1.450123] sunxi-spinand-phy: phy blk 71 is bad
[    1.455474] sunxi-spinand-phy: phy blk 73 is bad
[    1.460814] sunxi-spinand-phy: phy blk 75 is bad
[    1.466133] sunxi-spinand-phy: phy blk 77 is bad
[    1.471467] sunxi-spinand-phy: phy blk 79 is bad
[    1.476770] sunxi-spinand-phy: phy blk 81 is bad
[    1.482113] sunxi-spinand-phy: phy blk 83 is bad
[    1.487424] sunxi-spinand-phy: phy blk 85 is bad
[    1.492757] sunxi-spinand-phy: phy blk 87 is bad
[    1.498062] sunxi-spinand-phy: phy blk 89 is bad
[    1.503406] sunxi-spinand-phy: phy blk 91 is bad
[    1.508711] sunxi-spinand-phy: phy blk 93 is bad
[    1.514033] sunxi-spinand-phy: phy blk 95 is bad
[    1.519355] sunxi-spinand-phy: phy blk 97 is bad
[    1.524692] sunxi-spinand-phy: phy blk 99 is bad
[    1.530022] sunxi-spinand-phy: phy blk 101 is bad
[    1.535440] sunxi-spinand-phy: phy blk 103 is bad
[    1.540869] sunxi-spinand-phy: phy blk 105 is bad
[    1.546280] sunxi-spinand-phy: phy blk 107 is bad
[    1.551712] sunxi-spinand-phy: phy blk 109 is bad
[    1.557117] sunxi-spinand-phy: phy blk 111 is bad
[    1.562548] sunxi-spinand-phy: phy blk 113 is bad
[    1.567969] sunxi-spinand-phy: phy blk 115 is bad
[    1.573400] sunxi-spinand-phy: phy blk 117 is bad
[    1.578799] sunxi-spinand-phy: phy blk 119 is bad
[    1.584231] sunxi-spinand-phy: phy blk 121 is bad
[    1.589655] sunxi-spinand-phy: phy blk 123 is bad
[    1.595055] sunxi-spinand-phy: phy blk 125 is bad
[    1.600487] sunxi-spinand-phy: phy blk 127 is bad
[    1.605899] sunxi-spinand-phy: phy blk 129 is bad
[    1.611326] sunxi-spinand-phy: phy blk 131 is bad
[    1.616743] sunxi-spinand-phy: phy blk 133 is bad
[    1.622174] sunxi-spinand-phy: phy blk 135 is bad
[    1.627582] sunxi-spinand-phy: phy blk 137 is bad
[    1.633019] sunxi-spinand-phy: phy blk 139 is bad
[    1.638419] sunxi-spinand-phy: phy blk 141 is bad
[    1.643842] sunxi-spinand-phy: phy blk 143 is bad
[    1.649261] sunxi-spinand-phy: phy blk 145 is bad
[    1.654691] sunxi-spinand-phy: phy blk 147 is bad
[    1.660120] sunxi-spinand-phy: phy blk 149 is bad
[    1.665541] sunxi-spinand-phy: phy blk 151 is bad
[    1.670971] sunxi-spinand-phy: phy blk 153 is bad
[    1.676373] sunxi-spinand-phy: phy blk 155 is bad
[    1.681809] sunxi-spinand-phy: phy blk 157 is bad
[    1.687217] sunxi-spinand-phy: phy blk 159 is bad
[    1.692641] sunxi-spinand-phy: phy blk 161 is bad
[    1.698072] sunxi-spinand-phy: phy blk 163 is bad
[    1.703504] sunxi-spinand-phy: phy blk 165 is bad
[    1.708910] sunxi-spinand-phy: phy blk 167 is bad
[    1.714339] sunxi-spinand-phy: phy blk 169 is bad
[    1.719773] sunxi-spinand-phy: phy blk 171 is bad
[    1.725180] sunxi-spinand-phy: phy blk 173 is bad
[    1.730615] sunxi-spinand-phy: phy blk 175 is bad
[    1.736026] sunxi-spinand-phy: phy blk 177 is bad
[    1.741456] sunxi-spinand-phy: phy blk 179 is bad
[    1.746856] sunxi-spinand-phy: phy blk 181 is bad
[    1.752281] sunxi-spinand-phy: phy blk 183 is bad
[    1.757683] sunxi-spinand-phy: phy blk 185 is bad
[    1.763116] sunxi-spinand-phy: phy blk 187 is bad
[    1.768525] sunxi-spinand-phy: phy blk 189 is bad
[    1.773955] sunxi-spinand-phy: phy blk 191 is bad
[    1.779360] sunxi-spinand-phy: phy blk 193 is bad
[    1.784794] sunxi-spinand-phy: phy blk 195 is bad
[    1.790221] sunxi-spinand-phy: phy blk 197 is bad
[    1.795625] sunxi-spinand-phy: phy blk 199 is bad
[    1.801064] sunxi-spinand-phy: phy blk 201 is bad
[    1.806471] sunxi-spinand-phy: phy blk 203 is bad
[    1.811903] sunxi-spinand-phy: phy blk 205 is bad
[    1.817323] sunxi-spinand-phy: phy blk 207 is bad
[    1.822753] sunxi-spinand-phy: phy blk 209 is bad
[    1.828161] sunxi-spinand-phy: phy blk 211 is bad
[    1.833593] sunxi-spinand-phy: phy blk 213 is bad
[    1.838997] sunxi-spinand-phy: phy blk 215 is bad
[    1.844420] sunxi-spinand-phy: phy blk 217 is bad
[    1.849853] sunxi-spinand-phy: phy blk 219 is bad
[    1.855266] sunxi-spinand-phy: phy blk 221 is bad
[    1.860696] sunxi-spinand-phy: phy blk 223 is bad
[    1.866105] sunxi-spinand-phy: phy blk 225 is bad
[    1.871531] sunxi-spinand-phy: phy blk 227 is bad
[    1.876930] sunxi-spinand-phy: phy blk 229 is bad
[    1.882364] sunxi-spinand-phy: phy blk 231 is bad
[    1.887780] sunxi-spinand-phy: phy blk 233 is bad
[    1.893210] sunxi-spinand-phy: phy blk 235 is bad
[    1.898619] sunxi-spinand-phy: phy blk 237 is bad
[    1.904045] sunxi-spinand-phy: phy blk 239 is bad
[    1.909466] sunxi-spinand-phy: phy blk 241 is bad
[    1.914877] sunxi-spinand-phy: phy blk 243 is bad
[    1.920301] sunxi-spinand-phy: phy blk 245 is bad
[    1.925708] sunxi-spinand-phy: phy blk 247 is bad
[    1.931150] sunxi-spinand-phy: phy blk 249 is bad
[    1.936555] sunxi-spinand-phy: phy blk 251 is bad
[    1.941982] sunxi-spinand-phy: phy blk 253 is bad
[    1.947390] sunxi-spinand-phy: phy blk 255 is bad
[    1.952811] sunxi-spinand-phy: phy blk 257 is bad
[    1.958219] sunxi-spinand-phy: phy blk 259 is bad
[    1.963654] sunxi-spinand-phy: phy blk 261 is bad
[    1.969066] sunxi-spinand-phy: phy blk 263 is bad
[    1.974496] sunxi-spinand-phy: phy blk 265 is bad
[    1.979920] sunxi-spinand-phy: phy blk 267 is bad
[    1.985333] sunxi-spinand-phy: phy blk 269 is bad
[    1.990758] sunxi-spinand-phy: phy blk 271 is bad
[    1.996167] sunxi-spinand-phy: phy blk 273 is bad
[    2.001601] sunxi-spinand-phy: phy blk 275 is bad
[    2.007008] sunxi-spinand-phy: phy blk 277 is bad
[    2.012438] sunxi-spinand-phy: phy blk 279 is bad
[    2.017854] sunxi-spinand-phy: phy blk 281 is bad
[    2.023291] sunxi-spinand-phy: phy blk 283 is bad
[    2.028697] sunxi-spinand-phy: phy blk 285 is bad
[    2.034131] sunxi-spinand-phy: phy blk 287 is bad
[    2.039547] sunxi-spinand-phy: phy blk 289 is bad
[    2.044946] sunxi-spinand-phy: phy blk 291 is bad
[    2.050382] sunxi-spinand-phy: phy blk 293 is bad
[    2.055796] sunxi-spinand-phy: phy blk 295 is bad
[    2.061233] sunxi-spinand-phy: phy blk 297 is bad
[    2.066653] sunxi-spinand-phy: phy blk 299 is bad
[    2.072080] sunxi-spinand-phy: phy blk 301 is bad
[    2.077492] sunxi-spinand-phy: phy blk 303 is bad
[    2.082925] sunxi-spinand-phy: phy blk 305 is bad
[    2.088338] sunxi-spinand-phy: phy blk 307 is bad
[    2.093770] sunxi-spinand-phy: phy blk 309 is bad
[    2.099186] sunxi-spinand-phy: phy blk 311 is bad
[    2.104608] sunxi-spinand-phy: phy blk 313 is bad
[    2.110036] sunxi-spinand-phy: phy blk 315 is bad
[    2.115452] sunxi-spinand-phy: phy blk 317 is bad
[    2.120881] sunxi-spinand-phy: phy blk 319 is bad
[    2.126291] sunxi-spinand-phy: phy blk 321 is bad
[    2.131781] sunxi-spinand-phy: phy blk 323 is bad
[    2.137185] sunxi-spinand-phy: phy blk 325 is bad
[    2.142607] sunxi-spinand-phy: phy blk 327 is bad
[    2.148020] sunxi-spinand-phy: phy blk 329 is bad
[    2.153437] sunxi-spinand-phy: phy blk 331 is bad
[    2.158850] sunxi-spinand-phy: phy blk 333 is bad
[    2.164289] sunxi-spinand-phy: phy blk 335 is bad
[    2.169711] sunxi-spinand-phy: phy blk 337 is bad
[    2.175120] sunxi-spinand-phy: phy blk 339 is bad
[    2.180552] sunxi-spinand-phy: phy blk 341 is bad
[    2.185953] sunxi-spinand-phy: phy blk 343 is bad
[    2.191378] sunxi-spinand-phy: phy blk 345 is bad
[    2.196789] sunxi-spinand-phy: phy blk 347 is bad
[    2.202223] sunxi-spinand-phy: phy blk 349 is bad
[    2.207639] sunxi-spinand-phy: phy blk 351 is bad
[    2.213068] sunxi-spinand-phy: phy blk 353 is bad
[    2.218486] sunxi-spinand-phy: phy blk 355 is bad
[    2.223910] sunxi-spinand-phy: phy blk 357 is bad
[    2.229319] sunxi-spinand-phy: phy blk 359 is bad
[    2.234751] sunxi-spinand-phy: phy blk 361 is bad
[    2.240180] sunxi-spinand-phy: phy blk 363 is bad
[    2.245588] sunxi-spinand-phy: phy blk 365 is bad
[    2.251027] sunxi-spinand-phy: phy blk 367 is bad
[    2.256441] sunxi-spinand-phy: phy blk 369 is bad
[    2.261864] sunxi-spinand-phy: phy blk 371 is bad
[    2.267275] sunxi-spinand-phy: phy blk 373 is bad
[    2.272705] sunxi-spinand-phy: phy blk 375 is bad
[    2.278111] sunxi-spinand-phy: phy blk 377 is bad
[    2.283542] sunxi-spinand-phy: phy blk 379 is bad
[    2.288948] sunxi-spinand-phy: phy blk 381 is bad
[    2.294373] sunxi-spinand-phy: phy blk 383 is bad
[    2.299801] sunxi-spinand-phy: phy blk 385 is bad
[    2.305210] sunxi-spinand-phy: phy blk 387 is bad
[    2.310637] sunxi-spinand-phy: phy blk 389 is bad
[    2.316058] sunxi-spinand-phy: phy blk 391 is bad
[    2.321478] sunxi-spinand-phy: phy blk 393 is bad
[    2.326886] sunxi-spinand-phy: phy blk 395 is bad
[    2.332316] sunxi-spinand-phy: phy blk 397 is bad
[    2.337730] sunxi-spinand-phy: phy blk 399 is bad
[    2.343161] sunxi-spinand-phy: phy blk 401 is bad
[    2.348582] sunxi-spinand-phy: phy blk 403 is bad
[    2.354012] sunxi-spinand-phy: phy blk 405 is bad
[    2.359446] sunxi-spinand-phy: phy blk 407 is bad
[    2.364865] sunxi-spinand-phy: phy blk 409 is bad
[    2.370293] sunxi-spinand-phy: phy blk 411 is bad
[    2.375703] sunxi-spinand-phy: phy blk 413 is bad
[    2.381138] sunxi-spinand-phy: phy blk 415 is bad
[    2.386548] sunxi-spinand-phy: phy blk 417 is bad
[    2.391973] sunxi-spinand-phy: phy blk 419 is bad
[    2.397402] sunxi-spinand-phy: phy blk 421 is bad
[    2.402834] sunxi-spinand-phy: phy blk 423 is bad
[    2.408235] sunxi-spinand-phy: phy blk 425 is bad
[    2.413674] sunxi-spinand-phy: phy blk 427 is bad
[    2.419074] sunxi-spinand-phy: phy blk 429 is bad
[    2.424503] sunxi-spinand-phy: phy blk 431 is bad
[    2.429938] sunxi-spinand-phy: phy blk 433 is bad
[    2.435345] sunxi-spinand-phy: phy blk 435 is bad
[    2.440773] sunxi-spinand-phy: phy blk 437 is bad
[    2.446177] sunxi-spinand-phy: phy blk 439 is bad
[    2.451599] sunxi-spinand-phy: phy blk 441 is bad
[    2.457016] sunxi-spinand-phy: phy blk 443 is bad
[    2.462440] sunxi-spinand-phy: phy blk 445 is bad
[    2.467857] sunxi-spinand-phy: phy blk 447 is bad
[    2.473285] sunxi-spinand-phy: phy blk 449 is bad
[    2.478693] sunxi-spinand-phy: phy blk 451 is bad
[    2.484121] sunxi-spinand-phy: phy blk 453 is bad
[    2.489545] sunxi-spinand-phy: phy blk 455 is bad
[    2.494953] sunxi-spinand-phy: phy blk 457 is bad
[    2.500383] sunxi-spinand-phy: phy blk 459 is bad
[    2.505790] sunxi-spinand-phy: phy blk 461 is bad
[    2.511216] sunxi-spinand-phy: phy blk 463 is bad
[    2.516626] sunxi-spinand-phy: phy blk 465 is bad
[    2.522057] sunxi-spinand-phy: phy blk 467 is bad
[    2.527459] sunxi-spinand-phy: phy blk 469 is bad
[    2.532895] sunxi-spinand-phy: phy blk 471 is bad
[    2.538300] sunxi-spinand-phy: phy blk 473 is bad
[    2.543720] sunxi-spinand-phy: phy blk 475 is bad
[    2.549129] sunxi-spinand-phy: phy blk 477 is bad
[    2.554552] sunxi-spinand-phy: phy blk 479 is bad
[    2.559981] sunxi-spinand-phy: phy blk 481 is bad
[    2.565402] sunxi-spinand-phy: phy blk 483 is bad
[    2.570825] sunxi-spinand-phy: phy blk 485 is bad
[    2.576235] sunxi-spinand-phy: phy blk 487 is bad
[    2.581663] sunxi-spinand-phy: phy blk 489 is bad
[    2.587068] sunxi-spinand-phy: phy blk 491 is bad
[    2.592494] sunxi-spinand-phy: phy blk 493 is bad
[    2.597916] sunxi-spinand-phy: phy blk 495 is bad
[    2.603347] sunxi-spinand-phy: phy blk 497 is bad
[    2.608760] sunxi-spinand-phy: phy blk 499 is bad
[    2.614196] sunxi-spinand-phy: phy blk 501 is bad
[    2.619620] sunxi-spinand-phy: phy blk 503 is bad
[    2.625030] sunxi-spinand-phy: phy blk 505 is bad
[    2.630456] sunxi-spinand-phy: phy blk 507 is bad
[    2.635868] sunxi-spinand-phy: phy blk 509 is bad
[    2.641298] sunxi-spinand-phy: phy blk 511 is bad
[    2.646710] sunxi-spinand-phy: phy blk 513 is bad
[    2.652131] sunxi-spinand-phy: phy blk 515 is bad
[    2.657538] sunxi-spinand-phy: phy blk 517 is bad
[    2.662972] sunxi-spinand-phy: phy blk 519 is bad
[    2.668380] sunxi-spinand-phy: phy blk 521 is bad
[    2.673807] sunxi-spinand-phy: phy blk 523 is bad
[    2.679225] sunxi-spinand-phy: phy blk 525 is bad
[    2.684658] sunxi-spinand-phy: phy blk 527 is bad
[    2.690091] sunxi-spinand-phy: phy blk 529 is bad
[    2.695523] sunxi-spinand-phy: phy blk 531 is bad
[    2.700956] sunxi-spinand-phy: phy blk 533 is bad
[    2.706365] sunxi-spinand-phy: phy blk 535 is bad
[    2.711796] sunxi-spinand-phy: phy blk 537 is bad
[    2.717209] sunxi-spinand-phy: phy blk 539 is bad
[    2.722634] sunxi-spinand-phy: phy blk 541 is bad
[    2.728042] sunxi-spinand-phy: phy blk 543 is bad
[    2.733476] sunxi-spinand-phy: phy blk 545 is bad
[    2.738885] sunxi-spinand-phy: phy blk 547 is bad
[    2.744302] sunxi-spinand-phy: phy blk 549 is bad
[    2.749734] sunxi-spinand-phy: phy blk 551 is bad
[    2.755139] sunxi-spinand-phy: phy blk 553 is bad
[    2.760559] sunxi-spinand-phy: phy blk 555 is bad
[    2.765977] sunxi-spinand-phy: phy blk 557 is bad
[    2.771406] sunxi-spinand-phy: phy blk 559 is bad
[    2.776811] sunxi-spinand-phy: phy blk 561 is bad
[    2.782244] sunxi-spinand-phy: phy blk 563 is bad
[    2.787646] sunxi-spinand-phy: phy blk 565 is bad
[    2.793073] sunxi-spinand-phy: phy blk 567 is bad
[    2.798492] sunxi-spinand-phy: phy blk 569 is bad
[    2.803925] sunxi-spinand-phy: phy blk 571 is bad
[    2.809335] sunxi-spinand-phy: phy blk 573 is bad
[    2.814772] sunxi-spinand-phy: phy blk 575 is bad
[    2.820205] sunxi-spinand-phy: phy blk 577 is bad
[    2.825613] sunxi-spinand-phy: phy blk 579 is bad
[    2.831053] sunxi-spinand-phy: phy blk 581 is bad
[    2.836458] sunxi-spinand-phy: phy blk 583 is bad
[    2.841882] sunxi-spinand-phy: phy blk 585 is bad
[    2.847298] sunxi-spinand-phy: phy blk 587 is bad
[    2.852728] sunxi-spinand-phy: phy blk 589 is bad
[    2.858137] sunxi-spinand-phy: phy blk 591 is bad
[    2.863565] sunxi-spinand-phy: phy blk 593 is bad
[    2.868980] sunxi-spinand-phy: phy blk 595 is bad
[    2.874402] sunxi-spinand-phy: phy blk 597 is bad
[    2.879837] sunxi-spinand-phy: phy blk 599 is bad
[    2.885251] sunxi-spinand-phy: phy blk 601 is bad
[    2.890683] sunxi-spinand-phy: phy blk 603 is bad
[    2.896097] sunxi-spinand-phy: phy blk 605 is bad
[    2.901535] sunxi-spinand-phy: phy blk 607 is bad
[    2.906942] sunxi-spinand-phy: phy blk 609 is bad
[    2.912380] sunxi-spinand-phy: phy blk 611 is bad
[    2.917787] sunxi-spinand-phy: phy blk 613 is bad
[    2.923219] sunxi-spinand-phy: phy blk 615 is bad
[    2.928630] sunxi-spinand-phy: phy blk 617 is bad
[    2.934055] sunxi-spinand-phy: phy blk 619 is bad
[    2.939477] sunxi-spinand-phy: phy blk 621 is bad
[    2.944911] sunxi-spinand-phy: phy blk 623 is bad
[    2.950336] sunxi-spinand-phy: phy blk 625 is bad
[    2.955748] sunxi-spinand-phy: phy blk 627 is bad
[    2.961178] sunxi-spinand-phy: phy blk 629 is bad
[    2.966597] sunxi-spinand-phy: phy blk 631 is bad
[    2.972024] sunxi-spinand-phy: phy blk 633 is bad
[    2.977432] sunxi-spinand-phy: phy blk 635 is bad
[    2.982865] sunxi-spinand-phy: phy blk 637 is bad
[    2.988269] sunxi-spinand-phy: phy blk 639 is bad
[    2.993698] sunxi-spinand-phy: phy blk 641 is bad
[    2.999112] sunxi-spinand-phy: phy blk 643 is bad
[    3.004548] sunxi-spinand-phy: phy blk 645 is bad
[    3.009978] sunxi-spinand-phy: phy blk 647 is bad
[    3.015395] sunxi-spinand-phy: phy blk 649 is bad
[    3.020818] sunxi-spinand-phy: phy blk 651 is bad
[    3.026232] sunxi-spinand-phy: phy blk 653 is bad
[    3.031663] sunxi-spinand-phy: phy blk 655 is bad
[    3.037075] sunxi-spinand-phy: phy blk 657 is bad
[    3.042507] sunxi-spinand-phy: phy blk 659 is bad
[    3.047920] sunxi-spinand-phy: phy blk 661 is bad
[    3.053351] sunxi-spinand-phy: phy blk 663 is bad
[    3.058754] sunxi-spinand-phy: phy blk 665 is bad
[    3.064190] sunxi-spinand-phy: phy blk 667 is bad
[    3.069624] sunxi-spinand-phy: phy blk 669 is bad
[    3.075033] sunxi-spinand-phy: phy blk 671 is bad
[    3.080472] sunxi-spinand-phy: phy blk 673 is bad
[    3.085877] sunxi-spinand-phy: phy blk 675 is bad
[    3.091304] sunxi-spinand-phy: phy blk 677 is bad
[    3.096713] sunxi-spinand-phy: phy blk 679 is bad
[    3.102144] sunxi-spinand-phy: phy blk 681 is bad
[    3.107554] sunxi-spinand-phy: phy blk 683 is bad
[    3.112978] sunxi-spinand-phy: phy blk 685 is bad
[    3.118383] sunxi-spinand-phy: phy blk 687 is bad
[    3.123814] sunxi-spinand-phy: phy blk 689 is bad
[    3.129224] sunxi-spinand-phy: phy blk 691 is bad
[    3.134649] sunxi-spinand-phy: phy blk 693 is bad
[    3.140072] sunxi-spinand-phy: phy blk 695 is bad
[    3.145489] sunxi-spinand-phy: phy blk 697 is bad
[    3.150924] sunxi-spinand-phy: phy blk 699 is bad
[    3.156323] sunxi-spinand-phy: phy blk 701 is bad
[    3.161748] sunxi-spinand-phy: phy blk 703 is bad
[    3.167158] sunxi-spinand-phy: phy blk 705 is bad
[    3.172612] sunxi-spinand-phy: phy blk 707 is bad
[    3.178030] sunxi-spinand-phy: phy blk 709 is bad
[    3.183460] sunxi-spinand-phy: phy blk 711 is bad
[    3.188870] sunxi-spinand-phy: phy blk 713 is bad
[    3.194316] sunxi-spinand-phy: phy blk 715 is bad
[    3.199746] sunxi-spinand-phy: phy blk 717 is bad
[    3.205156] sunxi-spinand-phy: phy blk 719 is bad
[    3.210589] sunxi-spinand-phy: phy blk 721 is bad
[    3.216012] sunxi-spinand-phy: phy blk 723 is bad
[    3.221441] sunxi-spinand-phy: phy blk 725 is bad
[    3.226846] sunxi-spinand-phy: phy blk 727 is bad
[    3.232280] sunxi-spinand-phy: phy blk 729 is bad
[    3.237682] sunxi-spinand-phy: phy blk 731 is bad
[    3.243115] sunxi-spinand-phy: phy blk 733 is bad
[    3.248538] sunxi-spinand-phy: phy blk 735 is bad
[    3.253955] sunxi-spinand-phy: phy blk 737 is bad
[    3.259362] sunxi-spinand-phy: phy blk 739 is bad
[    3.264794] sunxi-spinand-phy: phy blk 741 is bad
[    3.270223] sunxi-spinand-phy: phy blk 743 is bad
[    3.275632] sunxi-spinand-phy: phy blk 745 is bad
[    3.281066] sunxi-spinand-phy: phy blk 747 is bad
[    3.286474] sunxi-spinand-phy: phy blk 749 is bad
[    3.291893] sunxi-spinand-phy: phy blk 751 is bad
[    3.297312] sunxi-spinand-phy: phy blk 753 is bad
[    3.302746] sunxi-spinand-phy: phy blk 755 is bad
[    3.308156] sunxi-spinand-phy: phy blk 757 is bad
[    3.313590] sunxi-spinand-phy: phy blk 759 is bad
[    3.319001] sunxi-spinand-phy: phy blk 761 is bad
[    3.324424] sunxi-spinand-phy: phy blk 763 is bad
[    3.329850] sunxi-spinand-phy: phy blk 765 is bad
[    3.335259] sunxi-spinand-phy: phy blk 767 is bad
[    3.340683] sunxi-spinand-phy: phy blk 769 is bad
[    3.346104] sunxi-spinand-phy: phy blk 771 is bad
[    3.351533] sunxi-spinand-phy: phy blk 773 is bad
[    3.356943] sunxi-spinand-phy: phy blk 775 is bad
[    3.362375] sunxi-spinand-phy: phy blk 777 is bad
[    3.367788] sunxi-spinand-phy: phy blk 779 is bad
[    3.373221] sunxi-spinand-phy: phy blk 781 is bad
[    3.378638] sunxi-spinand-phy: phy blk 783 is bad
[    3.384062] sunxi-spinand-phy: phy blk 785 is bad
[    3.389487] sunxi-spinand-phy: phy blk 787 is bad
[    3.394897] sunxi-spinand-phy: phy blk 789 is bad
[    3.400336] sunxi-spinand-phy: phy blk 791 is bad
[    3.405745] sunxi-spinand-phy: phy blk 793 is bad
[    3.411176] sunxi-spinand-phy: phy blk 795 is bad
[    3.416585] sunxi-spinand-phy: phy blk 797 is bad
[    3.422015] sunxi-spinand-phy: phy blk 799 is bad
[    3.427433] sunxi-spinand-phy: phy blk 801 is bad
[    3.432866] sunxi-spinand-phy: phy blk 803 is bad
[    3.438274] sunxi-spinand-phy: phy blk 805 is bad
[    3.443705] sunxi-spinand-phy: phy blk 807 is bad
[    3.449113] sunxi-spinand-phy: phy blk 809 is bad
[    3.454534] sunxi-spinand-phy: phy blk 811 is bad
[    3.459963] sunxi-spinand-phy: phy blk 813 is bad
[    3.465370] sunxi-spinand-phy: phy blk 815 is bad
[    3.470801] sunxi-spinand-phy: phy blk 817 is bad
[    3.476210] sunxi-spinand-phy: phy blk 819 is bad
[    3.481645] sunxi-spinand-phy: phy blk 821 is bad
[    3.487060] sunxi-spinand-phy: phy blk 823 is bad
[    3.492488] sunxi-spinand-phy: phy blk 825 is bad
[    3.497897] sunxi-spinand-phy: phy blk 827 is bad
[    3.503334] sunxi-spinand-phy: phy blk 829 is bad
[    3.508741] sunxi-spinand-phy: phy blk 831 is bad
[    3.514174] sunxi-spinand-phy: phy blk 833 is bad
[    3.519581] sunxi-spinand-phy: phy blk 835 is bad
[    3.524992] sunxi-spinand-phy: phy blk 837 is bad
[    3.530425] sunxi-spinand-phy: phy blk 839 is bad
[    3.535839] sunxi-spinand-phy: phy blk 841 is bad
[    3.541268] sunxi-spinand-phy: phy blk 843 is bad
[    3.546671] sunxi-spinand-phy: phy blk 845 is bad
[    3.552100] sunxi-spinand-phy: phy blk 847 is bad
[    3.557508] sunxi-spinand-phy: phy blk 849 is bad
[    3.562936] sunxi-spinand-phy: phy blk 851 is bad
[    3.568346] sunxi-spinand-phy: phy blk 853 is bad
[    3.573772] sunxi-spinand-phy: phy blk 855 is bad
[    3.579189] sunxi-spinand-phy: phy blk 857 is bad
[    3.584621] sunxi-spinand-phy: phy blk 859 is bad
[    3.590038] sunxi-spinand-phy: phy blk 861 is bad
[    3.595446] sunxi-spinand-phy: phy blk 863 is bad
[    3.600876] sunxi-spinand-phy: phy blk 865 is bad
[    3.606289] sunxi-spinand-phy: phy blk 867 is bad
[    3.611723] sunxi-spinand-phy: phy blk 869 is bad
[    3.617133] sunxi-spinand-phy: phy blk 871 is bad
[    3.622560] sunxi-spinand-phy: phy blk 873 is bad
[    3.627977] sunxi-spinand-phy: phy blk 875 is bad
[    3.633405] sunxi-spinand-phy: phy blk 877 is bad
[    3.638817] sunxi-spinand-phy: phy blk 879 is bad
[    3.644249] sunxi-spinand-phy: phy blk 881 is bad
[    3.649685] sunxi-spinand-phy: phy blk 883 is bad
[    3.655091] sunxi-spinand-phy: phy blk 885 is bad
[    3.660519] sunxi-spinand-phy: phy blk 887 is bad
[    3.665929] sunxi-spinand-phy: phy blk 889 is bad
[    3.671359] sunxi-spinand-phy: phy blk 891 is bad
[    3.676775] sunxi-spinand-phy: phy blk 893 is bad
[    3.682193] sunxi-spinand-phy: phy blk 895 is bad
[    3.687597] sunxi-spinand-phy: phy blk 897 is bad
[    3.693039] sunxi-spinand-phy: phy blk 899 is bad
[    3.698450] sunxi-spinand-phy: phy blk 901 is bad
[    3.703885] sunxi-spinand-phy: phy blk 903 is bad
[    3.709298] sunxi-spinand-phy: phy blk 905 is bad
[    3.714735] sunxi-spinand-phy: phy blk 907 is bad
[    3.720167] sunxi-spinand-phy: phy blk 909 is bad
[    3.725572] sunxi-spinand-phy: phy blk 911 is bad
[    3.731004] sunxi-spinand-phy: phy blk 913 is bad
[    3.736412] sunxi-spinand-phy: phy blk 915 is bad
[    3.741834] sunxi-spinand-phy: phy blk 917 is bad
[    3.747251] sunxi-spinand-phy: phy blk 919 is bad
[    3.752682] sunxi-spinand-phy: phy blk 921 is bad
[    3.758084] sunxi-spinand-phy: phy blk 923 is bad
[    3.763518] sunxi-spinand-phy: phy blk 925 is bad
[    3.768927] sunxi-spinand-phy: phy blk 927 is bad
[    3.774353] sunxi-spinand-phy: phy blk 929 is bad
[    3.779786] sunxi-spinand-phy: phy blk 931 is bad
[    3.785187] sunxi-spinand-phy: phy blk 933 is bad
[    3.790611] sunxi-spinand-phy: phy blk 935 is bad
[    3.796028] sunxi-spinand-phy: phy blk 937 is bad
[    3.801458] sunxi-spinand-phy: phy blk 939 is bad
[    3.806864] sunxi-spinand-phy: phy blk 941 is bad
[    3.812293] sunxi-spinand-phy: phy blk 943 is bad
[    3.817710] sunxi-spinand-phy: phy blk 945 is bad
[    3.823131] sunxi-spinand-phy: phy blk 947 is bad
[    3.828549] sunxi-spinand-phy: phy blk 949 is bad
[    3.833981] sunxi-spinand-phy: phy blk 951 is bad
[    3.839392] sunxi-spinand-phy: phy blk 953 is bad
[    3.844827] sunxi-spinand-phy: phy blk 955 is bad
[    3.850258] sunxi-spinand-phy: phy blk 957 is bad
[    3.855668] sunxi-spinand-phy: phy blk 959 is bad
[    3.861098] sunxi-spinand-phy: phy blk 961 is bad
[    3.866501] sunxi-spinand-phy: phy blk 963 is bad
[    3.871932] sunxi-spinand-phy: phy blk 965 is bad
[    3.877344] sunxi-spinand-phy: phy blk 967 is bad
[    3.882770] sunxi-spinand-phy: phy blk 969 is bad
[    3.888172] sunxi-spinand-phy: phy blk 971 is bad
[    3.893604] sunxi-spinand-phy: phy blk 973 is bad
[    3.899016] sunxi-spinand-phy: phy blk 975 is bad
[    3.904443] sunxi-spinand-phy: phy blk 977 is bad
[    3.909875] sunxi-spinand-phy: phy blk 979 is bad
[    3.915291] sunxi-spinand-phy: phy blk 981 is bad
[    3.920718] sunxi-spinand-phy: phy blk 983 is bad
[    3.926135] sunxi-spinand-phy: phy blk 985 is bad
[    3.931560] sunxi-spinand-phy: phy blk 987 is bad
[    3.936971] sunxi-spinand-phy: phy blk 989 is bad
[    3.942411] sunxi-spinand-phy: phy blk 991 is bad
[    3.947821] sunxi-spinand-phy: phy blk 993 is bad
[    3.953252] sunxi-spinand-phy: phy blk 995 is bad
[    3.958660] sunxi-spinand-phy: phy blk 997 is bad
[    3.964097] sunxi-spinand-phy: phy blk 999 is bad
[    3.969521] sunxi-spinand-phy: phy blk 1001 is bad
[    3.975026] sunxi-spinand-phy: phy blk 1003 is bad
[    3.980554] sunxi-spinand-phy: phy blk 1005 is bad
[    3.986052] sunxi-spinand-phy: phy blk 1007 is bad
[    3.991576] sunxi-spinand-phy: phy blk 1009 is bad
[    3.997085] sunxi-spinand-phy: phy blk 1011 is bad
[    4.002612] sunxi-spinand-phy: phy blk 1013 is bad
[    4.008116] sunxi-spinand-phy: phy blk 1015 is bad
[    4.013640] sunxi-spinand-phy: phy blk 1017 is bad
[    4.019141] sunxi-spinand-phy: phy blk 1019 is bad
[    4.024667] sunxi-spinand-phy: phy blk 1021 is bad
[    4.030192] sunxi-spinand-phy: phy blk 1023 is bad
[    4.041404] libphy: Fixed MDIO Bus: probed
[    4.045970] CAN device driver interface
[    4.050868] sunxi-can can@0x0 (unnamed net_device) (uninitialized): request pinctrl handle fail!
[    4.061389] sunxi-can can@0x0: can driver probe ok ...
[    4.067455] sunxi-can can@0x1 (unnamed net_device) (uninitialized): request pinctrl handle fail!
[    4.077893] sunxi-can can@0x1: can driver probe ok ...
[    4.084534] sun8iw20-pinctrl pio: pio supply vcc-pe not found, using dummy regulator
[    4.093673] gmac-power0: NULL
[    4.096976] gmac-power1: NULL
[    4.100300] gmac-power2: NULL
[    4.104759] Failed to alloc md5
[    4.108267] eth0: Use random mac address
[    4.113309] usbcore: registered new interface driver asix
[    4.119405] usbcore: registered new interface driver ax88179_178a
[    4.126356] usbcore: registered new interface driver cdc_ether
[    4.132988] usbcore: registered new interface driver net1080
[    4.139347] usbcore: registered new interface driver cdc_subset
[    4.146109] usbcore: registered new interface driver zaurus
[    4.152436] usbcore: registered new interface driver cdc_ncm
[    4.158758] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    4.166046] sunxi-ehci: EHCI SUNXI driver
[    4.171031] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    4.177956] sunxi-ohci: OHCI SUNXI driver
[    4.183145] usbcore: registered new interface driver uas
[    4.189138] usbcore: registered new interface driver usb-storage
[    4.195957] usbcore: registered new interface driver ums-alauda
[    4.202758] usbcore: registered new interface driver ums-cypress
[    4.209550] usbcore: registered new interface driver ums-datafab
[    4.216299] usbcore: registered new interface driver ums_eneub6250
[    4.223258] usbcore: registered new interface driver ums-freecom
[    4.230036] usbcore: registered new interface driver ums-isd200
[    4.236677] usbcore: registered new interface driver ums-jumpshot
[    4.243545] usbcore: registered new interface driver ums-karma
[    4.250113] usbcore: registered new interface driver ums-onetouch
[    4.256967] usbcore: registered new interface driver ums-realtek
[    4.263749] usbcore: registered new interface driver ums-sddr09
[    4.270423] usbcore: registered new interface driver ums-sddr55
[    4.277089] usbcore: registered new interface driver ums-usbat
[    4.284679] input: sunxi-ts as /devices/platform/soc@3000000/2009c00.rtp/input/input1
[    4.294584] sunxi-rtc 7090000.rtc: errata__fix_alarm_day_reg_default_value(): ALARM0_DAY_REG=0, set it to 1
[    4.306728] sunxi-rtc 7090000.rtc: registered as rtc0
[    4.312569] sunxi-rtc 7090000.rtc: setting system clock to 1970-01-01T00:00:37 UTC (37)
[    4.321552] sunxi-rtc 7090000.rtc: sunxi rtc probed
[    4.327601] i2c /dev entries driver
[    4.331752] IR NEC protocol handler initialized
[    4.336794] IR RC5(x/sz) protocol handler initialized
[    4.343218] [VIN_WARN]sensor_helper_probe: cannot get sensor0_cameravdd supply, setting it to NULL!
[    4.353338] [VIN_WARN]sensor_helper_probe: cannot get sensor0_iovdd supply, setting it to NULL!
[    4.363066] [VIN_WARN]sensor_helper_probe: cannot get sensor0_avdd supply, setting it to NULL!
[    4.372680] [VIN_WARN]sensor_helper_probe: cannot get sensor0_dvdd supply, setting it to NULL!
[    4.384424] usbcore: registered new interface driver uvcvideo
[    4.390859] USB Video Class driver (1.1.1)
[    4.395445] gspca_main: v2.14.0 registered
[    4.400014] sunxi cedar version 1.1
[    4.404109] sunxi-cedar 1c0e000.ve: Adding to iommu group 0
[    4.410429] VE: sunxi_cedar_probe power-domain init!!!
[    4.416155] VE: install start!!!
[    4.416155]
[    4.421721] VE: cedar-ve the get irq is 43
[    4.421721]
[    4.428186] VE: ve_debug_proc_info:(ptrval), data:(ptrval), lock:(ptrval)
[    4.428186]
[    4.437417] VE: install end!!!
[    4.437417]
[    4.442487] VE: sunxi_cedar_probe
[    4.447694] sunxi-wdt 20500a0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[    4.456908] Bluetooth: HCI UART driver ver 2.3
[    4.461913] Bluetooth: HCI UART protocol H4 registered
[    4.467939] Bluetooth: XRadio Bluetooth LPM Mode Driver Ver 1.0.10
[    4.475226] [XR_BT_LPM] bluesleep_probe: bt_wake polarity: 1
[    4.481610] [XR_BT_LPM] bluesleep_probe: host_wake polarity: 1
[    4.488116] [XR_BT_LPM] bluesleep_probe: wakeup source is disabled!
[    4.488116]
[    4.496834] [XR_BT_LPM] bluesleep_probe: uart_index(1)
[    4.506196] sunxi-mmc 4020000.sdmmc: SD/MMC/SDIO Host Controller Driver(v4.25 2022-6-21 13:40)
[    4.516065] sunxi-mmc 4020000.sdmmc: ***ctl-spec-caps*** 8
[    4.522297] sunxi-mmc 4020000.sdmmc: No vmmc regulator found
[    4.528597] sunxi-mmc 4020000.sdmmc: No vqmmc regulator found
[    4.535019] sunxi-mmc 4020000.sdmmc: No vdmmc regulator found
[    4.541425] sunxi-mmc 4020000.sdmmc: No vd33sw regulator found
[    4.547910] sunxi-mmc 4020000.sdmmc: No vd18sw regulator found
[    4.554418] sunxi-mmc 4020000.sdmmc: No vq33sw regulator found
[    4.560922] sunxi-mmc 4020000.sdmmc: No vq18sw regulator found
[    4.567905] sunxi-mmc 4020000.sdmmc: Got CD GPIO
[    4.573626] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
[    4.584745] sunxi-mmc 4020000.sdmmc: no vqmmc,Check if there is regulator
[    4.604832] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[    4.628990] sunxi-mmc 4020000.sdmmc: detmode:gpio polling
[    4.635058] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B
[    4.646710] sunxi-mmc 4021000.sdmmc: SD/MMC/SDIO Host Controller Driver(v4.25 2022-6-21 13:40)
[    4.656563] sunxi-mmc 4021000.sdmmc: ***ctl-spec-caps*** 8
[    4.662782] sunxi-mmc 4021000.sdmmc: No vmmc regulator found
[    4.669078] sunxi-mmc 4021000.sdmmc: No vqmmc regulator found
[    4.675498] sunxi-mmc 4021000.sdmmc: No vdmmc regulator found
[    4.681904] sunxi-mmc 4021000.sdmmc: No vd33sw regulator found
[    4.688394] sunxi-mmc 4021000.sdmmc: No vd18sw regulator found
[    4.694900] sunxi-mmc 4021000.sdmmc: No vq33sw regulator found
[    4.701401] sunxi-mmc 4021000.sdmmc: No vq18sw regulator found
[    4.707916] sunxi-mmc 4021000.sdmmc: Cann't get pin bias hs pinstate,check if needed
[    4.717364] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
[    4.728499] sunxi-mmc 4021000.sdmmc: no vqmmc,Check if there is regulator
[    4.748617] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[    4.772793] sunxi-mmc 4021000.sdmmc: detmode:manually by software
[    4.780449] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 52, RTO !!
[    4.787765] usbcore: registered new interface driver usbhid
[    4.794000] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 52, RTO !!
[    4.800870] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[    4.809465] usbhid: USB HID core driver
[    4.815479] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[    4.816669] exFAT: Version 1.3.0
[    4.830270] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 5, RTO !!
[    4.832365] sunxi-msgbox 3003000.msgbox: sunxi msgbox driver probe ...
[    4.839451] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 5, RTO !!
[    4.846130] sunxi-msgbox 3003000.msgbox: sunxi msgbox driver init ok...
[    4.853471] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 5, RTO !!
[    4.860485] sunxi-rproc 3000008.dsp_rproc: sunxi rproc driver 2.1.2
[    4.867527] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 5, RTO !!
[    4.873512] sunxi-rproc 3000008.dsp_rproc: failed to get firmware-name
[    4.880220] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B
[    4.887964] remoteproc remoteproc0: dsp_rproc is available
[    4.904717] sunxi-rproc 3000008.dsp_rproc: sunxi rproc driver probe ok
[    4.912858] sunxi-rpbuf-controller rpbuf_controller@0: assigned reserved memory node dsp0_rpbuf@42244000
[    4.923722] sunxi-rpbuf-controller rpbuf_controller@0: rpbuf_register_ctrl_dev:827
[    4.936217] [AUDIOCODEC][sunxi_codec_parse_params][2437]:digital_vol:0, lineout_vol:26, mic1gain:31, mic2gain:31 pa_msleep:120, pa_level:1, pa_pwr_level:1
[    4.936217]
[    4.953318] [AUDIOCODEC][sunxi_codec_parse_params][2473]:adcdrc_cfg:0, adchpf_cfg:1, dacdrc_cfg:0, dachpf:0
[    4.964686] [AUDIOCODEC][sunxi_internal_codec_probe][2634]:codec probe finished
[    4.974029] debugfs: Directory '203034c.dummy_cpudai' with parent 'audiocodec' already present!
[    4.983815] [SNDCODEC][sunxi_card_init][583]:card init finished
[    4.991104] sunxi-codec-machine 2030340.sound: 2030000.codec <-> 203034c.dummy_cpudai mapping ok
[    5.002205] input: audiocodec sunxi Audio Jack as /devices/platform/soc@3000000/2030340.sound/sound/card0/input2
[    5.014306] [SNDCODEC][sunxi_card_dev_probe][836]:register card finished
[    5.023173] NET: Registered protocol family 10
[    5.029282] Segment Routing with IPv6
[    5.029516] [SNDCODEC][sunxi_hs_init_work][259]:resume-->report switch
[    5.033518] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    5.049077] NET: Registered protocol family 17
[    5.054158] NET: Registered protocol family 15
[    5.059132] can: controller area network core (rev 20170425 abi 9)
[    5.066133] NET: Registered protocol family 29
[    5.071099] can: raw protocol (rev 20170425)
[    5.075863] can: broadcast manager protocol (rev 20170425 t)
[    5.082188] can: netlink gateway (rev 20190810) max_hops=1
[    5.088742] Bluetooth: RFCOMM TTY layer initialized
[    5.094238] Bluetooth: RFCOMM socket layer initialized
[    5.100079] Bluetooth: RFCOMM ver 1.11
[    5.105090] Registering SWP/SWPB emulation handler
[    5.110979] Loading compiled-in X.509 certificates
[    5.135460] sunxi-i2c 2502800.twi: 2502800.twi supply twi not found, using dummy regulator
[    5.146172] sunxi-i2c 2502800.twi: probe success
[    5.153395] sunxi-thermal 2009400.ths: sun8iw20 cp version:15
[    5.190903] get drvvbus-en is fail, 22
[    5.195111] get ehci0-controller wakeup-source is fail.
[    5.201159] sunxi ehci0-controller don't init wakeup source
[    5.207438] [sunxi-ehci0]: probe, pdev->name: 4101000.ehci0-controller, sunxi_ehci: 0xc0c94ca0, 0x:f16e3000, irq_no:3b
[    5.219453] [sunxi-ehci0]: Not init ehci0
[    5.224379] get drvvbus-en is fail, 22
[    5.228584] get ohci0-controller wakeup-source is fail.
[    5.234565] sunxi ohci0-controller don't init wakeup source
[    5.240853] [sunxi-ohci0]: probe, pdev->name: 4101400.ohci0-controller, sunxi_ohci: 0xc0c94f50
[    5.250515] [sunxi-ohci0]: Not init ohci0
[    5.255420] get drvvbus-en is fail, 22
[    5.259667] get ehci1-controller wakeup-source is fail.
[    5.265622] sunxi ehci1-controller don't init wakeup source
[    5.271888] [sunxi-ehci1]: probe, pdev->name: 4200000.ehci1-controller, sunxi_ehci: 0xc0c95200, 0x:f16ed000, irq_no:3d
[    5.284142] sunxi-ehci 4200000.ehci1-controller: 4200000.ehci1-controller supply hci not found, using dummy regulator
[    5.297611] sunxi-ehci 4200000.ehci1-controller: EHCI Host Controller
[    5.304890] sunxi-ehci 4200000.ehci1-controller: new USB bus registered, assigned bus number 1
[    5.314804] sunxi-ehci 4200000.ehci1-controller: irq 61, io mem 0x04200000
[    5.349461] sunxi-ehci 4200000.ehci1-controller: USB 2.0 started, EHCI 1.00
[    5.358167] hub 1-0:1.0: USB hub found
[    5.362444] hub 1-0:1.0: 1 port detected
[    5.367691] get drvvbus-en is fail, 22
[    5.371923] get ohci1-controller wakeup-source is fail.
[    5.377941] sunxi ohci1-controller don't init wakeup source
[    5.384208] [sunxi-ohci1]: probe, pdev->name: 4200400.ohci1-controller, sunxi_ohci: 0xc0c954b0
[    5.394149] sunxi-ohci 4200400.ohci1-controller: 4200400.ohci1-controller supply hci not found, using dummy regulator
[    5.406521] sunxi-ohci 4200400.ohci1-controller: OHCI Host Controller
[    5.413793] sunxi-ohci 4200400.ohci1-controller: new USB bus registered, assigned bus number 2
[    5.423675] sunxi-ohci 4200400.ohci1-controller: irq 62, io mem 0x04200400
[    5.504330] hub 2-0:1.0: USB hub found
[    5.508601] hub 2-0:1.0: 1 port detected
[    5.515026] ubi0: attaching mtd3
[    5.519130] ubi0: scanning is finished
[    5.523415] ubi0: empty MTD device detected
[    5.528169] ubi0 error: ubi_early_get_peb: no free eraseblocks
[    5.534754] ubi0 error: ubi_attach_mtd_dev: failed to attach mtd3, error -28
[    5.542712] UBI error: cannot attach mtd3
[    5.547209] UBI: block: can't open volume on ubi0_-1, err=-19
[    5.554204] otg manager soc@3000000:usbc0@0: soc@3000000:usbc0@0 supply usbc not found, using dummy regulator
[    5.571321] sunxi-vin-core 5809000.vinc: Adding to iommu group 0
[    5.578960] sunxi-vin-core 5809200.vinc: Adding to iommu group 0
[    5.587153] sun8iw20-pinctrl pio: pin PE13 already requested by 4500000.eth; cannot claim for pio:141
[    5.597562] sun8iw20-pinctrl pio: pin-141 (pio:141) status -22
[    5.604467] [VIN_WARN]get csi isp clk fail
[    5.609088] [VIN_WARN]get csi isp src clk fail
[    5.614096] [VIN_WARN]get csi mipi clk fail
[    5.618784] [VIN_WARN]get csi mipi src clk fail
[    5.624064] [VIN_WARN]get csi isp mbus clk fail
[    5.629157] [VIN_WARN]Get isp reset control fail
[    5.634561] [VIN_ERR]n5 request i2c1 adapter failed!
[    5.643237] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    5.649600] [SNDCODEC][sunxi_check_hs_detect_status][191]:plugin --> switch:3
[    5.654483] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    5.667472] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    5.669454] clk: Not disabling unused clocks
[    5.677192] cfg80211: failed to load regulatory.db
[    5.681965] ALSA device list:
[    5.690656]   #0: audiocodec
[    5.693890] alloc_fd: slot 0 not NULL!
[    5.698463] /dev/root: Can't open blockdev
[    5.703114] VFS: Cannot open root device "ubiblock0_5" or unknown-block(0,0): error -6
[    5.712017] Please append a correct "root=" boot option; here are the available partitions:
[    5.721420] 1f00            1024 mtdblock0
[    5.721423]  (driver?)
[    5.728746] 1f01            3072 mtdblock1
[    5.728748]  (driver?)
[    5.736089] 1f02            1024 mtdblock2
[    5.736092]  (driver?)
[    5.743433] 1f03          125952 mtdblock3
[    5.743436]  (driver?)
[    5.750768] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    5.760033] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.4.61 #14
[    5.766760] Hardware name: Generic DT based system
[    5.772149] [<c010e2f8>] (unwind_backtrace) from [<c010a8bc>] (show_stack+0x10/0x14)
[    5.780833] [<c010a8bc>] (show_stack) from [<c0795ab0>] (dump_stack+0x7c/0x98)
[    5.788933] [<c0795ab0>] (dump_stack) from [<c0119d2c>] (panic+0x104/0x3dc)
[    5.796743] [<c0119d2c>] (panic) from [<c0b01278>] (mount_block_root+0x258/0x300)
[    5.805133] [<c0b01278>] (mount_block_root) from [<c0b014bc>] (prepare_namespace+0x118/0x178)
[    5.814692] [<c0b014bc>] (prepare_namespace) from [<c07aa194>] (kernel_init+0x8/0x118)
[    5.823569] [<c07aa194>] (kernel_init) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
[    5.832041] Exception stack(0xef079fb0 to 0xef079ff8)
[    5.837701] 9fa0:                                     00000000 00000000 00000000 00000000
[    5.846867] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    5.856032] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    5.863451] CPU1: stopping
[    5.866483] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.4.61 #14
[    5.873211] Hardware name: Generic DT based system
[    5.878583] [<c010e2f8>] (unwind_backtrace) from [<c010a8bc>] (show_stack+0x10/0x14)
[    5.887264] [<c010a8bc>] (show_stack) from [<c0795ab0>] (dump_stack+0x7c/0x98)
[    5.895361] [<c0795ab0>] (dump_stack) from [<c010c6b0>] (handle_IPI+0xc0/0x168)
[    5.903557] [<c010c6b0>] (handle_IPI) from [<c03a7134>] (gic_handle_irq+0x70/0x78)
[    5.912044] [<c03a7134>] (gic_handle_irq) from [<c01021cc>] (__irq_svc+0x6c/0xa8)
[    5.920428] Exception stack(0xef09bf80 to 0xef09bfc8)
[    5.926089] bf80: 00004dc0 ef7c8574 00000000 c0115280 00000002 ef09a000 c0c03e28 c0c03e64
[    5.935256] bfa0: 4000406a 410fc075 00000000 00000000 c0c79830 ef09bfd0 c0107fd8 c0107fdc
[    5.944419] bfc0: 60000113 ffffffff
[    5.948331] [<c01021cc>] (__irq_svc) from [<c0107fdc>] (arch_cpu_idle+0x2c/0x38)
[    5.956624] [<c0107fdc>] (arch_cpu_idle) from [<c013e920>] (do_idle+0xb8/0x120)
[    5.964818] [<c013e920>] (do_idle) from [<c013ec24>] (cpu_startup_entry+0x18/0x1c)
[    5.973303] [<c013ec24>] (cpu_startup_entry) from [<40102c0c>] (0x40102c0c)
[    5.981124] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---

#47 Re: 全志 SOC » T113-i spi nand 启动失败 » 2024-02-21 21:11:55

T113-i SPI NAND W25N01GVZEIG 启动失败

[154]HELLO! BOOT0 is starting!
[157]BOOT0 commit : 1417090655
[160]set pll start
[162]fix vccio detect value:0xc0
[169]periph0 has been enabled
[173]set pll end
[174][pmu]: bus read error
[177]board init ok
[179]enable_jtag
[181]get_pmu_exist() = -1
[183]DRAM BOOT DRIVE INFO: V0.33
[186]DRAM CLK = 792 MHz
[189]DRAM Type = 3 (2:DDR2,3:DDR3)
[192]DRAMC ZQ value: 0x7b7bfb
[195]DRAM ODT value: 0x42.
[198]ddr_efuse_type: 0x0
[201]DRAM SIZE =1024 M
[203]dram_tpr4:0x0
[205]PLL_DDR_CTRL_REG:0xf8004100
[208]DRAM_CLK_REG:0xc0000000
[211][TIMING DEBUG] MR2= 0x18
[219]DRAM simple test OK.
[221]rtc standby flag is 0x0, super standby flag is 0x0
[226]dram size =1024
[229]spinand UBOOT_START_BLK_NUM 8 UBOOT_LAST_BLK_NUM 32
[234]block from 8 to 32
[379]Check is correct.
[381]dma 0x2ac4c int is not used yet
[384]dma 0x2ac4c int is free, you do not need to free it again
[390]Entry_name        = u-boot
[397]Entry_name        = optee
[401]Entry_name        = dtb
[404]Jump to second Boot.
M/TC: OP-TEE version: 8b49ce62-dirty (gcc version 5.3.1 20160412 (Linaro GCC 5.3-2016.05)) #1 Fri Aug 12 08:24:15 UTC 2022 arm


U-Boot 2018.07-gd9e6718-dirty (Feb 20 2024 - 22:40:19 +0800) Allwinner Technology

[00.456]CPU:   Allwinner Family
[00.459]Model: sun8iw20
[00.461]DRAM:  1 GiB
[00.465]Relocation Offset is: 3cebc000
[00.492]secure enable bit: 0
E/TC:0   fdt_getprop_u32:343 prop trace_level not found
[00.506]CPU=1008 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz  MBus=300Mhz
[00.512]gic: sec monitor mode
sunxi flash map init
SPI ALL:   ready
[00.519]flash init start
[00.522]workmode = 0,storage type = 0
[00.528]sunxi-spinand-phy: spinand sample_mode:1 sample_delay:1d

device nand0 <nand>, # parts = 4
 #: name                size            offset          mask_flags
 0: boot0               0x00100000      0x00000000      1
 1: uboot               0x00300000      0x00100000      1
 2: secure_storage      0x00100000      0x00400000      1
 3: sys                 0x07b00000      0x00500000      0

active partition: nand0,0 - (boot0) 0x00100000 @ 0x00000000

defaults:
mtdids  : nand0=nand
mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)
[00.645]ubi0: attaching mtd4
[00.872]ubi0: scanning is finished
[00.881]ubi0: attached mtd4 (name "sys", size 123 MiB)
[00.886]ubi0: PEB size: 262144 bytes (256 KiB), LEB size: 258048 bytes
[00.892]ubi0: min./max. I/O unit sizes: 4096/4096, sub-page size 2048
[00.898]ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[00.905]ubi0: good PEBs: 492, bad PEBs: 0, corrupted PEBs: 0
[00.910]ubi0: user volume: 10, internal volumes: 1, max. volumes count: 128
[00.917]ubi0: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 0
[00.924]ubi0: available PEBs: 0, total reserved PEBs: 492, PEBs reserved for bad PEB handling: 20
[00.933]sunxi flash init ok
[00.935]line:703 init_clocks
[00.938]drv_disp_init
[00.943]handle_num : 6
request pwm success, pwm2:pwm2:0x2000c00.
[00.954]drv_disp_init finish
[01.184]Loading Environment from SUNXI_FLASH... OK
[01.220]boot_gui_init:start
[01.223]set disp.dev2_output_type fail. using defval=0
[01.359]set disp.fb0_rot_used fail. using defval=0
[01.364]set disp.fb0_rot_degree fail. using defval=0
[01.369]smallwitpi lcd_panel_init 187 xxxxxxxxxxxxxxxxxx
[01.602]boot_gui_init:finish
partno erro : can't find partition bootloader
[01.632]bmp_name=bootlogo.bmp size 38454
[01.645]Item0 (Map) magic is bad
secure storage read widevine fail
[01.651]secure storage read widevine fail with:-1
secure storage read ec_key fail
[01.659]secure storage read ec_key FDT ERROR:get muxsel err returned FDT_ERR_INTERNAL
sunxi_pwm_pin_set_state, fdt_set_all_pin, ret=-1
[01.671]LCD open finish
fail with:-1
secure storage read ec_cert1 fail
[01.678]secure storage read ec_cert1 fail with:-1
secure storage read ec_cert2 fail
[01.685]secure storage read ec_cert2 fail with:-1
secure storage read ec_cert3 fail
[01.692]secure storage read ec_cert3 fail with:-1
secure storage read rsa_key fail
[01.700]secure storage read rsa_key fail with:-1
secure storage read rsa_cert1 fail
[01.707]secure storage read rsa_cert1 fail with:-1
secure storage read rsa_cert2 fail
[01.715]secure storage read rsa_cert2 fail with:-1
secure storage read rsa_cert3 fail
[01.723]secure storage read rsa_cert3 fail with:-1
[01.727]usb burn from boot
delay time 0
weak:otg_phy_config
[01.738]usb prepare ok
[01.945]usb sof ok
[01.947]usb probe ok
[01.949]usb setup ok
set address 0x2f
set address 0x2f ok
set address 0x1d
set address 0x1d ok
try to update
[02.354]do_burn_from_boot usb : have no handshake
List file under ULI/factory
** Unrecognized filesystem type **
[02.387]update bootcmd
[02.418]change working_fdt 0x7c87be70 to 0x7c85be70
[02.438]update dts
Hit any key to stop autoboot:  0
[03.045]no vendor_boot partition is found
Android's image name: sun8i_arm
ERROR: reserving fdt memory region failed (addr=41900000 size=200000)
ERROR: reserving fdt memory region failed (addr=41c00000 size=400000)
ERROR: reserving fdt memory region failed (addr=41b00000 size=100000)
ERROR: reserving fdt memory region failed (addr=7c8ff000 size=342600)
ERROR: reserving fdt memory region failed (addr=42000000 size=100000)
ERROR: reserving fdt memory region failed (addr=42240000 size=2000)
ERROR: reserving fdt memory region failed (addr=42242000 size=2000)
ERROR: reserving fdt memory region failed (addr=42100000 size=10000)
[03.141]Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.4.61 (whycan@ubuntu) (arm-linux-gnueabi-gcc (Linaro GCC 5.3-2016.05) 5.3.1 20160412, GNU ld (Linaro_Binutils-2016.05) 2.25.0 Linaro 2016_02) #14 SMP PREEMPT Tue Feb 20 16:55:57 CST 2024
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: sun8iw20
[    0.000000] printk: bootconsole [earlycon0] enabled
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] Reserved memory: created DMA memory pool at 0x42200000, size 0 MiB
[    0.000000] OF: reserved mem: initialized node vdev0buffer@42200000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x42244000, size 0 MiB
[    0.000000] OF: reserved mem: initialized node dsp0_rpbuf@42244000, compatible id shared-dma-pool
[    0.000000] cma: Reserved 16 MiB at 0x7f000000
[    0.000000] On node 0 totalpages: 261796
[    0.000000]   Normal zone: 1536 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 196260 pages, LIFO batch:63
[    0.000000]   HighMem zone: 65536 pages, LIFO batch:15
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.0 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.0
[    0.000000] percpu: Embedded 15 pages/cpu s30976 r8192 d22272 u61440
[    0.000000] pcpu-alloc: s30976 r8192 d22272 u61440 alloc=15*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 260260
[    0.000000] Kernel command line: ubi.mtd=sys ubi.block=0,rootfs earlyprintk=sunxi-uart,0x02500000 clk_ignore_unused initcall_debug=0 console=ttyS0,115200 loglevel=8 root=/dev/ubiblock0_5 rootfstype=squashfs init=/init rdinit=/rdinit partitions=mbr@ubi0_0:boot-resource@ubi0_1:env@ubi0_2:env-redund@ubi0_3:boot@ubi0_4:rootfs@ubi0_5:recovery@ubi0_6:dsp0@ubi0_7:private@ubi0_8:UDISK@ubi0_9: cma=16M snum= mac_addr= wifi_mac= bt_mac= specialstr= gpt=1 androidboot.hardware=sun8iw20p1 boot_type=5 androidboot.boot_type=5 gpt=1 uboot_message=2018.07-gd9e6718-dirty(02/20/2024-22:40:19) mbr_offset=1032192 disp_reserve=3417600,0x7c8ff000 aw-ubi-spinand.ubootblks=24 androidboot.dramsize=1024
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 998976K/1047184K available (7168K kernel code, 441K rwdata, 2544K rodata, 1024K init, 193K bss, 31824K reserved, 16384K cma-reserved, 242420K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000]  Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] random: get_random_bytes called from start_kernel+0x250/0x3d0 with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000006] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.008017] Switching to timer-based delay loop, resolution 41ns
[    0.014198] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.023988] Console: colour dummy device 80x30
[    0.028464] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.038833] pid_max: default: 32768 minimum: 301
[    0.043623] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.050949] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.059368] CPU: Testing write buffer coherency: ok
[    0.064640] /cpus/cpu@0 missing clock-frequency property
[    0.069960] /cpus/cpu@1 missing clock-frequency property
[    0.075298] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.081555] Setting up static identity map for 0x40100000 - 0x40100060
[    0.088249] rcu: Hierarchical SRCU implementation.
[    0.093369] BOOTEVENT:        93.360207: ON
[    0.097757] smp: Bringing up secondary CPUs ...
[    0.103591] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.103747] smp: Brought up 1 node, 2 CPUs
[    0.113564] SMP: Total of 2 processors activated (96.00 BogoMIPS).
[    0.119735] CPU: All CPU(s) started in SVC mode.
[    0.124945] devtmpfs: initialized
[    0.142322] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.150509] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.160390] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.168058] pinctrl core: initialized pinctrl subsystem
[    0.174760] NET: Registered protocol family 16
[    0.181025] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.232801] rtc_ccu: sunxi ccu init OK
[    0.238982] ccu: sunxi ccu init OK
[    0.242917] r_ccu: sunxi ccu init OK
[    0.286357] sun6i-dma 3002000.dma-controller: sunxi dma probed
[    0.294985] iommu: Default domain type: Translated
[    0.300085] sunxi iommu: irq = 24
[    0.306099] SCSI subsystem initialized
[    0.310257] usbcore: registered new interface driver usbfs
[    0.316263] usbcore: registered new interface driver hub
[    0.321685] usbcore: registered new device driver usb
[    0.327268] mc: Linux media interface: v0.10
[    0.331602] videodev: Linux video capture interface: v2.00
[    0.338442] Advanced Linux Sound Architecture Driver Initialized.
[    0.345257] Bluetooth: Core ver 2.22
[    0.348954] NET: Registered protocol family 31
[    0.353393] Bluetooth: HCI device and connection manager initialized
[    0.359768] Bluetooth: HCI socket layer initialized
[    0.364653] Bluetooth: L2CAP socket layer initialized
[    0.369723] Bluetooth: SCO socket layer initialized
[    0.374922] pwm module init!
[    0.379497] g2d 5410000.g2d: Adding to iommu group 0
[    0.385013] G2D: rcq version initialized.major:250
[    0.390560] input: sunxi-keyboard as /devices/virtual/input/input0
[    0.398420] clocksource: Switched to clocksource arch_sys_counter
[    0.414002] sun8iw20-pinctrl pio: initialized sunXi PIO driver
[    0.434292] thermal_sys: Registered thermal governor 'step_wise'
[    0.434299] thermal_sys: Registered thermal governor 'user_space'
[    0.440352] thermal_sys: Registered thermal governor 'power_allocator'
[    0.447044] NET: Registered protocol family 2
[    0.458749] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    0.467120] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.474973] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.482229] TCP: Hash tables configured (established 8192 bind 8192)
[    0.488738] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.495407] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.502713] NET: Registered protocol family 1
[    0.508247] sun8iw20-pinctrl pio: pio supply vcc-pc not found, using dummy regulator
[    0.516567] spi spi0: spi0 supply spi not found, using dummy regulator
[    0.523363] sunxi_spi_resource_get()2259 - [spi0] SPI MASTER MODE
[    0.529541] sunxi_spi_resource_get()2306 - sample_mode:1 sample_delay:29
[    0.536268] sunxi_spi_request_dma()988 - [spi0] Request DMA channel dma0chan0 (tx) and dma0chan1 (rx) for DMA transfers
[    0.547108] sunxi_spi_clk_init()2356 - [spi0] mclk 100000000
[    0.553594] spi spi0: chipselect 0 already in use
[    0.558318] spi_master spi0: spi_device register error /soc@3000000/spi@4025000/spi_board@0
[    0.566722] spi_master spi0: Failed to create SPI device for /soc@3000000/spi@4025000/spi_board@0
[    0.575640] sunxi_spi_probe()2809 - [spi0]: driver probe succeed, base f0862000, irq 42
[    0.585767] Initialise system trusted keyrings
[    0.590429] workingset: timestamp_bits=30 max_order=18 bucket_order=0
[    0.607542] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.613806] ntfs: driver 2.1.32 [Flags: R/W].
[    0.618578] fuse: init (API version 7.31)
[    0.653292] NET: Registered protocol family 38
[    0.657747] Key type asymmetric registered
[    0.661893] Asymmetric key parser 'x509' registered
[    0.666841] bounce: pool size: 64 pages
[    0.670778] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[    0.678176] io scheduler mq-deadline registered
[    0.682722] io scheduler kyber registered
[    0.686822] atomic64_test: passed
[    0.691886] [DISP]disp_module_init
[    0.695912] disp 5000000.disp: Adding to iommu group 0
[    0.701733] [DISP] disp_init,line:2331:
[    0.701739] smooth display screen:0 type:1 mode:4
[    0.726812] display_fb_request,fb_id:0
[    0.744264] disp_al_manager_apply ouput_type:1
[    0.748941] [DISP] lcd_clk_config,line:777:
[    0.748953] disp 0, clk: pll(360000000),clk(360000000),dclk(60000000) dsi_rate(60000000)
[    0.748953]      clk real:pll(360000000),clk(360000000),dclk(90000000) dsi_rate(150000000)
[    0.749119] [DISP]disp_module_init finish
[    0.753459] sun8iw20-pinctrl pio: pio supply vcc-pd not found, using dummy regulator
[    0.771772] sunxi_sid_init()783 - insmod ok
[    0.783422] Freeing logo buffer memory: 3340K
[    0.786543] pwm-regulator: supplied by regulator-dummy
[    0.796911] sun8iw20-pinctrl pio: pio supply vcc-pb not found, using dummy regulator
[    0.805114] uart uart0: uart0 supply uart not found, using dummy regulator
[    0.812350] uart0: ttyS0 at MMIO 0x2500000 (irq = 34, base_baud = 1500000) is a SUNXI
[    0.820236] sw_console_setup()1831 - console setup baud 115200 parity n bits 8, flow n
[    0.828210] printk: console [ttyS0] enabled
[    0.828210] printk: console [ttyS0] enabled
[    0.837122] printk: bootconsole [earlycon0] disabled
[    0.837122] printk: bootconsole [earlycon0] disabled
[    0.848563] sun8iw20-pinctrl pio: pio supply vcc-pg not found, using dummy regulator
[    0.857670] uart uart1: uart1 supply uart not found, using dummy regulator
[    0.865789] uart1: ttyS1 at MMIO 0x2500400 (irq = 35, base_baud = 1500000) is a SUNXI
[    0.875818] misc dump reg init
[    0.879868] deinterlace 5400000.deinterlace: Adding to iommu group 0
[    0.887560] deinterlace 5400000.deinterlace: version[1.0.0], ip=0x110
[    0.896626] sunxi-rfkill soc@3000000:rfkill@0: module version: v1.0.9
[    0.903943] sunxi-rfkill soc@3000000:rfkill@0: get gpio chip_en failed
[    0.911319] sunxi-rfkill soc@3000000:rfkill@0: get gpio power_en failed
[    0.918775] sunxi-rfkill soc@3000000:rfkill@0: wlan_busnum (1)
[    0.925320] sunxi-rfkill soc@3000000:rfkill@0: Missing wlan_power.
[    0.932290] sunxi-rfkill soc@3000000:rfkill@0: wlan clock[0] (32k-fanout1)
[    0.940043] sunxi-rfkill soc@3000000:rfkill@0: wlan_regon gpio=204 assert=1
[    0.947903] sunxi-rfkill soc@3000000:rfkill@0: wlan_hostwake gpio=202 assert=1
[    0.956042] sunxi-rfkill soc@3000000:rfkill@0: wakeup source is enabled
[    0.963748] sunxi-rfkill soc@3000000:rfkill@0: Missing bt_power.
[    0.970536] sunxi-rfkill soc@3000000:rfkill@0: bt clock[0] (32k-fanout1)
[    0.978079] sunxi-rfkill soc@3000000:rfkill@0: bt_rst gpio=210 assert=0
[    0.986542] [ADDR_MGT] addr_mgt_probe: module version: v1.0.11
[    0.993837] [ADDR_MGT] addr_init: Failed to get type_def_bt, use default: 0
[    1.001728] [ADDR_MGT] addr_mgt_probe: success.
[    1.008086] sunxi-spinand: AW SPINand MTD Layer Version: 2.3 20211223
[    1.015363] sunxi-spinand-phy: AW SPINand Phy Layer Version: 1.10 20200306
[    1.023343] sunxi-spinand-phy: not detect any munufacture from id table
[    1.030793] sunxi-spinand-phy: get spi-nand Model from fdt fail
[    1.037432] sunxi-spinand-phy: get phy info from fdt fail
[    1.043500] sunxi-spinand-phy: not detect munufacture from fdt
[    1.050168] sunxi-spinand-phy: detect munufacture from id table: Winbond
[    1.057686] sunxi-spinand-phy: detect spinand id: ff21aaef ffffffff
[    1.064737] sunxi-spinand-phy: ========== arch info ==========
[    1.071292] sunxi-spinand-phy: Model:               W25N01GVZEIG
[    1.078030] sunxi-spinand-phy: Munufacture:         Winbond
[    1.084289] sunxi-spinand-phy: DieCntPerChip:       1
[    1.089962] sunxi-spinand-phy: BlkCntPerDie:        1024
[    1.095917] sunxi-spinand-phy: PageCntPerBlk:       64
[    1.101686] sunxi-spinand-phy: SectCntPerPage:      4
[    1.107349] sunxi-spinand-phy: OobSizePerPage:      64
[    1.113119] sunxi-spinand-phy: BadBlockFlag:        0x0
[    1.118991] sunxi-spinand-phy: OperationOpt:        0x7
[    1.124849] sunxi-spinand-phy: MaxEraseTimes:       65000
[    1.130912] sunxi-spinand-phy: EccFlag:             0x0
[    1.136769] sunxi-spinand-phy: EccType:             2
[    1.142441] sunxi-spinand-phy: EccProtectedType:    3
[    1.148104] sunxi-spinand-phy: ========================================
[    1.155530] sunxi-spinand-phy:
[    1.159080] sunxi-spinand-phy: ========== physical info ==========
[    1.166011] sunxi-spinand-phy: TotalSize:    128 M
[    1.171405] sunxi-spinand-phy: SectorSize:   512 B
[    1.176775] sunxi-spinand-phy: PageSize:     2 K
[    1.181962] sunxi-spinand-phy: BlockSize:    128 K
[    1.187333] sunxi-spinand-phy: OOBSize:      64 B
[    1.192615] sunxi-spinand-phy: ========================================
[    1.200041] sunxi-spinand-phy:
[    1.203559] sunxi-spinand-phy: ========== logical info ==========
[    1.210401] sunxi-spinand-phy: TotalSize:    128 M
[    1.215771] sunxi-spinand-phy: SectorSize:   512 B
[    1.221156] sunxi-spinand-phy: PageSize:     4 K
[    1.226331] sunxi-spinand-phy: BlockSize:    256 K
[    1.231712] sunxi-spinand-phy: OOBSize:      128 B
[    1.237082] sunxi-spinand-phy: ========================================
[    1.244594] sunxi-spinand-phy: block lock register: 0x00
[    1.250671] sunxi-spinand-phy: feature register: 0x19
[    1.256355] sunxi-spinand-phy: sunxi physic nand init end
[    1.262922] Creating 4 MTD partitions on "sunxi_mtd_nand":
[    1.269111] 0x000000000000-0x000000100000 : "boot0"
[    1.279592] 0x000000100000-0x000000400000 : "uboot"
[    1.285360] sunxi-spinand-phy: phy blk 9 is bad
[    1.290817] sunxi-spinand-phy: phy blk 12 is bad
[    1.296294] sunxi-spinand-phy: phy blk 16 is bad
[    1.301753] sunxi-spinand-phy: phy blk 19 is bad
[    1.307336] sunxi-spinand-phy: phy blk 23 is bad
[    1.312960] sunxi-spinand-phy: phy blk 27 is bad
[    1.318348] sunxi-spinand-phy: phy blk 29 is bad
[    1.329573] 0x000000400000-0x000000500000 : "secure_storage"
[    1.336171] sunxi-spinand-phy: phy blk 33 is bad
[    1.349572] 0x000000500000-0x000008000000 : "sys"
[    1.355078] sunxi-spinand-phy: phy blk 41 is bad
[    1.360536] sunxi-spinand-phy: phy blk 43 is bad
[    1.365911] sunxi-spinand-phy: phy blk 45 is bad
[    1.371301] sunxi-spinand-phy: phy blk 47 is bad
[    1.376665] sunxi-spinand-phy: phy blk 49 is bad
[    1.382053] sunxi-spinand-phy: phy blk 51 is bad
[    1.387255] random: fast init done
[    1.391246] sunxi-spinand-phy: phy blk 53 is bad
[    1.396611] sunxi-spinand-phy: phy blk 55 is bad
[    1.402024] sunxi-spinand-phy: phy blk 57 is bad
[    1.407390] sunxi-spinand-phy: phy blk 59 is bad
[    1.412767] sunxi-spinand-phy: phy blk 61 is bad
[    1.418132] sunxi-spinand-phy: phy blk 63 is bad
[    1.423521] sunxi-spinand-phy: phy blk 65 is bad
[    1.428906] sunxi-spinand-phy: phy blk 67 is bad
[    1.434275] sunxi-spinand-phy: phy blk 69 is bad
[    1.439674] sunxi-spinand-phy: phy blk 71 is bad
[    1.445041] sunxi-spinand-phy: phy blk 73 is bad
[    1.450464] sunxi-spinand-phy: phy blk 75 is bad
[    1.455857] sunxi-spinand-phy: phy blk 77 is bad
[    1.461289] sunxi-spinand-phy: phy blk 79 is bad
[    1.466695] sunxi-spinand-phy: phy blk 81 is bad
[    1.472122] sunxi-spinand-phy: phy blk 83 is bad
[    1.477526] sunxi-spinand-phy: phy blk 85 is bad
[    1.482952] sunxi-spinand-phy: phy blk 87 is bad
[    1.488356] sunxi-spinand-phy: phy blk 89 is bad
[    1.493780] sunxi-spinand-phy: phy blk 91 is bad
[    1.499206] sunxi-spinand-phy: phy blk 93 is bad
[    1.504611] sunxi-spinand-phy: phy blk 95 is bad
[    1.510039] sunxi-spinand-phy: phy blk 97 is bad
[    1.515445] sunxi-spinand-phy: phy blk 99 is bad
[    1.520872] sunxi-spinand-phy: phy blk 101 is bad
[    1.526374] sunxi-spinand-phy: phy blk 103 is bad
[    1.531892] sunxi-spinand-phy: phy blk 105 is bad
[    1.537394] sunxi-spinand-phy: phy blk 107 is bad
[    1.542916] sunxi-spinand-phy: phy blk 109 is bad
[    1.548434] sunxi-spinand-phy: phy blk 111 is bad
[    1.553938] sunxi-spinand-phy: phy blk 113 is bad
[    1.559459] sunxi-spinand-phy: phy blk 115 is bad
[    1.564963] sunxi-spinand-phy: phy blk 117 is bad
[    1.570487] sunxi-spinand-phy: phy blk 119 is bad
[    1.575988] sunxi-spinand-phy: phy blk 121 is bad
[    1.581513] sunxi-spinand-phy: phy blk 123 is bad
[    1.587014] sunxi-spinand-phy: phy blk 125 is bad
[    1.592538] sunxi-spinand-phy: phy blk 127 is bad
[    1.598043] sunxi-spinand-phy: phy blk 129 is bad
[    1.603566] sunxi-spinand-phy: phy blk 131 is bad
[    1.609087] sunxi-spinand-phy: phy blk 133 is bad
[    1.614591] sunxi-spinand-phy: phy blk 135 is bad
[    1.620116] sunxi-spinand-phy: phy blk 137 is bad
[    1.625618] sunxi-spinand-phy: phy blk 139 is bad
[    1.631139] sunxi-spinand-phy: phy blk 141 is bad
[    1.636641] sunxi-spinand-phy: phy blk 143 is bad
[    1.642166] sunxi-spinand-phy: phy blk 145 is bad
[    1.647671] sunxi-spinand-phy: phy blk 147 is bad
[    1.653193] sunxi-spinand-phy: phy blk 149 is bad
[    1.658716] sunxi-spinand-phy: phy blk 151 is bad
[    1.664224] sunxi-spinand-phy: phy blk 153 is bad
[    1.669746] sunxi-spinand-phy: phy blk 155 is bad
[    1.675250] sunxi-spinand-phy: phy blk 157 is bad
[    1.680773] sunxi-spinand-phy: phy blk 159 is bad
[    1.686280] sunxi-spinand-phy: phy blk 161 is bad
[    1.691804] sunxi-spinand-phy: phy blk 163 is bad
[    1.697306] sunxi-spinand-phy: phy blk 165 is bad
[    1.702830] sunxi-spinand-phy: phy blk 167 is bad
[    1.708335] sunxi-spinand-phy: phy blk 169 is bad
[    1.713853] sunxi-spinand-phy: phy blk 171 is bad
[    1.719376] sunxi-spinand-phy: phy blk 173 is bad
[    1.724877] sunxi-spinand-phy: phy blk 175 is bad
[    1.730395] sunxi-spinand-phy: phy blk 177 is bad
[    1.735897] sunxi-spinand-phy: phy blk 179 is bad
[    1.741419] sunxi-spinand-phy: phy blk 181 is bad
[    1.746919] sunxi-spinand-phy: phy blk 183 is bad
[    1.752441] sunxi-spinand-phy: phy blk 185 is bad
[    1.757943] sunxi-spinand-phy: phy blk 187 is bad
[    1.763461] sunxi-spinand-phy: phy blk 189 is bad
[    1.768983] sunxi-spinand-phy: phy blk 191 is bad
[    1.774485] sunxi-spinand-phy: phy blk 193 is bad
[    1.780009] sunxi-spinand-phy: phy blk 195 is bad
[    1.785510] sunxi-spinand-phy: phy blk 197 is bad
[    1.791033] sunxi-spinand-phy: phy blk 199 is bad
[    1.796546] sunxi-spinand-phy: phy blk 201 is bad
[    1.802069] sunxi-spinand-phy: phy blk 203 is bad
[    1.807573] sunxi-spinand-phy: phy blk 205 is bad
[    1.813098] sunxi-spinand-phy: phy blk 207 is bad
[    1.818604] sunxi-spinand-phy: phy blk 209 is bad
[    1.824107] sunxi-spinand-phy: phy blk 211 is bad
[    1.829629] sunxi-spinand-phy: phy blk 213 is bad
[    1.835135] sunxi-spinand-phy: phy blk 215 is bad
[    1.840657] sunxi-spinand-phy: phy blk 217 is bad
[    1.846161] sunxi-spinand-phy: phy blk 219 is bad
[    1.851685] sunxi-spinand-phy: phy blk 221 is bad
[    1.857187] sunxi-spinand-phy: phy blk 223 is bad
[    1.862710] sunxi-spinand-phy: phy blk 225 is bad
[    1.868213] sunxi-spinand-phy: phy blk 227 is bad
[    1.873735] sunxi-spinand-phy: phy blk 229 is bad
[    1.879260] sunxi-spinand-phy: phy blk 231 is bad
[    1.884765] sunxi-spinand-phy: phy blk 233 is bad
[    1.890288] sunxi-spinand-phy: phy blk 235 is bad
[    1.895792] sunxi-spinand-phy: phy blk 237 is bad
[    1.901317] sunxi-spinand-phy: phy blk 239 is bad
[    1.906821] sunxi-spinand-phy: phy blk 241 is bad
[    1.912345] sunxi-spinand-phy: phy blk 243 is bad
[    1.917848] sunxi-spinand-phy: phy blk 245 is bad
[    1.923371] sunxi-spinand-phy: phy blk 247 is bad
[    1.928895] sunxi-spinand-phy: phy blk 249 is bad
[    1.934399] sunxi-spinand-phy: phy blk 251 is bad
[    1.939923] sunxi-spinand-phy: phy blk 253 is bad
[    1.945427] sunxi-spinand-phy: phy blk 255 is bad
[    1.950949] sunxi-spinand-phy: phy blk 257 is bad
[    1.956450] sunxi-spinand-phy: phy blk 259 is bad
[    1.961976] sunxi-spinand-phy: phy blk 261 is bad
[    1.967480] sunxi-spinand-phy: phy blk 263 is bad
[    1.973004] sunxi-spinand-phy: phy blk 265 is bad
[    1.978532] sunxi-spinand-phy: phy blk 267 is bad
[    1.984037] sunxi-spinand-phy: phy blk 269 is bad
[    1.989561] sunxi-spinand-phy: phy blk 271 is bad
[    1.995065] sunxi-spinand-phy: phy blk 273 is bad
[    2.000589] sunxi-spinand-phy: phy blk 275 is bad
[    2.006092] sunxi-spinand-phy: phy blk 277 is bad
[    2.011613] sunxi-spinand-phy: phy blk 279 is bad
[    2.017117] sunxi-spinand-phy: phy blk 281 is bad
[    2.022639] sunxi-spinand-phy: phy blk 283 is bad
[    2.028142] sunxi-spinand-phy: phy blk 285 is bad
[    2.033663] sunxi-spinand-phy: phy blk 287 is bad
[    2.039189] sunxi-spinand-phy: phy blk 289 is bad
[    2.044691] sunxi-spinand-phy: phy blk 291 is bad
[    2.050215] sunxi-spinand-phy: phy blk 293 is bad
[    2.055718] sunxi-spinand-phy: phy blk 295 is bad
[    2.061240] sunxi-spinand-phy: phy blk 297 is bad
[    2.066742] sunxi-spinand-phy: phy blk 299 is bad
[    2.072266] sunxi-spinand-phy: phy blk 301 is bad
[    2.077769] sunxi-spinand-phy: phy blk 303 is bad
[    2.083292] sunxi-spinand-phy: phy blk 305 is bad
[    2.088818] sunxi-spinand-phy: phy blk 307 is bad
[    2.094320] sunxi-spinand-phy: phy blk 309 is bad
[    2.099841] sunxi-spinand-phy: phy blk 311 is bad
[    2.105342] sunxi-spinand-phy: phy blk 313 is bad
[    2.110864] sunxi-spinand-phy: phy blk 315 is bad
[    2.116368] sunxi-spinand-phy: phy blk 317 is bad
[    2.121925] sunxi-spinand-phy: phy blk 319 is bad
[    2.127427] sunxi-spinand-phy: phy blk 321 is bad
[    2.132950] sunxi-spinand-phy: phy blk 323 is bad
[    2.138462] sunxi-spinand-phy: phy blk 325 is bad
[    2.143967] sunxi-spinand-phy: phy blk 327 is bad
[    2.149493] sunxi-spinand-phy: phy blk 329 is bad
[    2.154996] sunxi-spinand-phy: phy blk 331 is bad
[    2.160519] sunxi-spinand-phy: phy blk 333 is bad
[    2.166022] sunxi-spinand-phy: phy blk 335 is bad
[    2.171544] sunxi-spinand-phy: phy blk 337 is bad
[    2.177046] sunxi-spinand-phy: phy blk 339 is bad
[    2.182568] sunxi-spinand-phy: phy blk 341 is bad
[    2.188072] sunxi-spinand-phy: phy blk 343 is bad
[    2.193594] sunxi-spinand-phy: phy blk 345 is bad
[    2.199118] sunxi-spinand-phy: phy blk 347 is bad
[    2.204622] sunxi-spinand-phy: phy blk 349 is bad
[    2.210145] sunxi-spinand-phy: phy blk 351 is bad
[    2.215650] sunxi-spinand-phy: phy blk 353 is bad
[    2.221175] sunxi-spinand-phy: phy blk 355 is bad
[    2.226679] sunxi-spinand-phy: phy blk 357 is bad
[    2.232199] sunxi-spinand-phy: phy blk 359 is bad
[    2.237705] sunxi-spinand-phy: phy blk 361 is bad
[    2.243228] sunxi-spinand-phy: phy blk 363 is bad
[    2.248749] sunxi-spinand-phy: phy blk 365 is bad
[    2.254252] sunxi-spinand-phy: phy blk 367 is bad
[    2.259778] sunxi-spinand-phy: phy blk 369 is bad
[    2.265282] sunxi-spinand-phy: phy blk 371 is bad
[    2.270806] sunxi-spinand-phy: phy blk 373 is bad
[    2.276307] sunxi-spinand-phy: phy blk 375 is bad
[    2.281832] sunxi-spinand-phy: phy blk 377 is bad
[    2.287337] sunxi-spinand-phy: phy blk 379 is bad
[    2.292860] sunxi-spinand-phy: phy blk 381 is bad
[    2.298364] sunxi-spinand-phy: phy blk 383 is bad
[    2.303890] sunxi-spinand-phy: phy blk 385 is bad
[    2.309411] sunxi-spinand-phy: phy blk 387 is bad
[    2.314913] sunxi-spinand-phy: phy blk 389 is bad
[    2.320435] sunxi-spinand-phy: phy blk 391 is bad
[    2.325939] sunxi-spinand-phy: phy blk 393 is bad
[    2.331457] sunxi-spinand-phy: phy blk 395 is bad
[    2.336959] sunxi-spinand-phy: phy blk 397 is bad
[    2.342483] sunxi-spinand-phy: phy blk 399 is bad
[    2.347985] sunxi-spinand-phy: phy blk 401 is bad
[    2.353508] sunxi-spinand-phy: phy blk 403 is bad
[    2.359032] sunxi-spinand-phy: phy blk 405 is bad
[    2.364534] sunxi-spinand-phy: phy blk 407 is bad
[    2.370055] sunxi-spinand-phy: phy blk 409 is bad
[    2.375556] sunxi-spinand-phy: phy blk 411 is bad
[    2.381081] sunxi-spinand-phy: phy blk 413 is bad
[    2.386582] sunxi-spinand-phy: phy blk 415 is bad
[    2.392103] sunxi-spinand-phy: phy blk 417 is bad
[    2.397605] sunxi-spinand-phy: phy blk 419 is bad
[    2.403126] sunxi-spinand-phy: phy blk 421 is bad
[    2.408649] sunxi-spinand-phy: phy blk 423 is bad
[    2.414150] sunxi-spinand-phy: phy blk 425 is bad
[    2.419672] sunxi-spinand-phy: phy blk 427 is bad
[    2.425173] sunxi-spinand-phy: phy blk 429 is bad
[    2.430697] sunxi-spinand-phy: phy blk 431 is bad
[    2.436200] sunxi-spinand-phy: phy blk 433 is bad
[    2.441722] sunxi-spinand-phy: phy blk 435 is bad
[    2.447225] sunxi-spinand-phy: phy blk 437 is bad
[    2.452748] sunxi-spinand-phy: phy blk 439 is bad
[    2.458251] sunxi-spinand-phy: phy blk 441 is bad
[    2.463770] sunxi-spinand-phy: phy blk 443 is bad
[    2.469294] sunxi-spinand-phy: phy blk 445 is bad
[    2.474796] sunxi-spinand-phy: phy blk 447 is bad
[    2.480320] sunxi-spinand-phy: phy blk 449 is bad
[    2.485823] sunxi-spinand-phy: phy blk 451 is bad
[    2.491344] sunxi-spinand-phy: phy blk 453 is bad
[    2.496848] sunxi-spinand-phy: phy blk 455 is bad
[    2.502370] sunxi-spinand-phy: phy blk 457 is bad
[    2.507873] sunxi-spinand-phy: phy blk 459 is bad
[    2.513392] sunxi-spinand-phy: phy blk 461 is bad
[    2.518914] sunxi-spinand-phy: phy blk 463 is bad
[    2.524417] sunxi-spinand-phy: phy blk 465 is bad
[    2.529940] sunxi-spinand-phy: phy blk 467 is bad
[    2.535443] sunxi-spinand-phy: phy blk 469 is bad
[    2.540964] sunxi-spinand-phy: phy blk 471 is bad
[    2.546468] sunxi-spinand-phy: phy blk 473 is bad
[    2.551990] sunxi-spinand-phy: phy blk 475 is bad
[    2.557492] sunxi-spinand-phy: phy blk 477 is bad
[    2.563013] sunxi-spinand-phy: phy blk 479 is bad
[    2.568536] sunxi-spinand-phy: phy blk 481 is bad
[    2.574038] sunxi-spinand-phy: phy blk 483 is bad
[    2.579563] sunxi-spinand-phy: phy blk 485 is bad
[    2.585065] sunxi-spinand-phy: phy blk 487 is bad
[    2.590589] sunxi-spinand-phy: phy blk 489 is bad
[    2.596092] sunxi-spinand-phy: phy blk 491 is bad
[    2.601615] sunxi-spinand-phy: phy blk 493 is bad
[    2.607117] sunxi-spinand-phy: phy blk 495 is bad
[    2.612638] sunxi-spinand-phy: phy blk 497 is bad
[    2.618140] sunxi-spinand-phy: phy blk 499 is bad
[    2.623663] sunxi-spinand-phy: phy blk 501 is bad
[    2.629187] sunxi-spinand-phy: phy blk 503 is bad
[    2.634691] sunxi-spinand-phy: phy blk 505 is bad
[    2.640215] sunxi-spinand-phy: phy blk 507 is bad
[    2.645720] sunxi-spinand-phy: phy blk 509 is bad
[    2.651242] sunxi-spinand-phy: phy blk 511 is bad
[    2.656746] sunxi-spinand-phy: phy blk 513 is bad
[    2.662267] sunxi-spinand-phy: phy blk 515 is bad
[    2.667771] sunxi-spinand-phy: phy blk 517 is bad
[    2.673292] sunxi-spinand-phy: phy blk 519 is bad
[    2.678820] sunxi-spinand-phy: phy blk 521 is bad
[    2.684323] sunxi-spinand-phy: phy blk 523 is bad
[    2.689846] sunxi-spinand-phy: phy blk 525 is bad
[    2.695350] sunxi-spinand-phy: phy blk 527 is bad
[    2.700873] sunxi-spinand-phy: phy blk 529 is bad
[    2.706378] sunxi-spinand-phy: phy blk 531 is bad
[    2.711899] sunxi-spinand-phy: phy blk 533 is bad
[    2.717402] sunxi-spinand-phy: phy blk 535 is bad
[    2.722925] sunxi-spinand-phy: phy blk 537 is bad
[    2.728447] sunxi-spinand-phy: phy blk 539 is bad
[    2.733953] sunxi-spinand-phy: phy blk 541 is bad
[    2.739478] sunxi-spinand-phy: phy blk 543 is bad
[    2.744982] sunxi-spinand-phy: phy blk 545 is bad
[    2.750508] sunxi-spinand-phy: phy blk 547 is bad
[    2.756009] sunxi-spinand-phy: phy blk 549 is bad
[    2.761530] sunxi-spinand-phy: phy blk 551 is bad
[    2.767034] sunxi-spinand-phy: phy blk 553 is bad
[    2.772558] sunxi-spinand-phy: phy blk 555 is bad
[    2.778062] sunxi-spinand-phy: phy blk 557 is bad
[    2.783590] sunxi-spinand-phy: phy blk 559 is bad
[    2.789114] sunxi-spinand-phy: phy blk 561 is bad
[    2.794619] sunxi-spinand-phy: phy blk 563 is bad
[    2.800142] sunxi-spinand-phy: phy blk 565 is bad
[    2.805646] sunxi-spinand-phy: phy blk 567 is bad
[    2.811166] sunxi-spinand-phy: phy blk 569 is bad
[    2.816671] sunxi-spinand-phy: phy blk 571 is bad
[    2.822195] sunxi-spinand-phy: phy blk 573 is bad
[    2.827698] sunxi-spinand-phy: phy blk 575 is bad
[    2.833222] sunxi-spinand-phy: phy blk 577 is bad
[    2.838744] sunxi-spinand-phy: phy blk 579 is bad
[    2.844248] sunxi-spinand-phy: phy blk 581 is bad
[    2.849772] sunxi-spinand-phy: phy blk 583 is bad
[    2.855274] sunxi-spinand-phy: phy blk 585 is bad
[    2.860793] sunxi-spinand-phy: phy blk 587 is bad
[    2.866296] sunxi-spinand-phy: phy blk 589 is bad
[    2.871820] sunxi-spinand-phy: phy blk 591 is bad
[    2.877324] sunxi-spinand-phy: phy blk 593 is bad
[    2.882850] sunxi-spinand-phy: phy blk 595 is bad
[    2.888354] sunxi-spinand-phy: phy blk 597 is bad
[    2.893877] sunxi-spinand-phy: phy blk 599 is bad
[    2.899404] sunxi-spinand-phy: phy blk 601 is bad
[    2.904906] sunxi-spinand-phy: phy blk 603 is bad
[    2.910429] sunxi-spinand-phy: phy blk 605 is bad
[    2.915933] sunxi-spinand-phy: phy blk 607 is bad
[    2.921458] sunxi-spinand-phy: phy blk 609 is bad
[    2.926961] sunxi-spinand-phy: phy blk 611 is bad
[    2.932484] sunxi-spinand-phy: phy blk 613 is bad
[    2.937985] sunxi-spinand-phy: phy blk 615 is bad
[    2.943507] sunxi-spinand-phy: phy blk 617 is bad
[    2.949027] sunxi-spinand-phy: phy blk 619 is bad
[    2.954527] sunxi-spinand-phy: phy blk 621 is bad
[    2.960048] sunxi-spinand-phy: phy blk 623 is bad
[    2.965550] sunxi-spinand-phy: phy blk 625 is bad
[    2.971073] sunxi-spinand-phy: phy blk 627 is bad
[    2.976575] sunxi-spinand-phy: phy blk 629 is bad
[    2.982102] sunxi-spinand-phy: phy blk 631 is bad
[    2.987605] sunxi-spinand-phy: phy blk 633 is bad
[    2.993128] sunxi-spinand-phy: phy blk 635 is bad
[    2.998651] sunxi-spinand-phy: phy blk 637 is bad
[    3.004152] sunxi-spinand-phy: phy blk 639 is bad
[    3.009674] sunxi-spinand-phy: phy blk 641 is bad
[    3.015176] sunxi-spinand-phy: phy blk 643 is bad
[    3.020697] sunxi-spinand-phy: phy blk 645 is bad
[    3.026200] sunxi-spinand-phy: phy blk 647 is bad
[    3.031725] sunxi-spinand-phy: phy blk 649 is bad
[    3.037226] sunxi-spinand-phy: phy blk 651 is bad
[    3.042748] sunxi-spinand-phy: phy blk 653 is bad
[    3.048250] sunxi-spinand-phy: phy blk 655 is bad
[    3.053774] sunxi-spinand-phy: phy blk 657 is bad
[    3.059295] sunxi-spinand-phy: phy blk 659 is bad
[    3.064797] sunxi-spinand-phy: phy blk 661 is bad
[    3.070318] sunxi-spinand-phy: phy blk 663 is bad
[    3.075820] sunxi-spinand-phy: phy blk 665 is bad
[    3.081367] sunxi-spinand-phy: phy blk 667 is bad
[    3.086869] sunxi-spinand-phy: phy blk 669 is bad
[    3.092393] sunxi-spinand-phy: phy blk 671 is bad
[    3.097895] sunxi-spinand-phy: phy blk 673 is bad
[    3.103418] sunxi-spinand-phy: phy blk 675 is bad
[    3.108938] sunxi-spinand-phy: phy blk 677 is bad
[    3.114440] sunxi-spinand-phy: phy blk 679 is bad
[    3.119962] sunxi-spinand-phy: phy blk 681 is bad
[    3.125464] sunxi-spinand-phy: phy blk 683 is bad
[    3.130987] sunxi-spinand-phy: phy blk 685 is bad
[    3.136488] sunxi-spinand-phy: phy blk 687 is bad
[    3.142009] sunxi-spinand-phy: phy blk 689 is bad
[    3.147510] sunxi-spinand-phy: phy blk 691 is bad
[    3.153033] sunxi-spinand-phy: phy blk 693 is bad
[    3.158534] sunxi-spinand-phy: phy blk 695 is bad
[    3.164036] sunxi-spinand-phy: phy blk 697 is bad
[    3.169559] sunxi-spinand-phy: phy blk 699 is bad
[    3.175059] sunxi-spinand-phy: phy blk 701 is bad
[    3.180586] sunxi-spinand-phy: phy blk 703 is bad
[    3.186088] sunxi-spinand-phy: phy blk 705 is bad
[    3.191608] sunxi-spinand-phy: phy blk 707 is bad
[    3.197110] sunxi-spinand-phy: phy blk 709 is bad
[    3.202632] sunxi-spinand-phy: phy blk 711 is bad
[    3.208133] sunxi-spinand-phy: phy blk 713 is bad
[    3.213652] sunxi-spinand-phy: phy blk 715 is bad
[    3.219175] sunxi-spinand-phy: phy blk 717 is bad
[    3.224676] sunxi-spinand-phy: phy blk 719 is bad
[    3.230198] sunxi-spinand-phy: phy blk 721 is bad
[    3.235700] sunxi-spinand-phy: phy blk 723 is bad
[    3.241222] sunxi-spinand-phy: phy blk 725 is bad
[    3.246724] sunxi-spinand-phy: phy blk 727 is bad
[    3.252246] sunxi-spinand-phy: phy blk 729 is bad
[    3.257747] sunxi-spinand-phy: phy blk 731 is bad
[    3.263266] sunxi-spinand-phy: phy blk 733 is bad
[    3.268788] sunxi-spinand-phy: phy blk 735 is bad
[    3.274289] sunxi-spinand-phy: phy blk 737 is bad
[    3.279814] sunxi-spinand-phy: phy blk 739 is bad
[    3.285318] sunxi-spinand-phy: phy blk 741 is bad
[    3.290840] sunxi-spinand-phy: phy blk 743 is bad
[    3.296341] sunxi-spinand-phy: phy blk 745 is bad
[    3.301863] sunxi-spinand-phy: phy blk 747 is bad
[    3.307364] sunxi-spinand-phy: phy blk 749 is bad
[    3.312884] sunxi-spinand-phy: phy blk 751 is bad
[    3.318383] sunxi-spinand-phy: phy blk 753 is bad
[    3.323904] sunxi-spinand-phy: phy blk 755 is bad
[    3.329427] sunxi-spinand-phy: phy blk 757 is bad
[    3.334927] sunxi-spinand-phy: phy blk 759 is bad
[    3.340448] sunxi-spinand-phy: phy blk 761 is bad
[    3.345950] sunxi-spinand-phy: phy blk 763 is bad
[    3.351473] sunxi-spinand-phy: phy blk 765 is bad
[    3.356974] sunxi-spinand-phy: phy blk 767 is bad
[    3.362494] sunxi-spinand-phy: phy blk 769 is bad
[    3.367996] sunxi-spinand-phy: phy blk 771 is bad
[    3.373517] sunxi-spinand-phy: phy blk 773 is bad
[    3.379041] sunxi-spinand-phy: phy blk 775 is bad
[    3.384542] sunxi-spinand-phy: phy blk 777 is bad
[    3.390065] sunxi-spinand-phy: phy blk 779 is bad
[    3.395567] sunxi-spinand-phy: phy blk 781 is bad
[    3.401089] sunxi-spinand-phy: phy blk 783 is bad
[    3.406590] sunxi-spinand-phy: phy blk 785 is bad
[    3.412109] sunxi-spinand-phy: phy blk 787 is bad
[    3.417610] sunxi-spinand-phy: phy blk 789 is bad
[    3.423131] sunxi-spinand-phy: phy blk 791 is bad
[    3.428652] sunxi-spinand-phy: phy blk 793 is bad
[    3.434155] sunxi-spinand-phy: phy blk 795 is bad
[    3.439676] sunxi-spinand-phy: phy blk 797 is bad
[    3.445176] sunxi-spinand-phy: phy blk 799 is bad
[    3.450697] sunxi-spinand-phy: phy blk 801 is bad
[    3.456200] sunxi-spinand-phy: phy blk 803 is bad
[    3.461720] sunxi-spinand-phy: phy blk 805 is bad
[    3.467221] sunxi-spinand-phy: phy blk 807 is bad
[    3.472742] sunxi-spinand-phy: phy blk 809 is bad
[    3.478244] sunxi-spinand-phy: phy blk 811 is bad
[    3.483769] sunxi-spinand-phy: phy blk 813 is bad
[    3.489291] sunxi-spinand-phy: phy blk 815 is bad
[    3.494793] sunxi-spinand-phy: phy blk 817 is bad
[    3.500316] sunxi-spinand-phy: phy blk 819 is bad
[    3.505818] sunxi-spinand-phy: phy blk 821 is bad
[    3.511336] sunxi-spinand-phy: phy blk 823 is bad
[    3.516837] sunxi-spinand-phy: phy blk 825 is bad
[    3.522359] sunxi-spinand-phy: phy blk 827 is bad
[    3.527861] sunxi-spinand-phy: phy blk 829 is bad
[    3.533383] sunxi-spinand-phy: phy blk 831 is bad
[    3.538903] sunxi-spinand-phy: phy blk 833 is bad
[    3.544404] sunxi-spinand-phy: phy blk 835 is bad
[    3.549925] sunxi-spinand-phy: phy blk 837 is bad
[    3.555428] sunxi-spinand-phy: phy blk 839 is bad
[    3.560945] sunxi-spinand-phy: phy blk 841 is bad
[    3.566447] sunxi-spinand-phy: phy blk 843 is bad
[    3.571969] sunxi-spinand-phy: phy blk 845 is bad
[    3.577470] sunxi-spinand-phy: phy blk 847 is bad
[    3.582994] sunxi-spinand-phy: phy blk 849 is bad
[    3.588519] sunxi-spinand-phy: phy blk 851 is bad
[    3.594021] sunxi-spinand-phy: phy blk 853 is bad
[    3.599540] sunxi-spinand-phy: phy blk 855 is bad
[    3.605041] sunxi-spinand-phy: phy blk 857 is bad
[    3.610560] sunxi-spinand-phy: phy blk 859 is bad
[    3.616060] sunxi-spinand-phy: phy blk 861 is bad
[    3.621582] sunxi-spinand-phy: phy blk 863 is bad
[    3.627085] sunxi-spinand-phy: phy blk 865 is bad
[    3.632606] sunxi-spinand-phy: phy blk 867 is bad
[    3.638107] sunxi-spinand-phy: phy blk 869 is bad
[    3.643625] sunxi-spinand-phy: phy blk 871 is bad
[    3.649148] sunxi-spinand-phy: phy blk 873 is bad
[    3.654650] sunxi-spinand-phy: phy blk 875 is bad
[    3.660169] sunxi-spinand-phy: phy blk 877 is bad
[    3.665669] sunxi-spinand-phy: phy blk 879 is bad
[    3.671191] sunxi-spinand-phy: phy blk 881 is bad
[    3.676694] sunxi-spinand-phy: phy blk 883 is bad
[    3.682218] sunxi-spinand-phy: phy blk 885 is bad
[    3.687718] sunxi-spinand-phy: phy blk 887 is bad
[    3.693237] sunxi-spinand-phy: phy blk 889 is bad
[    3.698758] sunxi-spinand-phy: phy blk 891 is bad
[    3.704259] sunxi-spinand-phy: phy blk 893 is bad
[    3.709780] sunxi-spinand-phy: phy blk 895 is bad
[    3.715282] sunxi-spinand-phy: phy blk 897 is bad
[    3.720803] sunxi-spinand-phy: phy blk 899 is bad
[    3.726305] sunxi-spinand-phy: phy blk 901 is bad
[    3.731827] sunxi-spinand-phy: phy blk 903 is bad
[    3.737328] sunxi-spinand-phy: phy blk 905 is bad
[    3.742844] sunxi-spinand-phy: phy blk 907 is bad
[    3.748345] sunxi-spinand-phy: phy blk 909 is bad
[    3.753864] sunxi-spinand-phy: phy blk 911 is bad
[    3.759386] sunxi-spinand-phy: phy blk 913 is bad
[    3.764887] sunxi-spinand-phy: phy blk 915 is bad
[    3.770408] sunxi-spinand-phy: phy blk 917 is bad
[    3.775910] sunxi-spinand-phy: phy blk 919 is bad
[    3.781435] sunxi-spinand-phy: phy blk 921 is bad
[    3.786935] sunxi-spinand-phy: phy blk 923 is bad
[    3.792454] sunxi-spinand-phy: phy blk 925 is bad
[    3.797956] sunxi-spinand-phy: phy blk 927 is bad
[    3.803479] sunxi-spinand-phy: phy blk 929 is bad
[    3.809001] sunxi-spinand-phy: phy blk 931 is bad
[    3.814502] sunxi-spinand-phy: phy blk 933 is bad
[    3.820024] sunxi-spinand-phy: phy blk 935 is bad
[    3.825525] sunxi-spinand-phy: phy blk 937 is bad
[    3.831046] sunxi-spinand-phy: phy blk 939 is bad
[    3.836546] sunxi-spinand-phy: phy blk 941 is bad
[    3.842066] sunxi-spinand-phy: phy blk 943 is bad
[    3.847567] sunxi-spinand-phy: phy blk 945 is bad
[    3.853089] sunxi-spinand-phy: phy blk 947 is bad
[    3.858575] sunxi-spinand-phy: phy blk 949 is bad
[    3.864079] sunxi-spinand-phy: phy blk 951 is bad
[    3.869599] sunxi-spinand-phy: phy blk 953 is bad
[    3.875100] sunxi-spinand-phy: phy blk 955 is bad
[    3.880623] sunxi-spinand-phy: phy blk 957 is bad
[    3.886127] sunxi-spinand-phy: phy blk 959 is bad
[    3.891645] sunxi-spinand-phy: phy blk 961 is bad
[    3.897145] sunxi-spinand-phy: phy blk 963 is bad
[    3.902667] sunxi-spinand-phy: phy blk 965 is bad
[    3.908170] sunxi-spinand-phy: phy blk 967 is bad
[    3.913690] sunxi-spinand-phy: phy blk 969 is bad
[    3.919212] sunxi-spinand-phy: phy blk 971 is bad
[    3.924714] sunxi-spinand-phy: phy blk 973 is bad
[    3.930237] sunxi-spinand-phy: phy blk 975 is bad
[    3.935738] sunxi-spinand-phy: phy blk 977 is bad
[    3.941279] sunxi-spinand-phy: phy blk 979 is bad
[    3.946781] sunxi-spinand-phy: phy blk 981 is bad
[    3.952304] sunxi-spinand-phy: phy blk 983 is bad
[    3.957801] sunxi-spinand-phy: phy blk 985 is bad
[    3.963325] sunxi-spinand-phy: phy blk 987 is bad
[    3.968847] sunxi-spinand-phy: phy blk 989 is bad
[    3.974348] sunxi-spinand-phy: phy blk 991 is bad
[    3.979873] sunxi-spinand-phy: phy blk 993 is bad
[    3.985374] sunxi-spinand-phy: phy blk 995 is bad
[    3.990897] sunxi-spinand-phy: phy blk 997 is bad
[    3.996401] sunxi-spinand-phy: phy blk 999 is bad
[    4.001923] sunxi-spinand-phy: phy blk 1001 is bad
[    4.007521] sunxi-spinand-phy: phy blk 1003 is bad
[    4.013141] sunxi-spinand-phy: phy blk 1005 is bad
[    4.018760] sunxi-spinand-phy: phy blk 1007 is bad
[    4.024357] sunxi-spinand-phy: phy blk 1009 is bad
[    4.029976] sunxi-spinand-phy: phy blk 1011 is bad
[    4.035575] sunxi-spinand-phy: phy blk 1013 is bad
[    4.041189] sunxi-spinand-phy: phy blk 1015 is bad
[    4.046786] sunxi-spinand-phy: phy blk 1017 is bad
[    4.052405] sunxi-spinand-phy: phy blk 1019 is bad
[    4.058003] sunxi-spinand-phy: phy blk 1021 is bad
[    4.063624] sunxi-spinand-phy: phy blk 1023 is bad
[    4.080333] libphy: Fixed MDIO Bus: probed
[    4.084941] CAN device driver interface
[    4.089851] sunxi-can can@0x0 (unnamed net_device) (uninitialized): request pinctrl handle fail!
[    4.100486] sunxi-can can@0x0: can driver probe ok ...
[    4.106590] sunxi-can can@0x1 (unnamed net_device) (uninitialized): request pinctrl handle fail!
[    4.117134] sunxi-can can@0x1: can driver probe ok ...
[    4.123882] sun8iw20-pinctrl pio: pio supply vcc-pe not found, using dummy regulator
[    4.133125] gmac-power0: NULL
[    4.136457] gmac-power1: NULL
[    4.139814] gmac-power2: NULL
[    4.144331] Failed to alloc md5
[    4.147867] eth0: Use random mac address
[    4.152925] usbcore: registered new interface driver asix
[    4.159143] usbcore: registered new interface driver ax88179_178a
[    4.166045] usbcore: registered new interface driver cdc_ether
[    4.172696] usbcore: registered new interface driver net1080
[    4.179138] usbcore: registered new interface driver cdc_subset
[    4.185841] usbcore: registered new interface driver zaurus
[    4.192223] usbcore: registered new interface driver cdc_ncm
[    4.198597] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    4.205918] sunxi-ehci: EHCI SUNXI driver
[    4.210931] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    4.217895] sunxi-ohci: OHCI SUNXI driver
[    4.223113] usbcore: registered new interface driver uas
[    4.229224] usbcore: registered new interface driver usb-storage
[    4.236023] usbcore: registered new interface driver ums-alauda
[    4.242889] usbcore: registered new interface driver ums-cypress
[    4.249734] usbcore: registered new interface driver ums-datafab
[    4.256547] usbcore: registered new interface driver ums_eneub6250
[    4.263571] usbcore: registered new interface driver ums-freecom
[    4.270392] usbcore: registered new interface driver ums-isd200
[    4.277092] usbcore: registered new interface driver ums-jumpshot
[    4.284022] usbcore: registered new interface driver ums-karma
[    4.290650] usbcore: registered new interface driver ums-onetouch
[    4.297579] usbcore: registered new interface driver ums-realtek
[    4.304397] usbcore: registered new interface driver ums-sddr09
[    4.311124] usbcore: registered new interface driver ums-sddr55
[    4.317818] usbcore: registered new interface driver ums-usbat
[    4.325481] input: sunxi-ts as /devices/platform/soc@3000000/2009c00.rtp/input/input1
[    4.335437] sunxi-rtc 7090000.rtc: errata__fix_alarm_day_reg_default_value(): ALARM0_DAY_REG=0, set it to 1
[    4.347673] sunxi-rtc 7090000.rtc: registered as rtc0
[    4.353530] sunxi-rtc 7090000.rtc: setting system clock to 1970-01-01T00:00:08 UTC (8)
[    4.362479] sunxi-rtc 7090000.rtc: sunxi rtc probed
[    4.368605] i2c /dev entries driver
[    4.372802] IR NEC protocol handler initialized
[    4.377887] IR RC5(x/sz) protocol handler initialized
[    4.384269] [VIN_WARN]sensor_helper_probe: cannot get sensor0_cameravdd supply, setting it to NULL!
[    4.394463] [VIN_WARN]sensor_helper_probe: cannot get sensor0_iovdd supply, setting it to NULL!
[    4.404248] [VIN_WARN]sensor_helper_probe: cannot get sensor0_avdd supply, setting it to NULL!
[    4.413935] [VIN_WARN]sensor_helper_probe: cannot get sensor0_dvdd supply, setting it to NULL!
[    4.425791] usbcore: registered new interface driver uvcvideo
[    4.432273] USB Video Class driver (1.1.1)
[    4.436867] gspca_main: v2.14.0 registered
[    4.441472] sunxi cedar version 1.1
[    4.445608] sunxi-cedar 1c0e000.ve: Adding to iommu group 0
[    4.451963] VE: sunxi_cedar_probe power-domain init!!!
[    4.457725] VE: install start!!!
[    4.457725]
[    4.463331] VE: cedar-ve the get irq is 43
[    4.463331]
[    4.469850] VE: ve_debug_proc_info:(ptrval), data:(ptrval), lock:(ptrval)
[    4.469850]
[    4.479157] VE: install end!!!
[    4.479157]
[    4.484238] VE: sunxi_cedar_probe
[    4.489529] sunxi-wdt 20500a0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[    4.498823] Bluetooth: HCI UART driver ver 2.3
[    4.503816] Bluetooth: HCI UART protocol H4 registered
[    4.509892] Bluetooth: XRadio Bluetooth LPM Mode Driver Ver 1.0.10
[    4.517175] [XR_BT_LPM] bluesleep_probe: bt_wake polarity: 1
[    4.523697] [XR_BT_LPM] bluesleep_probe: host_wake polarity: 1
[    4.530292] [XR_BT_LPM] bluesleep_probe: wakeup source is disabled!
[    4.530292]
[    4.539044] [XR_BT_LPM] bluesleep_probe: uart_index(1)
[    4.548479] sunxi-mmc 4020000.sdmmc: SD/MMC/SDIO Host Controller Driver(v4.25 2022-6-21 13:40)
[    4.558500] sunxi-mmc 4020000.sdmmc: ***ctl-spec-caps*** 8
[    4.564718] sunxi-mmc 4020000.sdmmc: No vmmc regulator found
[    4.571092] sunxi-mmc 4020000.sdmmc: No vqmmc regulator found
[    4.577555] sunxi-mmc 4020000.sdmmc: No vdmmc regulator found
[    4.584027] sunxi-mmc 4020000.sdmmc: No vd33sw regulator found
[    4.590597] sunxi-mmc 4020000.sdmmc: No vd18sw regulator found
[    4.597143] sunxi-mmc 4020000.sdmmc: No vq33sw regulator found
[    4.603701] sunxi-mmc 4020000.sdmmc: No vq18sw regulator found
[    4.610799] sunxi-mmc 4020000.sdmmc: Got CD GPIO
[    4.616517] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
[    4.627792] sunxi-mmc 4020000.sdmmc: no vqmmc,Check if there is regulator
[    4.647966] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[    4.672246] sunxi-mmc 4020000.sdmmc: detmode:gpio polling
[    4.678345] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B
[    4.690081] sunxi-mmc 4021000.sdmmc: SD/MMC/SDIO Host Controller Driver(v4.25 2022-6-21 13:40)
[    4.700023] sunxi-mmc 4021000.sdmmc: ***ctl-spec-caps*** 8
[    4.706238] sunxi-mmc 4021000.sdmmc: No vmmc regulator found
[    4.712611] sunxi-mmc 4021000.sdmmc: No vqmmc regulator found
[    4.719070] sunxi-mmc 4021000.sdmmc: No vdmmc regulator found
[    4.725515] sunxi-mmc 4021000.sdmmc: No vd33sw regulator found
[    4.732068] sunxi-mmc 4021000.sdmmc: No vd18sw regulator found
[    4.738624] sunxi-mmc 4021000.sdmmc: No vq33sw regulator found
[    4.745169] sunxi-mmc 4021000.sdmmc: No vq18sw regulator found
[    4.751749] sunxi-mmc 4021000.sdmmc: Cann't get pin bias hs pinstate,check if needed
[    4.761261] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
[    4.772461] sunxi-mmc 4021000.sdmmc: no vqmmc,Check if there is regulator
[    4.792625] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[    4.816886] sunxi-mmc 4021000.sdmmc: detmode:manually by software
[    4.824586] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 52, RTO !!
[    4.824924] usbcore: registered new interface driver usbhid
[    4.837747] usbhid: USB HID core driver
[    4.838554] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 52, RTO !!
[    4.842082] exFAT: Version 1.3.0
[    4.852527] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[    4.859050] sunxi-msgbox 3003000.msgbox: sunxi msgbox driver probe ...
[    4.871853] sunxi-msgbox 3003000.msgbox: sunxi msgbox driver init ok...
[    4.872787] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[    4.880172] sunxi-rproc 3000008.dsp_rproc: sunxi rproc driver 2.1.2
[    4.898015] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 5, RTO !!
[    4.904808] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 5, RTO !!
[    4.911578] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 5, RTO !!
[    4.918372] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 5, RTO !!
[    4.918401] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B
[    4.925195] sunxi-rproc 3000008.dsp_rproc: failed to get firmware-name
[    4.944151] remoteproc remoteproc0: dsp_rproc is available
[    4.950418] sunxi-rproc 3000008.dsp_rproc: sunxi rproc driver probe ok
[    4.958891] sunxi-rpbuf-controller rpbuf_controller@0: assigned reserved memory node dsp0_rpbuf@42244000
[    4.969826] sunxi-rpbuf-controller rpbuf_controller@0: rpbuf_register_ctrl_dev:827
[    4.982409] [AUDIOCODEC][sunxi_codec_parse_params][2437]:digital_vol:0, lineout_vol:26, mic1gain:31, mic2gain:31 pa_msleep:120, pa_level:1, pa_pwr_level:1
[    4.982409]
[    4.999667] [AUDIOCODEC][sunxi_codec_parse_params][2473]:adcdrc_cfg:0, adchpf_cfg:1, dacdrc_cfg:0, dachpf:0
[    5.011120] [AUDIOCODEC][sunxi_internal_codec_probe][2634]:codec probe finished
[    5.020565] debugfs: Directory '203034c.dummy_cpudai' with parent 'audiocodec' already present!
[    5.030459] [SNDCODEC][sunxi_card_init][583]:card init finished
[    5.037770] sunxi-codec-machine 2030340.sound: 2030000.codec <-> 203034c.dummy_cpudai mapping ok
[    5.049008] input: audiocodec sunxi Audio Jack as /devices/platform/soc@3000000/2030340.sound/sound/card0/input2
[    5.061223] [SNDCODEC][sunxi_card_dev_probe][836]:register card finished
[    5.070161] NET: Registered protocol family 10
[    5.076364] Segment Routing with IPv6
[    5.080706] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    5.088483] [SNDCODEC][sunxi_hs_init_work][259]:resume-->report switch
[    5.089431] NET: Registered protocol family 17
[    5.100965] NET: Registered protocol family 15
[    5.105951] can: controller area network core (rev 20170425 abi 9)
[    5.113023] NET: Registered protocol family 29
[    5.118016] can: raw protocol (rev 20170425)
[    5.122830] can: broadcast manager protocol (rev 20170425 t)
[    5.129201] can: netlink gateway (rev 20190810) max_hops=1
[    5.135804] Bluetooth: RFCOMM TTY layer initialized
[    5.141342] Bluetooth: RFCOMM socket layer initialized
[    5.147135] Bluetooth: RFCOMM ver 1.11
[    5.152355] Registering SWP/SWPB emulation handler
[    5.158109] Loading compiled-in X.509 certificates
[    5.182638] sunxi-i2c 2502800.twi: 2502800.twi supply twi not found, using dummy regulator
[    5.193487] sunxi-i2c 2502800.twi: probe success
[    5.200687] sunxi-thermal 2009400.ths: sun8iw20 cp version:15
[    5.239937] get drvvbus-en is fail, 22
[    5.244145] get ehci0-controller wakeup-source is fail.
[    5.250190] sunxi ehci0-controller don't init wakeup source
[    5.256442] [sunxi-ehci0]: probe, pdev->name: 4101000.ehci0-controller, sunxi_ehci: 0xc0c94ca0, 0x:f16e3000, irq_no:3b
[    5.268469] [sunxi-ehci0]: Not init ehci0
[    5.273380] get drvvbus-en is fail, 22
[    5.277585] get ohci0-controller wakeup-source is fail.
[    5.283591] sunxi ohci0-controller don't init wakeup source
[    5.289863] [sunxi-ohci0]: probe, pdev->name: 4101400.ohci0-controller, sunxi_ohci: 0xc0c94f50
[    5.299528] [sunxi-ohci0]: Not init ohci0
[    5.304421] get drvvbus-en is fail, 22
[    5.308653] get ehci1-controller wakeup-source is fail.
[    5.314608] sunxi ehci1-controller don't init wakeup source
[    5.320878] [sunxi-ehci1]: probe, pdev->name: 4200000.ehci1-controller, sunxi_ehci: 0xc0c95200, 0x:f16ed000, irq_no:3d
[    5.333124] sunxi-ehci 4200000.ehci1-controller: 4200000.ehci1-controller supply hci not found, using dummy regulator
[    5.346583] sunxi-ehci 4200000.ehci1-controller: EHCI Host Controller
[    5.353863] sunxi-ehci 4200000.ehci1-controller: new USB bus registered, assigned bus number 1
[    5.363776] sunxi-ehci 4200000.ehci1-controller: irq 61, io mem 0x04200000
[    5.398439] sunxi-ehci 4200000.ehci1-controller: USB 2.0 started, EHCI 1.00
[    5.407168] hub 1-0:1.0: USB hub found
[    5.411445] hub 1-0:1.0: 1 port detected
[    5.416708] get drvvbus-en is fail, 22
[    5.420942] get ohci1-controller wakeup-source is fail.
[    5.426915] sunxi ohci1-controller don't init wakeup source
[    5.433180] [sunxi-ohci1]: probe, pdev->name: 4200400.ohci1-controller, sunxi_ohci: 0xc0c954b0
[    5.443092] sunxi-ohci 4200400.ohci1-controller: 4200400.ohci1-controller supply hci not found, using dummy regulator
[    5.455432] sunxi-ohci 4200400.ohci1-controller: OHCI Host Controller
[    5.462705] sunxi-ohci 4200400.ohci1-controller: new USB bus registered, assigned bus number 2
[    5.472611] sunxi-ohci 4200400.ohci1-controller: irq 62, io mem 0x04200400
[    5.553284] hub 2-0:1.0: USB hub found
[    5.557532] hub 2-0:1.0: 1 port detected
[    5.563985] ubi0: attaching mtd3
[    5.568080] ubi0: scanning is finished
[    5.572333] ubi0: empty MTD device detected
[    5.577090] ubi0 error: ubi_early_get_peb: no free eraseblocks
[    5.583707] ubi0 error: ubi_attach_mtd_dev: failed to attach mtd3, error -28
[    5.591653] UBI error: cannot attach mtd3
[    5.596150] UBI: block: can't open volume on ubi0_-1, err=-19
[    5.603123] otg manager soc@3000000:usbc0@0: soc@3000000:usbc0@0 supply usbc not found, using dummy regulator
[    5.620212] sunxi-vin-core 5809000.vinc: Adding to iommu group 0
[    5.627809] sunxi-vin-core 5809200.vinc: Adding to iommu group 0
[    5.636014] sun8iw20-pinctrl pio: pin PE13 already requested by 4500000.eth; cannot claim for pio:141
[    5.646393] sun8iw20-pinctrl pio: pin-141 (pio:141) status -22
[    5.653290] [VIN_WARN]get csi isp clk fail
[    5.657884] [VIN_WARN]get csi isp src clk fail
[    5.662895] [VIN_WARN]get csi mipi clk fail
[    5.667583] [VIN_WARN]get csi mipi src clk fail
[    5.672848] [VIN_WARN]get csi isp mbus clk fail
[    5.677939] [VIN_WARN]Get isp reset control fail
[    5.683344] [VIN_ERR]n5 request i2c1 adapter failed!
[    5.692014] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    5.700784] [SNDCODEC][sunxi_check_hs_detect_status][191]:plugin --> switch:3
[    5.710974] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    5.718482] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    5.728140] cfg80211: failed to load regulatory.db
[    5.728567] clk: Not disabling unused clocks
[    5.738392] ALSA device list:
[    5.741789]   #0: audiocodec
[    5.745023] alloc_fd: slot 0 not NULL!
[    5.749614] /dev/root: Can't open blockdev
[    5.754234] VFS: Cannot open root device "ubiblock0_5" or unknown-block(0,0): error -6
[    5.763131] Please append a correct "root=" boot option; here are the available partitions:
[    5.772519] 1f00            1024 mtdblock0
[    5.772522]  (driver?)
[    5.779858] 1f01            3072 mtdblock1
[    5.779860]  (driver?)
[    5.787189] 1f02            1024 mtdblock2
[    5.787192]  (driver?)
[    5.794518] 1f03          125952 mtdblock3
[    5.794520]  (driver?)
[    5.801861] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    5.811126] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.4.61 #14
[    5.817853] Hardware name: Generic DT based system
[    5.823240] [<c010e2f8>] (unwind_backtrace) from [<c010a8bc>] (show_stack+0x10/0x14)
[    5.831924] [<c010a8bc>] (show_stack) from [<c0795ab0>] (dump_stack+0x7c/0x98)
[    5.840024] [<c0795ab0>] (dump_stack) from [<c0119d2c>] (panic+0x104/0x3dc)
[    5.847833] [<c0119d2c>] (panic) from [<c0b01278>] (mount_block_root+0x258/0x300)
[    5.856224] [<c0b01278>] (mount_block_root) from [<c0b014bc>] (prepare_namespace+0x118/0x178)
[    5.865782] [<c0b014bc>] (prepare_namespace) from [<c07aa194>] (kernel_init+0x8/0x118)
[    5.874659] [<c07aa194>] (kernel_init) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
[    5.883140] Exception stack(0xef079fb0 to 0xef079ff8)
[    5.888799] 9fa0:                                     00000000 00000000 00000000 00000000
[    5.897965] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    5.907130] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    5.914548] CPU1: stopping
[    5.917580] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.4.61 #14
[    5.924307] Hardware name: Generic DT based system
[    5.929680] [<c010e2f8>] (unwind_backtrace) from [<c010a8bc>] (show_stack+0x10/0x14)
[    5.938361] [<c010a8bc>] (show_stack) from [<c0795ab0>] (dump_stack+0x7c/0x98)
[    5.946458] [<c0795ab0>] (dump_stack) from [<c010c6b0>] (handle_IPI+0xc0/0x168)
[    5.954654] [<c010c6b0>] (handle_IPI) from [<c03a7134>] (gic_handle_irq+0x70/0x78)
[    5.963141] [<c03a7134>] (gic_handle_irq) from [<c01021cc>] (__irq_svc+0x6c/0xa8)
[    5.971525] Exception stack(0xef09bf80 to 0xef09bfc8)
[    5.977186] bf80: 00002f18 ef7c8574 00000000 c0115280 00000002 ef09a000 c0c03e28 c0c03e64
[    5.986353] bfa0: 4000406a 410fc075 00000000 00000000 c0c79830 ef09bfd0 c0107fd8 c0107fdc
[    5.995516] bfc0: 60000113 ffffffff
[    5.999427] [<c01021cc>] (__irq_svc) from [<c0107fdc>] (arch_cpu_idle+0x2c/0x38)
[    6.007720] [<c0107fdc>] (arch_cpu_idle) from [<c013e920>] (do_idle+0xb8/0x120)
[    6.015914] [<c013e920>] (do_idle) from [<c013ec24>] (cpu_startup_entry+0x18/0x1c)
[    6.024400] [<c013ec24>] (cpu_startup_entry) from [<40102c0c>] (0x40102c0c)
[    6.032213] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---

请问这个是为什么:

[    5.563985] ubi0: attaching mtd3
[    5.568080] ubi0: scanning is finished
[    5.572333] ubi0: empty MTD device detected
[    5.577090] ubi0 error: ubi_early_get_peb: no free eraseblocks
[    5.583707] ubi0 error: ubi_attach_mtd_dev: failed to attach mtd3, error -28
[    5.591653] UBI error: cannot attach mtd3
[    5.596150] UBI: block: can't open volume on ubi0_-1, err=-19

#48 全志 SOC » AIC8800 USB WIFI死机,有没有朋友遇到过 » 2024-02-19 09:29:48

memory
回复: 3
[ 6499.082432] AICWFDBG(LOGINFO)        flush:tid=5
[ 8304.952704] AICWFDBG(LOGINFO)        flush:tid=1

root@OpenWrt:/#
root@OpenWrt:/# [14728.502620] AICWFDBG(LOGINFO)        flush:tid=4
[20175.347006] AICWFDBG(LOGINFO)        flush:tid=3
[26440.360231] AICWFDBG(LOGINFO)        flush:tid=2
[37233.796942] AICWFDBG(LOGINFO)        flush:tid=5
[47614.722767] BUG: Bad page state in process swapper/0  pfn:5b36d
[47614.733914] page:df75bda0 refcount:-19712 mapcount:0 mapping:00000000 index:0x0
[47614.742120] flags: 0x0()
[47614.744971] raw: 00000000 00000000 00000122 00000000 00000000 00000000 ffffffff ffff798f
[47614.754045] page dumped because: nonzero _refcount
[47614.759419] Modules linked in: aic8800_fdrv aic_load_fw xt_time xt_state xt_multiport xt_mark xt_mac xt_limit xt_conntrack xt_comment xt_TCPMSS xt_REDIREC                                                                                                                                                                                                                                                                                                                                                                               T xt_MASQUERADE xt_LOG xt_CT nf_reject_ipv6 nf_log_ipv6 nf_log_ipv4 iptable_raw iptable_nat iptable_mangle iptable_filter ipt_REJECT ip_tables
[47614.788825] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.4.61 #96
[47614.795560] Hardware name: Generic DT based system
[47614.800959] [<c010e248>] (unwind_backtrace) from [<c010a870>] (show_stack+0x10/0x14)
[47614.809662] [<c010a870>] (show_stack) from [<c0759c20>] (dump_stack+0x7c/0x98)
[47614.817774] [<c0759c20>] (dump_stack) from [<c01bfdb0>] (bad_page+0x100/0x138)
[47614.825885] [<c01bfdb0>] (bad_page) from [<c01c28e4>] (get_page_from_freelist+0x6ec/0x730)
[47614.835163] [<c01c28e4>] (get_page_from_freelist) from [<c01c2efc>] (__alloc_pages_nodemask+0x120/0x970)
[47614.845806] [<c01c2efc>] (__alloc_pages_nodemask) from [<c01c383c>] (page_frag_alloc+0x30/0x140)
[47614.855674] [<c01c383c>] (page_frag_alloc) from [<c05e450c>] (__netdev_alloc_skb+0x100/0x164)
[47614.865367] [<c05e450c>] (__netdev_alloc_skb) from [<bf0a7730>] (aicwf_usb_rx_submit_all_urb+0xdc/0x1c4 [aic8800_fdrv])
[47614.877559] [<bf0a7730>] (aicwf_usb_rx_submit_all_urb [aic8800_fdrv]) from [<c04a2fd8>] (__usb_hcd_giveback_urb+0x78/0xd0)
[47614.889971] [<c04a2fd8>] (__usb_hcd_giveback_urb) from [<c04a30fc>] (usb_giveback_urb_bh+0xcc/0xe0)
[47614.900133] [<c04a30fc>] (usb_giveback_urb_bh) from [<c011dd18>] (tasklet_action_common.constprop.2+0x7c/0xc8)
[47614.911364] [<c011dd18>] (tasklet_action_common.constprop.2) from [<c0102ae4>] (__do_softirq+0x1fc/0x278)
[47614.922114] [<c0102ae4>] (__do_softirq) from [<c011da34>] (irq_exit+0x78/0xd0)
[47614.930225] [<c011da34>] (irq_exit) from [<c015808c>] (__handle_domain_irq+0x74/0xa0)
[47614.939020] [<c015808c>] (__handle_domain_irq) from [<c03781e0>] (gic_handle_irq+0x4c/0x78)
[47614.948397] [<c03781e0>] (gic_handle_irq) from [<c01021cc>] (__irq_svc+0x6c/0xa8)
[47614.956800] Exception stack(0xc0c01f40 to 0xc0c01f88)
[47614.962471] 1f40: 680f7418 df3b94f4 00000000 c0114b40 00000001 c0c00000 c0c04e28 c0c04e64
[47614.971650] 1f60: c0c66000 df7ff500 c0b2d0c0 00000000 0000001f c0c01f90 c0107f94 c0107f84
[47614.980824] 1f80: 60000013 ffffffff
[47614.984744] [<c01021cc>] (__irq_svc) from [<c0107f84>] (arch_cpu_idle+0x1c/0x38)
[47614.993049] [<c0107f84>] (arch_cpu_idle) from [<c013de84>] (do_idle+0xd0/0x120)
[47615.001255] [<c013de84>] (do_idle) from [<c013e170>] (cpu_startup_entry+0x18/0x20)
[47615.009764] [<c013e170>] (cpu_startup_entry) from [<c0b00c64>] (start_kernel+0x348/0x3d8)
[47615.018946] Disabling lock debugging due to kernel taint
[47620.715222] cmd_mgr_queue cmd timed-out cmd_mgr->queue_sz:1
[47620.721503] tkn[24315]  flags:0032  result: -4  cmd:7176-APM_SET_BEACON_IE_REQ    - reqcfm(7177-APM_SET_BEACON_IE_CFM)
[47620.734253] cmd queue crashed
[47633.928610] 8<--- cut here ---
[47633.932055] Unable to handle kernel NULL pointer dereference at virtual address 00000104
[47633.941141] pgd = 574011b8
[47633.944173] [00000104] *pgd=00000000
[47633.948189] Internal error: Oops: 805 [#1] PREEMPT SMP ARM
[47633.954336] Modules linked in: aic8800_fdrv aic_load_fw xt_time xt_state xt_multiport xt_mark xt_mac xt_limit xt_conntrack xt_comment xt_TCPMSS xt_REDIREC                                                                                                                                                                                                                                                                                                                                                                               T xt_MASQUERADE xt_LOG xt_CT nf_reject_ipv6 nf_log_ipv6 nf_log_ipv4 iptable_raw iptable_nat iptable_mangle iptable_filter ipt_REJECT ip_tables
[47633.983766] CPU: 1 PID: 1190 Comm: aicwf_busrx_thr Tainted: G    B             5.4.61 #96
[47633.992934] Hardware name: Generic DT based system
[47633.998324] PC is at __slab_free.constprop.7+0x178/0x1c0
[47634.004291] LR is at __bit_spin_unlock.constprop.16+0x28/0x84
[47634.010731] pc : [<c01c8bec>]    lr : [<c01c8214>]    psr: a0000093
[47634.017765] sp : dcd1bea0  ip : df7594e4  fp : deea4d80
[47634.023620] r10: 00150001  r9 : a0000013  r8 : 00000000
[47634.029483] r7 : ded32200  r6 : 00000000  r5 : ded33080  r4 : df7d2480
[47634.036811] r3 : 00000122  r2 : 00000100  r1 : 00000010  r0 : 00000001
[47634.044144] Flags: NzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment none
[47634.052247] Control: 10c5387d  Table: 5cd6806a  DAC: 00000051
[47634.058696] Process aicwf_busrx_thr (pid: 1190, stack limit = 0x43d572e2)
[47634.066319] Stack: (0xdcd1bea0 to 0xdcd1c000)
[47634.071213] bea0: ffffffff 60000093 deea4d80 deea4d80 00000001 00150000 00000000 00000100
[47634.080403] bec0: ded32200 deea4d80 c0c04e08 00150000 dcd36c10 dccd7c14 dcd36c14 ded32200
[47634.089589] bee0: dcd1a000 c0c04e08 df7d2480 deea4d80 deea4d80 dcd1bf00 49f6dbd5 c01ca23c
[47634.098777] bf00: 00000001 db36e082 df7594e4 deea4d80 00000000 1241bc59 db36e240 deea4d80
[47634.107961] bf20: dcd36c00 0000cae6 db189000 dcd36c10 dccd7c14 dcd36c14 db36e082 bf0a67c8
[47634.117147] bf40: dcd36c00 00000001 00000000 bf0cb438 c0c04e08 dcd36c00 ded95780 ded957a4
[47634.126332] bf60: dccd7c14 dce41f9c 00000000 bf0a8e60 00000001 1241bc59 dce41f80 dcd1a000
[47634.135519] bf80: db211b00 dcd36c00 bf0a8d04 c0134260 db211b00 c0134144 00000000 00000000
[47634.144706] bfa0: 00000000 00000000 00000000 c01010e8 00000000 00000000 00000000 00000000
[47634.153889] bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[47634.163075] bfe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[47634.172275] [<c01c8bec>] (__slab_free.constprop.7) from [<c01ca23c>] (kmem_cache_free+0x174/0x184)
[47634.182457] [<c01ca23c>] (kmem_cache_free) from [<bf0a67c8>] (aicwf_process_rxframes+0x370/0x3d0 [aic8800_fdrv])
[47634.194020] [<bf0a67c8>] (aicwf_process_rxframes [aic8800_fdrv]) from [<bf0a8e60>] (usb_busrx_thread+0x15c/0x194 [aic8800_fdrv])
[47634.207068] [<bf0a8e60>] (usb_busrx_thread [aic8800_fdrv]) from [<c0134260>] (kthread+0x11c/0x128)
[47634.217134] [<c0134260>] (kthread) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
[47634.225241] Exception stack(0xdcd1bfb0 to 0xdcd1bff8)
[47634.230907] bfa0:                                     00000000 00000000 00000000 00000000
[47634.240093] bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[47634.249276] bfe0: 00000000 00000000 00000000 00000000 00000013 00000000
[47634.256708] Code: eaffff44 e35b0000 0a000008 e994000c (e5823004)
[47634.263546] ---[ end trace ab10d117ed9f1a7f ]---
[47634.268730] note: aicwf_busrx_thr[1190] exited with preempt_count 1
[25]HELLO! BOOT0 is starting!
[28]BOOT0 commit : 4f5e01ed0b
[31]set pll start
[37]periph0 has been enabled
[40]set pll end
[41][pmu]: bus read error
[44]board init ok
[46]get_pmu_exist() = -1
[48]DRAM BOOT DRIVE INFO: V0.33
[51]DRAM CLK = 792 MHz
[53]DRAM Type = 3 (2:DDR2,3:DDR3)
[56]DRAMC ZQ value: 0x7b7bfb
[59]DRAM ODT value: 0x42.
[62]ddr_efuse_type: 0x0
[65]DRAM SIZE =512 M
[67]dram_tpr4:0x0
[69]PLL_DDR_CTRL_REG:0xf8004100
[71]DRAM_CLK_REG:0xc0000000
[74][TIMING DEBUG] MR2= 0x18
[81]DRAM simple test OK.
[84]rtc standby flag is 0x0, super standby flag is 0x0
[89]dram size =512
[91]card no is 2
[93]sdcard 2 line count 4
[95][mmc]: mmc driver ver 2021-05-21 14:47
[105][mmc]: Wrong media type 0x0, but host sdc2, try mmc first
[110][mmc]: ***Try MMC card 2***
[133][mmc]: RMCA OK!
[135][mmc]: mmc 2 bias 0
[138][mmc]: MMC 5.1
[140][mmc]: HSSDR52/SDR25 4 bit
[143][mmc]: 50000000 Hz
[145][mmc]: 15028 MB
[147][mmc]: ***SD/MMC 2 init OK!!!***
[243]Loading boot-pkg Succeed(index=0).
[247]Entry_name        = u-boot
[254]Entry_name        = optee
[258]Entry_name        = dtb
[261]tunning data addr:0x430003e8
[264]Jump to second Boot.
M/TC: OP-TEE version: 8b49ce62-dirty (gcc version 5.3.1 20160412 (Linaro GCC 5.3-2016.05)) #1 Fri Aug 12 08:24:15 UTC 2022 arm


U-Boot 2018.05-gaf00d2d-dirty (Feb 16 2023 - 11:35:33 +0000) Allwinner Technology

_20240219092857.jpg

#49 Re: 全志 SOC » 奇怪了,f1c100s tina 运行出错 » 2024-02-16 17:33:39

打开 lichee/linux-3.10/drivers/video/sunxi/disp/disp/disp_sys_intf.c 看了一下

int disp_sys_gpio_set_value(u32 p_handler,
                            u32 value_to_gpio, const char *gpio_name)
{
        if (p_handler)
#ifdef CONFIG_IO_EXPAND
                gpio_set_value_cansleep(p_handler, value_to_gpio);
#else
                __gpio_set_value(p_handler, value_to_gpio);
#endif
        else
                __wrn("GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL\n");

        return 0;
}

感觉是 CONFIG_IO_EXPAND 这个宏的问题

#50 全志 SOC » 奇怪了,f1c100s tina 运行出错 » 2024-02-16 17:31:36

memory
回复: 1
[    1.297890] NET: Registered protocol family 15
[    1.303369] VFP support v0.3: not present
[    1.310076] [LCD]lcd_module_init
[    1.319757] enhance_en=1
[    1.322736] matrixresult:(0x0, 0x3c4, 0x0, 0x0)
[    1.362783] pll_freq=297000000HZ, lcd_dclk_freq=19000000HZ, clk_div=15
[    1.370055] clk_div=15
[    1.372855] =====================LCD_open_flow
[    1.411179] =====================LCD_power_on
[    1.710293] [LCD]open, step 0 finish
[    1.740307] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.749867] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.759473] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.769079] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.778676] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.788261] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.797856] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.807449] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.817029] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.826621] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.836215] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.845797] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.855388] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.864980] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.874561] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.884150] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.893740] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.903318] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.912909] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.922501] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.932081] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.941678] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.951271] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.960853] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.970446] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.980009] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.989590] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.999183] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    2.008785] [DISP] disp_sys_gpio_set_value,line:449:    GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL

#51 Re: 全志 SOC » T113-S3 电阻触摸屏,用ts_uinput转换后的的设备,evtest 测试不输出 EV_KEY、BTN_TOUCH » 2024-02-14 18:32:29

夜风 说:

大佬是买现成得板子吗?最近打算做一块板子

淘宝小智 SW113 板子

#52 全志 SOC » T113-S3 电阻触摸屏,用ts_uinput转换后的的设备,evtest 测试不输出 EV_KEY、BTN_TOUCH » 2024-02-08 11:42:28

memory
回复: 2

没转换前的原始设备正常↓:

root@TinaLinux:/# evtest /dev/input/event0
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
Input device name: "2009c00.rtp"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 330 (BTN_TOUCH)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value   2145
      Min        0
      Max     4095
    Event code 1 (ABS_Y)
      Value   2334
      Min        0
      Max     4095
Properties:
Testing ... (interrupt to exit)
Event: time 1654042022.938933, type 3 (EV_ABS), code 0 (ABS_X), value 1829
Event: time 1654042022.938933, type 3 (EV_ABS), code 1 (ABS_Y), value 1879
Event: time 1654042022.938933, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1654042022.938933, -------------- SYN_REPORT ------------
Event: time 1654042022.959409, type 3 (EV_ABS), code 0 (ABS_X), value 1809
Event: time 1654042022.959409, type 3 (EV_ABS), code 1 (ABS_Y), value 1877
Event: time 1654042022.959409, -------------- SYN_REPORT ------------
Event: time 1654042022.977324, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1654042022.977324, -------------- SYN_REPORT ------------
Event: time 1654042023.684403, type 3 (EV_ABS), code 0 (ABS_X), value 1617
Event: time 1654042023.684403, type 3 (EV_ABS), code 1 (ABS_Y), value 1746
Event: time 1654042023.684403, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1654042023.684403, -------------- SYN_REPORT ------------
Event: time 1654042023.710507, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1654042023.710507, -------------- SYN_REPORT ------------
Event: time 1654042024.388912, type 3 (EV_ABS), code 0 (ABS_X), value 1389
Event: time 1654042024.388912, type 3 (EV_ABS), code 1 (ABS_Y), value 1626
Event: time 1654042024.388912, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1654042024.388912, -------------- SYN_REPORT ------------
Event: time 1654042024.410923, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1654042024.410923, -------------- SYN_REPORT ------------

转换设备:

root@TinaLinux:/#
root@TinaLinux:/#
root@TinaLinux:/# TSLIB_CONSOLEDEVICE=none TSLIB_FBDEVICE=/dev/fb0 TSLIB_TSDEVIC
E=/dev/input/event0 ts_uinput -d -v -n touchscreen
[  870.431746] input: touchscreen as /devices/virtual/input/input5
/dev/input/event3
root@TinaLinux:/#
root@TinaLinux:/#
root@TinaLinux:/#

测试转换后的测试↓:

root@TinaLinux:/# TSLIB_CONSOLEDEVICE=none TSLIB_FBDEVICE=/dev/fb0 TSLIB_TSDEVIC
E=/dev/input/event0 ts_uinput -d -v -n touchscreen
[  870.431746] input: touchscreen as /devices/virtual/input/input5
/dev/input/event3
root@TinaLinux:/#
root@TinaLinux:/#
root@TinaLinux:/#
root@TinaLinux:/#
root@TinaLinux:/# evtest /dev/input/event3
Input driver version is 1.0.1
Input device ID: bus 0x6 vendor 0x0 product 0x0 version 0x0
Input device name: "touchscreen"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 330 (BTN_TOUCH)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value      0
      Min        0
      Max      799
    Event code 1 (ABS_Y)
      Value      0
      Min        0
      Max      479
Properties:
Testing ... (interrupt to exit)
Event: time 1654042295.695812, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1654042295.695812, type 3 (EV_ABS), code 0 (ABS_X), value 400
Event: time 1654042295.695812, type 3 (EV_ABS), code 1 (ABS_Y), value 256
Event: time 1654042295.695812, -------------- SYN_REPORT ------------
Event: time 1654042295.734123, type 3 (EV_ABS), code 0 (ABS_X), value 398
Event: time 1654042295.734123, -------------- SYN_REPORT ------------
Event: time 1654042297.084329, type 3 (EV_ABS), code 0 (ABS_X), value 356
Event: time 1654042297.084329, type 3 (EV_ABS), code 1 (ABS_Y), value 121
Event: time 1654042297.084329, -------------- SYN_REPORT ------------
Event: time 1654042297.477538, type 3 (EV_ABS), code 0 (ABS_X), value 361
Event: time 1654042297.477538, type 3 (EV_ABS), code 1 (ABS_Y), value 157
Event: time 1654042297.477538, -------------- SYN_REPORT ------------
Event: time 1654042297.520016, type 3 (EV_ABS), code 0 (ABS_X), value 364
Event: time 1654042297.520016, -------------- SYN_REPORT ------------
Event: time 1654042302.953898, type 3 (EV_ABS), code 0 (ABS_X), value 347
Event: time 1654042302.953898, type 3 (EV_ABS), code 1 (ABS_Y), value 252
Event: time 1654042302.953898, -------------- SYN_REPORT ------------
Event: time 1654042302.996373, type 3 (EV_ABS), code 0 (ABS_X), value 348
Event: time 1654042302.996373, type 3 (EV_ABS), code 1 (ABS_Y), value 251
Event: time 1654042302.996373, -------------- SYN_REPORT ------------
Event: time 1654042303.179124, type 3 (EV_ABS), code 0 (ABS_X), value 374
Event: time 1654042303.179124, type 3 (EV_ABS), code 1 (ABS_Y), value 250
Event: time 1654042303.179124, -------------- SYN_REPORT ------------
Event: time 1654042303.213413, type 3 (EV_ABS), code 0 (ABS_X), value 375
Event: time 1654042303.213413, -------------- SYN_REPORT ------------

#53 Re: 全志 SOC » modprobe aic8800_fdrv 出错,请问是什么原因呢? » 2024-02-06 10:57:59

0x754C 说:

没扫到卡,建议检查物理连线

有扫描到卡片:

root@TinaLinux:/# ls /sys/bus/sdio/devices/ -l
lrwxrwxrwx    1 root     root             0 Jan  1 21:37 mmc0:390b:1 -> ../../../devices/platform/soc@3000000/4021000.sdmmc/mmc_host/mmc0/mmc0:390b/mmc0:390b:1
lrwxrwxrwx    1 root     root             0 Jan  1 21:37 mmc0:390b:2 -> ../../../devices/platform/soc@3000000/4021000.sdmmc/mmc_host/mmc0/mmc0:390b/mmc0:390b:2
root@TinaLinux:/#

安装驱动的日志:

root@TinaLinux:/#
root@TinaLinux:/# insmod /lib/modules/5.4.61/aic8800_fdrv.ko
[44326.173440] AICWFDBG(LOGTRACE)       >>> rwnx_mod_init()
[44326.178911] AICWFDBG(LOGINFO)        rwnx v6.4.3.0 - - 241c091M (master)
[44326.185776] AICWFDBG(LOGINFO)        RELEASE_DATE:2023_1219_3cf85031
[44326.192493] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array Enter
[44326.198756] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[0]:b2bbe77e
[44326.206481] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[1]:573aef1b
[44326.214289] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[2]:027d02d6
[44326.214296] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[3]:a8a24393
[44326.214302] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[4]:2bf9087b
[44326.214308] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[5]:387b7179
[44326.214314] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[6]:cb34a1d6
[44326.214321] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[7]:0d53ca4e
[44326.214327] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[8]:358d572f
[44326.214332] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[9]:53cf20d0
[44326.214339] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[10]:f509168e
[44326.214345] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[11]:07aaf870
[44326.214351] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[12]:092a6c66
[44326.214356] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[13]:8b6870c8
[44326.214362] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[14]:04763693
[44326.214368] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[15]:8566d843
[44326.214374] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[16]:d4388082
[44326.214380] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[17]:eda3af40
[44326.214386] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[18]:636fa75c
[44326.214392] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[19]:a637554f
[44326.214396] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array Exit
[44326.214404] aicbsp: aicbsp_set_subsys, subsys: AIC_WIFI, state to: 1
[44326.214410] aicbsp: aicbsp_set_subsys, power state change to 1 dure to AIC_WIFI
[44326.214414] aicbsp: aicbsp_platform_power_on
[44326.214578] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 52, RTO !!
[44326.214643] aicbsp_dummy_sdmmc: probe of mmc0:390b:1 failed with error -110
[44326.214716] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 52, RTO !!
[44326.219530] aicbsp_dummy_sdmmc: probe of mmc0:390b:2 failed with error -110
[44326.478419] sunxi-rfkill soc@3000000:rfkill@0: wlan power on success
[44326.535661] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 7, RTO !!
[44326.542504] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 7, RTO !!
[44326.549323] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 7, RTO !!
[44326.556140] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 7, RTO !!
[44326.563531] mmc0: card 390b removed
[44326.567800] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B
[44326.589803] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
[44326.601049] sunxi-mmc 4021000.sdmmc: no vqmmc,Check if there is regulator
[44326.621229] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[44326.638534] sunxi-mmc 4021000.sdmmc: failed to get DS26_SDR12 used default
[44326.681881] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 52, RTO !!
[44326.689602] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 52, RTO !!
[44326.696517] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[44326.728476] sunxi-mmc 4021000.sdmmc: failed to get DS26_SDR12 used default
[44326.739167] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[44326.808455] sunxi-mmc 4021000.sdmmc: failed to get DS26_SDR12 used default
[44326.828490] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 4 timing LEGACY(SDR12) dt B
[44326.858514] sunxi-mmc 4021000.sdmmc: failed to get DS26_SDR12 used default
[44326.866947] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 4 timing UHS-DDR50 dt B
[44326.878386] sunxi-mmc 4021000.sdmmc: failed to get HSDDR52_DDR50 used default
[44326.878420] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 50000000Hz bm PP pm ON vdd 21 width 4 timing UHS-DDR50 dt B
[44326.878514] sunxi-mmc 4021000.sdmmc: failed to get HSDDR52_DDR50 used default
[44326.909447] mmc0: new ultra high speed DDR50 SDIO card at address 390b
[44326.934867] aicbsp: aicbsp_sdio_probe:1 vid:0xC8A1  did:0x0082
[44326.941605] aicbsp: aicbsp_sdio_probe:2 vid:0xC8A1  did:0x0182
[44326.948156] aicbsp: aicbsp_sdio_probe after replace:1
[44326.953879] AICWFDBG(LOGINFO)        aicwf_sdio_chipmatch USE AIC8800D80
[44326.960860] aicbsp: aicbsp_get_feature, set FEATURE_SDIO_CLOCK 150 MHz
[44326.968196] aicbsp: aicwf_sdio_reg_init
[44326.974830] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44326.982129] sunxi-mmc 4021000.sdmmc: retry:start
[44326.987413] sunxi-mmc 4021000.sdmmc: retry:stop
[44326.992622] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44326.998562] sunxi-mmc 4021000.sdmmc: REG_DRV_DL: 0x00030000
[44327.004880] sunxi-mmc 4021000.sdmmc: REG_SD_NTSR: 0x81710000
[44327.011287] sunxi-mmc 4021000.sdmmc: REG_NTDC: 0x00000800
[44327.017420] sunxi-mmc 4021000.sdmmc: *****retry:re-send cmd*****
[44327.024218] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.031411] sunxi-mmc 4021000.sdmmc: retry:start
[44327.036690] sunxi-mmc 4021000.sdmmc: retry:stop
[44327.036733] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44327.047754] sunxi-mmc 4021000.sdmmc: REG_DRV_DL: 0x00030000
[44327.054084] sunxi-mmc 4021000.sdmmc: REG_SD_NTSR: 0x81710000
[44327.060477] sunxi-mmc 4021000.sdmmc: REG_NTDC: 0x00000800
[44327.066569] sunxi-mmc 4021000.sdmmc: *****retry:re-send cmd*****
[44327.073363] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.080598] sunxi-mmc 4021000.sdmmc: retry:start
[44327.080608] sunxi-mmc 4021000.sdmmc: retry:stop
** 13 printk messages dropped **
[44327.091244] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.091270] sunxi-mmc 4021000.sdmmc: retry:start
[44327.091277] sunxi-mmc 4021000.sdmmc: retry:stop
[44327.091306] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44327.091338] sunxi-mmc 4021000.sdmmc: REG_DRV_DL: 0x00030000
[44327.091346] sunxi-mmc 4021000.sdmmc: REG_SD_NTSR: 0x81710110
[44327.091354] sunxi-mmc 4021000.sdmmc: REG_NTDC: 0x00000800
[44327.091369] sunxi-mmc 4021000.sdmmc: *****retry:re-send cmd*****
[44327.091397] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.091429] sunxi-mmc 4021000.sdmmc: retry:start
[44327.091436] sunxi-mmc 4021000.sdmmc: retry:stop
[44327.091466] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44327.091498] sunxi-mmc 4021000.sdmmc: REG_DRV_DL: 0x00030000
[44327.091506] sunxi-mmc 4021000.sdmmc: REG_SD_NTSR: 0x81710110
[44327.091516] sunxi-mmc 4021000.sdmmc: REG_NTDC: 0x00000800
[44327.091533] sunxi-mmc 4021000.sdmmc: *****retry:re-send cmd*****
[44327.091560] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.091586] sunxi-mmc 4021000.sdmmc: retry:start
[44327.091595] sunxi-mmc 4021000.sdmmc: retry:stop
[44327.091623] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44327.091654] sunxi-mmc 4021000.sdmmc: REG_DRV_DL: 0x00000000
[44327.091662] sunxi-mmc 4021000.sdmmc: REG_SD_NTSR: 0x81710000
[44327.091670] sunxi-mmc 4021000.sdmmc: REG_NTDC: 0x00000800
[44327.091684] sunxi-mmc 4021000.sdmmc: *****retry:re-send cmd*****
[44327.091710] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.091733] sunxi-mmc 4021000.sdmmc: retry:start
[44327.091740] sunxi-mmc 4021000.sdmmc: retry:stop
[44327.091768] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44327.091800] sunxi-mmc 4021000.sdmmc: REG_DRV_DL: 0x00000000
[44327.091808] sunxi-mmc 4021000.sdmmc: REG_SD_NTSR: 0x81710000
[44327.091816] sunxi-mmc 4021000.sdmmc: REG_NTDC: 0x00000800
[44327.091830] sunxi-mmc 4021000.sdmmc: *****retry:re-send cmd*****
[44327.091857] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.091883] sunxi-mmc 4021000.sdmmc: retry:start
[44327.091891] sunxi-mmc 4021000.sdmmc: retry:stop
[44327.091920] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44327.091951] sunxi-mmc 4021000.sdmmc: REG_DRV_DL: 0x00000000
[44327.091959] sunxi-mmc 4021000.sdmmc: REG_SD_NTSR: 0x81710000
[44327.091967] sunxi-mmc 4021000.sdmmc: REG_NTDC: 0x00000800
[44327.091982] sunxi-mmc 4021000.sdmmc: *****retry:re-send cmd*****
[44327.092009] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.092033] sunxi-mmc 4021000.sdmmc: retry:start
[44327.092040] sunxi-mmc 4021000.sdmmc: retry:stop
[44327.092069] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44327.092101] sunxi-mmc 4021000.sdmmc: REG_DRV_DL: 0x00030000
[44327.092109] sunxi-mmc 4021000.sdmmc: REG_SD_NTSR: 0x81710000
[44327.092118] sunxi-mmc 4021000.sdmmc: REG_NTDC: 0x00000800
[44327.092132] sunxi-mmc 4021000.sdmmc: *****retry:re-send cmd*****
[44327.092159] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.092182] sunxi-mmc 4021000.sdmmc: retry:start
[44327.092190] sunxi-mmc 4021000.sdmmc: retry:stop
[44327.092217] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44327.092249] sunxi-mmc 4021000.sdmmc: REG_DRV_DL: 0x00030000
[44327.092258] sunxi-mmc 4021000.sdmmc: REG_SD_NTSR: 0x81710000
[44327.092265] sunxi-mmc 4021000.sdmmc: REG_NTDC: 0x00000800
[44327.092280] sunxi-mmc 4021000.sdmmc: *****retry:re-send cmd*****
[44327.092307] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.092328] sunxi-mmc 4021000.sdmmc: retry:start
[44327.092336] sunxi-mmc 4021000.sdmmc: retry:stop
[44327.092363] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44327.092404] sunxi-mmc 4021000.sdmmc: REG_DRV_DL: 0x00030000
[44327.092413] sunxi-mmc 4021000.sdmmc: REG_SD_NTSR: 0x81710000
[44327.092420] sunxi-mmc 4021000.sdmmc: REG_NTDC: 0x00000800
[44327.092435] sunxi-mmc 4021000.sdmmc: *****retry:re-send cmd*****
[44327.092462] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.092485] sunxi-mmc 4021000.sdmmc: retry:start
[44327.092492] sunxi-mmc 4021000.sdmmc: retry:stop
[44327.092520] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44327.092551] sunxi-mmc 4021000.sdmmc: REG_DRV_DL: 0x00000000
[44327.092560] sunxi-mmc 4021000.sdmmc: REG_SD_NTSR: 0x81710110
[44327.092567] sunxi-mmc 4021000.sdmmc: REG_NTDC: 0x00000800
[44327.092582] sunxi-mmc 4021000.sdmmc: *****retry:re-send cmd*****
[44327.092608] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.092631] sunxi-mmc 4021000.sdmmc: retry:start
[44327.092638] sunxi-mmc 4021000.sdmmc: retry:stop
[44327.092667] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44327.092699] sunxi-mmc 4021000.sdmmc: REG_DRV_DL: 0x00000000
[44327.092708] sunxi-mmc 4021000.sdmmc: REG_SD_NTSR: 0x81710110
[44327.092715] sunxi-mmc 4021000.sdmmc: REG_NTDC: 0x00000800
[44327.092730] sunxi-mmc 4021000.sdmmc: *****retry:re-send cmd*****
[44327.092756] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.092779] sunxi-mmc 4021000.sdmmc: retry:start
[44327.092786] sunxi-mmc 4021000.sdmmc: retry:stop
[44327.092812] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44327.092842] sunxi-mmc 4021000.sdmmc: REG_DRV_DL: 0x00000000
[44327.092851] sunxi-mmc 4021000.sdmmc: REG_SD_NTSR: 0x81710110
[44327.092859] sunxi-mmc 4021000.sdmmc: REG_NTDC: 0x00000800
[44327.092873] sunxi-mmc 4021000.sdmmc: *****retry:re-send cmd*****
[44327.092896] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.092919] sunxi-mmc 4021000.sdmmc: retry:start
[44327.092927] sunxi-mmc 4021000.sdmmc: retry:stop
[44327.092953] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44327.092983] sunxi-mmc 4021000.sdmmc: REG_DRV_DL: 0x00030000
[44327.092991] sunxi-mmc 4021000.sdmmc: REG_SD_NTSR: 0x81710220
[44327.092999] sunxi-mmc 4021000.sdmmc: REG_NTDC: 0x00000800
[44327.093013] sunxi-mmc 4021000.sdmmc: *****retry:re-send cmd*****
[44327.093036] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.093056] sunxi-mmc 4021000.sdmmc: retry:start
[44327.093063] sunxi-mmc 4021000.sdmmc: retry:stop
[44327.093089] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44327.093120] sunxi-mmc 4021000.sdmmc: REG_DRV_DL: 0x00030000
[44327.093128] sunxi-mmc 4021000.sdmmc: REG_SD_NTSR: 0x81710220
[44327.093136] sunxi-mmc 4021000.sdmmc: REG_NTDC: 0x00000800
[44327.093149] sunxi-mmc 4021000.sdmmc: *****retry:re-send cmd*****
[44327.093173] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.093194] sunxi-mmc 4021000.sdmmc: retry:start
[44327.093201] sunxi-mmc 4021000.sdmmc: retry:stop
[44327.093226] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44327.093257] sunxi-mmc 4021000.sdmmc: REG_DRV_DL: 0x00030000
[44327.093265] sunxi-mmc 4021000.sdmmc: REG_SD_NTSR: 0x81710220
[44327.093273] sunxi-mmc 4021000.sdmmc: REG_NTDC: 0x00000800
[44327.093287] sunxi-mmc 4021000.sdmmc: *****retry:re-send cmd*****
[44327.093311] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.093331] sunxi-mmc 4021000.sdmmc: retry:start
[44327.093339] sunxi-mmc 4021000.sdmmc: retry:stop
[44327.093365] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44327.093403] sunxi-mmc 4021000.sdmmc: REG_DRV_DL: 0x00000000
[44327.093411] sunxi-mmc 4021000.sdmmc: REG_SD_NTSR: 0x81710220
[44327.093419] sunxi-mmc 4021000.sdmmc: REG_NTDC: 0x00000800
[44327.093433] sunxi-mmc 4021000.sdmmc: *****retry:re-send cmd*****
[44327.093455] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.093477] sunxi-mmc 4021000.sdmmc: retry:start
[44327.093484] sunxi-mmc 4021000.sdmmc: retry:stop
[44327.093510] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44327.093540] sunxi-mmc 4021000.sdmmc: REG_DRV_DL: 0x00000000
[44327.093549] sunxi-mmc 4021000.sdmmc: REG_SD_NTSR: 0x81710220
[44327.093556] sunxi-mmc 4021000.sdmmc: REG_NTDC: 0x00000800
[44327.093570] sunxi-mmc 4021000.sdmmc: *****retry:re-send cmd*****
[44327.093593] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.093614] sunxi-mmc 4021000.sdmmc: retry:start
[44327.093621] sunxi-mmc 4021000.sdmmc: retry:stop
[44327.093647] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44327.093677] sunxi-mmc 4021000.sdmmc: REG_DRV_DL: 0x00000000
[44327.093685] sunxi-mmc 4021000.sdmmc: REG_SD_NTSR: 0x81710220
[44327.093693] sunxi-mmc 4021000.sdmmc: REG_NTDC: 0x00000800
[44327.093707] sunxi-mmc 4021000.sdmmc: *****retry:re-send cmd*****
[44327.093731] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 53, WR DCE !!
[44327.093752] sunxi-mmc 4021000.sdmmc: retry:start
[44327.093760] sunxi-mmc 4021000.sdmmc: retry:stop
[44327.093786] sunxi-mmc 4021000.sdmmc: retry:stop recover
[44327.093812] sunxi-mmc 4021000.sdmmc: sunxi v5p3x retry give up, return to HS
[44327.093820] sunxi-mmc 4021000.sdmmc: retry:set phase failed or over retry times
[44327.093831] sunxi-mmc 4021000.sdmmc: retry:give up
[44327.093949] aicbsp: sdio_err:<aicwf_sdio_tx_msg,978>: aicwf_sdio_send_pkt fail-110
[44327.094019] aicbsp: sdio_err:<aicwf_sdio_bus_txmsg,1122>: send faild:0, 0,1e9
[44330.118368] cmd timed-out
[44330.121342] tkn[0]  flags:0012  result: -4  cmd:1024 - reqcfm(1025)
[44330.129128] aicbsp: aicbsp_sdio_remove
[44330.133358] aicbsp: aicwf_sdio_release
[44330.137686] aicbsp: aicwf_bus_deinit
[44330.137696] aicbsp: aicwf_sdio_bus_stop
[44330.146144] aicbsp: sdio_err:<aicwf_sdio_bustx_thread,1341>: sdio bustx thread stop
[44330.155081] aicbsp: sdio_err:<aicwf_sdio_busrx_thread,1360>: sdio busrx thread stop
[44330.163907] aicbsp: aicbsp_sdio_remove done
[44330.169484] sunxi-rfkill soc@3000000:rfkill@0: wlan power off success
[44330.276821] aicbsp: aicbsp_platform_power_off
[44330.281813] aicbsp: aicbsp_set_subsys, fail to set AIC_WIFI power state to 1
[44330.289817] AICWFDBG(LOGERROR)       rwnx_mod_init, set power on fail!
failed to insert /lib/modules/5.4.61/aic8800_fdrv.ko
root@TinaLinux:/#

#54 全志 SOC » modprobe aic8800_fdrv 出错,请问是什么原因呢? » 2024-02-05 10:45:43

memory
回复: 2
root@TinaLinux:/# modprobe aic8800_fdrv
[   80.607302] AICWFDBG(LOGTRACE)       >>> rwnx_mod_init()
[   80.612790] AICWFDBG(LOGINFO)        rwnx v6.4.3.0 - - 241c091M (master)
[   80.619718] AICWFDBG(LOGINFO)        RELEASE_DATE:2023_1219_3cf85031
[   80.626411] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array Enter
[   80.632919] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[0]:e09bf021
[   80.640910] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[1]:b491ef27
[   80.648690] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[2]:3d28fc62
[   80.656530] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[3]:1e341e02
[   80.664440] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[4]:02d22c8f
[   80.672222] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[5]:b348bcfa
[   80.679996] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[6]:99decb26
[   80.687720] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[7]:8302a139
[   80.695546] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[8]:363740c7
[   80.703340] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[9]:eaab7093
[   80.703347] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[10]:59fed743
[   80.703353] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[11]:d3e745f8
[   80.703364] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[12]:618916fe
[   80.734644] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[13]:0059b263
[   80.734655] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[14]:fe5fb1c6
[   80.750432] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[15]:114f33b3
[   80.758293] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[16]:56866e6d
[   80.766161] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[17]:77c73f90
[   80.774022] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[18]:5f030b3f
[   80.781877] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array cmd_queue[19]:5d270d0d
[   80.789803] AICWFDBG(LOGTRACE)       rwnx_init_cmd_array Exit
[   80.795897] aicbsp: aicbsp_set_subsys, subsys: AIC_WIFI, state to: 1
[   80.803078] aicbsp: aicbsp_set_subsys, power state change to 1 dure to AIC_WIFI
[   80.811328] aicbsp: aicbsp_platform_power_on
[   80.866454] sunxi-rfkill soc@3000000:rfkill@0: wlan power on success
[   80.923672] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
[   80.934949] sunxi-mmc 4021000.sdmmc: no vqmmc,Check if there is regulator
[   80.955193] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[   80.979558] sunxi-mmc 4021000.sdmmc: failed to get DS26_SDR12 used default
[   81.000243] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 52, RTO !!
[   81.007934] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 52, RTO !!
[   81.014906] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[   81.026672] sunxi-mmc 4021000.sdmmc: failed to get DS26_SDR12 used default
[   81.052679] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[   81.079580] sunxi-mmc 4021000.sdmmc: failed to get DS26_SDR12 used default
[   81.089447] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 5, RTO !!
[   81.097027] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 5, RTO !!
[   81.104773] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 5, RTO !!
[   81.112479] sunxi-mmc 4021000.sdmmc: smc 0 p1 err, cmd 5, RTO !!
[   81.119312] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B
[   83.009527] sunxi-rfkill soc@3000000:rfkill@0: wlan power off success
[   83.016835] aicbsp: aicbsp_set_subsys, fail to set AIC_WIFI power state to 1
[   83.024873] AICWFDBG(LOGERROR)       rwnx_mod_init, set power on fail!
1 module could not be probed
- aic8800_fdrv

#55 Re: 全志 SOC » T113-i spi nand 启动失败 » 2024-02-02 20:46:04

正常的应该是这样:

[    3.294163] ubi0: attaching mtd3
[    3.655598] random: crng init done
[    3.690415] ubi0: scanning is finished
[    3.705125] ubi0 warning: ubi_eba_init: cannot reserve enough PEBs for bad PEB handling, reserved 16, need 20
[    3.718936] ubi0: attached mtd3 (name "sys", size 122 MiB)
[    3.725116] ubi0: PEB size: 262144 bytes (256 KiB), LEB size: 258048 bytes
[    3.732855] ubi0: min./max. I/O unit sizes: 4096/4096, sub-page size 2048
[    3.740424] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[    3.748250] ubi0: good PEBs: 488, bad PEBs: 0, corrupted PEBs: 0
[    3.754995] ubi0: user volume: 10, internal volumes: 1, max. volumes count: 128
[    3.763214] ubi0: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 0
[    3.772556] ubi0: available PEBs: 0, total reserved PEBs: 488, PEBs reserved for bad PEB handling: 16
[    3.782908] ubi0: background thread "ubi_bgt0d" started, PID 71
[    3.791403] block ubiblock0_5: created from ubi0:5(rootfs)

#56 全志 SOC » T113-i spi nand 启动失败 » 2024-02-02 20:41:15

memory
回复: 5
[154]HELLO! BOOT0 is starting!
[157]BOOT0 commit : 1417090655
[160]set pll start
[162]fix vccio detect value:0xc0
[169]periph0 has been enabled
[172]set pll end
[174][pmu]: bus read error
[176]board init ok
[179]enable_jtag
[180]get_pmu_exist() = -1
[183]DRAM BOOT DRIVE INFO: V0.33
[186]DRAM CLK = 792 MHz
[188]DRAM Type = 3 (2:DDR2,3:DDR3)
[191]DRAMC ZQ value: 0x7b7bfb
[194]DRAM ODT value: 0x42.
[197]ddr_efuse_type: 0x0
[200]DRAM SIZE =1024 M
[203]dram_tpr4:0x0
[204]PLL_DDR_CTRL_REG:0xf8004100
[208]DRAM_CLK_REG:0xc0000000
[210][TIMING DEBUG] MR2= 0x18
[218]DRAM simple test OK.
[221]rtc standby flag is 0x0, super standby flag is 0x0
[226]dram size =1024
[229]spinand UBOOT_START_BLK_NUM 8 UBOOT_LAST_BLK_NUM 32
[234]block from 8 to 32
[364]Check is correct.
[366]dma 0x2ac4c int is not used yet
[370]dma 0x2ac4c int is free, you do not need to free it again
[376]Entry_name        = u-boot
[383]Entry_name        = optee
[387]Entry_name        = dtb
[390]Jump to second Boot.
M/TC: OP-TEE version: 8b49ce62-dirty (gcc version 5.3.1 20160412 (Linaro GCC 5.3-2016.05)) #1 Fri Aug 12 08:24:15 UTC 2022 arm


U-Boot 2018.07-gd9e6718-dirty (Feb 02 2024 - 17:55:53 +0800) Allwinner Technology

[00.442]CPU:   Allwinner Family
[00.445]Model: sun8iw20
[00.447]DRAM:  1 GiB
[00.450]Relocation Offset is: 3cec1000
[00.477]secure enable bit: 0
E/TC:0   fdt_getprop_u32:343 prop trace_level not found
[00.491]CPU=1008 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz  MBus=300Mhz
[00.497]gic: sec monitor mode
sunxi flash map init
SPI ALL:   ready
[00.504]flash init start
[00.507]workmode = 0,storage type = 0
[00.513]sunxi-spinand-phy: spinand sample_mode:2 sample_delay:2

device nand0 <nand>, # parts = 4
 #: name                size            offset          mask_flags
 0: boot0               0x00100000      0x00000000      1
 1: uboot               0x00300000      0x00100000      1
 2: secure_storage      0x00100000      0x00400000      1
 3: sys                 0x0fb00000      0x00500000      0

active partition: nand0,0 - (boot0) 0x00100000 @ 0x00000000

defaults:
mtdids  : nand0=nand
mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys)
[00.663]ubi0: attaching mtd4
[01.087]ubi0: scanning is finished
[01.097]ubi0: attached mtd4 (name "sys", size 251 MiB)
[01.101]ubi0: PEB size: 262144 bytes (256 KiB), LEB size: 258048 bytes
[01.108]ubi0: min./max. I/O unit sizes: 4096/4096, sub-page size 2048
[01.114]ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[01.120]ubi0: good PEBs: 1004, bad PEBs: 0, corrupted PEBs: 0
[01.126]ubi0: user volume: 10, internal volumes: 1, max. volumes count: 128
[01.132]ubi0: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 0
[01.140]ubi0: available PEBs: 0, total reserved PEBs: 1004, PEBs reserved for bad PEB handling: 40
[01.149]sunxi flash init ok
[01.151]line:703 init_clocks
[01.154]drv_disp_init
[01.159]handle_num : 6
request pwm success, pwm2:pwm2:0x2000c00.
[01.170]drv_disp_init finish
[01.380]Loading Environment from SUNXI_FLASH... OK
[01.415]boot_gui_init:start
[01.417]set disp.dev2_output_type fail. using defval=0
[01.444]set disp.fb0_rot_used fail. using defval=0
[01.448]set disp.fb0_rot_degree fail. using defval=0
[01.617]boot_gui_init:finish
partno erro : can't find partition bootloader
[01.645]bmp_name=bootlogo.bmp size 38454
[01.658]Item0 (Map) magic is bad
secure storage read widevine fail
[01.664]secure storage read widevine fail with:-1
secure storage read ec_key fail
[01.671]secure storage read ec_key fail with:-1
secure stFDT ERROR:get muxsel err returned FDT_ERR_INTERNAL
sunxi_pwm_pin_set_state, fdt_set_all_pin, ret=-1
[01.686]LCD open finish
orage read ec_cert1 fail
[01.690]secure storage read ec_cert1 fail with:-1
secure storage read ec_cert2 fail
[01.697]secure storage read ec_cert2 fail with:-1
secure storage read ec_cert3 fail
[01.705]secure storage read ec_cert3 fail with:-1
secure storage read rsa_key fail
[01.712]secure storage read rsa_key fail with:-1
secure storage read rsa_cert1 fail
[01.720]secure storage read rsa_cert1 fail with:-1
secure storage read rsa_cert2 fail
[01.727]secure storage read rsa_cert2 fail with:-1
secure storage read rsa_cert3 fail
[01.735]secure storage read rsa_cert3 fail with:-1
[01.740]usb burn from boot
delay time 0
weak:otg_phy_config
[01.751]usb prepare ok
[01.958]usb sof ok
[01.960]usb probe ok
[01.962]usb setup ok
set address 0x33
set address 0x33 ok
try to update
[02.366]do_burn_from_boot usb : have no handshake
List file under ULI/factory
** Unrecognized filesystem type **
[02.397]update bootcmd
[02.426]change working_fdt 0x7c880e70 to 0x7c860e70
[02.445]update dts
Hit any key to stop autoboot:  0
[03.007]no vendor_boot partition is found
Android's image name: sun8i_arm
ERROR: reserving fdt memory region failed (addr=41900000 size=200000)
ERROR: reserving fdt memory region failed (addr=41c00000 size=400000)
ERROR: reserving fdt memory region failed (addr=41b00000 size=100000)
ERROR: reserving fdt memory region failed (addr=7c91d000 size=3e8000)
ERROR: reserving fdt memory region failed (addr=42000000 size=100000)
ERROR: reserving fdt memory region failed (addr=42240000 size=2000)
ERROR: reserving fdt memory region failed (addr=42242000 size=2000)
ERROR: reserving fdt memory region failed (addr=42100000 size=10000)
[03.101]Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.4.61 (whycan@ubuntu) (arm-linux-gnueabi-gcc (Linaro GCC 5.3-2016.05) 5.3.1 20160412, GNU ld (Linaro_Binutils-2016.05) 2.25.0 Linaro 2016_02) #3 SMP PREEMPT Tue Jan 30 12:03:56 CST 2024
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: sun8iw20
[    0.000000] printk: bootconsole [earlycon0] enabled
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] Reserved memory: created DMA memory pool at 0x42200000, size 0 MiB
[    0.000000] OF: reserved mem: initialized node vdev0buffer@42200000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x42244000, size 0 MiB
[    0.000000] OF: reserved mem: initialized node dsp0_rpbuf@42244000, compatible id shared-dma-pool
[    0.000000] cma: Reserved 16 MiB at 0x7f000000
[    0.000000] On node 0 totalpages: 261796
[    0.000000]   Normal zone: 1536 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 196260 pages, LIFO batch:63
[    0.000000]   HighMem zone: 65536 pages, LIFO batch:15
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.0 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.0
[    0.000000] percpu: Embedded 15 pages/cpu s30976 r8192 d22272 u61440
[    0.000000] pcpu-alloc: s30976 r8192 d22272 u61440 alloc=15*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 260260
[    0.000000] Kernel command line: ubi.mtd=sys ubi.block=0,rootfs earlyprintk=sunxi-uart,0x02500000 clk_ignore_unused initcall_debug=0 console=ttyS0,115200 loglevel=8 root=/dev/ubiblock0_5 rootfstype=squashfs init=/init rdinit=/rdinit partitions=mbr@ubi0_0:boot-resource@ubi0_1:env@ubi0_2:env-redund@ubi0_3:boot@ubi0_4:rootfs@ubi0_5:recovery@ubi0_6:dsp0@ubi0_7:private@ubi0_8:UDISK@ubi0_9: cma=16M snum= mac_addr= wifi_mac= bt_mac= specialstr= gpt=1 androidboot.hardware=sun8iw20p1 boot_type=5 androidboot.boot_type=5 gpt=1 uboot_message=2018.07-gd9e6718-dirty(02/02/2024-17:55:53) mbr_offset=1032192 disp_reserve=4096000,0x7c91d000 aw-ubi-spinand.ubootblks=24 androidboot.dramsize=1024
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 998328K/1047184K available (7168K kernel code, 431K rwdata, 2544K rodata, 1024K init, 192K bss, 32472K reserved, 16384K cma-reserved, 241760K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000]  Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] random: get_random_bytes called from start_kernel+0x250/0x3d0 with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000006] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.008000] Switching to timer-based delay loop, resolution 41ns
[    0.014185] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.023974] Console: colour dummy device 80x30
[    0.028467] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.038838] pid_max: default: 32768 minimum: 301
[    0.043625] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.050949] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.059354] CPU: Testing write buffer coherency: ok
[    0.064629] /cpus/cpu@0 missing clock-frequency property
[    0.069957] /cpus/cpu@1 missing clock-frequency property
[    0.075303] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.081568] Setting up static identity map for 0x40100000 - 0x40100060
[    0.088252] rcu: Hierarchical SRCU implementation.
[    0.093364] BOOTEVENT:        93.355457: ON
[    0.097751] smp: Bringing up secondary CPUs ...
[    0.103574] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.103729] smp: Brought up 1 node, 2 CPUs
[    0.113554] SMP: Total of 2 processors activated (96.00 BogoMIPS).
[    0.119734] CPU: All CPU(s) started in SVC mode.
[    0.124938] devtmpfs: initialized
[    0.142307] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.150523] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.160405] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.168085] pinctrl core: initialized pinctrl subsystem
[    0.174826] NET: Registered protocol family 16
[    0.181085] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.233417] rtc_ccu: sunxi ccu init OK
[    0.239636] ccu: sunxi ccu init OK
[    0.243584] r_ccu: sunxi ccu init OK
[    0.289853] sun6i-dma 3002000.dma-controller: sunxi dma probed
[    0.298047] iommu: Default domain type: Translated
[    0.303273] sunxi iommu: irq = 24
[    0.307862] SCSI subsystem initialized
[    0.312008] usbcore: registered new interface driver usbfs
[    0.317784] usbcore: registered new interface driver hub
[    0.323214] usbcore: registered new device driver usb
[    0.328534] mc: Linux media interface: v0.10
[    0.332866] videodev: Linux video capture interface: v2.00
[    0.340262] Advanced Linux Sound Architecture Driver Initialized.
[    0.347108] Bluetooth: Core ver 2.22
[    0.350828] NET: Registered protocol family 31
[    0.355269] Bluetooth: HCI device and connection manager initialized
[    0.361648] Bluetooth: HCI socket layer initialized
[    0.366542] Bluetooth: L2CAP socket layer initialized
[    0.371617] Bluetooth: SCO socket layer initialized
[    0.376833] pwm module init!
[    0.381410] g2d 5410000.g2d: Adding to iommu group 0
[    0.386908] G2D: rcq version initialized.major:250
[    0.392450] input: sunxi-keyboard as /devices/virtual/input/input0
[    0.400295] clocksource: Switched to clocksource arch_sys_counter
[    0.416414] sun8iw20-pinctrl pio: initialized sunXi PIO driver
[    0.438197] thermal_sys: Registered thermal governor 'step_wise'
[    0.438204] thermal_sys: Registered thermal governor 'user_space'
[    0.444488] thermal_sys: Registered thermal governor 'power_allocator'
[    0.451316] NET: Registered protocol family 2
[    0.463031] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    0.471462] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.479293] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.486574] TCP: Hash tables configured (established 8192 bind 8192)
[    0.493097] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.499776] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.507089] NET: Registered protocol family 1
[    0.512623] sun8iw20-pinctrl pio: pio supply vcc-pc not found, using dummy regulator
[    0.520948] spi spi0: spi0 supply spi not found, using dummy regulator
[    0.527671] sunxi_spi_resource_get()2259 - [spi0] SPI MASTER MODE
[    0.534048] sunxi_spi_resource_get()2306 - sample_mode:2 sample_delay:2
[    0.540719] sunxi_spi_request_dma()988 - [spi0] Request DMA channel dma0chan0 (tx) and dma0chan1 (rx) for DMA transfers
[    0.551559] sunxi_spi_clk_init()2356 - [spi0] mclk 100000000
[    0.558052] spi spi0: chipselect 0 already in use
[    0.562808] spi_master spi0: spi_device register error /soc@3000000/spi@4025000/spi_board@0
[    0.571289] spi_master spi0: Failed to create SPI device for /soc@3000000/spi@4025000/spi_board@0
[    0.580170] sunxi_spi_probe()2809 - [spi0]: driver probe succeed, base f0862000, irq 42
[    0.590399] Initialise system trusted keyrings
[    0.595039] workingset: timestamp_bits=30 max_order=18 bucket_order=0
[    0.612454] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.618572] ntfs: driver 2.1.32 [Flags: R/W].
[    0.623424] fuse: init (API version 7.31)
[    0.658538] NET: Registered protocol family 38
[    0.663040] Key type asymmetric registered
[    0.667150] Asymmetric key parser 'x509' registered
[    0.672203] bounce: pool size: 64 pages
[    0.676116] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[    0.683549] io scheduler mq-deadline registered
[    0.688084] io scheduler kyber registered
[    0.692211] atomic64_test: passed
[    0.697162] [DISP]disp_module_init
[    0.701277] disp 5000000.disp: Adding to iommu group 0
[    0.707080] [DISP] disp_init,line:2331:
[    0.707084] smooth display screen:0 type:1 mode:4
[    0.732168] display_fb_request,fb_id:0
[    0.752473] disp_al_manager_apply ouput_type:1
[    0.757081] [DISP] lcd_clk_config,line:777:
[    0.757092] disp 0, clk: pll(420000000),clk(420000000),dclk(70000000) dsi_rate(70000000)
[    0.757092]      clk real:pll(420000000),clk(420000000),dclk(105000000) dsi_rate(150000000)
[    0.760975] [DISP]disp_module_init finish
[    0.761689] sun8iw20-pinctrl pio: pio supply vcc-pd not found, using dummy regulator
[    0.779868] sunxi_sid_init()783 - insmod ok
[    0.794762] pwm-regulator: supplied by regulator-dummy
[    0.801711] sun8iw20-pinctrl pio: pio supply vcc-pb not found, using dummy regulator
[    0.809884] uart uart0: uart0 supply uart not found, using dummy regulator
[    0.817206] uart0: ttyS0 at MMIO 0x2500000 (irq = 34, base_baud = 1500000) is a SUNXI
[    0.825122] sw_console_setup()1831 - console setup baud 115200 parity n bits 8, flow n
[    0.833143] printk: console [ttyS0] enabled
[    0.833143] printk: console [ttyS0] enabled
[    0.842064] printk: bootconsole [earlycon0] disabled
[    0.842064] printk: bootconsole [earlycon0] disabled
[    0.853477] sun8iw20-pinctrl pio: pio supply vcc-pg not found, using dummy regulator
[    0.862604] uart uart1: uart1 supply uart not found, using dummy regulator
[    0.870786] uart1: ttyS1 at MMIO 0x2500400 (irq = 35, base_baud = 1500000) is a SUNXI
[    0.880857] misc dump reg init
[    0.884975] deinterlace 5400000.deinterlace: Adding to iommu group 0
[    0.892719] deinterlace 5400000.deinterlace: version[1.0.0], ip=0x110
[    0.901779] sunxi-rfkill soc@3000000:rfkill@0: module version: v1.0.9
[    0.909030] sunxi-rfkill soc@3000000:rfkill@0: get gpio chip_en failed
[    0.916427] sunxi-rfkill soc@3000000:rfkill@0: get gpio power_en failed
[    0.923876] sunxi-rfkill soc@3000000:rfkill@0: wlan_busnum (1)
[    0.930449] sunxi-rfkill soc@3000000:rfkill@0: Missing wlan_power.
[    0.937414] sunxi-rfkill soc@3000000:rfkill@0: wlan clock[0] (32k-fanout1)
[    0.945170] sunxi-rfkill soc@3000000:rfkill@0: wlan_regon gpio=204 assert=1
[    0.953055] sunxi-rfkill soc@3000000:rfkill@0: wlan_hostwake gpio=202 assert=1
[    0.961193] sunxi-rfkill soc@3000000:rfkill@0: wakeup source is enabled
[    0.968898] sunxi-rfkill soc@3000000:rfkill@0: Missing bt_power.
[    0.975684] sunxi-rfkill soc@3000000:rfkill@0: bt clock[0] (32k-fanout1)
[    0.983264] sunxi-rfkill soc@3000000:rfkill@0: bt_rst gpio=210 assert=0
[    0.991566] [ADDR_MGT] addr_mgt_probe: module version: v1.0.11
[    0.998859] [ADDR_MGT] addr_init: Failed to get type_def_bt, use default: 0
[    1.006704] [ADDR_MGT] addr_mgt_probe: success.
[    1.012964] sunxi-spinand: AW SPINand MTD Layer Version: 2.3 20211223
[    1.020235] sunxi-spinand-phy: AW SPINand Phy Layer Version: 1.10 20200306
[    1.028124] sunxi-spinand-phy: not detect any munufacture from id table
[    1.035631] sunxi-spinand-phy: get spi-nand Model from fdt fail
[    1.042293] sunxi-spinand-phy: get phy info from fdt fail
[    1.048360] sunxi-spinand-phy: not detect munufacture from fdt
[    1.055022] sunxi-spinand-phy: detect munufacture from id table: Winbond
[    1.062580] sunxi-spinand-phy: detect spinand id: ff21aaef ffffffff
[    1.069608] sunxi-spinand-phy: ========== arch info ==========
[    1.076162] sunxi-spinand-phy: Model:               W25N01GVZEIG
[    1.082918] sunxi-spinand-phy: Munufacture:         Winbond
[    1.089169] sunxi-spinand-phy: DieCntPerChip:       1
[    1.094850] sunxi-spinand-phy: BlkCntPerDie:        1024
[    1.100817] sunxi-spinand-phy: PageCntPerBlk:       64
[    1.106577] sunxi-spinand-phy: SectCntPerPage:      4
[    1.112259] sunxi-spinand-phy: OobSizePerPage:      64
[    1.118020] sunxi-spinand-phy: BadBlockFlag:        0x0
[    1.123888] sunxi-spinand-phy: OperationOpt:        0x7
[    1.129756] sunxi-spinand-phy: MaxEraseTimes:       65000
[    1.135828] sunxi-spinand-phy: EccFlag:             0x0
[    1.141697] sunxi-spinand-phy: EccType:             2
[    1.147371] sunxi-spinand-phy: EccProtectedType:    3
[    1.153044] sunxi-spinand-phy: ========================================
[    1.160533] sunxi-spinand-phy:
[    1.164053] sunxi-spinand-phy: ========== physical info ==========
[    1.171003] sunxi-spinand-phy: TotalSize:    128 M
[    1.176384] sunxi-spinand-phy: SectorSize:   512 B
[    1.181770] sunxi-spinand-phy: PageSize:     2 K
[    1.186945] sunxi-spinand-phy: BlockSize:    128 K
[    1.192371] sunxi-spinand-phy: OOBSize:      64 B
[    1.193732] Freeing logo buffer memory: 4000K
[    1.197647] sunxi-spinand-phy: ========================================
[    1.209969] sunxi-spinand-phy:
[    1.213499] sunxi-spinand-phy: ========== logical info ==========
[    1.220343] sunxi-spinand-phy: TotalSize:    128 M
[    1.225721] sunxi-spinand-phy: SectorSize:   512 B
[    1.231111] sunxi-spinand-phy: PageSize:     4 K
[    1.236287] sunxi-spinand-phy: BlockSize:    256 K
[    1.241676] sunxi-spinand-phy: OOBSize:      128 B
[    1.247049] sunxi-spinand-phy: ========================================
[    1.254541] sunxi-spinand-phy: block lock register: 0x00
[    1.260614] sunxi-spinand-phy: feature register: 0x19
[    1.266284] sunxi-spinand-phy: sunxi physic nand init end
[    1.272876] Creating 4 MTD partitions on "sunxi_mtd_nand":
[    1.279064] 0x000000000000-0x000000100000 : "boot0"
[    1.291470] 0x000000100000-0x000000400000 : "uboot"
[    1.311482] 0x000000400000-0x000000500000 : "secure_storage"
[    1.321491] 0x000000500000-0x000008000000 : "sys"
[    1.328174] random: fast init done
[    1.442144] libphy: Fixed MDIO Bus: probed
[    1.446751] CAN device driver interface
[    1.451664] sunxi-can can@0x0 (unnamed net_device) (uninitialized): request pinctrl handle fail!
[    1.462259] sunxi-can can@0x0: can driver probe ok ...
[    1.468365] sunxi-can can@0x1 (unnamed net_device) (uninitialized): request pinctrl handle fail!
[    1.478952] sunxi-can can@0x1: can driver probe ok ...
[    1.485693] sun8iw20-pinctrl pio: pio supply vcc-pe not found, using dummy regulator
[    1.494913] gmac-power0: NULL
[    1.498243] gmac-power1: NULL
[    1.501626] gmac-power2: NULL
[    1.506186] Failed to alloc md5
[    1.509720] eth0: Use random mac address
[    1.514675] usbcore: registered new interface driver asix
[    1.520907] usbcore: registered new interface driver ax88179_178a
[    1.527812] usbcore: registered new interface driver cdc_ether
[    1.534486] usbcore: registered new interface driver net1080
[    1.540928] usbcore: registered new interface driver cdc_subset
[    1.547632] usbcore: registered new interface driver zaurus
[    1.554020] usbcore: registered new interface driver cdc_ncm
[    1.560392] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.567728] sunxi-ehci: EHCI SUNXI driver
[    1.572729] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.579691] sunxi-ohci: OHCI SUNXI driver
[    1.584932] usbcore: registered new interface driver uas
[    1.591059] usbcore: registered new interface driver usb-storage
[    1.597862] usbcore: registered new interface driver ums-alauda
[    1.604665] usbcore: registered new interface driver ums-cypress
[    1.611496] usbcore: registered new interface driver ums-datafab
[    1.618314] usbcore: registered new interface driver ums_eneub6250
[    1.625330] usbcore: registered new interface driver ums-freecom
[    1.632168] usbcore: registered new interface driver ums-isd200
[    1.638864] usbcore: registered new interface driver ums-jumpshot
[    1.645780] usbcore: registered new interface driver ums-karma
[    1.652435] usbcore: registered new interface driver ums-onetouch
[    1.659349] usbcore: registered new interface driver ums-realtek
[    1.666188] usbcore: registered new interface driver ums-sddr09
[    1.672910] usbcore: registered new interface driver ums-sddr55
[    1.679616] usbcore: registered new interface driver ums-usbat
[    1.687310] input: sunxi-ts as /devices/platform/soc@3000000/2009c00.rtp/input/input1
[    1.697332] sunxi-rtc 7090000.rtc: errata__fix_alarm_day_reg_default_value(): ALARM0_DAY_REG=0, set it to 1
[    1.709583] sunxi-rtc 7090000.rtc: registered as rtc0
[    1.715475] sunxi-rtc 7090000.rtc: setting system clock to 1970-01-01T00:00:05 UTC (5)
[    1.724420] sunxi-rtc 7090000.rtc: sunxi rtc probed
[    1.730550] i2c /dev entries driver
[    1.734681] IR NEC protocol handler initialized
[    1.739767] IR RC5(x/sz) protocol handler initialized
[    1.746168] [VIN_WARN]sensor_helper_probe: cannot get sensor0_cameravdd supply, setting it to NULL!
[    1.756364] [VIN_WARN]sensor_helper_probe: cannot get sensor0_iovdd supply, setting it to NULL!
[    1.766175] [VIN_WARN]sensor_helper_probe: cannot get sensor0_avdd supply, setting it to NULL!
[    1.775862] [VIN_WARN]sensor_helper_probe: cannot get sensor0_dvdd supply, setting it to NULL!
[    1.787702] usbcore: registered new interface driver uvcvideo
[    1.794215] USB Video Class driver (1.1.1)
[    1.798810] gspca_main: v2.14.0 registered
[    1.803418] sunxi cedar version 1.1
[    1.807555] sunxi-cedar 1c0e000.ve: Adding to iommu group 0
[    1.813938] VE: sunxi_cedar_probe power-domain init!!!
[    1.819709] VE: install start!!!
[    1.819709]
[    1.825343] VE: cedar-ve the get irq is 43
[    1.825343]
[    1.831886] VE: ve_debug_proc_info:(ptrval), data:(ptrval), lock:(ptrval)
[    1.831886]
[    1.841188] VE: install end!!!
[    1.841188]
[    1.846282] VE: sunxi_cedar_probe
[    1.851603] sunxi-wdt 20500a0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[    1.860919] Bluetooth: HCI UART driver ver 2.3
[    1.865911] Bluetooth: HCI UART protocol H4 registered
[    1.871991] Bluetooth: XRadio Bluetooth LPM Mode Driver Ver 1.0.10
[    1.879273] [XR_BT_LPM] bluesleep_probe: bt_wake polarity: 1
[    1.885762] [XR_BT_LPM] bluesleep_probe: host_wake polarity: 1
[    1.892357] [XR_BT_LPM] bluesleep_probe: wakeup source is disabled!
[    1.892357]
[    1.901102] [XR_BT_LPM] bluesleep_probe: uart_index(1)
[    1.910538] sunxi-mmc 4020000.sdmmc: SD/MMC/SDIO Host Controller Driver(v4.25 2022-6-21 13:40)
[    1.920536] sunxi-mmc 4020000.sdmmc: ***ctl-spec-caps*** 8
[    1.926750] sunxi-mmc 4020000.sdmmc: No vmmc regulator found
[    1.933126] sunxi-mmc 4020000.sdmmc: No vqmmc regulator found
[    1.939572] sunxi-mmc 4020000.sdmmc: No vdmmc regulator found
[    1.946041] sunxi-mmc 4020000.sdmmc: No vd33sw regulator found
[    1.952599] sunxi-mmc 4020000.sdmmc: No vd18sw regulator found
[    1.959145] sunxi-mmc 4020000.sdmmc: No vq33sw regulator found
[    1.965705] sunxi-mmc 4020000.sdmmc: No vq18sw regulator found
[    1.972758] sunxi-mmc 4020000.sdmmc: Got CD GPIO
[    1.978478] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
[    1.989729] sunxi-mmc 4020000.sdmmc: no vqmmc,Check if there is regulator
[    2.009894] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[    2.034159] sunxi-mmc 4020000.sdmmc: detmode:gpio polling
[    2.040244] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B
[    2.051983] sunxi-mmc 4021000.sdmmc: SD/MMC/SDIO Host Controller Driver(v4.25 2022-6-21 13:40)
[    2.061922] sunxi-mmc 4021000.sdmmc: ***ctl-spec-caps*** 8
[    2.068136] sunxi-mmc 4021000.sdmmc: No vmmc regulator found
[    2.074607] sunxi-mmc 4021000.sdmmc: No vqmmc regulator found
[    2.081114] sunxi-mmc 4021000.sdmmc: No vdmmc regulator found
[    2.087561] sunxi-mmc 4021000.sdmmc: No vd33sw regulator found
[    2.094127] sunxi-mmc 4021000.sdmmc: No vd18sw regulator found
[    2.100687] sunxi-mmc 4021000.sdmmc: No vq33sw regulator found
[    2.107233] sunxi-mmc 4021000.sdmmc: No vq18sw regulator found
[    2.113814] sunxi-mmc 4021000.sdmmc: Cann't get pin bias hs pinstate,check if needed
[    2.123326] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
[    2.134520] sunxi-mmc 4021000.sdmmc: no vqmmc,Check if there is regulator
[    2.154683] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[    2.178940] sunxi-mmc 4021000.sdmmc: detmode:manually by software
[    2.186635] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 52, RTO !!
[    2.187012] usbcore: registered new interface driver usbhid
[    2.199800] usbhid: USB HID core driver
[    2.200607] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 52, RTO !!
[    2.204137] exFAT: Version 1.3.0
[    2.214579] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[    2.220935] sunxi-msgbox 3003000.msgbox: sunxi msgbox driver probe ...
[    2.233934] sunxi-msgbox 3003000.msgbox: sunxi msgbox driver init ok...
[    2.234832] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[    2.242249] sunxi-rproc 3000008.dsp_rproc: sunxi rproc driver 2.1.2
[    2.260097] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 5, RTO !!
[    2.266881] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 5, RTO !!
[    2.273689] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 5, RTO !!
[    2.280461] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 5, RTO !!
[    2.280490] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B
[    2.287264] sunxi-rproc 3000008.dsp_rproc: failed to get firmware-name
[    2.306228] remoteproc remoteproc0: dsp_rproc is available
[    2.312522] sunxi-rproc 3000008.dsp_rproc: sunxi rproc driver probe ok
[    2.320985] sunxi-rpbuf-controller rpbuf_controller@0: assigned reserved memory node dsp0_rpbuf@42244000
[    2.332019] sunxi-rpbuf-controller rpbuf_controller@0: rpbuf_register_ctrl_dev:827
[    2.344641] [AUDIOCODEC][sunxi_codec_parse_params][2437]:digital_vol:0, lineout_vol:26, mic1gain:31, mic2gain:31 pa_msleep:120, pa_level:1, pa_pwr_level:1
[    2.344641]
[    2.361913] [AUDIOCODEC][sunxi_codec_parse_params][2473]:adcdrc_cfg:0, adchpf_cfg:1, dacdrc_cfg:0, dachpf:0
[    2.373373] [AUDIOCODEC][sunxi_internal_codec_probe][2634]:codec probe finished
[    2.382835] debugfs: Directory '203034c.dummy_cpudai' with parent 'audiocodec' already present!
[    2.392708] [SNDCODEC][sunxi_card_init][583]:card init finished
[    2.400002] sunxi-codec-machine 2030340.sound: 2030000.codec <-> 203034c.dummy_cpudai mapping ok
[    2.411228] input: audiocodec sunxi Audio Jack as /devices/platform/soc@3000000/2030340.sound/sound/card0/input2
[    2.423439] [SNDCODEC][sunxi_card_dev_probe][836]:register card finished
[    2.432402] NET: Registered protocol family 10
[    2.438533] Segment Routing with IPv6
[    2.442835] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    2.450354] [SNDCODEC][sunxi_hs_init_work][259]:resume-->report switch
[    2.451602] NET: Registered protocol family 17
[    2.462813] NET: Registered protocol family 15
[    2.467799] can: controller area network core (rev 20170425 abi 9)
[    2.474862] NET: Registered protocol family 29
[    2.479853] can: raw protocol (rev 20170425)
[    2.484666] can: broadcast manager protocol (rev 20170425 t)
[    2.491036] can: netlink gateway (rev 20190810) max_hops=1
[    2.497680] Bluetooth: RFCOMM TTY layer initialized
[    2.503218] Bluetooth: RFCOMM socket layer initialized
[    2.509010] Bluetooth: RFCOMM ver 1.11
[    2.514242] Registering SWP/SWPB emulation handler
[    2.520019] Loading compiled-in X.509 certificates
[    2.544332] sunxi-i2c 2502800.twi: 2502800.twi supply twi not found, using dummy regulator
[    2.555116] sunxi-i2c 2502800.twi: probe success
[    2.562336] sunxi-thermal 2009400.ths: sun8iw20 cp version:15
[    2.601760] get drvvbus-en is fail, 22
[    2.605968] get ehci0-controller wakeup-source is fail.
[    2.612027] sunxi ehci0-controller don't init wakeup source
[    2.618279] [sunxi-ehci0]: probe, pdev->name: 4101000.ehci0-controller, sunxi_ehci: 0xc0c91ca0, 0x:f18d3000, irq_no:3b
[    2.630304] [sunxi-ehci0]: Not init ehci0
[    2.635218] get drvvbus-en is fail, 22
[    2.639424] get ohci0-controller wakeup-source is fail.
[    2.645418] sunxi ohci0-controller don't init wakeup source
[    2.651687] [sunxi-ohci0]: probe, pdev->name: 4101400.ohci0-controller, sunxi_ohci: 0xc0c91f50
[    2.661354] [sunxi-ohci0]: Not init ohci0
[    2.666250] get drvvbus-en is fail, 22
[    2.670483] get ehci1-controller wakeup-source is fail.
[    2.676435] sunxi ehci1-controller don't init wakeup source
[    2.682705] [sunxi-ehci1]: probe, pdev->name: 4200000.ehci1-controller, sunxi_ehci: 0xc0c92200, 0x:f18dd000, irq_no:3d
[    2.694978] sunxi-ehci 4200000.ehci1-controller: 4200000.ehci1-controller supply hci not found, using dummy regulator
[    2.708453] sunxi-ehci 4200000.ehci1-controller: EHCI Host Controller
[    2.715747] sunxi-ehci 4200000.ehci1-controller: new USB bus registered, assigned bus number 1
[    2.725645] sunxi-ehci 4200000.ehci1-controller: irq 61, io mem 0x04200000
[    2.760316] sunxi-ehci 4200000.ehci1-controller: USB 2.0 started, EHCI 1.00
[    2.769030] hub 1-0:1.0: USB hub found
[    2.773309] hub 1-0:1.0: 1 port detected
[    2.778634] get drvvbus-en is fail, 22
[    2.782868] get ohci1-controller wakeup-source is fail.
[    2.788842] sunxi ohci1-controller don't init wakeup source
[    2.795108] [sunxi-ohci1]: probe, pdev->name: 4200400.ohci1-controller, sunxi_ohci: 0xc0c924b0
[    2.805044] sunxi-ohci 4200400.ohci1-controller: 4200400.ohci1-controller supply hci not found, using dummy regulator
[    2.817365] sunxi-ohci 4200400.ohci1-controller: OHCI Host Controller
[    2.824640] sunxi-ohci 4200400.ohci1-controller: new USB bus registered, assigned bus number 2
[    2.834514] sunxi-ohci 4200400.ohci1-controller: irq 62, io mem 0x04200400
[    2.915182] hub 2-0:1.0: USB hub found
[    2.919447] hub 2-0:1.0: 1 port detected
[    2.925926] ubi0: attaching mtd3
[    3.060350] [SNDCODEC][sunxi_check_hs_detect_status][191]:plugin --> switch:3
[    3.125481] ubi0: scanning is finished
[    3.134497] ubi0 error: vtbl_check: too large reserved_pebs 594, good PEBs 492
[    3.142629] ubi0 error: vtbl_check: volume table check failed: record 9, error 9
[    3.150945] Volume table record 9 dump:
[    3.155239]  reserved_pebs   594
[    3.158850]  alignment       1
[    3.162329]  data_pad        0
[    3.165747]  vol_type        1
[    3.169164]  upd_marker      0
[    3.172595]  name_len        5
[    3.176022]  name            UDISK
[    3.179828]  crc             0xbb9113be
[    3.184391] ubi0 error: ubi_attach_mtd_dev: failed to attach mtd3, error -22
[    3.192356] UBI error: cannot attach mtd3
[    3.196853] UBI: block: can't open volume on ubi0_-1, err=-19
[    3.203883] otg manager soc@3000000:usbc0@0: soc@3000000:usbc0@0 supply usbc not found, using dummy regulator
[    3.220965] sunxi-vin-core 5809000.vinc: Adding to iommu group 0
[    3.228591] sunxi-vin-core 5809200.vinc: Adding to iommu group 0
[    3.236810] sun8iw20-pinctrl pio: pin PE13 already requested by 4500000.eth; cannot claim for pio:141
[    3.247228] sun8iw20-pinctrl pio: pin-141 (pio:141) status -22
[    3.254102] [VIN_WARN]get csi isp clk fail
[    3.258721] [VIN_WARN]get csi isp src clk fail
[    3.263732] [VIN_WARN]get csi mipi clk fail
[    3.268420] [VIN_WARN]get csi mipi src clk fail
[    3.273549] [VIN_WARN]get csi isp mbus clk fail
[    3.278637] [VIN_WARN]Get isp reset control fail
[    3.284030] [VIN_ERR]n5 request i2c1 adapter failed!
[    3.292802] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    3.303943] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    3.311492] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    3.320392] clk: Not disabling unused clocks
[    3.321168] cfg80211: failed to load regulatory.db
[    3.325931] ALSA device list:
[    3.325937]   #0: audiocodec
[    3.337966] alloc_fd: slot 0 not NULL!
[    3.342699] /dev/root: Can't open blockdev
[    3.347299] VFS: Cannot open root device "ubiblock0_5" or unknown-block(0,0): error -6
[    3.356215] Please append a correct "root=" boot option; here are the available partitions:
[    3.365613] 1f00            1024 mtdblock0
[    3.365616]  (driver?)
[    3.372952] 1f01            3072 mtdblock1
[    3.372955]  (driver?)
[    3.380292] 1f02            1024 mtdblock2
[    3.380295]  (driver?)
[    3.387616] 1f03          125952 mtdblock3
[    3.387618]  (driver?)
[    3.394962] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    3.404227] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.4.61 #3
[    3.410857] Hardware name: Generic DT based system
[    3.416244] [<c010e2f8>] (unwind_backtrace) from [<c010a8bc>] (show_stack+0x10/0x14)
[    3.424927] [<c010a8bc>] (show_stack) from [<c0792170>] (dump_stack+0x7c/0x98)
[    3.433027] [<c0792170>] (dump_stack) from [<c0119d2c>] (panic+0x104/0x3dc)
[    3.440835] [<c0119d2c>] (panic) from [<c0b01278>] (mount_block_root+0x258/0x300)
[    3.449225] [<c0b01278>] (mount_block_root) from [<c0b014bc>] (prepare_namespace+0x118/0x178)
[    3.458785] [<c0b014bc>] (prepare_namespace) from [<c07a6854>] (kernel_init+0x8/0x118)
[    3.467662] [<c07a6854>] (kernel_init) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
[    3.476144] Exception stack(0xef079fb0 to 0xef079ff8)
[    3.481803] 9fa0:                                     00000000 00000000 00000000 00000000
[    3.490969] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[    3.500134] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[    3.507552] CPU0: stopping
[    3.510585] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.4.61 #3
[    3.517214] Hardware name: Generic DT based system
[    3.522588] [<c010e2f8>] (unwind_backtrace) from [<c010a8bc>] (show_stack+0x10/0x14)
[    3.531268] [<c010a8bc>] (show_stack) from [<c0792170>] (dump_stack+0x7c/0x98)
[    3.539365] [<c0792170>] (dump_stack) from [<c010c6b0>] (handle_IPI+0xc0/0x168)
[    3.547561] [<c010c6b0>] (handle_IPI) from [<c03a7134>] (gic_handle_irq+0x70/0x78)
[    3.556048] [<c03a7134>] (gic_handle_irq) from [<c01021cc>] (__irq_svc+0x6c/0xa8)
[    3.564432] Exception stack(0xc0c01f40 to 0xc0c01f88)
[    3.570093] 1f40: 000067c8 ef7b9574 00000000 c0115280 00000001 c0c00000 c0c03e28 c0c03e64
[    3.579260] 1f60: 00000000 efffc3c0 c0b2f0c0 00000000 c0c76830 c0c01f90 c0107fd8 c0107fdc
[    3.588423] 1f80: 60000113 ffffffff
[    3.592334] [<c01021cc>] (__irq_svc) from [<c0107fdc>] (arch_cpu_idle+0x2c/0x38)
[    3.600627] [<c0107fdc>] (arch_cpu_idle) from [<c013e920>] (do_idle+0xb8/0x120)
[    3.608821] [<c013e920>] (do_idle) from [<c013ec24>] (cpu_startup_entry+0x18/0x1c)
[    3.617307] [<c013ec24>] (cpu_startup_entry) from [<c0b00c68>] (start_kernel+0x340/0x3d0)
[    3.626474] [<c0b00c68>] (start_kernel) from [<00000000>] (0x0)
[    3.633118] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---

这里不正常:

[    2.925926] ubi0: attaching mtd3
[    3.060350] [SNDCODEC][sunxi_check_hs_detect_status][191]:plugin --> switch:3
[    3.125481] ubi0: scanning is finished
[    3.134497] ubi0 error: vtbl_check: too large reserved_pebs 594, good PEBs 492
[    3.142629] ubi0 error: vtbl_check: volume table check failed: record 9, error 9
[    3.150945] Volume table record 9 dump:
[    3.155239]  reserved_pebs   594
[    3.158850]  alignment       1
[    3.162329]  data_pad        0
[    3.165747]  vol_type        1
[    3.169164]  upd_marker      0
[    3.172595]  name_len        5
[    3.176022]  name            UDISK
[    3.179828]  crc             0xbb9113be
[    3.184391] ubi0 error: ubi_attach_mtd_dev: failed to attach mtd3, error -22
[    3.192356] UBI error: cannot attach mtd3
[    3.196853] UBI: block: can't open volume on ubi0_-1, err=-19

#58 Re: 全志 SOC » 开源 T113-s3 图纸 » 2024-01-09 17:03:51

a06041114 说:

想问下T113如何接EMMC,论坛里谁有原理图

4bit 接 SDC0 或 SDC2

#59 Re: 全志 SOC » ble scan 扫描不到所有设备 » 2023-12-31 22:49:13

55ee14733d431beede7c3c2a03ba147.png


btstack终于可以同时连两个BLE设备了

#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

#include "btstack_config.h"

#include "ad_parser.h"
#include "ble/att_db.h"
#include "ble/att_server.h"
#include "ble/le_device_db.h"
#include "ble/sm.h"
#include "btstack_debug.h"
#include "btstack_event.h"
#include "btstack_memory.h"
#include "btstack_run_loop.h"
#include "gap.h"
#include "hci.h"
#include "hci_dump.h"
#include "l2cap.h"
#include "btstack_stdin.h"

// test profile
#include "ble_central_test.h"
#include "ble/gatt_client.h"

// Non standard IXIT
#define PTS_USES_RECONNECTION_ADDRESS_FOR_ITSELF
#define PTS_UUID128_REPRESENTATION

extern void le_device_db_local_csrk_get(int index, sm_key_t csrk);

typedef enum {
    CENTRAL_IDLE,
    CENTRAL_W4_NAME_QUERY_COMPLETE,
    CENTRAL_W4_NAME_VALUE,
    CENTRAL_W4_RECONNECTION_ADDRESS_QUERY_COMPLETE,
    CENTRAL_W4_PERIPHERAL_PRIVACY_FLAG_QUERY_COMPLETE,
    CENTRAL_W4_SIGNED_WRITE_QUERY_COMPLETE,
    CENTRAL_W4_PRIMARY_SERVICES,
    CENTRAL_ENTER_SERVICE_UUID_4_DISCOVER_CHARACTERISTICS,
    CENTRAL_ENTER_START_HANDLE_4_DISCOVER_CHARACTERISTICS,
    CENTRAL_ENTER_END_HANDLE_4_DISCOVER_CHARACTERISTICS,
    CENTRAL_W4_CHARACTERISTICS,
    CENTRAL_W4_DISCOVER_CHARACTERISTIC_DESCRIPTORS,
    CENTRAL_W4_READ_CHARACTERISTIC_VALUE_BY_HANDLE,
    CENTRAL_ENTER_HANDLE_4_READ_CHARACTERISTIC_VALUE_BY_UUID,
    CENTRAL_W4_READ_CHARACTERISTIC_VALUE_BY_UUID,
    CENTRAL_ENTER_OFFSET_4_READ_LONG_CHARACTERISTIC_VALUE_BY_HANDLE,
    CENTRAL_W4_READ_LONG_CHARACTERISTIC_VALUE_BY_HANDLE,
    CENTRAL_W4_READ_CHARACTERISTIC_DESCRIPTOR_BY_HANDLE,
    CENTRAL_ENTER_OFFSET_4_READ_LONG_CHARACTERISTIC_DESCRIPTOR_BY_HANDLE,
    CENTRAL_W4_READ_LONG_CHARACTERISTIC_DESCRIPTOR_BY_HANDLE,
    CENTRAL_W4_READ_MULTIPLE_CHARACTERISTIC_VALUES,
    CENTRAL_W4_WRITE_WITHOUT_RESPONSE,
    CENTRAL_W4_WRITE_CHARACTERICISTIC_VALUE,
    CENTRAL_ENTER_HANDLE_4_WRITE_LONG_CHARACTERISTIC_VALUE,
    CENTRAL_W4_WRITE_LONG_CHARACTERISTIC_VALUE,
    CENTRAL_W4_RELIABLE_WRITE,
    CENTRAL_W4_WRITE_CHARACTERISTIC_DESCRIPTOR,
    CENTRAL_ENTER_HANDLE_4_WRITE_LONG_CHARACTERISTIC_DESCRIPTOR,
    CENTRAL_W4_WRITE_LONG_CHARACTERISTIC_DESCRIPTOR,
    CENTRAL_W4_SIGNED_WRITE,

    CENTRAL_W4_ENTER_HANDLE_4_PREPARE_WRITE,
    CENTRAL_W4_ENTER_OFFSET_4_PREPARE_WRITE,

    CENTRAL_GPA_ENTER_UUID,
    CENTRAL_GPA_ENTER_START_HANDLE,
    CENTRAL_GPA_ENTER_END_HANDLE,
    CENTRAL_GPA_W4_RESPONSE,
    CENTRAL_GPA_W4_RESPONSE2,
    CENTRAL_GPA_W4_RESPONSE3,
    CENTRAL_GPA_W4_RESPONSE4,
} central_state_t;

typedef struct advertising_report {
    uint8_t   type;
    uint8_t   event_type;
    uint8_t   address_type;
    bd_addr_t address;
    uint8_t   rssi;
    uint8_t   length;
    uint8_t * data;
} advertising_report_t;

static const uint8_t gpa_format_type_len[] = {
    /* 0x00 */
    1,1,1,1,1,
    /* 0x05 */
    2,2,
    /* 0x07 */
    3,4,6,8,16,
    /* 0x0c */
    1,2,2,3,4,6,8,16,
    /* 0x14 */
    4,8,2,4,4
};


static int gap_privacy = 0;
static int gap_bondable = 1;
static char gap_device_name[20];
static int gap_connectable = 0;

static char * sm_io_capabilities = NULL;
static int sm_mitm_protection = 0;
static int sm_have_oob_data = 0;
static uint8_t * sm_oob_data_A = (uint8_t *) "0123456789012345"; // = { 0x30...0x39, 0x30..0x35}
static uint8_t * sm_oob_data_B = (uint8_t *) "3333333333333333"; // = { 0x30...0x39, 0x30..0x35}
static int sm_min_key_size = 7;
static uint8_t pts_privacy_flag;

static int ui_passkey = 0;
static int ui_digits_for_passkey = 0;
static int ui_uint16 = 0;
static int ui_uint16_request = 0;
static int ui_uint16_pos = 0;
static int ui_uuid16 = 0;
static int ui_uuid128_request = 0;
static int ui_uuid128_pos     = 0;
static uint8_t ui_uuid128[16];
static int      ui_handles_count;
static int      ui_handles_index;
static uint16_t ui_handles[10];
static uint16_t ui_attribute_handle;
static int      ui_attribute_offset;
static int      ui_value_request = 0;
static uint8_t  ui_value_data[50];
static int      ui_value_pos = 0;
static uint16_t ui_start_handle;
static uint16_t ui_end_handle;
static uint8_t ui_presentation_format[7];
static uint16_t ui_aggregate_handle;
static uint16_t handle = 0;

//static bd_addr_t public_pts_address = {0x00, 0x1B, 0xDC, 0x07, 0x32, 0xef};
static bd_addr_t public_pts_address = {0x23, 0x11, 0x23, 0x00, 0x76, 0xa1}; //iTag
static bd_addr_t public_pts_address2 = {0x0B, 0x3B, 0x22, 0xAC, 0x88, 0x20}; //A133模拟的le_counter0B:3B:22:AC:88:20
//static bd_addr_t public_pts_address = {0xe2, 0x9a, 0xd0, 0x68, 0x6d, 0x66};
//static bd_addr_t public_pts_address = {0xF7, 0xAA, 0x0D, 0xE2, 0x71, 0x16};

static int       public_pts_address_type = 0;
static int       public_pts_address_type2 = 0;

static bd_addr_t current_pts_address;
static int       current_pts_address_type;
static int       reconnection_address_set = 0;
static bd_addr_t our_private_address;

static uint16_t pts_signed_write_characteristic_uuid = 0xb00d;
static uint16_t pts_signed_write_characteristic_handle = 0x00b1;
static uint8_t signed_write_value[] = { 0x12 };

static central_state_t central_state = CENTRAL_IDLE;
static gatt_client_characteristic_t gap_name_characteristic;
static gatt_client_characteristic_t gap_reconnection_address_characteristic;
static gatt_client_characteristic_t gap_peripheral_privacy_flag_characteristic;
static gatt_client_characteristic_t signed_write_characteristic;
static gatt_client_service_t        service;

static btstack_packet_callback_registration_t hci_event_callback_registration;

static void show_usage(void);
///

static void printUUID(uint8_t * uuid128, uint16_t uuid16){
    if (uuid16){
        printf("%04x",uuid16);
    } else {
        printf("%s", uuid128_to_str(uuid128));
    }
}

static const char * att_errors[] = {
    "OK",
    "Invalid Handle",
    "Read Not Permitted",
    "Write Not Permitted",
    "Invalid PDU",
    "Insufficient Authentication",
    "Request No Supported",
    "Invalid Offset",
    "Insufficient Authorization",
    "Prepare Queue Full",
    "Attribute Not Found",
    "Attribute Not Long",
    "Insufficient Encryption Size",
    "Invalid Attribute Value Length",
    "Unlikely Error",
    "Insufficient Encryption",
    "Unsupported Group Type",
    "Insufficient Resource"
};
static const char * att_error_reserved = "Reserved";
static const char * att_error_application = "Application Error";
static const char * att_error_common_error = "Common Profile and Service Error Codes";
static const char * att_error_timeout = "Timeout";

static const char * att_error_string_for_code(uint8_t code){
    if (code >= 0xe0) return att_error_common_error;
    if (code >= 0xa0) return att_error_reserved;
    if (code >= 0x80) return att_error_application;
    if (code == 0x7f) return att_error_timeout;
    if (code >= 0x12) return att_error_reserved;
    return att_errors[ code];
}

const char * ad_event_types[] = {
    "Connectable undirected advertising",
    "Connectable directed advertising",
    "Scannable undirected advertising",
    "Non connectable undirected advertising",
    "Scan Response"
};

static void handle_advertising_event(uint8_t * packet, int size){
    // filter PTS
    bd_addr_t addr;
    gap_event_advertising_report_get_address(packet, addr);
    uint8_t addr_type = gap_event_advertising_report_get_address_type(packet);
    // always request address resolution
    sm_address_resolution_lookup(addr_type, addr);

    // ignore advertisement from devices other than pts
    // if (memcmp(addr, current_pts_address, 6)) return;
    uint8_t adv_event_type = gap_event_advertising_report_get_advertising_event_type(packet);
    printf("Advertisement: %s - %s, ", bd_addr_to_str(addr), ad_event_types[adv_event_type]);
    int adv_size = gap_event_advertising_report_get_data_length(packet);
    const uint8_t * adv_data = gap_event_advertising_report_get_data(packet);

    // check flags
    ad_context_t context;
    for (ad_iterator_init(&context, adv_size, (uint8_t *)adv_data) ; ad_iterator_has_more(&context) ; ad_iterator_next(&context)){
        uint8_t data_type = ad_iterator_get_data_type(&context);
        // uint8_t size      = ad_iterator_get_data_len(&context);
        const uint8_t * data = ad_iterator_get_data(&context);
        switch (data_type){
            case 1: // AD_FLAGS
                if (*data & 1) printf("LE Limited Discoverable Mode, ");
                if (*data & 2) printf("LE General Discoverable Mode, ");
                break;
            default:
                break;
        }
    }

    // dump data
    printf("Data: ");
    printf_hexdump(adv_data, adv_size);
}

static uint8_t gap_adv_type(void){
    // if (gap_scannable) return 0x02;
    // if (gap_directed_connectable) return 0x01;
    if (!gap_connectable) return 0x03;
    return 0x00;
}

static void update_advertisment_params(void){
    uint8_t adv_type = gap_adv_type();
    printf("GAP: Connectable = %u -> advertising_type %u (%s)\n", gap_connectable, adv_type, ad_event_types[adv_type]);
    bd_addr_t null_addr;
    memset(null_addr, 0, 6);
    uint16_t adv_int_min = 0x800;
    uint16_t adv_int_max = 0x800;
    switch (adv_type){
        case 0:
        case 2:
        case 3:
            gap_advertisements_set_params(adv_int_min, adv_int_max, adv_type, 0, null_addr, 0x07, 0x00);
            break;
        case 1:
        case 4:
            gap_advertisements_set_params(adv_int_min, adv_int_max, adv_type, public_pts_address_type, public_pts_address, 0x07, 0x00);
            break;
        }
}

static void gap_run(void){
    if (!hci_can_send_command_packet_now()) return;
}

static void app_packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){
    uint16_t aHandle;

    switch (packet_type) {

        case HCI_EVENT_PACKET:
            switch (packet[0]) {

                case BTSTACK_EVENT_STATE:
                    // bt stack activated, get started
                    if (btstack_event_state_get_state(packet) == HCI_STATE_WORKING){
                        printf("Central test ready\n");
                        show_usage();
                        gap_run();
                    }
                    break;

                case HCI_EVENT_LE_META:
                    switch (hci_event_le_meta_get_subevent_code(packet)) {
                        case HCI_SUBEVENT_LE_CONNECTION_COMPLETE:
                            handle = little_endian_read_16(packet, 4);
                            printf("Connection complete, handle 0x%04x\n", handle);
                            break;

                        default:
                            break;
                    }
                    break;

                case HCI_EVENT_DISCONNECTION_COMPLETE:
                    aHandle = little_endian_read_16(packet, 3);
                    printf("Disconnected from handle 0x%04x\n", aHandle);
                    break;

                case GAP_EVENT_ADVERTISING_REPORT:
                    handle_advertising_event(packet, size);
                    break;

                default:
                    break;
            }
    }
    gap_run();
}

static void use_public_pts_address(void){
    memcpy(current_pts_address, public_pts_address, 6);
    current_pts_address_type = public_pts_address_type;
}

static void extract_service(gatt_client_service_t * aService, uint8_t * data){
    aService->start_group_handle = little_endian_read_16(data, 0);
    aService->end_group_handle   = little_endian_read_16(data, 2);
    aService->uuid16 = 0;
    reverse_128(&data[4], aService->uuid128);
    if (uuid_has_bluetooth_prefix(aService->uuid128)){
        aService->uuid16 = big_endian_read_32(aService->uuid128, 0);
    }
}

static void extract_characteristic(gatt_client_characteristic_t * characteristic, uint8_t * packet){
    characteristic->start_handle = little_endian_read_16(packet, 4);
    characteristic->value_handle = little_endian_read_16(packet, 6);
    characteristic->end_handle =   little_endian_read_16(packet, 8);
    characteristic->properties =   little_endian_read_16(packet, 10);
    characteristic->uuid16 = 0;
    reverse_128(&packet[12], characteristic->uuid128);
    if (uuid_has_bluetooth_prefix(characteristic->uuid128)){
        characteristic->uuid16 = big_endian_read_32(characteristic->uuid128, 0);
    }
}

static void handle_gatt_client_event(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){

    if (packet_type != HCI_EVENT_PACKET) return;

    uint8_t address_type;
    bd_addr_t flipped_address;
    gatt_client_characteristic_t characteristic;
    uint8_t *           value;
    uint16_t            value_handle;
    uint16_t            value_length;
    uint16_t            value_offset;
    uint8_t             status;

    switch(packet[0]){
        case GATT_EVENT_SERVICE_QUERY_RESULT:
            switch (central_state){
                case CENTRAL_W4_PRIMARY_SERVICES:
                case CENTRAL_ENTER_SERVICE_UUID_4_DISCOVER_CHARACTERISTICS:
                    extract_service(&service, &packet[4]);
                    printf("Primary Service with UUID ");
                    printUUID(service.uuid128, service.uuid16);
                    printf(", start group handle 0x%04x, end group handle 0x%04x\n", service.start_group_handle, service.end_group_handle);
                    break;
                    extract_service(&service, &packet[4]);
                    printf("Primary Service with UUID ");
                    printUUID(service.uuid128, service.uuid16);
                    printf(", start group handle 0x%04x, end group handle 0x%04x\n", service.start_group_handle, service.end_group_handle);
                    break;
                default:
                    break;
                }
            break;
        case GATT_EVENT_INCLUDED_SERVICE_QUERY_RESULT:
            value_handle = little_endian_read_16(packet, 4);
            extract_service(&service, &packet[6]);
            printf("Included Service at 0x%04x: ", value_handle);
            printf("start group handle 0x%04x, end group handle 0x%04x with UUID ", service.start_group_handle, service.end_group_handle);
            printUUID(service.uuid128, service.uuid16);
            printf("\n");
            break;
        case GATT_EVENT_CHARACTERISTIC_QUERY_RESULT:
            extract_characteristic(&characteristic, packet);
            switch (central_state) {
                case CENTRAL_W4_NAME_QUERY_COMPLETE:
                    gap_name_characteristic = characteristic;
                    printf("GAP Name Characteristic found, value handle: 0x04%x\n", gap_name_characteristic.value_handle);
                    break;
                case CENTRAL_W4_RECONNECTION_ADDRESS_QUERY_COMPLETE:
                    gap_reconnection_address_characteristic = characteristic;
                    printf("GAP Reconnection Address Characteristic found, value handle: 0x04%x\n", gap_reconnection_address_characteristic.value_handle);
                    break;
                case CENTRAL_W4_PERIPHERAL_PRIVACY_FLAG_QUERY_COMPLETE:
                    gap_peripheral_privacy_flag_characteristic = characteristic;
                    printf("GAP Peripheral Privacy Flag Characteristic found, value handle: 0x04%x\n", gap_peripheral_privacy_flag_characteristic.value_handle);
                    break;
                case CENTRAL_W4_SIGNED_WRITE_QUERY_COMPLETE:
                    signed_write_characteristic = characteristic;
                    printf("Characteristic for Signed Write found, value handle: 0x%04x\n", signed_write_characteristic.value_handle);
                    break;
                case CENTRAL_W4_CHARACTERISTICS:
                    printf("Characteristic found at 0x%04x with value handle 0x%04x, uuid ", characteristic.start_handle, characteristic.value_handle);
                    if (characteristic.uuid16){
                        printf("%04x\n", characteristic.uuid16);
                    } else {
                        printf_hexdump(characteristic.uuid128, 16);
                    }
                    break;
                case CENTRAL_GPA_W4_RESPONSE2:
                    switch (ui_uuid16){
                        case GATT_CHARACTERISTIC_PRESENTATION_FORMAT:
                        case GATT_CHARACTERISTIC_AGGREGATE_FORMAT:
                            ui_attribute_handle = characteristic.value_handle;
                            break;
                        default:
                            break;
                    }
                    break;
                default:
                    break;
            }
            break;
        case GATT_EVENT_ALL_CHARACTERISTIC_DESCRIPTORS_QUERY_RESULT: {
            uint16_t descriptor_handle = little_endian_read_16(packet, 4);
            uint8_t uuid128[16];
            reverse_128(&packet[6], uuid128);
            if (uuid_has_bluetooth_prefix(uuid128)){
                printf("Characteristic descriptor at 0x%04x with UUID %04x\n", descriptor_handle, big_endian_read_32(uuid128, 0));
            } else {
                printf("Characteristic descriptor at 0x%04x with UUID %s\n", descriptor_handle, uuid128_to_str(uuid128));
            }
            break;
        }
        case GATT_EVENT_CHARACTERISTIC_VALUE_QUERY_RESULT:
            value_handle = little_endian_read_16(packet, 4);
            value_length = little_endian_read_16(packet, 6);
            value = &packet[8];
            switch (central_state){
                case CENTRAL_W4_NAME_VALUE:
                    value[value_length] = 0;
                    printf("GAP Service: Device Name: %s\n", value);
                    break;
                case CENTRAL_W4_READ_CHARACTERISTIC_VALUE_BY_HANDLE:
                case CENTRAL_W4_READ_CHARACTERISTIC_VALUE_BY_UUID:
                case CENTRAL_W4_READ_MULTIPLE_CHARACTERISTIC_VALUES:
                    printf("Value: ");
                    printf_hexdump(value, value_length);
                    break;
                case CENTRAL_GPA_W4_RESPONSE:
                    switch (ui_uuid16){
                        case GATT_PRIMARY_SERVICE_UUID:
                            printf ("Attribute handle 0x%04x, primary service 0x%04x\n", value_handle, little_endian_read_16(value,0));
                            break;
                        case GATT_SECONDARY_SERVICE_UUID:
                            printf ("Attribute handle 0x%04x, secondary service 0x%04x\n", value_handle, little_endian_read_16(value,0));
                            break;
                        case GATT_INCLUDE_SERVICE_UUID:
                            printf ("Attribute handle 0x%04x, included service attribute handle 0x%04x, end group handle 0x%04x, uuid %04x\n",
                             value_handle, little_endian_read_16(value,0), little_endian_read_16(value,2), little_endian_read_16(value,4));
                            break;
                        case GATT_CHARACTERISTICS_UUID:
                            printf ("Attribute handle 0x%04x, properties 0x%02x, value handle 0x%04x, uuid ",
                             value_handle, value[0], little_endian_read_16(value,1));
                            if (value_length < 19){
                                printf("%04x\n", little_endian_read_16(value, 3));
                            } else {
                                uint8_t uuid128[16];
                                reverse_128(&value[3], uuid128);
                                printf("%s\n", uuid128_to_str(uuid128));
                            }
                            break;
                        case GATT_CHARACTERISTIC_EXTENDED_PROPERTIES:
                            printf ("Attribute handle 0x%04x, gatt characteristic properties 0x%04x\n", value_handle, little_endian_read_16(value,0));
                            break;
                        case GATT_CHARACTERISTIC_USER_DESCRIPTION:
                            // go the value, but PTS 6.3 requires another request
                            printf("Read by type request received, store attribute handle for read request\n");
                            ui_attribute_handle = value_handle;
                            break;
                        case GATT_CLIENT_CHARACTERISTICS_CONFIGURATION:
                            printf ("Attribute handle 0x%04x, gatt client characteristic configuration 0x%04x\n", value_handle, little_endian_read_16(value,0));
                            break;
                        case GATT_CHARACTERISTIC_AGGREGATE_FORMAT:
                            ui_handles_count = value_length >> 1;
                            printf ("Attribute handle 0x%04x, gatt characteristic aggregate format. Handles: ", value_handle);
                            for (ui_handles_index = 0; ui_handles_index < ui_handles_count ; ui_handles_index++){
                                ui_handles[ui_handles_index] = little_endian_read_16(value, (ui_handles_index << 1));
                                printf("0x%04x, ", ui_handles[ui_handles_index]);
                            }
                            printf("\n");
                            ui_handles_index = 0;
                            ui_aggregate_handle = value_handle;
                            break;
                        case GATT_CHARACTERISTIC_PRESENTATION_FORMAT:
                            printf("Presentation format: ");
                            printf_hexdump(value, value_length);
                            memcpy(ui_presentation_format, value, 7);
                            break;
                        default:
                            printf("Value: ");
                            printf_hexdump(value, value_length);
                            break;
                    }
                    break;
                case CENTRAL_GPA_W4_RESPONSE3:
                    switch (ui_uuid16){
                        case GATT_CHARACTERISTIC_PRESENTATION_FORMAT:
                            printf("Value: ");
                            printf_hexdump(value, value_length);
                            printf("Format 0x%02x, Exponent 0x%02x, Unit 0x%04x\n",
                                ui_presentation_format[0], ui_presentation_format[1], little_endian_read_16(ui_presentation_format, 2));
                            break;
                        case GATT_CHARACTERISTIC_AGGREGATE_FORMAT:
                            printf("Aggregated value: ");
                            printf_hexdump(value, value_length);
                            memcpy(ui_value_data, value, value_length);
                            ui_value_pos = 0;
                            central_state = CENTRAL_GPA_W4_RESPONSE4;
                        default:
                            break;
                    }
                    break;
               default:
                    break;
            }
            break;
        case GATT_EVENT_LONG_CHARACTERISTIC_VALUE_QUERY_RESULT:
            value = &packet[10];
            value_offset = little_endian_read_16(packet, 6);
            value_length = little_endian_read_16(packet, 8);
            central_state = CENTRAL_IDLE;
            printf("Value (offset %02u): ", value_offset);
            printf_hexdump(value, value_length);
            break;
        case GATT_EVENT_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT:
            value_handle = little_endian_read_16(packet, 4);
            value_length = little_endian_read_16(packet, 6);
            value = &packet[8];
            switch (central_state){
                case CENTRAL_GPA_W4_RESPONSE2:
                    switch (ui_uuid16){
                        case GATT_CHARACTERISTIC_USER_DESCRIPTION:
                            value[value_length] = 0;
                            printf ("Attribute handle 0x%04x, characteristic user descriptor: %s\n", value_handle, value);
                            break;
                        default:
                            break;
                    }
                    break;
                case CENTRAL_GPA_W4_RESPONSE4:
                    // only characteristic aggregate format
                    printf("Value: ");
                    printf_hexdump(&ui_value_data[ui_value_pos], gpa_format_type_len[value[0]]);
                    ui_value_pos +=  gpa_format_type_len[value[0]];
                    printf("Format 0x%02x, Exponent 0x%02x, Unit 0x%04x\n",
                        value[0], value[1], little_endian_read_16(value, 2));
                    break;
                default:
                    printf("Value: ");
                    printf_hexdump(value, value_length);
                    break;
            }
            break;
        case GATT_EVENT_LONG_CHARACTERISTIC_DESCRIPTOR_QUERY_RESULT:
            value = &packet[10];
            value_offset = little_endian_read_16(packet, 6);
            value_length = little_endian_read_16(packet, 8);
            printf("Value (offset %02u): ", value_offset);
            printf_hexdump(value, value_length);
            break;

        case GATT_EVENT_QUERY_COMPLETE:
            status = packet[4];
            if (status){
                central_state = CENTRAL_IDLE;
                printf("GATT_EVENT_QUERY_COMPLETE: %s 0x%02x\n",
                att_error_string_for_code(status),  status);
                break;
            }
            switch (central_state){
                case CENTRAL_W4_NAME_QUERY_COMPLETE:
                    central_state = CENTRAL_W4_NAME_VALUE;
                    gatt_client_read_value_of_characteristic(handle_gatt_client_event, handle, &gap_name_characteristic);
                    break;
                case CENTRAL_W4_RECONNECTION_ADDRESS_QUERY_COMPLETE:
                    central_state = CENTRAL_IDLE;
                    gap_le_get_own_address(&address_type, our_private_address);
                    printf("Our private address: %s\n", bd_addr_to_str(our_private_address));
                    reverse_bd_addr(our_private_address, flipped_address);
                    gatt_client_write_value_of_characteristic(handle_gatt_client_event, handle, gap_reconnection_address_characteristic.value_handle, 6, flipped_address);
                    reconnection_address_set = 1;
#ifdef PTS_USES_RECONNECTION_ADDRESS_FOR_ITSELF
                    memcpy(current_pts_address, our_private_address, 6);
                    current_pts_address_type = 1;
#endif
                    break;
                case CENTRAL_W4_PERIPHERAL_PRIVACY_FLAG_QUERY_COMPLETE:
                    central_state = CENTRAL_IDLE;
                    switch (pts_privacy_flag){
                        case 0:
                            use_public_pts_address();
                            printf("Peripheral Privacy Flag set to FALSE, connecting to public PTS address again\n");
                            gatt_client_write_value_of_characteristic(handle_gatt_client_event, handle, gap_peripheral_privacy_flag_characteristic.value_handle, 1, &pts_privacy_flag);
                            break;
                        case 1:
                            printf("Peripheral Privacy Flag set to TRUE\n");
                            gatt_client_write_value_of_characteristic(handle_gatt_client_event, handle, gap_peripheral_privacy_flag_characteristic.value_handle, 1, &pts_privacy_flag);
                            break;
                        default:
                            break;
                        }
                    break;
                case CENTRAL_W4_SIGNED_WRITE_QUERY_COMPLETE:
                    printf("Signed write on Characteristic with UUID 0x%04x\n", pts_signed_write_characteristic_uuid);
                    gatt_client_signed_write_without_response(handle_gatt_client_event, handle, signed_write_characteristic.value_handle, sizeof(signed_write_value), signed_write_value);
                    break;
                case CENTRAL_W4_PRIMARY_SERVICES:
                    printf("Primary Service Discovery complete\n");
                    central_state = CENTRAL_IDLE;
                    break;
                case CENTRAL_ENTER_SERVICE_UUID_4_DISCOVER_CHARACTERISTICS:
                    gatt_client_discover_characteristics_for_service(handle_gatt_client_event, handle, &service);
                    central_state =  CENTRAL_W4_CHARACTERISTICS;
                    break;
                case CENTRAL_GPA_W4_RESPONSE:
                    switch (ui_uuid16){
                        case GATT_CHARACTERISTIC_USER_DESCRIPTION:
                            central_state = CENTRAL_GPA_W4_RESPONSE2;
                            printf("Sending Read Characteristic Descriptor at 0x%04x\n", ui_attribute_handle);
                            gatt_client_read_characteristic_descriptor_using_descriptor_handle(handle_gatt_client_event, handle, ui_attribute_handle);
                            break;
                        case GATT_CHARACTERISTIC_PRESENTATION_FORMAT:
                        case GATT_CHARACTERISTIC_AGGREGATE_FORMAT:
                            {
                                printf("Searching Characteristic Declaration\n");
                                central_state = CENTRAL_GPA_W4_RESPONSE2;
                                gatt_client_service_t aService;
                                aService.start_group_handle = ui_start_handle;
                                aService.end_group_handle   = ui_end_handle;
                                gatt_client_discover_characteristics_for_service(handle_gatt_client_event, handle, &aService);
                                break;
                            }
                            break;
                        default:
                            break;
                    }
                    break;
                case CENTRAL_GPA_W4_RESPONSE2:
                    switch(ui_uuid16){
                        case GATT_CHARACTERISTIC_PRESENTATION_FORMAT:
                        case GATT_CHARACTERISTIC_AGGREGATE_FORMAT:
                            printf("Reading characteristic value at 0x%04x\n", ui_attribute_handle);
                            central_state = CENTRAL_GPA_W4_RESPONSE3;
                            gatt_client_read_value_of_characteristic_using_value_handle(handle_gatt_client_event, handle, ui_attribute_handle);
                            break;
                        default:
                            break;
                    }
                    break;
                case CENTRAL_GPA_W4_RESPONSE4:
                    // so far, only GATT_CHARACTERISTIC_AGGREGATE_FORMAT
                    if (ui_handles_index < ui_handles_count) {
                        printf("Reading Characteristic Presentation Format at 0x%04x\n", ui_handles[ui_handles_index]);
                        gatt_client_read_characteristic_descriptor_using_descriptor_handle(handle_gatt_client_event, handle, ui_handles[ui_handles_index]);
                        ui_handles_index++;
                        break;
                    }
                    if (ui_handles_index == ui_handles_count ) {
                        // PTS rqequires to read the characteristic aggregate descriptor again (no idea why)
                        gatt_client_read_value_of_characteristic_using_value_handle(handle_gatt_client_event, handle, ui_aggregate_handle);
                        ui_handles_index++;
                    }
                    break;
                default:
                    central_state = CENTRAL_IDLE;
                    break;
            }
            break;
        case GATT_EVENT_NOTIFICATION:
            value_handle = little_endian_read_16(packet, 4);
            value_length = little_endian_read_16(packet, 6);
            value = &packet[8];
            printf("Notification handle 0x%04x, value: ", value_handle);
            printf_hexdump(value, value_length);
            break;
        case GATT_EVENT_INDICATION:
            value_handle = little_endian_read_16(packet, 4);
            value_length = little_endian_read_16(packet, 6);
            value = &packet[8];
            printf("Indication handle 0x%04x, value: ", value_handle);
            printf_hexdump(value, value_length);
            break;
        default:
            break;
    }
}

uint16_t value_handle = 1;
uint16_t attribute_size = 1;
int scanning_active = 0;

int num_rows = 0;
int num_lines = 0;
const char * rows[100];
const char * lines[100];
const char * empty_string = "";
const int width = 70;

static void reset_screen(void){
    // free memory
    int i = 0;
    for (i=0;i<num_rows;i++) {
        free((void*)rows[i]);
        rows[i] = NULL;
    }
    num_rows = 0;
    for (i=0;i<num_lines;i++) {
        free((void*)lines[i]);
        lines[i] = NULL;
    }
    num_lines = 0;
}

static void print_line(const char * format, ...){
    va_list argptr;
    va_start(argptr, format);
    char * line = malloc(80);
    vsnprintf(line, 80, format, argptr);
    va_end(argptr);
    lines[num_lines] = line;
    num_lines++;
}

static void printf_row(const char * format, ...){
    va_list argptr;
    va_start(argptr, format);
    char * row = malloc(80);
    vsnprintf(row, 80, format, argptr);
    va_end(argptr);
    rows[num_rows] = row;
    num_rows++;
}

static void print_screen(void){

    // clear screen
    printf("\e[1;1H\e[2J");

    // full lines on top
    int i;
    for (i=0;i<num_lines;i++){
        printf("%s\n", lines[i]);
    }
    printf("\n");

    // two columns
    int second_half = (num_rows + 1) / 2;
    for (i=0;i<second_half;i++){
        int pos = strlen(rows[i]);
        printf("%s", rows[i]);
        while (pos < width){
            printf(" ");
            pos++;
        }
        if (i + second_half < num_rows){
            printf("|  %s", rows[i+second_half]);
        }
        printf("\n");
    }
    printf("\n");
}

static void show_usage(void){
    uint8_t iut_address_type;
    bd_addr_t      iut_address;
    gap_le_get_own_address(&iut_address_type, iut_address);

    reset_screen();

    print_line("--- CLI for LE Central ---");
    print_line("PTS: addr type %u, addr %s", current_pts_address_type, bd_addr_to_str(current_pts_address));
    print_line("IUT: addr type %u, addr %s", iut_address_type, bd_addr_to_str(iut_address));
    print_line("--------------------------");
    print_line("GAP: connectable %u, bondable %u", gap_connectable, gap_bondable);
    print_line("SM: %s, MITM protection %u", sm_io_capabilities, sm_mitm_protection);
    print_line("SM: key range [%u..16], OOB data: %s", sm_min_key_size,
        sm_have_oob_data ? (sm_have_oob_data == 1 ? (const char*) sm_oob_data_A : (const char*) sm_oob_data_B) : "None");
    print_line("Privacy %u", gap_privacy);
    print_line("Device name: %s", gap_device_name);

    printf_row("c/C - connectable off");
    printf_row("d/D - bondable off/on");
    printf_row("---");
    printf_row("1   - enable privacy using random non-resolvable private address");
    printf_row("2   - clear Peripheral Privacy Flag on PTS");
    printf_row("3   - set Peripheral Privacy Flag on PTS");
    printf_row("9   - create HCI Classic connection to addr %s", bd_addr_to_str(public_pts_address));
    printf_row("s/S - passive/active scanning");
    printf_row("a   - enable Advertisements");
    printf_row("b   - start bonding");
    printf_row("n   - query GAP Device Name");
    printf_row("o   - set GAP Reconnection Address");
    printf_row("t   - terminate connection, stop connecting");
    printf_row("p   - auto connect to PTS");
    printf_row("P   - direct connect to PTS");
    printf_row("w   - signed write on characteristic with UUID %04x", pts_signed_write_characteristic_uuid);
    printf_row("W   - signed write on attribute with handle 0x%04x and value 0x12", pts_signed_write_characteristic_handle);
    printf_row("z   - Update L2CAP Connection Parameters");
    printf_row("---");
    printf_row("e   - Discover all Primary Services");
    printf_row("f/F - Discover Primary Service by UUID16/UUID128");
    printf_row("g   - Discover all characteristics by UUID16");
    printf_row("G   - Discover all characteristics in range");
    printf_row("h   - Discover Characteristic Descriptors");
    printf_row("i   - Find all included services");
    printf_row("j/J - Read (Long) Characteristic Value by handle");
    printf_row("k/K - Read Characteristic Value by UUID16/UUID128");
    printf_row("l/L - Read (Long) Characteristic Descriptor by handle");
    printf_row("N   - Read Multiple Characteristic Values");
    printf_row("O   - Write without Response");
    printf_row("q/Q - Write (Long) Characteristic Value");
    printf_row("r   - Characteristic Reliable Write");
    printf_row("R   - Signed Write");
    printf_row("u/U - Write (Long) Characteristic Descriptor");
    printf_row("T   - Read Generic Profile Attributes by Type");
    printf_row("E   - Prepare Write");
    printf_row("v   - Execute Write");
    printf_row("V   - Cancel Write");
    printf_row("---");
    printf_row("4   - IO_CAPABILITY_DISPLAY_ONLY");
    printf_row("5   - IO_CAPABILITY_DISPLAY_YES_NO");
    printf_row("6   - IO_CAPABILITY_NO_INPUT_NO_OUTPUT");
    printf_row("7   - IO_CAPABILITY_KEYBOARD_ONLY");
    printf_row("8   - IO_CAPABILITY_KEYBOARD_DISPLAY");
    printf_row("m/M - MITM protection off");
    printf_row("x/X - encryption key range [7..16]/[16..16]");
    printf_row("y/Y - OOB data off/on/toggle A/B");
    printf_row("---");
    printf_row("Ctrl-c - exit");

    print_screen();
}



static int hexForChar(char c){
    if (c >= '0' && c <= '9'){
        return c - '0';
    }
    if (c >= 'a' && c <= 'f'){
        return c - 'a' + 10;
    }
    if (c >= 'A' && c <= 'F'){
        return c - 'A' + 10;
    }
    return -1;
}

static void ui_request_uint16(const char * message){
    printf("%s", message);
    fflush(stdout);
    ui_uint16_request = 1;
    ui_uint16 = 0;
    ui_uint16_pos = 0;
}


static void ui_request_data(const char * message){
    printf("%s", message);
    fflush(stdout);
    ui_value_request = 1;
    ui_value_pos = 0;
    memset(ui_value_data, 0, sizeof(ui_value_data));
}

static int ui_process_digits_for_passkey(char buffer){
    if (buffer < '0' || buffer > '9') {
        return 0;
    }
    printf("%c", buffer);
    fflush(stdout);
    ui_passkey = ui_passkey * 10 + buffer - '0';
    ui_digits_for_passkey--;
    if (ui_digits_for_passkey == 0){
        printf("\nSending Passkey %u (0x%x)\n", ui_passkey, ui_passkey);
        sm_passkey_input(handle, ui_passkey);
    }
    return 0;
}

static int ui_process_uint16_request(char buffer){
    if (buffer == 0x7f || buffer == 0x08) {
        if (ui_uint16_pos){
            printf("\b \b");
            fflush(stdout);
            ui_uint16 >>= 4;
            ui_uint16_pos--;
        }
        return 0;
    }
    if (buffer == '\n' || buffer == '\r'){
        ui_uint16_request = 0;
        printf("\n");
        switch (central_state){
            case CENTRAL_W4_PRIMARY_SERVICES:
                printf("Discover Primary Services with UUID16 %04x\n", ui_uint16);
                gatt_client_discover_primary_services_by_uuid16(handle_gatt_client_event, handle, ui_uint16);
                return 0;
            case CENTRAL_ENTER_SERVICE_UUID_4_DISCOVER_CHARACTERISTICS:
                printf("Discover Primary Services with UUID16 %04x\n", ui_uint16);
                gatt_client_discover_primary_services_by_uuid16(handle_gatt_client_event, handle, ui_uint16);
                return 0;
            case CENTRAL_ENTER_START_HANDLE_4_DISCOVER_CHARACTERISTICS:
                ui_attribute_handle = ui_uint16;
                ui_request_uint16("Please enter end handle: ");
                central_state = CENTRAL_ENTER_END_HANDLE_4_DISCOVER_CHARACTERISTICS;
                return 0;
            case CENTRAL_ENTER_END_HANDLE_4_DISCOVER_CHARACTERISTICS: {
                printf("Discover Characteristics from 0x%04x to 0x%04x\n", ui_attribute_handle, ui_uint16);
                central_state = CENTRAL_W4_CHARACTERISTICS;
                gatt_client_service_t aService;
                aService.start_group_handle = ui_attribute_handle;
                aService.end_group_handle   = ui_uint16;
                gatt_client_discover_characteristics_for_service(handle_gatt_client_event, handle, &aService);
                return 0;
            }
            case CENTRAL_W4_CHARACTERISTICS:
                printf("Discover Characteristics with UUID16 %04x\n", ui_uint16);
                gatt_client_discover_characteristics_for_handle_range_by_uuid16(handle_gatt_client_event, handle, 0x0001, 0xffff, ui_uint16);
                return 0;
            case CENTRAL_W4_DISCOVER_CHARACTERISTIC_DESCRIPTORS: {
                gatt_client_characteristic_t characteristic;
                characteristic.value_handle = ui_uint16 - 1;
                characteristic.end_handle = ui_uint16;
                gatt_client_discover_characteristic_descriptors(handle_gatt_client_event, handle, &characteristic);
                break;
            }
            case CENTRAL_W4_READ_CHARACTERISTIC_VALUE_BY_HANDLE:
                printf("Read Characteristic Value with handle 0x%04x\n", ui_uint16);
                gatt_client_read_value_of_characteristic_using_value_handle(handle_gatt_client_event, handle, ui_uint16);
                return 0;
            case CENTRAL_ENTER_OFFSET_4_READ_LONG_CHARACTERISTIC_VALUE_BY_HANDLE:
                ui_attribute_handle = ui_uint16;
                ui_request_uint16("Please enter long value offset: ");
                central_state = CENTRAL_W4_READ_LONG_CHARACTERISTIC_VALUE_BY_HANDLE;
                return 0;
            case CENTRAL_W4_READ_LONG_CHARACTERISTIC_VALUE_BY_HANDLE:
                printf("Read Long Characteristic Value with handle 0x%04x, offset 0x%04x\n", ui_attribute_handle, ui_uint16);
                gatt_client_read_long_value_of_characteristic_using_value_handle_with_offset(handle_gatt_client_event, handle, ui_attribute_handle, ui_uint16);
                return 0;
            case CENTRAL_W4_READ_CHARACTERISTIC_DESCRIPTOR_BY_HANDLE:
                printf("Read Characteristic Descriptor with handle 0x%04x\n", ui_uint16);
                gatt_client_read_characteristic_descriptor_using_descriptor_handle(handle_gatt_client_event, handle, ui_uint16);
                return 0;
            case CENTRAL_ENTER_OFFSET_4_READ_LONG_CHARACTERISTIC_DESCRIPTOR_BY_HANDLE:
                ui_attribute_handle = ui_uint16;
                ui_request_uint16("Please enter long characteristic offset: ");
                central_state = CENTRAL_W4_READ_LONG_CHARACTERISTIC_DESCRIPTOR_BY_HANDLE;
                return 0;
            case CENTRAL_W4_READ_LONG_CHARACTERISTIC_DESCRIPTOR_BY_HANDLE:
                printf("Read Long Characteristic Descriptor with handle 0x%04x, offset 0x%04x\n", ui_attribute_handle, ui_uint16);
                gatt_client_read_long_characteristic_descriptor_using_descriptor_handle_with_offset(handle_gatt_client_event, handle, ui_attribute_handle, ui_uint16);
                return 0;
            case CENTRAL_ENTER_HANDLE_4_READ_CHARACTERISTIC_VALUE_BY_UUID:
                ui_uuid16 = ui_uint16;
                ui_request_uint16("Please enter start handle: ");
                central_state = CENTRAL_W4_READ_CHARACTERISTIC_VALUE_BY_UUID;
                return 0;
            case CENTRAL_W4_READ_CHARACTERISTIC_VALUE_BY_UUID:
                printf("Read Characteristic Value with UUID16 0x%04x\n", ui_uint16);
                gatt_client_read_value_of_characteristics_by_uuid16(handle_gatt_client_event, handle, ui_uint16, 0xffff, ui_uuid16);
                return 0;
            case CENTRAL_W4_READ_MULTIPLE_CHARACTERISTIC_VALUES:
                if (ui_uint16){
                    ui_handles[ui_handles_count++] = ui_uint16;
                    ui_request_uint16("Please enter handle: ");
                } else {
                    int i;
                    printf("Read multiple values, handles: ");
                    for (i=0;i<ui_handles_count;i++){
                        printf("0x%04x, ", ui_handles[i]);
                    }
                    printf("\n");
                    gatt_client_read_multiple_characteristic_values(handle_gatt_client_event, handle, ui_handles_count, ui_handles);
                }
                return 0;

            case CENTRAL_ENTER_HANDLE_4_WRITE_LONG_CHARACTERISTIC_VALUE:
                ui_attribute_handle = ui_uint16;
                ui_request_uint16("Please enter offset: ");
                central_state = CENTRAL_W4_WRITE_LONG_CHARACTERISTIC_VALUE;
                return 0;
            case CENTRAL_ENTER_HANDLE_4_WRITE_LONG_CHARACTERISTIC_DESCRIPTOR:
                ui_attribute_handle = ui_uint16;
                ui_request_uint16("Please enter offset: ");
                central_state = CENTRAL_W4_WRITE_LONG_CHARACTERISTIC_DESCRIPTOR;
                return 0;
            case CENTRAL_W4_WRITE_LONG_CHARACTERISTIC_VALUE:
            case CENTRAL_W4_WRITE_LONG_CHARACTERISTIC_DESCRIPTOR:
                ui_attribute_offset = ui_uint16;
                ui_request_data("Please enter data: ");
                return 0;
            case CENTRAL_W4_WRITE_WITHOUT_RESPONSE:
            case CENTRAL_W4_WRITE_CHARACTERICISTIC_VALUE:
            case CENTRAL_W4_RELIABLE_WRITE:
            case CENTRAL_W4_WRITE_CHARACTERISTIC_DESCRIPTOR:
            case CENTRAL_W4_SIGNED_WRITE:
                ui_attribute_handle = ui_uint16;
                ui_request_data("Please enter data: ");
                return 0;
            case CENTRAL_W4_ENTER_OFFSET_4_PREPARE_WRITE:
                ui_attribute_offset = ui_uint16;
                ui_request_data("Please enter data: ");
                return 0;
            case CENTRAL_W4_ENTER_HANDLE_4_PREPARE_WRITE:
                ui_attribute_handle = ui_uint16;
                ui_request_uint16("Please enter offset: ");
                central_state = CENTRAL_W4_ENTER_OFFSET_4_PREPARE_WRITE;
                return 0;
            case CENTRAL_GPA_ENTER_START_HANDLE:
                ui_start_handle = ui_uint16;
                central_state = CENTRAL_GPA_ENTER_END_HANDLE;
                ui_request_uint16("Please enter end handle: ");
                return 0;
            case CENTRAL_GPA_ENTER_END_HANDLE:
                ui_end_handle = ui_uint16;
                central_state = CENTRAL_GPA_W4_RESPONSE;
                ui_request_uint16("Please enter uuid: ");
                return 0;
            case CENTRAL_GPA_W4_RESPONSE:
                ui_uuid16 = ui_uint16;
                printf("Read by type: range 0x%04x-0x%04x, uuid %04x\n", ui_start_handle, ui_end_handle, ui_uuid16);
                gatt_client_read_value_of_characteristics_by_uuid16(handle_gatt_client_event, handle, ui_start_handle, ui_end_handle, ui_uuid16);
                return 0;
            default:
                return 0;
        }
    }
    int hex = hexForChar(buffer);
    if (hex < 0){
        return 0;
    }
    printf("%c", buffer);
    fflush(stdout);
    ui_uint16 = ui_uint16 << 4 | hex;
    ui_uint16_pos++;
    return 0;
}

static int uuid128_pos_starts_with_dash(int pos){
    switch(pos){
        case 8:
        case 12:
        case 16:
        case 20:
#ifdef PTS_UUID128_REPRESENTATION
        case 4:
        case 24:
#endif
            return 1;
        default:
            return 0;
    }
}

static int ui_process_uuid128_request(char buffer){
    if (buffer == '-') return 0;    // skip -

    if (buffer == 0x7f || buffer == 0x08) {
        if (ui_uuid128_pos){
            if (uuid128_pos_starts_with_dash(ui_uuid128_pos)){
                printf("\b \b");
                fflush(stdout);
            }
            printf("\b \b");
            fflush(stdout);
            ui_uuid128_pos--;
        }
        return 0;
    }

    int hex = hexForChar(buffer);
    if (hex < 0){
        return 0;
    }
    printf("%c", buffer);
    fflush(stdout);
    if (ui_uuid128_pos & 1){
        ui_uuid128[ui_uuid128_pos >> 1] = (ui_uuid128[ui_uuid128_pos >> 1] & 0xf0) | hex;
    } else {
        ui_uuid128[ui_uuid128_pos >> 1] = hex << 4;
    }
    ui_uuid128_pos++;
    if (ui_uuid128_pos == 32){
        ui_uuid128_request = 0;
        printf("\n");
        switch (central_state){
            case CENTRAL_W4_PRIMARY_SERVICES:
                printf("Discover Primary Services with UUID128 %s\n", uuid128_to_str(ui_uuid128));
                gatt_client_discover_primary_services_by_uuid128(handle_gatt_client_event, handle, ui_uuid128);
                return 0;
            case CENTRAL_W4_READ_CHARACTERISTIC_VALUE_BY_UUID:
                printf("Read Characteristic Value with UUID128 %s\n", uuid128_to_str(ui_uuid128));
                gatt_client_read_value_of_characteristics_by_uuid128(handle_gatt_client_event, handle, 0x0001, 0xffff, ui_uuid128);
                return 0;
            default:
                return 0;
        }
    }
    if (uuid128_pos_starts_with_dash(ui_uuid128_pos)){
        printf("-");
        fflush(stdout);
    }
    return 0;
}

static void ui_announce_write(const char * method){
    printf("Request: %s handle 0x%04x data: ", method, ui_uint16);
    printf_hexdump(ui_value_data, ui_value_pos >> 1);
    printf("\n");
}

static int ui_process_data_request(char buffer){
    if (buffer == 0x7f || buffer == 0x08) {
        if (ui_value_pos){
            if ((ui_value_pos & 1) == 0){
                printf("\b");
            }
            printf("\b \b");
            fflush(stdout);
            ui_value_pos--;
        }
        return 0;
    }
    if (buffer == '\n' || buffer == '\r'){
        ui_value_request = 0;
        printf("\n");
        uint16_t value_len = ui_value_pos >> 1;
        switch (central_state){
            case CENTRAL_W4_WRITE_WITHOUT_RESPONSE:
                ui_announce_write("Write without response");
                gatt_client_write_value_of_characteristic_without_response(handle, ui_attribute_handle, value_len, ui_value_data);
                break;
            case CENTRAL_W4_WRITE_CHARACTERICISTIC_VALUE:
                ui_announce_write("Write Characteristic Value");
                gatt_client_write_value_of_characteristic(handle_gatt_client_event, handle, ui_attribute_handle, value_len, ui_value_data);
                break;
            case CENTRAL_W4_WRITE_LONG_CHARACTERISTIC_VALUE:
                ui_announce_write("Write Long Characteristic Value");
                gatt_client_write_long_value_of_characteristic_with_offset(handle_gatt_client_event, handle, ui_attribute_handle, ui_attribute_offset, value_len, ui_value_data);
                break;
            case CENTRAL_W4_RELIABLE_WRITE:
                ui_announce_write("Reliabe Write");
                gatt_client_reliable_write_long_value_of_characteristic(handle_gatt_client_event, handle, ui_attribute_handle, value_len, ui_value_data);
                break;
            case CENTRAL_W4_WRITE_CHARACTERISTIC_DESCRIPTOR:
                ui_announce_write("Write Characteristic Descriptor");
                gatt_client_write_characteristic_descriptor_using_descriptor_handle(handle_gatt_client_event, handle, ui_attribute_handle, value_len, ui_value_data);
                break;
            case CENTRAL_W4_WRITE_LONG_CHARACTERISTIC_DESCRIPTOR:
                ui_announce_write("Write Long Characteristic Descriptor");
                gatt_client_write_long_characteristic_descriptor_using_descriptor_handle_with_offset(handle_gatt_client_event, handle, ui_attribute_handle, ui_attribute_offset, value_len, ui_value_data);
                break;
            case CENTRAL_W4_SIGNED_WRITE:
                ui_announce_write("Signed Write");
                gatt_client_signed_write_without_response(handle_gatt_client_event, handle, ui_attribute_handle, value_len, ui_value_data);
                break;
            case CENTRAL_W4_ENTER_OFFSET_4_PREPARE_WRITE:
                ui_announce_write("Preprare Write");
                gatt_client_prepare_write(handle_gatt_client_event, handle, ui_attribute_handle, ui_attribute_offset, value_len, ui_value_data);
                break;
            default:
                break;
        }
        return 0;
    }

    // ignore spaces
    if (buffer == ' ') return 0;

    int hex = hexForChar(buffer);
    if (hex < 0){
        return 0;
    }

    printf("%c", buffer);

    if (ui_value_pos & 1){
        ui_value_data[ui_value_pos >> 1] = (ui_value_data[ui_value_pos >> 1] & 0xf0) | hex;
        printf(" ");
    } else {
        ui_value_data[ui_value_pos >> 1] = hex << 4;
    }
    ui_value_pos++;

    fflush(stdout);
    return 0;
}

static void ui_process_command(char buffer){
    //int res;
    switch (buffer){
        case '1':
            printf("Enabling non-resolvable private address\n");
            gap_random_address_set_mode(GAP_RANDOM_ADDRESS_NON_RESOLVABLE);
            gap_privacy = 1;
            update_advertisment_params();
            show_usage();
            break;

        case 'a':
            handle = 0x12;
            printf("handle = 0x%x\n", handle);
            break;
        case 'b':
            handle = 0x13;
            printf("handle = 0x%x\n", handle);
            break;
        case 'P':
            memcpy(current_pts_address, public_pts_address, 6);
            current_pts_address_type = public_pts_address_type;
            gap_connect(current_pts_address, current_pts_address_type);
            printf("Direct Connection Establishment to type %u, addr %s\n", current_pts_address_type, bd_addr_to_str(current_pts_address));
            break;

        case 'A':
            memcpy(current_pts_address, public_pts_address2, 6);
            current_pts_address_type = public_pts_address_type2;
            gap_connect(current_pts_address, current_pts_address_type);
            printf("Direct Connection Establishment to type %u, addr %s\n", current_pts_address_type, bd_addr_to_str(current_pts_address));
            break;

        case 's':
            if (scanning_active){
                gap_stop_scan();
                scanning_active = 0;
                break;
            }
            printf("Start passive scanning\n");
            gap_set_scan_parameters(0, 48, 48);
            gap_start_scan();
            scanning_active = 1;
            break;
        case 'S':
            if (scanning_active){
                printf("Stop scanning\n");
                gap_stop_scan();
                scanning_active = 0;
                break;
            }
            printf("Start active scanning\n");
            gap_set_scan_parameters(1, 48, 48);
            gap_start_scan();
            scanning_active = 1;
            break;
        case 't':
            printf("Terminating connection\n");
            hci_send_cmd(&hci_disconnect, handle, 0x13);
            gap_auto_connection_stop_all();
            gap_connect_cancel();
            break;

        case 'O':
            central_state = CENTRAL_W4_WRITE_WITHOUT_RESPONSE;
            ui_request_uint16("Please enter handle: ");
            break;
        case 'q':
            central_state = CENTRAL_W4_WRITE_CHARACTERICISTIC_VALUE;
            ui_request_uint16("Please enter handle: ");
            break;
        case 'Q':
            central_state = CENTRAL_ENTER_HANDLE_4_WRITE_LONG_CHARACTERISTIC_VALUE;
            ui_request_uint16("Please enter handle: ");
            break;

        default:
            show_usage();
            break;
    }
}

static void stdin_process(char c){
    if (ui_digits_for_passkey){
        ui_process_digits_for_passkey(c);
        return;
    }

    if (ui_uint16_request){
        ui_process_uint16_request(c);
        return;
    }

    if (ui_uuid128_request){
        ui_process_uuid128_request(c);
        return;
    }

    if (ui_value_request){
        ui_process_data_request(c);
        return;
    }

    ui_process_command(c);

    return;
}

// ATT Client Read Callback for Dynamic Data
// - if buffer == NULL, don't copy data, just return size of value
// - if buffer != NULL, copy data and return number bytes copied
// @param offset defines start of attribute value
static uint16_t att_read_callback(hci_con_handle_t con_handle, uint16_t attribute_handle, uint16_t offset, uint8_t * buffer, uint16_t buffer_size){

    printf("READ Callback, handle %04x, offset %u, buffer size %u\n", handle, offset, buffer_size);
    uint16_t  att_value_len;

    uint16_t uuid16 = att_uuid_for_handle(handle);
    switch (uuid16){
        case 0x2a00:
            att_value_len = strlen(gap_device_name);
            if (buffer) {
                memcpy(buffer, gap_device_name, att_value_len);
            }
            return att_value_len;
        default:
            break;
    }
    return 0;
}

int btstack_main(int argc, const char * argv[]);
int btstack_main(int argc, const char * argv[]){

    printf("BTstack LE Peripheral starting up...\n");

    memset(rows, 0, sizeof(char *) * 100);
    memset(lines, 0, sizeof(char *) * 100);

    strcpy(gap_device_name, "BTstack");

    // register for HCI Events
    hci_event_callback_registration.callback = &app_packet_handler;
    hci_add_event_handler(&hci_event_callback_registration);

    // set up l2cap_le
    l2cap_init();

    // setup GATT Client
    gatt_client_init();

    // Setup ATT/GATT Server
    att_server_init(profile_data, att_read_callback, NULL);
    att_server_register_packet_handler(app_packet_handler);

    // Setup LE Device DB
    le_device_db_init();

    uint8_t pts_irk[] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, 0xdd, 0xee, 0xff };
    le_device_db_add(public_pts_address_type, public_pts_address, pts_irk);
    le_device_db_add(public_pts_address_type2, public_pts_address2, pts_irk);

    // set adv params
    update_advertisment_params();

    memcpy(current_pts_address, public_pts_address, 6);
    current_pts_address_type = public_pts_address_type;

    // classic discoverable / connectable
    gap_connectable_control(0);
    gap_discoverable_control(1);

    // allow foor terminal input
    btstack_stdin_setup(stdin_process);

    // turn on!
    hci_power_control(HCI_POWER_ON);

    return 0;
}

输入 P 连接第一个设备,输入a切换到第一个设备对应的handle
输入O
输入e回车
输入1回车
第一个设备哔哔哔响

输入 A 连接第二个设备,输入b切换到第二个设备对应的handle
输入q
输入6回车
输入16进制数据
第二个设备收到串口数据

#60 Re: 全志 SOC » ble scan 扫描不到所有设备 » 2023-12-31 18:03:33

发送端(/usr/bin/ble_central_test -u /dev/ttyS1):
02a39799963e02ae55e5498d92b0da3.png

接收端(/usr/bin/nordic_spp_le_counter -u /dev/ttyS1):
c433fbc0fd484550484392cc57aafbf.png

#62 Re: 全志 SOC » ble scan 扫描不到所有设备 » 2023-12-31 17:05:47

查询 2a19 对应的 handle:
5402139652e8c398ca228180b3ae664.png

先输入P连接BLE设备,输入k,2a19,5获取电量数据:
7e9f3ad2e7170d0f76df975e8a2164e.png

#63 Re: 全志 SOC » ble scan 扫描不到所有设备 » 2023-12-31 16:31:32

SM: IO_CAPABILITY_NO_INPUT_NO_OUTPUT, MITM protection 0
SM: key range [7..16], OOB data: None
Privacy 0
Device name: BTstack

c/C - connectable off                                                 |  j/J - Read (Long) Characteristic Value by handle
d/D - bondable off/on                                                 |  k/K - Read Characteristic Value by UUID16/UUID128
---                                                                   |  l/L - Read (Long) Characteristic Descriptor by handle
1   - enable privacy using random non-resolvable private address      |  N   - Read Multiple Characteristic Values
2   - clear Peripheral Privacy Flag on PTS                            |  O   - Write without Response
3   - set Peripheral Privacy Flag on PTS                              |  q/Q - Write (Long) Characteristic Value
9   - create HCI Classic connection to addr 23:11:23:00:76:A1         |  r   - Characteristic Reliable Write
s/S - passive/active scanning                                         |  R   - Signed Write
a   - enable Advertisements                                           |  u/U - Write (Long) Characteristic Descriptor
b   - start bonding                                                   |  T   - Read Generic Profile Attributes by Type
n   - query GAP Device Name                                           |  E   - Prepare Write
o   - set GAP Reconnection Address                                    |  v   - Execute Write
t   - terminate connection, stop connecting                           |  V   - Cancel Write
p   - auto connect to PTS                                             |  ---
P   - direct connect to PTS                                           |  4   - IO_CAPABILITY_DISPLAY_ONLY
w   - signed write on characteristic with UUID b00d                   |  5   - IO_CAPABILITY_DISPLAY_YES_NO
W   - signed write on attribute with handle 0x00b1 and value 0x12     |  6   - IO_CAPABILITY_NO_INPUT_NO_OUTPUT
z   - Update L2CAP Connection Parameters                              |  7   - IO_CAPABILITY_KEYBOARD_ONLY
---                                                                   |  8   - IO_CAPABILITY_KEYBOARD_DISPLAY
e   - Discover all Primary Services                                   |  m/M - MITM protection off
f/F - Discover Primary Service by UUID16/UUID128                      |  x/X - encryption key range [7..16]/[16..16]
g   - Discover all characteristics by UUID16                          |  y/Y - OOB data off/on/toggle A/B
G   - Discover all characteristics in range                           |  ---
h   - Discover Characteristic Descriptors                             |  Ctrl-c - exit
i   - Find all included services

Direct Connection Establishment to type 0, addr 23:11:23:00:76:A1
Connection complete, handle 0x0012
Primary Service with UUID 180f, start group handle 0x0001, end group handle 0x0004
Primary Service with UUID 1804, start group handle 0x0005, end group handle 0x0007
Primary Service with UUID 1803, start group handle 0x0008, end group handle 0x000b
Primary Service with UUID 1802, start group handle 0x000c, end group handle 0x000f
Primary Service with UUID ffe0, start group handle 0x0010, end group handle 0x0026
Primary Service with UUID 5833FF01-9B8B-5191-6142-22A4536EF123, start group handle 0x0027, end group handle 0x002c
Primary Service Discovery complete
Please enter service UUID16: 180f
Discover Primary Services with UUID16 180f
Primary Service with UUID 180f, start group handle 0x0001, end group handle 0x0004
Characteristic found at 0x0002 with value handle 0x0003, uuid 2a19
Please enter service UUID16: 1804
Discover Primary Services with UUID16 1804
Primary Service with UUID 1804, start group handle 0x0005, end group handle 0x0007
Characteristic found at 0x0006 with value handle 0x0007, uuid 2a07
Please enter service UUID16: 1803
Discover Primary Services with UUID16 1803
Primary Service with UUID 1803, start group handle 0x0008, end group handle 0x000b
Characteristic found at 0x0009 with value handle 0x000a, uuid 2a06
Please enter service UUID16: 1802
Discover Primary Services with UUID16 1802
Primary Service with UUID 1802, start group handle 0x000c, end group handle 0x000f
Characteristic found at 0x000d with value handle 0x000e, uuid 2a06

#64 Re: 全志 SOC » ble scan 扫描不到所有设备 » 2023-12-31 16:24:50

aa5d2983b3575b17a9970eaadf690ec.png

2157b9a1c52fe94432aa4f93f26a1d4.png

先输入P执行连接,

运行 btstack 的测试程序:ble_central_test -u /dev/ttyS1

#65 Re: 全志 SOC » ble scan 扫描不到所有设备 » 2023-12-31 16:13:24

蓝牙开发常用UUID表

Sample Services
0000180d-0000-1000-8000-00805f9b34fb    Heart Rate Service    
0000180a-0000-1000-8000-00805f9b34fb    Device Information Service    
Sample Characteristics. 
00002a37-0000-1000-8000-00805f9b34fb    Heart Rate Measurement    
00002a29-0000-1000-8000-00805f9b34fb    Manufacturer Name String    
    
GATT Services 
00001800-0000-1000-8000-00805f9b34fb    GenericAccess    
00001801-0000-1000-8000-00805f9b34fb    GenericAttribute    
 
GATT Declarations 
00002800-0000-1000-8000-00805f9b34fb    Primary Service    
00002801-0000-1000-8000-00805f9b34fb    Secondary Service    
00002802-0000-1000-8000-00805f9b34fb    Include    
00002803-0000-1000-8000-00805f9b34fb    Characteristic    
         
GATT Descriptors 
00002900-0000-1000-8000-00805f9b34fb    Characteristic Extended Properties    
00002901-0000-1000-8000-00805f9b34fb    Characteristic User Description    
00002902-0000-1000-8000-00805f9b34fb    Client Characteristic Configuration    
00002903-0000-1000-8000-00805f9b34fb    Server Characteristic Configuration    
00002904-0000-1000-8000-00805f9b34fb    Characteristic Presentation Format    
00002905-0000-1000-8000-00805f9b34fb    Characteristic Aggregate Format    
00002906-0000-1000-8000-00805f9b34fb    Valid Range    
00002907-0000-1000-8000-00805f9b34fb    External Report Reference Descriptor    
00002908-0000-1000-8000-00805f9b34fb    Report Reference Descriptor    
 
GATT Characteristics 
00002a00-0000-1000-8000-00805f9b34fb    Device Name    
00002a01-0000-1000-8000-00805f9b34fb    Appearance    
00002a02-0000-1000-8000-00805f9b34fb    Peripheral Privacy Flag    
00002a03-0000-1000-8000-00805f9b34fb    Reconnection Address    
00002a04-0000-1000-8000-00805f9b34fb    PPCP    
00002a05-0000-1000-8000-00805f9b34fb    Service Changed    
         
GATT Service UUIDs 
00001802-0000-1000-8000-00805f9b34fb    Immediate Alert    
00001803-0000-1000-8000-00805f9b34fb    Link Loss    
00001804-0000-1000-8000-00805f9b34fb    Tx Power    
00001805-0000-1000-8000-00805f9b34fb    Current Time Service    
00001806-0000-1000-8000-00805f9b34fb    Reference Time Update Service    
00001807-0000-1000-8000-00805f9b34fb    Next DST Change Service    
00001808-0000-1000-8000-00805f9b34fb    Glucose    
00001809-0000-1000-8000-00805f9b34fb    Health Thermometer    
0000180a-0000-1000-8000-00805f9b34fb    Device Information    
0000180b-0000-1000-8000-00805f9b34fb    Network Availability    
0000180d-0000-1000-8000-00805f9b34fb    Heart Rate    
0000180e-0000-1000-8000-00805f9b34fb    Phone Alert Status Service    
0000180f-0000-1000-8000-00805f9b34fb    Battery Service    
00001810-0000-1000-8000-00805f9b34fb    Blood Pressure    
00001811-0000-1000-8000-00805f9b34fb    Alert Notification Service    
00001812-0000-1000-8000-00805f9b34fb    Human Interface Device    
00001813-0000-1000-8000-00805f9b34fb    Scan Parameters    
00001814-0000-1000-8000-00805f9b34fb    Running Speed and Cadence    
00001816-0000-1000-8000-00805f9b34fb    Cycling Speed and Cadence    
00001818-0000-1000-8000-00805f9b34fb    Cycling Power    
00001819-0000-1000-8000-00805f9b34fb    Location and Navigation    
     
GATT Characteristic UUIDs 
00002a06-0000-1000-8000-00805f9b34fb    Alert Level    
00002a07-0000-1000-8000-00805f9b34fb    Tx Power Level    
00002a08-0000-1000-8000-00805f9b34fb    Date Time    
00002a09-0000-1000-8000-00805f9b34fb    Day of Week    
00002a0a-0000-1000-8000-00805f9b34fb    Day Date Time    
00002a0c-0000-1000-8000-00805f9b34fb    Exact Time 256    
00002a0d-0000-1000-8000-00805f9b34fb    DST Offset    
00002a0e-0000-1000-8000-00805f9b34fb    Time Zone    
00002a0f-0000-1000-8000-00805f9b34fb    Local Time Information    
00002a11-0000-1000-8000-00805f9b34fb    Time with DST    
00002a12-0000-1000-8000-00805f9b34fb    Time Accuracy    
00002a13-0000-1000-8000-00805f9b34fb    Time Source    
00002a14-0000-1000-8000-00805f9b34fb    Reference Time Information    
00002a16-0000-1000-8000-00805f9b34fb    Time Update Control Point    
00002a17-0000-1000-8000-00805f9b34fb    Time Update State    
00002a18-0000-1000-8000-00805f9b34fb    Glucose Measurement    
00002a19-0000-1000-8000-00805f9b34fb    Battery Level    
00002a1c-0000-1000-8000-00805f9b34fb    Temperature Measurement    
00002a1d-0000-1000-8000-00805f9b34fb    Temperature Type    
00002a1e-0000-1000-8000-00805f9b34fb    Intermediate Temperature    
00002a21-0000-1000-8000-00805f9b34fb    Measurement Interval    
00002a22-0000-1000-8000-00805f9b34fb    Boot Keyboard Input Report    
00002a23-0000-1000-8000-00805f9b34fb    System ID    
00002a24-0000-1000-8000-00805f9b34fb    Model Number String    
00002a25-0000-1000-8000-00805f9b34fb    Serial Number String    
00002a26-0000-1000-8000-00805f9b34fb    Firmware Revision String    
00002a27-0000-1000-8000-00805f9b34fb    Hardware Revision String    
00002a28-0000-1000-8000-00805f9b34fb    Software Revision String    
00002a29-0000-1000-8000-00805f9b34fb    Manufacturer Name String    
00002a2a-0000-1000-8000-00805f9b34fb    IEEE 11073-20601 Regulatory Certification Data List    
00002a2b-0000-1000-8000-00805f9b34fb    Current Time    
00002a31-0000-1000-8000-00805f9b34fb    Scan Refresh    
00002a32-0000-1000-8000-00805f9b34fb    Boot Keyboard Output Report    
00002a33-0000-1000-8000-00805f9b34fb    Boot Mouse Input Report    
00002a34-0000-1000-8000-00805f9b34fb    Glucose Measurement Context    
00002a35-0000-1000-8000-00805f9b34fb    Blood Pressure Measurement    
00002a36-0000-1000-8000-00805f9b34fb    Intermediate Cuff Pressure    
00002a37-0000-1000-8000-00805f9b34fb    Heart Rate Measurement    
00002a38-0000-1000-8000-00805f9b34fb    Body Sensor Location    
00002a39-0000-1000-8000-00805f9b34fb    Heart Rate Control Point    
00002a3e-0000-1000-8000-00805f9b34fb    Network Availability    
00002a3f-0000-1000-8000-00805f9b34fb    Alert Status    
00002a40-0000-1000-8000-00805f9b34fb    Ringer Control Point    
00002a41-0000-1000-8000-00805f9b34fb    Ringer Setting    
00002a42-0000-1000-8000-00805f9b34fb    Alert Category ID Bit Mask    
00002a43-0000-1000-8000-00805f9b34fb    Alert Category ID    
00002a44-0000-1000-8000-00805f9b34fb    Alert Notification Control Point    
00002a45-0000-1000-8000-00805f9b34fb    Unread Alert Status    
00002a46-0000-1000-8000-00805f9b34fb    New Alert    
00002a47-0000-1000-8000-00805f9b34fb    Supported New Alert Category    
00002a48-0000-1000-8000-00805f9b34fb    Supported Unread Alert Category    
00002a49-0000-1000-8000-00805f9b34fb    Blood Pressure Feature    
00002a4a-0000-1000-8000-00805f9b34fb    HID Information    
00002a4b-0000-1000-8000-00805f9b34fb    Report Map    
00002a4c-0000-1000-8000-00805f9b34fb    HID Control Point    
00002a4d-0000-1000-8000-00805f9b34fb    Report    
00002a4e-0000-1000-8000-00805f9b34fb    Protocol Mode    
00002a4f-0000-1000-8000-00805f9b34fb    Scan Interval Window    
00002a50-0000-1000-8000-00805f9b34fb    PnP ID    
00002a51-0000-1000-8000-00805f9b34fb    Glucose Feature    
00002a52-0000-1000-8000-00805f9b34fb    Record Access Control Point    
00002a53-0000-1000-8000-00805f9b34fb    RSC Measurement    
00002a54-0000-1000-8000-00805f9b34fb    RSC Feature    
00002a55-0000-1000-8000-00805f9b34fb    SC Control Point    
00002a5b-0000-1000-8000-00805f9b34fb    CSC Measurement    
00002a5c-0000-1000-8000-00805f9b34fb    CSC Feature    
00002a5d-0000-1000-8000-00805f9b34fb    Sensor Location    
00002a63-0000-1000-8000-00805f9b34fb    Cycling Power Measurement    
00002a64-0000-1000-8000-00805f9b34fb    Cycling Power Vector    
00002a65-0000-1000-8000-00805f9b34fb    Cycling Power Feature    
00002a66-0000-1000-8000-00805f9b34fb    Cycling Power Control Point    
00002a67-0000-1000-8000-00805f9b34fb    Location and Speed    
00002a68-0000-1000-8000-00805f9b34fb    Navigation    
00002a69-0000-1000-8000-00805f9b34fb    Position Quality    
00002a6a-0000-1000-8000-00805f9b34fb    LN Feature    
00002a6b-0000-1000-8000-00805f9b34fb    LN Control Point"

比如电池电量特征的uuid16 就是 2a19,uuid128就是 00002a19-0000-1000-8000-00805f9b34fb

#66 Re: 全志 SOC » ble scan 扫描不到所有设备 » 2023-12-31 16:12:39

蓝牙的uuid16和uuid128的意义:

蓝牙的UUID (Universally Unique Identifier) 是用于唯一标识蓝牙设备、服务和特性的值。UUID 可以使用不同的长度进行表示,其中包括 UUID16 和 UUID128。

① UUID16:UUID16 是一个 16 位的短格式 UUID。它由 4 个十六进制数字表示,例如 0x180D。UUID16 范围从 0x0000 到 0xFFFF,共有 65536 个可能的值。UUID16 常用于标识通用的蓝牙服务,如心率监测(Heart Rate Monitor)、电池服务(Battery Service)等。由于 UUID16 长度较短,因此存在较大的可能性发生冲突。

② UUID128:UUID128 是一个 128 位的长格式 UUID。它由 32 个十六进制数字表示,例如 00002a37-0000-1000-8000-00805f9b34fb。UUID128 的长度更长,因此具有更高的唯一性。UUID128 常用于自定义的蓝牙服务和特性,以确保全球范围内的唯一性。

需要注意的是,UUID16 和 UUID128 之间是可以相互转换的。UUID16 可以通过添加预定义的基础 UUID(Base UUID)或 Bluetooth SIG 定义的预定义服务 UUID 来扩展为 UUID128。UUID128 可以通过截断前面的字节来缩短为 UUID16。

在蓝牙设备之间进行通信时,UUID 用于唯一标识服务和特性。通过使用不同长度的 UUID,可以满足不同场景下的需求,并确保唯一性和互操作性。

#67 Re: ESP32/ESP8266 » 一个非常牛叉的蓝牙协议栈 ---- btstack » 2023-12-26 21:56:18

led_counter   一个无蓝牙的定时器演示程序
gap_inquiry   搜索附近的经典蓝牙设备
gatt_browser 搜索第一个BLE设备并获取信息
spp_and_gatt_counter spp和gatt同时工作


gatt_counter  可以接受手机调试软件发过来的数据









• Hello World example:
– led counter: Hello World - Blinking an LED without Bluetooth.
• GAP examples:
– gap inquiry: GAP Classic Inquiry.
– gap link keys: GAP Link Key Management (Classic).
• Low Energy examples:
– gap le advertisements: GAP LE Advertisements Scanner.
– gatt browser: GATT Client - Discover Primary Services.
– gatt counter: GATT Server - Heartbeat Counter over GATT.
– gatt streamer server: Performance - Stream Data over GATT (Server).
– gatt battery query: GATT Battery Service Client.
– gatt device information query: GATT Device Information Service
Client.
– gatt heart rate client: GATT Heart Rate Sensor Client .
– nordic spp le counter: LE Nordic SPP-like Heartbeat Server .
– nordic spp le streamer: LE Nordic SPP-like Streamer Server .
– ublox spp le counter: LE u-blox SPP-like Heartbeat Server.
– sm pairing central: LE Central - Test Pairing Methods.
– sm pairing peripheral: LE Peripheral - Test Pairing Methods.
– le credit based flow control mode client: LE Credit-Based Flow-Control
Mode Client - Send Data over L2CAP.
– le credit based flow control mode server: LE Credit-Based Flow-Control
Mode Server - Receive data over L2CAP.
– att delayed response: LE Peripheral - Delayed Response.
– ancs client demo: LE ANCS Client - Apple Notification Service.
– le mitm: LE Man-in-the-Middle Tool.
• Performance examples:
– le streamer client: Performance - Stream Data over GATT (Client).
– gatt streamer server: Performance - Stream Data over GATT (Server).
– le credit based flow control mode client: LE Credit-Based Flow-Control
Mode Client - Send Data over L2CAP.
– le credit based flow control mode server: LE Credit-Based Flow-Control
Mode Server - Receive data over L2CAP.
– spp streamer client: Performance - Stream Data over SPP (Client).
– spp streamer: Performance - Stream Data over SPP (Server).
• Audio examples:
– a2dp sink demo: A2DP Sink - Receive Audio Stream and Control
Playback.
– a2dp source demo: A2DP Source - Stream Audio and Control Volume.
– avrcp browsing client: AVRCP Browsing - Browse Media Players
and Media Information.
– hfp ag demo: HFP AG - Audio Gateway.
– hfp hf demo: HFP HF - Hands-Free.
– hsp ag demo: HSP AG - Audio Gateway
– hsp hs demo: HSP HS - Headset.
– sine player: Audio Driver - Play Sine .
– mod player: Audio Driver - Play 80’s MOD Song.
– audio duplex: Audio Driver - Forward Audio from Source to Sink.
• SPP Server examples:
– spp counter: SPP Server - Heartbeat Counter over RFCOMM.
– spp flowcontrol: SPP Server - RFCOMM Flow Control.
• Networking examples:
– pan lwip http server: PAN - lwIP HTTP and DHCP Server .
– panu demo: BNEP/PANU (Linux only).
• HID examples:
– hid keyboard demo: HID Keyboard Classic.
– hid mouse demo: HID Mouse Classic.
– hid host demo: HID Host Classic.
– hog keyboard demo: HID Keyboard LE.
– hog mouse demo: HID Mouse LE.
– hog boot host demo: HID Boot Host LE.
• Dual Mode examples:
– spp and gatt counter: Dual Mode - SPP and LE Counter.
– gatt streamer server: Performance - Stream Data over GATT (Server).
• SDP Queries examples:
– sdp general query: SDP Client - Query Remote SDP Records.
– sdp rfcomm query: SDP Client - Query RFCOMM SDP record.
– sdp bnep query: SDP Client - Query BNEP SDP record.
• Phone Book Access example:
– pbap client demo: PBAP Client - Get Contacts from Phonebook
Server.
• Testing example:
– dut mode classic: Testing - Enable Device Under Test (DUT) Mode
for Classic.

#68 Re: 全志 SOC » ble scan 扫描不到所有设备 » 2023-12-24 19:43:41

#include <stdlib.h>
#include <unistd.h>
#include <netdb.h>
#include <bluetooth/bluetooth.h>
#include <bluetooth/hci.h>
#include <bluetooth/hci_lib.h>
#include <sys/types.h>
#include <sys/socket.h>

// $ gcc ble-scan.c -lbluetooth -o ble-scan

#define EIR_FLAGS                   0x01  /* flags */
#define EIR_UUID16_SOME             0x02  /* 16-bit UUID, more available */
#define EIR_UUID16_ALL              0x03  /* 16-bit UUID, all listed */
#define EIR_UUID32_SOME             0x04  /* 32-bit UUID, more available */
#define EIR_UUID32_ALL              0x05  /* 32-bit UUID, all listed */
#define EIR_UUID128_SOME            0x06  /* 128-bit UUID, more available */
#define EIR_UUID128_ALL             0x07  /* 128-bit UUID, all listed */
#define EIR_NAME_SHORT              0x08  /* shortened local name */
#define EIR_NAME_COMPLETE           0x09  /* complete local name */
#define EIR_TX_POWER                0x0A  /* transmit power level */
#define EIR_DEVICE_ID               0x10  /* device ID */
#define EIR_MANUFACTURE_SPECIFIC    0xFF

void process_data(uint8_t *data, size_t data_len, le_advertising_info *info);
int connecter(int sock, char dest[18]);
void deconnecter(int sock, uint16_t handle);

int main (int argc, char **argv)
{
    int sock, retval;
    int i, len;
    unsigned char buf[HCI_MAX_FRAME_SIZE];
    char btAddress[18];
    uint16_t handle;
    struct sockaddr_hci addr;
    struct hci_filter filter;
    int encore = 1;

    sock = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI);
    if (-1 == sock)
    {
        perror("socket"); return 1;
    }

    hci_filter_clear(&filter);
    hci_filter_all_ptypes(&filter);
    hci_filter_all_events(&filter);

    retval = setsockopt(sock, SOL_HCI, HCI_FILTER, &filter, sizeof(filter));
    if (-1 == retval)
    {
        perror("setsockopt"); return 1;
    }

    memset(&addr, 0, sizeof(addr));
    addr.hci_family = AF_BLUETOOTH;
    addr.hci_dev = 0;
    retval = bind(sock, (struct sockaddr *)&addr, sizeof(addr));
    if (-1 == retval)
    {
        perror("bind"); return 1;
    }

        uint8_t scan_type = 0x00; /* Passive */
    uint16_t interval = htobs(0x0010);
        uint16_t window = htobs(0x0010);
    uint8_t own_type = 0x00;
        uint8_t filter_policy = 0x00; /* 1 -> Whitelist */

    retval = hci_le_set_scan_parameters(sock, scan_type, interval, window, own_type, filter_policy, 1000);
    //retval = hci_le_set_scan_parameters(sock, 0, 0x10, 0x10, 0, 0, 1000);
    if (retval < 0)
    {
        perror("hci_le_set_scan_parameters"); //return 1;
    }

    retval = hci_le_set_scan_enable(sock, 1 /* 1 - turn on, 0 - turn off */, 0 /* 0-filtering disabled, 1-filter out duplicates */, 1000  /* timeout */);
    if (retval < 0)
    {
        perror("hci_le_set_scan_enable"); //return 1;
    }

    do
    {
        memset (buf, 0, sizeof(buf));
        retval = recv (sock, buf, sizeof(buf), 0);
        if (-1 == retval)
        {
            perror("recv"); return 1;
        }
#if 0
        printf ("# ");
        for(i=0;i<retval;i++)
            printf ("0x%02X ", buf[i]);
            //printf ("%c ", buf[i]);
        printf ("(%d)\n\n", retval);
        /*printf ("# 0x%02X 0x%02X 0x%02X 0x%02X (%d)\n",
                    buf[0], buf[1],
                    buf[2], buf[3], retval);*/
#endif
        switch (buf[1])
        {
#if 0
            case EVT_CMD_STATUS: // 0x0F
                if (buf[3])
                {
                    printf ("Erreur !\n");
                    //encore = 0;
                }
                else
                {
                    printf ("Commande en cours\n");
                }
                break;
            case EVT_INQUIRY_RESULT: // 0x02
            printf ("Périphérique trouvé:\n");
                printf ("  * Adresse : %02x:%02x:%02x:%02x:%02x:%02x\n",
                    buf[9], buf[8],
                    buf[7], buf[6],
                    buf[5], buf[4]);
                printf ("  * Classe  : 0x%02x%02x%02x\n\n",
                    buf[15], buf[14], buf[13]);
            break;
         case EVT_EXTENDED_INQUIRY_RESULT: // 0x2F
                printf ("Périphérique trouvé:\n");
                printf ("  * Adresse : %02x:%02x:%02x:%02x:%02x:%02x\n",
                    buf[9], buf[8],
                    buf[7], buf[6],
                    buf[5], buf[4]);
                printf ("  * Classe  : 0x%02x%02x%02x\n",
                    buf[14], buf[13], buf[12]);
                printf ("  * RSSI    : %d\n\n", // Received Signal Strength Indication
                    buf[17]);
                break;
            case EVT_INQUIRY_COMPLETE: // 0x01
                //encore = 0;
                break;
#endif
            case EVT_LE_META_EVENT: // 0x3E
                len = retval;
                evt_le_meta_event *meta = (void *)(buf + (1 + HCI_EVENT_HDR_SIZE));

                len -= (1 + HCI_EVENT_HDR_SIZE);

                if (meta->subevent == EVT_LE_ADVERTISING_REPORT)
                {
//                    printf("EVT_LE_ADVERTISING_REPORT (0x%02X)\n", meta->subevent);

                    le_advertising_info *info = (le_advertising_info *) (meta->data + 1);
                    int8_t rssi;

                    ba2str(&info->bdaddr, btAddress);
#if 0
                    printf("* %s (%s) [ ", btAddress, (info->bdaddr_type == LE_PUBLIC_ADDRESS) ? "public" : "random");
                    for (i = 0; i < info->length; i++)
                    {
                        printf("0x%02X ", info->data[i]);
                    }

                    rssi = *(info->data + info->length);
                    printf("] rssi = %d dBm\n", rssi);
#endif
                    if(info->length != 0)
                    {
                        int current_index = 0;
                        int data_error = 0;

                        while(!data_error && current_index < info->length)
                        {
                            size_t data_len = info->data[current_index];

                            if(data_len + 1 > info->length)
                            {
                                printf("EIR data length is longer than EIR packet length. %d + 1 > %d", (int)data_len, info->length);
                                data_error = 1;
                            }
                            else
                            {
                                process_data(info->data + current_index + 1, data_len, info);
                                current_index += data_len + 1;
                            }
                        }
                    }
                    else
                        printf("info->length == 0 !\n");
                }
                else
                    printf("EVT_LE = 0x%02X\n", meta->subevent);

                //handle = connecter(sock, btAddress);

                //deconnecter(sock, handle);

                //encore = 0;
                break;
            default:
                break;
        }
    }
    while (encore);

    retval = hci_le_set_scan_enable(sock, 0 /* 1 - turn on, 0 - turn off */, 0 /* 0-filtering disabled, 1-filter out duplicates */, 1000  /* timeout */);
    if (retval < 0)
    {
        perror("hci_le_set_scan_enable"); //return 1;
    }
    close (sock);

    return 0;
}

void process_data(uint8_t *data, size_t data_len, le_advertising_info *info)
{
//    printf("process_data: %d octets\n", (int)data_len);
    if(data[0] == EIR_NAME_SHORT || data[0] == EIR_NAME_COMPLETE)
    {
        size_t name_len = data_len - 1;
        char *name = malloc(name_len + 1);
        memset(name, 0, name_len + 1);
        memcpy(name, &data[2], name_len);

        char addr[18];
        ba2str(&info->bdaddr, addr);

        printf("addr=%s name=%s\n", addr, name);

        free(name);
    }
    else if(data[0] == EIR_FLAGS)
    {
#if 0
        printf("-> Flag type: len=%d\n", (int)data_len);
        int i;
        for(i=1; i<data_len; i++)
        {
          printf("\tFlag data: 0x%02X\n", data[i]); // 0x06 -> 0000 0110
        }
        /*
         bit 0 LE Limited Discoverable Mode
         bit 1 LE General Discoverable Mode
         bit 2 BR/EDR Supported
         bit 3 Simultaneous LE and BR/EDR to Same Device Capable (controller)
         bit 4 Simultaneous LE and BR/EDR to Same Device Capable (Host)
        */
#endif
    }
    else if(data[0] == EIR_MANUFACTURE_SPECIFIC)
    {
#if 0
        printf("-> Manufacture specific type: len=%d\n", (int)data_len);

        // https://www.bluetooth.org/en-us/specification/assigned-numbers/company-identifiers
        // TODO int company_id = data[current_index + 2]

        int i;
        for(i=1; i<data_len; i++)
        {
          printf("\tData: 0x%02X\n", data[i]);
        }
#endif
    }
    else if(data[0] == EIR_UUID128_SOME)
    {
        printf("-> UUID 128 type: len=%d\n", (int)data_len);
        printf("\t");
        int i;
        for(i=data_len-1; i>0; i--)
        {
          printf("%02x", data[i]);
        }
        printf("\n");
    }
    else
    {
        printf("-> Unknown type: type=0x%02X\n", data[0]);
    }
}

int connecter(int sock, char dest[18])
{
    struct hci_dev_info di;
    uint16_t handle;
    char addr[18];
    bdaddr_t bdaddr;
    uint16_t interval, latency, max_ce_length, max_interval, min_ce_length;
        uint16_t min_interval, supervision_timeout, window;
        uint8_t initiator_filter, own_bdaddr_type, peer_bdaddr_type;
    int retval;
    char name[248];

    if (hci_devinfo(0, &di) < 0)
    {
        perror("hci_devinfo");
    }
    ba2str(&di.bdaddr, addr);
    printf("Device  : %s [%s]\n", di.name, addr);

    str2ba(dest, &bdaddr);

    interval = htobs(0x0004);
        window = htobs(0x0004);
    //initiator_filter = 0x01; /* Use white list */
    //peer_bdaddr_type = LE_RANDOM_ADDRESS;
        own_bdaddr_type = 0x00;
        min_interval = htobs(0x000F);
        max_interval = htobs(0x000F);
        latency = htobs(0x0000);
        supervision_timeout = htobs(0x0C80);
        min_ce_length = htobs(0x0001);
        max_ce_length = htobs(0x0001);
        retval = hci_le_create_conn(sock, interval, window, initiator_filter,
                        peer_bdaddr_type, bdaddr, own_bdaddr_type, min_interval,
                        max_interval, latency, supervision_timeout,
                        min_ce_length, max_ce_length, &handle, 25000);
    if (retval < 0)
    {
        perror("hci_le_create_conn");
        // TODO close(sock);
        return -1;
    }
    printf("Handle : %d\n", handle);

    /*if (hci_read_remote_name(sock, &bdaddr, sizeof(name), name, 25000) == 0)
                printf("Name : %s\n", name);*/

    //sleep(1);

    return handle;
}

void deconnecter(int sock, uint16_t handle)
{
    hci_disconnect(sock, handle, HCI_OE_USER_ENDED_CONNECTION, 10000);
}

精简了一下,可以一直搜索附近的BLE设备

#69 Re: 全志 SOC » ble scan 扫描不到所有设备 » 2023-12-23 23:02:14

/opt/buildroot/buildroot-2023/output/host/bin/aarch64-linux-gnu-gcc -DVERSION=\"AAAA\" -o hcitoolhcitool.c -I./output/build/bluez5_utils-5.68/ -lbluetooth

#70 Re: 全志 SOC » ble scan 扫描不到所有设备 » 2023-12-23 23:00:11

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 *
 *  BlueZ - Bluetooth protocol stack for Linux
 *
 *  Copyright (C) 2000-2001  Qualcomm Incorporated
 *  Copyright (C) 2002-2003  Maxim Krasnyansky <maxk@qualcomm.com>
 *  Copyright (C) 2002-2010  Marcel Holtmann <marcel@holtmann.org>
 *
 *
 */

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#define _GNU_SOURCE
#include <stdio.h>
#include <errno.h>
#include <ctype.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <getopt.h>
#include <sys/param.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <signal.h>

#include "lib/bluetooth.h"
#include "lib/hci.h"
#include "lib/hci_lib.h"


#ifndef MIN
#define MIN(a, b) ((a) < (b) ? (a) : (b))
#endif

/* Unofficial value, might still change */
#define LE_LINK		0x80

#define FLAGS_AD_TYPE 0x01
#define FLAGS_LIMITED_MODE_BIT 0x01
#define FLAGS_GENERAL_MODE_BIT 0x02

#define EIR_FLAGS                   0x01  /* flags */
#define EIR_UUID16_SOME             0x02  /* 16-bit UUID, more available */
#define EIR_UUID16_ALL              0x03  /* 16-bit UUID, all listed */
#define EIR_UUID32_SOME             0x04  /* 32-bit UUID, more available */
#define EIR_UUID32_ALL              0x05  /* 32-bit UUID, all listed */
#define EIR_UUID128_SOME            0x06  /* 128-bit UUID, more available */
#define EIR_UUID128_ALL             0x07  /* 128-bit UUID, all listed */
#define EIR_NAME_SHORT              0x08  /* shortened local name */
#define EIR_NAME_COMPLETE           0x09  /* complete local name */
#define EIR_TX_POWER                0x0A  /* transmit power level */
#define EIR_DEVICE_ID               0x10  /* device ID */

#define for_each_opt(opt, long, short) while ((opt=getopt_long(argc, argv, short ? short:"+", long, NULL)) != -1)

static volatile int signal_received = 0;

static void usage(void);




static void helper_arg(int min_num_arg, int max_num_arg, int *argc,
			char ***argv, const char *usage)
{
	*argc -= optind;
	/* too many arguments, but when "max_num_arg < min_num_arg" then no
		 limiting (prefer "max_num_arg=-1" to gen infinity)
	*/
	if ( (*argc > max_num_arg) && (max_num_arg >= min_num_arg ) ) {
		fprintf(stderr, "%s: too many arguments (maximal: %i)\n",
				*argv[0], max_num_arg);
		printf("%s", usage);
		exit(1);
	}

	/* print usage */
	if (*argc < min_num_arg) {
		fprintf(stderr, "%s: too few arguments (minimal: %i)\n",
				*argv[0], min_num_arg);
		printf("%s", usage);
		exit(0);
	}

	*argv += optind;
}

static char *type2str(uint8_t type)
{
	switch (type) {
	case SCO_LINK:
		return "SCO";
	case ACL_LINK:
		return "ACL";
	case ESCO_LINK:
		return "eSCO";
	case LE_LINK:
		return "LE";
	default:
		return "Unknown";
	}
}


static void hex_dump(char *pref, int width, unsigned char *buf, int len)
{
	register int i,n;

	for (i = 0, n = 1; i < len; i++, n++) {
		if (n == 1)
			printf("%s", pref);
		printf("%2.2X ", buf[i]);
		if (n == width) {
			printf("\n");
			n = 0;
		}
	}
	if (i && n!=1)
		printf("\n");
}


static int read_flags(uint8_t *flags, const uint8_t *data, size_t size)
{
	size_t offset;

	if (!flags || !data)
		return -EINVAL;

	offset = 0;
	while (offset < size) {
		uint8_t len = data[offset];
		uint8_t type;

		/* Check if it is the end of the significant part */
		if (len == 0)
			break;

		if (len + offset > size)
			break;

		type = data[offset + 1];

		if (type == FLAGS_AD_TYPE) {
			*flags = data[offset + 2];
			return 0;
		}

		offset += 1 + len;
	}

	return -ENOENT;
}

static int check_report_filter(uint8_t procedure, le_advertising_info *info)
{
	uint8_t flags;

	/* If no discovery procedure is set, all reports are treat as valid */
	if (procedure == 0)
		return 1;

	/* Read flags AD type value from the advertising report if it exists */
	if (read_flags(&flags, info->data, info->length))
		return 0;

	switch (procedure) {
	case 'l': /* Limited Discovery Procedure */
		if (flags & FLAGS_LIMITED_MODE_BIT)
			return 1;
		break;
	case 'g': /* General Discovery Procedure */
		if (flags & (FLAGS_LIMITED_MODE_BIT | FLAGS_GENERAL_MODE_BIT))
			return 1;
		break;
	default:
		fprintf(stderr, "Unknown discovery procedure\n");
	}

	return 0;
}

static void sigint_handler(int sig)
{
	signal_received = sig;
}

static void eir_parse_name(uint8_t *eir, size_t eir_len,
						char *buf, size_t buf_len)
{
	size_t offset;

	offset = 0;
	while (offset < eir_len) {
		uint8_t field_len = eir[0];
		size_t name_len;

		/* Check for the end of EIR */
		if (field_len == 0)
			break;

		if (offset + field_len > eir_len)
			goto failed;

		switch (eir[1]) {
		case EIR_NAME_SHORT:
		case EIR_NAME_COMPLETE:
			name_len = field_len - 1;
			if (name_len > buf_len)
				goto failed;

			memcpy(buf, &eir[2], name_len);
			return;
		}

		offset += field_len + 1;
		eir += field_len + 1;
	}

failed:
	snprintf(buf, buf_len, "(unknown)");
}

static int print_advertising_devices(int dd, uint8_t filter_type)
{
	unsigned char buf[HCI_MAX_EVENT_SIZE], *ptr;
	struct hci_filter nf, of;
	struct sigaction sa;
	socklen_t olen;
	int len;

	olen = sizeof(of);
	if (getsockopt(dd, SOL_HCI, HCI_FILTER, &of, &olen) < 0) {
		printf("Could not get socket options\n");
		return -1;
	}

	hci_filter_clear(&nf); 	
	hci_filter_set_ptype(HCI_EVENT_PKT, &nf);
	hci_filter_set_event(EVT_LE_META_EVENT, &nf);

	if (setsockopt(dd, SOL_HCI, HCI_FILTER, &nf, sizeof(nf)) < 0) {
		printf("Could not set socket options\n");
		return -1;
	}

	memset(&sa, 0, sizeof(sa));
	sa.sa_flags = SA_NOCLDSTOP;
	sa.sa_handler = sigint_handler;
	sigaction(SIGINT, &sa, NULL);

	while (1) {
		evt_le_meta_event *meta;
		le_advertising_info *info;
		char addr[18];

		while ((len = read(dd, buf, sizeof(buf))) < 0) {
			if (errno == EINTR && signal_received == SIGINT) {
				len = 0;
				goto done;
			}

			if (errno == EAGAIN || errno == EINTR)
				continue;
			goto done;
		}

		ptr = buf + (1 + HCI_EVENT_HDR_SIZE);
		len -= (1 + HCI_EVENT_HDR_SIZE);

		meta = (void *) ptr;

		if (meta->subevent != 0x02)
			goto done;

		/* Ignoring multiple reports */
		info = (le_advertising_info *) (meta->data + 1);
		if (check_report_filter(filter_type, info)) {
			char name[30];

			memset(name, 0, sizeof(name));

			ba2str(&info->bdaddr, addr);
			eir_parse_name(info->data, info->length,
							name, sizeof(name) - 1);

			printf("%s %s\n", addr, name);
		}
	}

done:
	setsockopt(dd, SOL_HCI, HCI_FILTER, &of, sizeof(of));

	if (len < 0)
		return -1;

	return 0;
}


static void cmd_lescan(int dev_id, int argc, char **argv)
{
	int err, opt, dd;
	uint8_t own_type = LE_PUBLIC_ADDRESS;
	uint8_t scan_type = 0x01;
	uint8_t filter_type = 0;
	uint8_t filter_policy = 0x00;
	uint16_t interval = htobs(0x0010);
	uint16_t window = htobs(0x0010);
	uint8_t filter_dup = 0x01;

	if (dev_id < 0)
		dev_id = hci_get_route(NULL);

	dd = hci_open_dev(dev_id);
	if (dd < 0) {
		perror("Could not open device");
		exit(1);
	}

	err = hci_le_set_scan_parameters(dd, scan_type, interval, window,
						own_type, filter_policy, 10000);
	if (err < 0) {
		perror("Set scan parameters failed");
		exit(1);
	}

	err = hci_le_set_scan_enable(dd, 0x01, filter_dup, 10000);
	if (err < 0) {
		perror("Enable scan failed");
		exit(1);
	}

	printf("LE Scan ...\n");

	err = print_advertising_devices(dd, filter_type);
	if (err < 0) {
		perror("Could not receive advertising events");
		exit(1);
	}

	printf("-----------------------------------------------------\n");
	err = hci_le_set_scan_enable(dd, 0x00, filter_dup, 10000);
	if (err < 0) {
		perror("Disable scan failed");
		exit(1);
	}

	hci_close_dev(dd);
}



static struct {
	char *cmd;
	void (*func)(int dev_id, int argc, char **argv);
	char *doc;
} command[] = {
	{ "lescan",   cmd_lescan,  "Start LE scan"                        },
	{ NULL, NULL, 0 }
};

static void usage(void)
{
	int i;

	printf("hcitool - HCI Tool ver %s\n", VERSION);
	printf("Usage:\n"
		"\thcitool [options] <command> [command parameters]\n");
	printf("Options:\n"
		"\t--help\tDisplay help\n"
		"\t-i dev\tHCI device\n");
	printf("Commands:\n");
	for (i = 0; command[i].cmd; i++)
		printf("\t%-4s\t%s\n", command[i].cmd,
		command[i].doc);
	printf("\n"
		"For more information on the usage of each command use:\n"
		"\thcitool <command> --help\n" );
}

static struct option main_options[] = {
	{ "help",	0, 0, 'h' },
	{ "device",	1, 0, 'i' },
	{ 0, 0, 0, 0 }
};

int main(int argc, char *argv[])
{
	int opt, i, dev_id = -1;
	bdaddr_t ba;

	while ((opt=getopt_long(argc, argv, "+i:h", main_options, NULL)) != -1) {
		switch (opt) {
		case 'i':
			dev_id = hci_devid(optarg);
			if (dev_id < 0) {
				perror("Invalid device");
				exit(1);
			}
			break;

		case 'h':
		default:
			usage();
			exit(0);
		}
	}

	argc -= optind;
	argv += optind;
	optind = 0;

	if (argc < 1) {
		usage();
		exit(0);
	}

	if (dev_id != -1 && hci_devba(dev_id, &ba) < 0) {
		perror("Device is not available");
		exit(1);
	}

	for (i = 0; command[i].cmd; i++) {
		if (strncmp(command[i].cmd,
				argv[0], strlen(command[i].cmd)))
			continue;

		command[i].func(dev_id, argc, argv);
		break;
	}

	if (command[i].cmd == 0) {
		fprintf(stderr, "Unknown command - \"%s\"\n", *argv);
		exit(1);
	}

	return 0;
}

继续精简

#71 Re: 全志 SOC » ble scan 扫描不到所有设备 » 2023-12-23 22:40:29

弄了个极度经典版的 hcitool.c :

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 *
 *  BlueZ - Bluetooth protocol stack for Linux
 *
 *  Copyright (C) 2000-2001  Qualcomm Incorporated
 *  Copyright (C) 2002-2003  Maxim Krasnyansky <maxk@qualcomm.com>
 *  Copyright (C) 2002-2010  Marcel Holtmann <marcel@holtmann.org>
 *
 *
 */

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#define _GNU_SOURCE
#include <stdio.h>
#include <errno.h>
#include <ctype.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <getopt.h>
#include <sys/param.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <signal.h>

#include "lib/bluetooth.h"
#include "lib/hci.h"
#include "lib/hci_lib.h"


#ifndef MIN
#define MIN(a, b) ((a) < (b) ? (a) : (b))
#endif

/* Unofficial value, might still change */
#define LE_LINK		0x80

#define FLAGS_AD_TYPE 0x01
#define FLAGS_LIMITED_MODE_BIT 0x01
#define FLAGS_GENERAL_MODE_BIT 0x02

#define EIR_FLAGS                   0x01  /* flags */
#define EIR_UUID16_SOME             0x02  /* 16-bit UUID, more available */
#define EIR_UUID16_ALL              0x03  /* 16-bit UUID, all listed */
#define EIR_UUID32_SOME             0x04  /* 32-bit UUID, more available */
#define EIR_UUID32_ALL              0x05  /* 32-bit UUID, all listed */
#define EIR_UUID128_SOME            0x06  /* 128-bit UUID, more available */
#define EIR_UUID128_ALL             0x07  /* 128-bit UUID, all listed */
#define EIR_NAME_SHORT              0x08  /* shortened local name */
#define EIR_NAME_COMPLETE           0x09  /* complete local name */
#define EIR_TX_POWER                0x0A  /* transmit power level */
#define EIR_DEVICE_ID               0x10  /* device ID */

#define for_each_opt(opt, long, short) while ((opt=getopt_long(argc, argv, short ? short:"+", long, NULL)) != -1)

static volatile int signal_received = 0;

static void usage(void);




static void helper_arg(int min_num_arg, int max_num_arg, int *argc,
			char ***argv, const char *usage)
{
	*argc -= optind;
	/* too many arguments, but when "max_num_arg < min_num_arg" then no
		 limiting (prefer "max_num_arg=-1" to gen infinity)
	*/
	if ( (*argc > max_num_arg) && (max_num_arg >= min_num_arg ) ) {
		fprintf(stderr, "%s: too many arguments (maximal: %i)\n",
				*argv[0], max_num_arg);
		printf("%s", usage);
		exit(1);
	}

	/* print usage */
	if (*argc < min_num_arg) {
		fprintf(stderr, "%s: too few arguments (minimal: %i)\n",
				*argv[0], min_num_arg);
		printf("%s", usage);
		exit(0);
	}

	*argv += optind;
}

static char *type2str(uint8_t type)
{
	switch (type) {
	case SCO_LINK:
		return "SCO";
	case ACL_LINK:
		return "ACL";
	case ESCO_LINK:
		return "eSCO";
	case LE_LINK:
		return "LE";
	default:
		return "Unknown";
	}
}


static void hex_dump(char *pref, int width, unsigned char *buf, int len)
{
	register int i,n;

	for (i = 0, n = 1; i < len; i++, n++) {
		if (n == 1)
			printf("%s", pref);
		printf("%2.2X ", buf[i]);
		if (n == width) {
			printf("\n");
			n = 0;
		}
	}
	if (i && n!=1)
		printf("\n");
}


static int read_flags(uint8_t *flags, const uint8_t *data, size_t size)
{
	size_t offset;

	if (!flags || !data)
		return -EINVAL;

	offset = 0;
	while (offset < size) {
		uint8_t len = data[offset];
		uint8_t type;

		/* Check if it is the end of the significant part */
		if (len == 0)
			break;

		if (len + offset > size)
			break;

		type = data[offset + 1];

		if (type == FLAGS_AD_TYPE) {
			*flags = data[offset + 2];
			return 0;
		}

		offset += 1 + len;
	}

	return -ENOENT;
}

static int check_report_filter(uint8_t procedure, le_advertising_info *info)
{
	uint8_t flags;

	/* If no discovery procedure is set, all reports are treat as valid */
	if (procedure == 0)
		return 1;

	/* Read flags AD type value from the advertising report if it exists */
	if (read_flags(&flags, info->data, info->length))
		return 0;

	switch (procedure) {
	case 'l': /* Limited Discovery Procedure */
		if (flags & FLAGS_LIMITED_MODE_BIT)
			return 1;
		break;
	case 'g': /* General Discovery Procedure */
		if (flags & (FLAGS_LIMITED_MODE_BIT | FLAGS_GENERAL_MODE_BIT))
			return 1;
		break;
	default:
		fprintf(stderr, "Unknown discovery procedure\n");
	}

	return 0;
}

static void sigint_handler(int sig)
{
	signal_received = sig;
}

static void eir_parse_name(uint8_t *eir, size_t eir_len,
						char *buf, size_t buf_len)
{
	size_t offset;

	offset = 0;
	while (offset < eir_len) {
		uint8_t field_len = eir[0];
		size_t name_len;

		/* Check for the end of EIR */
		if (field_len == 0)
			break;

		if (offset + field_len > eir_len)
			goto failed;

		switch (eir[1]) {
		case EIR_NAME_SHORT:
		case EIR_NAME_COMPLETE:
			name_len = field_len - 1;
			if (name_len > buf_len)
				goto failed;

			memcpy(buf, &eir[2], name_len);
			return;
		}

		offset += field_len + 1;
		eir += field_len + 1;
	}

failed:
	snprintf(buf, buf_len, "(unknown)");
}

static int print_advertising_devices(int dd, uint8_t filter_type)
{
	unsigned char buf[HCI_MAX_EVENT_SIZE], *ptr;
	struct hci_filter nf, of;
	struct sigaction sa;
	socklen_t olen;
	int len;

	olen = sizeof(of);
	if (getsockopt(dd, SOL_HCI, HCI_FILTER, &of, &olen) < 0) {
		printf("Could not get socket options\n");
		return -1;
	}

	hci_filter_clear(&nf);
	hci_filter_set_ptype(HCI_EVENT_PKT, &nf);
	hci_filter_set_event(EVT_LE_META_EVENT, &nf);

	if (setsockopt(dd, SOL_HCI, HCI_FILTER, &nf, sizeof(nf)) < 0) {
		printf("Could not set socket options\n");
		return -1;
	}

	memset(&sa, 0, sizeof(sa));
	sa.sa_flags = SA_NOCLDSTOP;
	sa.sa_handler = sigint_handler;
	sigaction(SIGINT, &sa, NULL);

	while (1) {
		evt_le_meta_event *meta;
		le_advertising_info *info;
		char addr[18];

		while ((len = read(dd, buf, sizeof(buf))) < 0) {
			if (errno == EINTR && signal_received == SIGINT) {
				len = 0;
				goto done;
			}

			if (errno == EAGAIN || errno == EINTR)
				continue;
			goto done;
		}

		ptr = buf + (1 + HCI_EVENT_HDR_SIZE);
		len -= (1 + HCI_EVENT_HDR_SIZE);

		meta = (void *) ptr;

		if (meta->subevent != 0x02)
			goto done;

		/* Ignoring multiple reports */
		info = (le_advertising_info *) (meta->data + 1);
		if (check_report_filter(filter_type, info)) {
			char name[30];

			memset(name, 0, sizeof(name));

			ba2str(&info->bdaddr, addr);
			eir_parse_name(info->data, info->length,
							name, sizeof(name) - 1);

			printf("%s %s\n", addr, name);
		}
	}

done:
	setsockopt(dd, SOL_HCI, HCI_FILTER, &of, sizeof(of));

	if (len < 0)
		return -1;

	return 0;
}

static struct option lescan_options[] = {
	{ "help",	0, 0, 'h' },
	{ "static",	0, 0, 's' },
	{ "privacy",	0, 0, 'p' },
	{ "passive",	0, 0, 'P' },
	{ "whitelist",	0, 0, 'w' }, /* Deprecated. Kept for compatibility. */
	{ "acceptlist",	0, 0, 'a' },
	{ "discovery",	1, 0, 'd' },
	{ "duplicates",	0, 0, 'D' },
	{ 0, 0, 0, 0 }
};

static const char *lescan_help =
	"Usage:\n"
	"\tlescan [--privacy] enable privacy\n"
	"\tlescan [--passive] set scan type passive (default active)\n"
	"\tlescan [--acceptlist] scan for address in the accept list only\n"
	"\tlescan [--discovery=g|l] enable general or limited discovery"
		"procedure\n"
	"\tlescan [--duplicates] don't filter duplicates\n";

static void cmd_lescan(int dev_id, int argc, char **argv)
{
	int err, opt, dd;
	uint8_t own_type = LE_PUBLIC_ADDRESS;
	uint8_t scan_type = 0x01;
	uint8_t filter_type = 0;
	uint8_t filter_policy = 0x00;
	uint16_t interval = htobs(0x0010);
	uint16_t window = htobs(0x0010);
	uint8_t filter_dup = 0x01;

	for_each_opt(opt, lescan_options, NULL) {
		switch (opt) {
		case 's':
			own_type = LE_RANDOM_ADDRESS;
			break;
		case 'p':
			own_type = LE_RANDOM_ADDRESS;
			break;
		case 'P':
			scan_type = 0x00; /* Passive */
			break;
		case 'w': /* Deprecated. Kept for compatibility. */
		case 'a':
			filter_policy = 0x01; /* Accept list */
			break;
		case 'd':
			filter_type = optarg[0];
			if (filter_type != 'g' && filter_type != 'l') {
				fprintf(stderr, "Unknown discovery procedure\n");
				exit(1);
			}

			interval = htobs(0x0012);
			window = htobs(0x0012);
			break;
		case 'D':
			filter_dup = 0x00;
			break;
		default:
			printf("%s", lescan_help);
			return;
		}
	}
	helper_arg(0, 1, &argc, &argv, lescan_help);

	if (dev_id < 0)
		dev_id = hci_get_route(NULL);

	dd = hci_open_dev(dev_id);
	if (dd < 0) {
		perror("Could not open device");
		exit(1);
	}

	err = hci_le_set_scan_parameters(dd, scan_type, interval, window,
						own_type, filter_policy, 10000);
	if (err < 0) {
		perror("Set scan parameters failed");
		exit(1);
	}

	err = hci_le_set_scan_enable(dd, 0x01, filter_dup, 10000);
	if (err < 0) {
		perror("Enable scan failed");
		exit(1);
	}

	printf("LE Scan ...\n");

	err = print_advertising_devices(dd, filter_type);
	if (err < 0) {
		perror("Could not receive advertising events");
		exit(1);
	}

	printf("-----------------------------------------------------\n");
	err = hci_le_set_scan_enable(dd, 0x00, filter_dup, 10000);
	if (err < 0) {
		perror("Disable scan failed");
		exit(1);
	}

	hci_close_dev(dd);
}



static struct {
	char *cmd;
	void (*func)(int dev_id, int argc, char **argv);
	char *doc;
} command[] = {
	{ "lescan",   cmd_lescan,  "Start LE scan"                        },
	{ NULL, NULL, 0 }
};

static void usage(void)
{
	int i;

	printf("hcitool - HCI Tool ver %s\n", VERSION);
	printf("Usage:\n"
		"\thcitool [options] <command> [command parameters]\n");
	printf("Options:\n"
		"\t--help\tDisplay help\n"
		"\t-i dev\tHCI device\n");
	printf("Commands:\n");
	for (i = 0; command[i].cmd; i++)
		printf("\t%-4s\t%s\n", command[i].cmd,
		command[i].doc);
	printf("\n"
		"For more information on the usage of each command use:\n"
		"\thcitool <command> --help\n" );
}

static struct option main_options[] = {
	{ "help",	0, 0, 'h' },
	{ "device",	1, 0, 'i' },
	{ 0, 0, 0, 0 }
};

int main(int argc, char *argv[])
{
	int opt, i, dev_id = -1;
	bdaddr_t ba;

	while ((opt=getopt_long(argc, argv, "+i:h", main_options, NULL)) != -1) {
		switch (opt) {
		case 'i':
			dev_id = hci_devid(optarg);
			if (dev_id < 0) {
				perror("Invalid device");
				exit(1);
			}
			break;

		case 'h':
		default:
			usage();
			exit(0);
		}
	}

	argc -= optind;
	argv += optind;
	optind = 0;

	if (argc < 1) {
		usage();
		exit(0);
	}

	if (dev_id != -1 && hci_devba(dev_id, &ba) < 0) {
		perror("Device is not available");
		exit(1);
	}

	for (i = 0; command[i].cmd; i++) {
		if (strncmp(command[i].cmd,
				argv[0], strlen(command[i].cmd)))
			continue;

		command[i].func(dev_id, argc, argv);
		break;
	}

	if (command[i].cmd == 0) {
		fprintf(stderr, "Unknown command - \"%s\"\n", *argv);
		exit(1);
	}

	return 0;
}

#73 全志 SOC » ble scan 扫描不到所有设备 » 2023-12-23 21:23:40

memory
回复: 13

http://tvaira.free.fr/flower-power/ble-scan.c

#include <stdlib.h>
#include <unistd.h>
#include <netdb.h>
#include <bluetooth/bluetooth.h>
#include <bluetooth/hci.h>
#include <bluetooth/hci_lib.h>
#include <sys/types.h>
#include <sys/socket.h>

// $ gcc ble-scan.c -lbluetooth -o ble-scan

#define EIR_FLAGS                   0x01  /* flags */
#define EIR_UUID16_SOME             0x02  /* 16-bit UUID, more available */
#define EIR_UUID16_ALL              0x03  /* 16-bit UUID, all listed */
#define EIR_UUID32_SOME             0x04  /* 32-bit UUID, more available */
#define EIR_UUID32_ALL              0x05  /* 32-bit UUID, all listed */
#define EIR_UUID128_SOME            0x06  /* 128-bit UUID, more available */
#define EIR_UUID128_ALL             0x07  /* 128-bit UUID, all listed */
#define EIR_NAME_SHORT              0x08  /* shortened local name */
#define EIR_NAME_COMPLETE           0x09  /* complete local name */
#define EIR_TX_POWER                0x0A  /* transmit power level */
#define EIR_DEVICE_ID               0x10  /* device ID */
#define EIR_MANUFACTURE_SPECIFIC    0xFF

void process_data(uint8_t *data, size_t data_len, le_advertising_info *info);
int connecter(int sock, char dest[18]);
void deconnecter(int sock, uint16_t handle);

int main (int argc, char **argv)
{
    int sock, retval;
    int i, len;
    unsigned char buf[HCI_MAX_FRAME_SIZE];
    char btAddress[18];
    uint16_t handle;
    struct sockaddr_hci addr;
    struct hci_filter filter;
    int encore = 1;
    
    sock = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI);
    if (-1 == sock)
    {
        perror("socket"); return 1;
    }
    
    hci_filter_clear(&filter);
    hci_filter_all_ptypes(&filter);
    hci_filter_all_events(&filter);
    
    retval = setsockopt(sock, SOL_HCI, HCI_FILTER, &filter, sizeof(filter)); 
    if (-1 == retval)
    {
        perror("setsockopt"); return 1;
    }
    
    memset(&addr, 0, sizeof(addr));
    addr.hci_family = AF_BLUETOOTH;
    addr.hci_dev = 0;
    retval = bind(sock, (struct sockaddr *)&addr, sizeof(addr));
    if (-1 == retval)
    {
        perror("bind"); return 1;
    }
    
	uint8_t scan_type = 0x00; /* Passive */
    uint16_t interval = htobs(0x0010);
	uint16_t window = htobs(0x0010);
    uint8_t own_type = 0x00;
	uint8_t filter_policy = 0x00; /* 1 -> Whitelist */	

    retval = hci_le_set_scan_parameters(sock, scan_type, interval, window, own_type, filter_policy, 1000);
    //retval = hci_le_set_scan_parameters(sock, 0, 0x10, 0x10, 0, 0, 1000);
    if (retval < 0)
    {
        perror("hci_le_set_scan_parameters"); //return 1;
    }
    
    retval = hci_le_set_scan_enable(sock, 1 /* 1 - turn on, 0 - turn off */, 0 /* 0-filtering disabled, 1-filter out duplicates */, 1000  /* timeout */);
    if (retval < 0)
    {
        perror("hci_le_set_scan_enable"); //return 1;
    }    
    
    do 
    {
        memset (buf, 0, sizeof(buf));
        retval = recv (sock, buf, sizeof(buf), 0);
        if (-1 == retval)
        {
            perror("recv"); return 1;
        }
        printf ("# ");
        for(i=0;i<retval;i++)
            printf ("0x%02X ", buf[i]);
            //printf ("%c ", buf[i]);
        printf ("(%d)\n\n", retval);
        /*printf ("# 0x%02X 0x%02X 0x%02X 0x%02X (%d)\n",
                    buf[0], buf[1],
                    buf[2], buf[3], retval);*/
        switch (buf[1]) 
        {
            case EVT_CMD_STATUS: // 0x0F
                if (buf[3]) 
                {
                    printf ("Erreur !\n");
                    encore = 0;
                } 
                else 
                {
                    printf ("Commande en cours\n");
                }
                break;
            case EVT_INQUIRY_RESULT: // 0x02
            printf ("Périphérique trouvé:\n");
                printf ("  * Adresse : %02x:%02x:%02x:%02x:%02x:%02x\n",
                    buf[9], buf[8],
                    buf[7], buf[6],
                    buf[5], buf[4]);
                printf ("  * Classe  : 0x%02x%02x%02x\n\n",
                    buf[15], buf[14], buf[13]);
            break;
         case EVT_EXTENDED_INQUIRY_RESULT: // 0x2F
                printf ("Périphérique trouvé:\n");
                printf ("  * Adresse : %02x:%02x:%02x:%02x:%02x:%02x\n",
                    buf[9], buf[8],
                    buf[7], buf[6],
                    buf[5], buf[4]);
                printf ("  * Classe  : 0x%02x%02x%02x\n",
                    buf[14], buf[13], buf[12]);
                printf ("  * RSSI    : %d\n\n", // Received Signal Strength Indication
                    buf[17]);
                break;
            case EVT_INQUIRY_COMPLETE: // 0x01
                encore = 0;
                break;
            case EVT_LE_META_EVENT: // 0x3E
                len = retval;
                evt_le_meta_event *meta = (void *)(buf + (1 + HCI_EVENT_HDR_SIZE));

                len -= (1 + HCI_EVENT_HDR_SIZE);
                
                if (meta->subevent == EVT_LE_ADVERTISING_REPORT)
                {
                    printf("EVT_LE_ADVERTISING_REPORT (0x%02X)\n", meta->subevent);                    
                
                    le_advertising_info *info = (le_advertising_info *) (meta->data + 1);                    
                    int8_t rssi;
                
                    ba2str(&info->bdaddr, btAddress);
                    printf("* %s (%s) [ ", btAddress, (info->bdaddr_type == LE_PUBLIC_ADDRESS) ? "public" : "random");
                    for (i = 0; i < info->length; i++) 
                    {
                        printf("0x%02X ", info->data[i]);
                    }

                    rssi = *(info->data + info->length);
                    printf("] rssi = %d dBm\n", rssi);
               
                    if(info->length != 0)
                    {
                        int current_index = 0;
                        int data_error = 0;
                
                        while(!data_error && current_index < info->length)
                        {
                            size_t data_len = info->data[current_index];
                    
                            if(data_len + 1 > info->length)
                            {
                                printf("EIR data length is longer than EIR packet length. %d + 1 > %d", (int)data_len, info->length);
                                data_error = 1;
                            }
                            else
                            {
                                process_data(info->data + current_index + 1, data_len, info);
                                current_index += data_len + 1;
                            }
                        }
                    }
                    else
                        printf("info->length == 0 !\n");                        
                }
                else
                    printf("EVT_LE = 0x%02X\n", meta->subevent);
                
                //handle = connecter(sock, btAddress);
                
                //deconnecter(sock, handle);
                
                encore = 0;    
                break;
            default:
                break;
        }
    } 
    while (encore);

    retval = hci_le_set_scan_enable(sock, 0 /* 1 - turn on, 0 - turn off */, 0 /* 0-filtering disabled, 1-filter out duplicates */, 1000  /* timeout */);
    if (retval < 0)
    {
        perror("hci_le_set_scan_enable"); //return 1;
    }
    close (sock);
    
    return 0;
}

void process_data(uint8_t *data, size_t data_len, le_advertising_info *info)
{
    printf("process_data: %d octets\n", (int)data_len);
    if(data[0] == EIR_NAME_SHORT || data[0] == EIR_NAME_COMPLETE)
    {
        size_t name_len = data_len - 1;
        char *name = malloc(name_len + 1);
        memset(name, 0, name_len + 1);
        memcpy(name, &data[2], name_len);
        
        char addr[18];
        ba2str(&info->bdaddr, addr);
        
        printf("addr=%s name=%s\n", addr, name);
        
        free(name);
    }
    else if(data[0] == EIR_FLAGS)
    {
        printf("-> Flag type: len=%d\n", (int)data_len);
        int i;
        for(i=1; i<data_len; i++)
        {
          printf("\tFlag data: 0x%02X\n", data[i]); // 0x06 -> 0000 0110
        }
        /*
         bit 0 LE Limited Discoverable Mode
         bit 1 LE General Discoverable Mode
         bit 2 BR/EDR Supported
         bit 3 Simultaneous LE and BR/EDR to Same Device Capable (controller)
         bit 4 Simultaneous LE and BR/EDR to Same Device Capable (Host)
        */
    }
    else if(data[0] == EIR_MANUFACTURE_SPECIFIC)
    {
        printf("-> Manufacture specific type: len=%d\n", (int)data_len);
        
        // https://www.bluetooth.org/en-us/specification/assigned-numbers/company-identifiers
        // TODO int company_id = data[current_index + 2] 
        
        int i;
        for(i=1; i<data_len; i++)
        {
          printf("\tData: 0x%02X\n", data[i]);
        }
    }
    else if(data[0] == EIR_UUID128_SOME)
    {
        printf("-> UUID 128 type: len=%d\n", (int)data_len);
        printf("\t");
        int i;
        for(i=data_len-1; i>0; i--)
        {
          printf("%02x", data[i]);
        }
        printf("\n");
    }
    else
    {
        printf("-> Unknown type: type=0x%02X\n", data[0]);        
    }
}

int connecter(int sock, char dest[18])
{    
    struct hci_dev_info di;
    uint16_t handle;
    char addr[18];
    bdaddr_t bdaddr;    
    uint16_t interval, latency, max_ce_length, max_interval, min_ce_length;
	uint16_t min_interval, supervision_timeout, window;
	uint8_t initiator_filter, own_bdaddr_type, peer_bdaddr_type;
    int retval;
    char name[248];
    
    if (hci_devinfo(0, &di) < 0) 
    {
        perror("hci_devinfo");    
    }    
    ba2str(&di.bdaddr, addr);
    printf("Device  : %s [%s]\n", di.name, addr);        
    
    str2ba(dest, &bdaddr);
    
    interval = htobs(0x0004);
	window = htobs(0x0004);
    //initiator_filter = 0x01; /* Use white list */
    //peer_bdaddr_type = LE_RANDOM_ADDRESS;
	own_bdaddr_type = 0x00;
	min_interval = htobs(0x000F);
	max_interval = htobs(0x000F);
	latency = htobs(0x0000);
	supervision_timeout = htobs(0x0C80);
	min_ce_length = htobs(0x0001);
	max_ce_length = htobs(0x0001);
	retval = hci_le_create_conn(sock, interval, window, initiator_filter,
			peer_bdaddr_type, bdaddr, own_bdaddr_type, min_interval,
			max_interval, latency, supervision_timeout,
			min_ce_length, max_ce_length, &handle, 25000);
    if (retval < 0) 
    {
        perror("hci_le_create_conn");
        // TODO close(sock);
        return -1;
    }    
    printf("Handle : %d\n", handle);    
    
    /*if (hci_read_remote_name(sock, &bdaddr, sizeof(name), name, 25000) == 0)
		printf("Name : %s\n", name);*/
    
    //sleep(1);
    
    return handle;
}

void deconnecter(int sock, uint16_t handle)
{
    hci_disconnect(sock, handle, HCI_OE_USER_ENDED_CONNECTION, 10000);
}

只能搜索到一个:

# chmod +x /usr/bin/test4 && /usr/bin/test4
# 0x04 0x3E 0x22 0x02 0x01 0x00 0x01 0x4B 0x9D 0xE5 0x78 0x50 0xED 0x16 0x02 0x01 0x06 0x12 0x09 0x44 0x59 0x43 0x4F 0x4D 0x45 0x44 0x35 0x30 0x37 0x38 0x45 0x35 0x39 0x44 0x34 0x42 0xA5 (37)

EVT_LE_ADVERTISING_REPORT (0x02)
* ED:50:78:E5:9D:4B (random) [ 0x02 0x01 0x06 0x12 0x09 0x44 0x59 0x43 0x4F 0x4D 0x45 0x44 0x35 0x30 0x37 0x38 0x45 0x35 0x39 0x44 0x34 0x42 ] rssi = -91 dBm
process_data: 2 octets
-> Flag type: len=2
        Flag data: 0x06
process_data: 18 octets
addr=ED:50:78:E5:9D:4B name=YCOMED5078E59D4B▒
#
#
#
# chmod +x /usr/bin/test4 && /usr/bin/test4
# 0x04 0x3E 0x22 0x02 0x01 0x00 0x01 0xF1 0x49 0xDF 0xB0 0x2C 0xC7 0x16 0x02 0x01 0x06 0x12 0x09 0x44 0x59 0x43 0x4F 0x4D 0x43 0x37 0x32 0x43 0x42 0x30 0x44 0x46 0x34 0x39 0x46 0x31 0xAA (37)

EVT_LE_ADVERTISING_REPORT (0x02)
* C7:2C:B0:DF:49:F1 (random) [ 0x02 0x01 0x06 0x12 0x09 0x44 0x59 0x43 0x4F 0x4D 0x43 0x37 0x32 0x43 0x42 0x30 0x44 0x46 0x34 0x39 0x46 0x31 ] rssi = -86 dBm
process_data: 2 octets
-> Flag type: len=2
        Flag data: 0x06
process_data: 18 octets
addr=C7:2C:B0:DF:49:F1 name=YCOMC72CB0DF49F1▒
#
#
#
#
#
# chmod +x /usr/bin/test4 && /usr/bin/test4
# 0x04 0x3E 0x22 0x02 0x01 0x00 0x01 0x8E 0xD0 0xD0 0x82 0xE5 0xCC 0x16 0x02 0x01 0x06 0x12 0x09 0x44 0x59 0x43 0x4F 0x4D 0x43 0x43 0x45 0x35 0x38 0x32 0x44 0x30 0x44 0x30 0x38 0x45 0xB8 (37)

EVT_LE_ADVERTISING_REPORT (0x02)
* CC:E5:82:D0:D0:8E (random) [ 0x02 0x01 0x06 0x12 0x09 0x44 0x59 0x43 0x4F 0x4D 0x43 0x43 0x45 0x35 0x38 0x32 0x44 0x30 0x44 0x30 0x38 0x45 ] rssi = -72 dBm
process_data: 2 octets
-> Flag type: len=2
        Flag data: 0x06
process_data: 18 octets
addr=CC:E5:82:D0:D0:8E name=YCOMCCE582D0D08E▒

#74 VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » ubuntu18.04 ~ ubuntu22.04 开机不能执行 rc.local 脚本的问题解决方案 » 2023-12-17 21:11:18

memory
回复: 3

ubuntu14.04 编辑/etc/rc.local 可以执行开机脚本,

但是后面的版本不行了,

得用下面的办法修复:


https://zhuanlan.zhihu.com/p/364133732

#75 Re: 全志 SOC » V3s 执行 iperf3 满负荷测试两小时挂了 » 2023-12-13 17:25:43

29bcd61eb6f3602181ae930c85a3864.png

[  5] 57078.13-57079.02 sec  7.50 MBytes  71.0 Mbits/sec    0    231 KBytes
[  5] 57079.02-57080.05 sec  8.75 MBytes  71.4 Mbits/sec    0    231 KBytes
[57179.206859] Unable to handle kernel NULL pointer dereference at virtual address 0000005a
[57179.215875] pgd = c25d8000
[57179.218873] [0000005a] *pgd=4269e835, *pte=00000000, *ppte=00000000
[57179.225847] Internal error: Oops: 801 [#1] PREEMPT ARM
[57179.231546] Modules linked in:
[57179.234942] CPU: 0 PID: 800 Comm: iperf3 Tainted: G    B           4.9.118 #162
[57179.243045] Hardware name: sun8iw8
[57179.246814] task: c24fb840 task.stack: c24e2000
[57179.251855] PC is at gic_handle_irq+0x40/0x64
[57179.256685] LR is at __irq_svc+0x6c/0xa8
[57179.261033] pc : [<c0101490>]    lr : [<c010b00c>]    psr: 80000193
[57179.261033] sp : c24e3c58  ip : c0111a64  fp : c3467158
[57179.273765] r10: 00000040  r9 : c24e2000  r8 : c0a03cb0
[57179.279557] r7 : c24e3c70  r6 : f1c83000  r5 : c0a03350  r4 : f1c82000
[57179.286794] r3 : c24e3c70  r2 : 00000001  r1 : 00000072  r0 : c340e340
[57179.294035] Flags: Nzcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment none
[57179.302043] Control: 10c5387d  Table: 425d8059  DAC: 00000051
[57179.308413]
[57179.308413] PC: 0xc0101410:
[57179.313143] 1410  e5943000 e5933010 f57ff04f e3130001 08bd8070 e1a03005 e3a02001 e5940004
[57179.322243] 1430  eb01192e e5943000 e5931000 f57ff04f e1b01121 1afffff6 e8bd8070 c0b5db90
[57179.331342] 1450  e59f3058 e92d41f0 e1a07000 e593408c e1a05003 e2846a01 e594300c e7e91053
[57179.340440] 1470  e2412010 e3520ffb 2a000006 ea000000 e5843010 e1a03007 e3a02001 e59506a4
[57179.349537] 1490  e9011916 eafffff3 e351000f 88bd81f0 e5843010 eaffffef e5863000 eaffffed
[57179.358635] 14b0  c0a03350 00000000 e92d4ff0 e24dd024 e59f41cc e59f51cc e59f71cc e5943000
[57179.367733] 14d0  e2833001 e58d3014 e1a0300d e0033005 e593300c e593200c e58d200c e3c22b02
[57179.376830] 14f0  e583200c eb084d78 e7976300 e3a00c01 eb00cab6 e3a0300a e58d3010 e1a0300d
[57179.385930]
[57179.385930] LR: 0xc010af
[57180.590468] 3fe0: bef89c10 bef89c00 b6eea130 b6ee9600 60000010 00000005 43bfc861 43bfcc61
[57180.599556] [<c0101490>] (gic_handle_irq) from [<c010b00c>] (__irq_svc+0x6c/0xa8)
[57180.607854] Exception stack(0xc24e3c70 to 0xc24e3cb8)
[57180.613454] 3c60:                                     00000001 00000008 60000113 00000111
[57180.622525] 3c80: c0a3bf00 c24e3cc8 00000001 c24e3cd0 c0a03cb0 0000012b 00000040 c3467158
[57180.631595] 3ca0: c0111a64 c24e3cc0 c03eb310 c04e62a8 20000113 ffffffff
[57180.638946] [<c010b00c>] (__irq_svc) from [<c04e62a8>] (net_rx_action+0x128/0x270)
[57180.647347] [<c04e62a8>] (net_rx_action) from [<c0101650>] (__do_softirq+0x198/0x208)
[57180.656042] [<c0101650>] (__do_softirq) from [<c0119560>] (irq_exit+0x90/0xf4)
[57180.664067] [<c0119560>] (irq_exit) from [<c0147978>] (__handle_domain_irq+0x88/0xcc)
[57180.672755] [<c0147978>] (__handle_domain_irq) from [<c0101494>] (gic_handle_irq+0x44/0x64)
[57180.682022] [<c0101494>] (gic_handle_irq) from [<c010b00c>] (__irq_svc+0x6c/0xa8)
[57180.690318] Exception stack(0xc24e3d88 to 0xc24e3dd0)
[57180.695920] 3d80:                   c27e3ca0 b6bda904 00003c70 71f8bfea f8b0315b 67dee951
[57180.704991] 3da0: 38b87ef5 d0533330 39a482bf c24e3f08 00000051 00017c50 59b8e5d8 c24e3ddc
[57180.714060] 3dc0: 1331556d c02f8e1c 20000013 ffffffff
[57180.719671] [<c010b00c>] (__irq_svc) from [<c02f8e1c>] (arm_copy_from_user+0x60/0x3a4)
[57180.728464] [<c02f8e1c>] (arm_copy_from_user) from [<c030b130>] (copy_from_iter+0x27c/0x338)
[57180.737831] [<c030b130>] (copy_from_iter) from [<c05283b0>] (tcp_sendmsg+0x968/0xb1c)
[57180.746526] [<c05283b0>] (tcp_sendmsg) from [<c04cec2c>] (sock_sendmsg+0x14/0x24)
[57180.754830] [<c04cec2c>] (sock_sendmsg) from [<c04cecc0>] (sock_write_iter+0x84/0xac)
[57180.763524] [<c04cecc0>] (sock_write_iter) from [<c01dc9bc>] (__vfs_write+0xe0/0x108)
[57180.772213] [<c01dc9bc>] (__vfs_write) from [<c01dd64c>] (vfs_write+0xb8/0x18c)
[57180.780321] [<c01dd64c>] (vfs_write) from [<c01de490>] (SyS_write+0x3c/0x74)
[

我的也挂了?

#76 Re: 全志 SOC » V3S RTC problem » 2023-12-12 17:02:38

找了半天,原来是 linux3.4里面的 rtc-sunxi.c 驱动,居然硬件上面还有 2033年千年虫,额滴神


/*
     * Sorry, sunxi hardware max time is 2033 year.
     */
    if( rtc_valid_tm(tm) || (tm->tm_year + 1900) > 2033) {
        dev_err(dev, "Alarm time is invalid, tm->tm_year:%d\n", tm->tm_year);
        if ((tm->tm_year + 1900) > 2033) {
            printk(KERN_WARNING "The process is \"%s\" (pid %i)\n", current->comm, current->pid);
            tm->tm_year = 132;
        }
    }

#77 Re: 全志 SOC » V3S RTC problem » 2023-12-12 13:23:50

RTC那个我改了半天驱动,也查了资料,估计是V3s的一个bug,开机后强制把晶振切到了24M分频出来的32000Hz。

现在我能想到的办法,每N秒钟把系统时间写入RTC

#82 全志 SOC » H133 使用触摸屏出错 evtest dev/input/event3 » 2023-12-04 10:03:33

memory
回复: 3
# evtest dev/input/event3
Input driver version is 1.0.1
Input device ID: bus 0x18 vendor 0xdead product 0xbeef version 0x28bb
Input device name: "gt9xxnew_ts"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 116 (KEY_POWER)
    Event code 227 (KEY_SWITCHVIDEOMODE)
    Event code 228 (KEY_KBDILLUMTOGGLE)
    Event code 229 (KEY_KBDILLUMDOWN)
    Event code 230 (KEY_KBDILLUMUP)
    Event code 231 (KEY_SEND)
    Event code 232 (KEY_REPLY)
    Event code 233 (KEY_FORWARDMAIL)
    Event code 234 (KEY_SAVE)
    Event code 330 (BTN_TOUCH)
  Event type 3 (EV_ABS)
    Event code 48 (ABS_MT_TOUCH_MAJOR)
      Value      0
      Min        0
      Max      255
    Event code 50 (ABS_MT_WIDTH_MAJOR)
      Value      0
      Min        0
      Max      255
    Event code 53 (ABS_MT_POSITION_X)
      Value      0
      Min        0
      Max      720
    Event code 54 (ABS_MT_POSITION_Y)
      Value      0
      Min        0
      Max     1440
    Event code 57 (ABS_MT_TRACKING_ID)
      Value      0
      Min        0
      Max      255
Properties:
  Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)
[   87.952114] i2c i2c2: Timeout when sending 9th SCL clk
[   87.957922] i2c i2c2: incomplete xfer, (status: 0x1, dev addr: 0x14)
[   87.965072] 0x02502a00: 01011001 00000001 00002900 0002000a
[   87.971516] 0x02502a10: 000080c0 00010004 000a0010 00000002
[   87.977945] i2c i2c2: Timeout when sending 9th SCL clk
[   87.983740] i2c i2c2: incomplete xfer, (status: 0x1, dev addr: 0x14)
[   87.990925] 0x02502a00: 01011001 00000001 00002900 0002000a
[   87.997316] 0x02502a10: 000080c0 00010004 000a0010 00000002
[   88.003697] i2c i2c2: Timeout when sending 9th SCL clk
[   88.009492] i2c i2c2: incomplete xfer, (status: 0x1, dev addr: 0x14)
[   88.016653] 0x02502a00: 01011001 00000001 00002900 0002000a
[   88.023009] 0x02502a10: 000080c0 00010004 000a0010 00000002
[   88.029399] i2c i2c2: Timeout when sending 9th SCL clk
[   88.035184] i2c i2c2: incomplete xfer, (status: 0x1, dev addr: 0x14)
[   88.042350] 0x02502a00: 01011001 00000001 00002900 0002000a
[   88.042360] 0x02502a10: 000080c0 00010004 000a0010 00000002
[   88.055103] i2c i2c2: Timeout when sending 9th SCL clk
[   88.060897] i2c i2c2: incomplete xfer, (status: 0x1, dev addr: 0x14)
[   88.068048] 0x02502a00: 01011001 00000001 00002900 0002000a
[   88.074402] 0x02502a10: 000080c0 00010004 000a0010 00000002
[   88.080777] <<-GTP-ERROR->> I2C Read: 0x814E, 10 bytes failed, errcode: -70! Process reset.
[   88.245298] <<-GTP-ERROR->> I2C transfer error. errno:-70
[   88.245298]
[   88.253196] i2c i2c2: Timeout when sending 9th SCL clk
[   88.259009] i2c i2c2: incomplete xfer, (status: 0x1, dev addr: 0x14)
[   88.266192] 0x02502a00: 01011001 00000001 00002900 0002000a
[   88.272554] 0x02502a10: 000080c0 00010004 000a0010 00000002
[   88.278961] i2c i2c2: Timeout when sending 9th SCL clk
[   88.284748] i2c i2c2: incomplete xfer, (status: 0x1, dev addr: 0x14)
[   88.291975] 0x02502a00: 01011001 00000001 00002900 0002000a
[   88.298368] 0x02502a10: 000080c0 00010004 000a0010 00000002
[   88.304750] i2c i2c2: Timeout when sending 9th SCL clk
[   88.310581] i2c i2c2: incomplete xfer, (status: 0x1, dev addr: 0x14)
[   88.317750] 0x02502a00: 01011001 00000001 00002900 0002000a
[   88.324111] 0x02502a10: 000080c0 00010004 000a0010 00000002
[   88.330521] i2c i2c2: Timeout when sending 9th SCL clk
[   88.336388] i2c i2c2: incomplete xfer, (status: 0x1, dev addr: 0x14)
[   88.343532] 0x02502a00: 01011001 00000001 00002900 0002000a
[   88.349940] 0x02502a10: 000080c0 00010004 000a0010 00000002
[   88.356342] i2c i2c2: Timeout when sending 9th SCL clk
[   88.362135] i2c i2c2: incomplete xfer, (status: 0x1, dev addr: 0x14)
[   88.369302] 0x02502a00: 01011001 00000001 00002900 0002000a
[   88.375676] 0x02502a10: 000080c0 00010004 000a0010 00000002
[   88.382041] <<-GTP-ERROR->> I2C Read: 0x814E, 10 bytes failed, errcode: -70! Process reset.
[   88.545285] <<-GTP-ERROR->> I2C transfer error. errno:-70
[   88.545285]
[   88.553190] i2c i2c2: Timeout when sending 9th SCL clk
[   88.559000] i2c i2c2: incomplete xfer, (status: 0x1, dev addr: 0x14)
[   88.566189] 0x02502a00: 01011001 00000001 00002900 0002000a
[   88.572544] 0x02502a10: 000080c0 00010004 000a0010 00000002
[   88.578949] i2c i2c2: Timeout when sending 9th SCL clk
[   88.584741] i2c i2c2: incomplete xfer, (status: 0x1, dev addr: 0x14)
[   88.591971] 0x02502a00: 01011001 00000001 00002900 0002000a
[   88.598391] 0x02502a10: 000080c0 00010004 000a0010 00000002
[   88.604781] i2c i2c2: Timeout when sending 9th SCL clk
[   88.610611] i2c i2c2: incomplete xfer, (status: 0x1, dev addr: 0x14)
[   88.617801] 0x02502a00: 01011001 00000001 00002900 0002000a
[   88.624162] 0x02502a10: 000080c0 00010004 000a0010 00000002
[   88.630595] i2c i2c2: Timeout when sending 9th SCL clk
[   88.636460] i2c i2c2: incomplete xfer, (status: 0x1, dev addr: 0x14)
[   88.643604] 0x02502a00: 01011001 00000001 00002900 0002000a
[   88.650022] 0x02502a10: 000080c0 00010004 000a0010 00000002
[   88.656433] i2c i2c2: Timeout when sending 9th SCL clk
[   88.662217] i2c i2c2: incomplete xfer, (status: 0x1, dev addr: 0x14)
[   88.669394] 0x02502a00: 01011001 00000001 00002900 0002000a
[   88.675769] 0x02502a10: 000080c0 00010004 000a0010 00000002
[   88.682143] <<-GTP-ERROR->> I2C Read: 0x814E, 10 bytes failed, errcode: -70! Process reset.
[   88.845296] <<-GTP-ERROR->> I2C transfer error. errno:-70
[   88.845296]

#83 Re: 全志 SOC » V3LP这自带的网卡,测试一整天,序列号都溢出了 » 2023-12-02 23:17:37

64 bytes from 120.233.202.79: seq=20587 ttl=54 time=12.676 ms
^C
--- www.163.com ping statistics ---
86124 packets transmitted, 86121 packets received, 0% packet loss
round-trip min/avg/max = 8.947/13.279/82.364 ms
#

#84 全志 SOC » V3LP这自带的网卡,测试一整天,序列号都溢出了 » 2023-12-02 20:01:05

memory
回复: 1

_20231202195923.jpg

64 bytes from 120.233.202.79: seq=65522 ttl=54 time=12.501 ms
64 bytes from 120.233.202.79: seq=65523 ttl=54 time=14.125 ms
64 bytes from 120.233.202.79: seq=65524 ttl=54 time=12.837 ms
64 bytes from 120.233.202.79: seq=65525 ttl=54 time=12.813 ms
64 bytes from 120.233.202.79: seq=65526 ttl=54 time=12.784 ms
64 bytes from 120.233.202.79: seq=65527 ttl=54 time=12.988 ms
64 bytes from 120.233.202.79: seq=65528 ttl=54 time=13.016 ms
64 bytes from 120.233.202.79: seq=65529 ttl=54 time=12.696 ms
64 bytes from 120.233.202.79: seq=65530 ttl=54 time=13.387 ms
64 bytes from 120.233.202.79: seq=65531 ttl=54 time=12.333 ms
64 bytes from 120.233.202.79: seq=65532 ttl=54 time=13.109 ms
64 bytes from 120.233.202.79: seq=65533 ttl=54 time=17.201 ms
64 bytes from 120.233.202.79: seq=65534 ttl=54 time=12.403 ms
64 bytes from 120.233.202.79: seq=65535 ttl=54 time=12.770 ms
64 bytes from 120.233.202.79: seq=0 ttl=54 time=12.616 ms
64 bytes from 120.233.202.79: seq=1 ttl=54 time=12.225 ms
64 bytes from 120.233.202.79: seq=2 ttl=54 time=12.201 ms
64 bytes from 120.233.202.79: seq=3 ttl=54 time=12.822 ms
64 bytes from 120.233.202.79: seq=4 ttl=54 time=12.751 ms
64 bytes from 120.233.202.79: seq=5 ttl=54 time=12.616 ms
64 bytes from 120.233.202.79: seq=6 ttl=54 time=12.328 ms
64 bytes from 120.233.202.79: seq=7 ttl=54 time=14.399 ms
64 bytes from 120.233.202.79: seq=8 ttl=54 time=15.679 ms
64 bytes from 120.233.202.79: seq=9 ttl=54 time=13.756 ms

#86 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » 嵌入式linux环境QT触摸屏切换问题 » 2023-11-09 11:02:41

这么玩:
export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS="/dev/input/event2:rotate=180,/dev/input/event3:rotate=90"
export QT_QPA_EVDEV_MOUSE_PARAMETERS="/dev/input/event4"

如果不需要旋转:
export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS="/dev/input/event2,/dev/input/event3"
export QT_QPA_EVDEV_MOUSE_PARAMETERS="/dev/input/event4"

#89 全志 SOC » 请问 gt911 的 _goodix_config_.cfg 是什么格式? » 2023-11-03 22:26:14

memory
回复: 1
[    3.729884] sunxi-mmc sdc0: smc 1 p0 err, cmd 8, RTO !!
[    3.735853] <<-GTP-FUNC->> Func:gtp_i2c_test@Line:2077
[    3.741620] <<-GTP-FUNC->> Func:gtp_i2c_read@Line:379
[    3.747493] sunxi_i2c_do_xfer()1968 - [i2c0] incomplete xfer (status: 0x20, dev addr: 0x14)
[    3.756879] sunxi-mmc sdc0: smc 1 p0 err, cmd 55, RTO !!
[    3.762921] sunxi-mmc sdc0: smc 1 p0 err, cmd 55, RTO !!
[    3.768916] sunxi-mmc sdc0: smc 1 p0 err, cmd 55, RTO !!
[    3.774926] sunxi-mmc sdc0: smc 1 p0 err, cmd 55, RTO !!
[    3.774958] sunxi-mmc sdc0: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B
[    3.791448] sunxi_i2c_do_xfer()1968 - [i2c0] incomplete xfer (status: 0x20, dev addr: 0x14)
[    3.800994] sunxi_i2c_do_xfer()1968 - [i2c0] incomplete xfer (status: 0x20, dev addr: 0x14)
[    3.810587] sunxi_i2c_do_xfer()1968 - [i2c0] incomplete xfer (status: 0x20, dev addr: 0x14)
[    3.820140] sunxi_i2c_do_xfer()1968 - [i2c0] incomplete xfer (status: 0x20, dev addr: 0x14)
[    3.829527] <<-GTP-ERROR->> I2C Read: 0x8047, 1 bytes failed, errcode: -70! Process reset.
[    3.838811] <<-GTP-FUNC->> Func:gtp_reset_guitar@Line:1377
[    3.844973] <<-GTP-INFO->> Guitar reset
[    3.994557] sunxi-mmc sdc0: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
[    4.004888] <<-GTP-ERROR->> GTP i2c test failed time 1.
[    4.033544] <<-GTP-FUNC->> Func:gtp_i2c_read@Line:379
[    4.039487] <<-GTP-FUNC->> Func:gtp_read_version@Line:2038
[    4.045655] <<-GTP-FUNC->> Func:gtp_i2c_read@Line:379
[    4.051727] <<-GTP-INFO->> IC Version: 911_1060
[    4.056870] <<-GTP-FUNC->> Func:gtp_i2c_read@Line:379
[    4.069164] <<-GTP-INFO->> X_MAX: 854, Y_MAX: 480, TRIGGER: 0x01
[    4.103586] <<-GTP-INFO->> create proc entry gt9xx_config success
[    4.110423] <<-GTP-INFO->> Ready to run update thread.
[    4.116303] <<-GTP-FUNC->> Func:gtp_request_input_dev@Line:2138
[    4.123378] <<-GTP-DEBUG->> [2268][update_proc]Begin update ......
[    4.130469] input: gt9xxnew_ts as /devices/virtual/input/input1
[    4.130880] <<-GTP-FUNC->> Func:gtp_irq_disable@Line:586
[    4.130889] <<-GTP-INFO->> GTP works in interrupt mode.
[    4.130893] <<-GTP-FUNC->> Func:gtp_irq_enable@Line:612
[    4.130904] <<-GTP-INFO->> Applied memory size:2562.
[    4.130909] <<-GTP-INFO->> I2C function: without pre and end cmd!
[    4.130923] <<-GTP-INFO->> Create proc entry success!
[    4.131576] sunxi-rtc rtc: setting system clock to 1970-01-01 08:37:07 UTC (31027)
[    4.132477] clk: Not disabling unused clocks
[    4.132490] usb-vbus: disabling
[    4.132494] ALSA device list:
[    4.132498]   #0: audiocodec
[    4.132500]   #1: snddaudio0
[    4.145405] <<-GTP-FUNC->> Func:goodix_ts_irq_handler@Line:1339
[    4.145409] <<-GTP-FUNC->> Func:gtp_irq_disable@Line:586
[    4.145448] <<-GTP-FUNC->> Func:goodix_ts_work_func@Line:822
[    4.145452] <<-GTP-FUNC->> Func:gtp_i2c_read@Line:379
[    4.170092] <<-GTP-DEBUG->> [1150]pre_touch:00, finger:80.
[    4.170099] <<-GTP-FUNC->> Func:gtp_i2c_write@Line:449
[    4.176016] <<-GTP-FUNC->> Func:gtp_irq_enable@Line:612
[    4.176037] <<-GTP-FUNC->> Func:goodix_ts_irq_handler@Line:1339
[    4.176040] <<-GTP-FUNC->> Func:gtp_irq_disable@Line:586
[    4.176061] <<-GTP-FUNC->> Func:goodix_ts_work_func@Line:822
[    4.176064] <<-GTP-FUNC->> Func:gtp_i2c_read@Line:379
[    4.239515] <<-GTP-DEBUG->> [1150]pre_touch:00, finger:80.
[    4.239520] <<-GTP-FUNC->> Func:gtp_i2c_write@Line:449
[    4.258292] <<-GTP-FUNC->> Func:gtp_irq_enable@Line:612
[    4.258311] <<-GTP-FUNC->> Func:goodix_ts_irq_handler@Line:1339
[    4.258314] <<-GTP-FUNC->> Func:gtp_irq_disable@Line:586
[    4.258334] <<-GTP-FUNC->> Func:goodix_ts_work_func@Line:822
[    4.258337] <<-GTP-FUNC->> Func:gtp_i2c_read@Line:379
[    4.288334] sunxi-mmc sdc0: sdc set ios:clk 200000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[    4.307520] <<-GTP-DEBUG->> [1150]pre_touch:00, finger:80.
[    4.307526] <<-GTP-FUNC->> Func:gtp_i2c_write@Line:449
[    4.324150] sunxi-mmc sdc0: sdc set ios:clk 200000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[    4.325278] <<-GTP-FUNC->> Func:gtp_irq_enable@Line:612
[    4.325298] <<-GTP-FUNC->> Func:goodix_ts_irq_handler@Line:1339
[    4.325302] <<-GTP-FUNC->> Func:gtp_irq_disable@Line:586
[    4.325324] <<-GTP-FUNC->> Func:goodix_ts_work_func@Line:822
[    4.325328] <<-GTP-FUNC->> Func:gtp_i2c_read@Line:379
[    4.332662] sunxi-mmc sdc0: sdc set ios:clk 200000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[    4.333779] <<-GTP-FUNC->> Func:gtp_irq_enable@Line:612
[    4.333807] <<-GTP-FUNC->> Func:goodix_ts_irq_handler@Line:1339
[    4.333810] <<-GTP-FUNC->> Func:gtp_irq_disable@Line:586
[    4.333829] <<-GTP-FUNC->> Func:goodix_ts_work_func@Line:822
[    4.333832] <<-GTP-FUNC->> Func:gtp_i2c_read@Line:379
[    4.339729] sunxi-mmc sdc0: smc 1 p0 err, cmd 8, RTO !!
[    4.350516] sunxi-mmc sdc0: smc 1 p0 err, cmd 55, RTO !!
[    4.356448] sunxi-mmc sdc0: smc 1 p0 err, cmd 55, RTO !!
[    4.363155] sunxi-mmc sdc0: smc 1 p0 err, cmd 55, RTO !!
[    4.369166] sunxi-mmc sdc0: smc 1 p0 err, cmd 55, RTO !!
[    4.369200] sunxi-mmc sdc0: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B
[    4.369316] <<-GTP-FUNC->> Func:gtp_irq_enable@Line:612
[    4.469162] <<-GTP-DEBUG->> [797]Search for /data/_goodix_update_.bin, /sdcard/_goodix_update_.bin for fw update.(1/50)
[    4.481889] <<-GTP-DEBUG->> [834]Search for /data/_goodix_config_.cfg, /sdcard/_goodix_config_.cfg for config update.(1/50)

#90 Re: 全志 SOC » 问题求助 tina下播放音频 » 2023-10-30 13:41:14

我的也这样,不能生成声卡。

找到原因了,因为是F1C100s 只有 32M DDR,我把cma改成4M,就不能生成声卡,

改成6M就OK。

#91 Re: 全志 SOC » 问题求助 tina下播放音频 » 2023-10-29 19:12:51

[    0.917611] failed to get gpio-spk and gpio_num
[    0.922672] headphonevol:59,spkervol:27,maingain:4,pa_sleep_time:350
[    0.932470] sunxi-mmc sdc0: sdc set ios: clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
[    0.945327] sunxi-internal-codec 1c23c00.codec: ASoC: DAPM unknown pin HPOUTR
[    0.953276] sunxi-internal-codec 1c23c00.codec: ASoC: DAPM unknown pin HPOUTL
[    0.961321] sunxi-internal-codec 1c23c00.codec: ASoC: DAPM unknown pin SPKL
[    0.969110] sunxi-internal-codec 1c23c00.codec: ASoC: DAPM unknown pin SPKR
[    0.976878] sunxi-codec-machine sound.2: ASoC: DAPM unknown pin External Speaker
[    0.987336] sunxi-mmc sdc0: smc 0 p0 err, cmd 8, RTO !!
[    0.996246] sunxi-internal-cpudai 1c23c00.cpudai0-controller: ASoC: pcm constructor failed: -12
[    1.005994] sunxi-mmc sdc0: smc 0 p0 err, cmd 5, RTO !!
[    1.011837] sunxi-codec-machine sound.2: ASoC: can't create pcm SUNXI-CODEC :-12
[    1.020093] sunxi-codec-machine sound.2: ASoC: failed to instantiate card -12
[    1.028925] sunxi-mmc sdc0: smc 0 p0 err, cmd 5, RTO !!
[    1.035118] snd_soc_register_card failed -12
[    1.039907] sunxi-codec-machine: probe of sound.2 failed with error -12
[    1.048136] ipip: IPv4 over IPv4 tunneling driver

[    2.027019] ALSA device list:
[    2.030328]   No soundcards found.

我的也这样,不能生成声卡。

#92 Re: 全志 SOC » 为什么不用树莓派代替Nano Pi » 2023-10-29 17:24:56

leefei 说:

直接买一台pc,再雇个码农,节省的时间成本不是少多了嘛。搞开发,又不是受虐的。

哈哈哈,笑到断气。。。

#93 Re: 全志 SOC » 请问 eth0 和 wlan0 作为lan连接内网,且可以互通,eth1作为wan口接入互联网,这个用linux命令行怎么表达。 » 2023-10-11 15:31:30

ubuntu 说:

@memory
谢谢大佬,请问什么是网桥?

网桥(Bridge)是用于连接和转发数据的网络设备,常被用于连接两个或多个网络段,使它们看起来像一个网络。网桥在数据链路层(OSI模型的第二层)工作,允许两个网络节点(比如主机、路由器或者交换机)之间进行通信。

网桥根据MAC地址表进行转发决策,只有目标地址与该接口相同的数据帧才会被转发,从而减少了网络流量,并提高了网络的整体效率。网桥还可以防止数据帧在网络中形成环路,这对于避免广播风暴非常重要。

在物理设备中,网桥通常以独立的硬件形式存在。然而,在计算机网络中,你也可以创建软件网桥,这就是在Linux和其他操作系统中使用"网桥"的概念。例如,你可以将两个网络接口(如eth0和wlan0)添加到同一个软件网桥(如br0),从而让它们共享同一网络环境。

在虚拟化环境中,网桥也经常被用来将虚拟机连接到宿主机的网络中,让虚拟机能够像宿主机一样访问网络资源。

#94 Re: 全志 SOC » 请问 eth0 和 wlan0 作为lan连接内网,且可以互通,eth1作为wan口接入互联网,这个用linux命令行怎么表达。 » 2023-10-11 15:24:47

在Linux下,你可以使用brctl(桥接控制)工具创建一个网络桥并将eth0和wlan0添加到该网桥。以下是步骤:

安装bridge-utils包,这个包包含brctl工具:

sudo apt-get update
sudo apt-get install bridge-utils
创建一个新的桥接设备,比如叫做br0:

sudo brctl addbr br0
将eth0和wlan0添加到这个桥接设备:

sudo brctl addif br0 eth0
sudo brctl addif br0 wlan0
启动桥接设备:

sudo ifconfig br0 up
这样,eth0和wlan0就被加入到同一个桥接接口br0上了。

注意,一些无线网卡可能不支持桥接模式,所以并非所有硬件都能成功执行上述操作。而且,如果你想要让这个配置在重启后依然生效,你需要将它们添加到网络配置文件中,这个过程取决于你所使用的发行版和网络管理工具。

同样要注意的是,当你将接口添加到网桥时,这些接口的IP配置应该应用到网桥上,而原来的接口应该没有IP地址。你可以用dhclient br0命令为网桥获取IP地址,如果你的网络环境中有DHCP服务器的话。

#95 Re: 全志 SOC » 请问 eth0 和 wlan0 作为lan连接内网,且可以互通,eth1作为wan口接入互联网,这个用linux命令行怎么表达。 » 2023-10-11 15:21:14

是的,同一个dhcpd进程可以同时为多个网络接口(例如eth0和wlan0)分配IP地址。你需要在DHCP配置文件中(通常位于/etc/dhcp/dhcpd.conf)定义适当的子网并指定要分配的IP范围。

以下是一个简单的示例,其中eth0对应的是192.168.1.0/24网络,wlan0对应的是192.168.2.0/24网络:


subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.10 192.168.1.100;
    option routers 192.168.1.1;
    option domain-name-servers 8.8.8.8;
}

subnet 192.168.2.0 netmask 255.255.255.0 {
    range 192.168.2.10 192.168.2.100;
    option routers 192.168.2.1;
    option domain-name-servers 8.8.8.8;
}
在这个例子中,192.168.1.10到192.168.1.100的IP地址将被分配给通过eth0连接的设备,192.168.2.10到192.168.2.100的IP地址将被分配给通过wlan0连接的设备。

请注意,每个子网内的其他配置选项(如默认网关(routers)和DNS服务器(domain-name-servers))也会相应地根据你的实际网络环境进行设置。

然后,你需要确保dhcpd服务在启动时监听这两个接口。在DHCPD的命令行参数或者配置文件中指定它们。例如,如果你是通过命令行启动dhcpd,可能会使用类似于以下的命令:


dhcpd eth0 wlan0
这将会启动dhcpd,并让它监听eth0和wlan0这两个接口。

#96 Re: 全志 SOC » 请问 eth0 和 wlan0 作为lan连接内网,且可以互通,eth1作为wan口接入互联网,这个用linux命令行怎么表达。 » 2023-10-11 15:20:47

在Linux中,我们可以使用iptables命令来设置网络转发和NAT(网络地址转换)规则。以下是一种可能的配置方式:

首先,开启IPv4转发功能。你可以通过修改/etc/sysctl.conf文件或者直接使用sysctl命令来实现。这里我们使用sysctl命令:

sudo sysctl -w net.ipv4.ip_forward=1
使用iptables设置NAT规则。假设eth0和wlan0是你的内部网络(LAN),eth1是你的外部网络(WAN):


# 创建NAT规则,将从内网到外网的数据包源地址改为外网接口地址
sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

# 将内网接收到的目标地址为外网接口地址的数据包转发给外网
sudo iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth1 -j ACCEPT

# 允许已经建立的或相关的连接的数据包通过防火墙
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
注意:这些步骤只是一个基本示例,实际的网络配置可能会更加复杂,这取决于你的具体需求和网络环境。此外,你可能需要考虑安全性问题,并设置相应的防火墙规则。最后,你可能需要将这些命令添加到启动脚本中,以确保在重启后依然生效。

#101 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 编译windows 平台能用 ffmpeg sdk » 2023-08-23 08:35:31

方案②:


ubunt18.04 编译安装 win32/win64 ffmpeg sdk:



sudo apt-get install git mingw-w64* -y

git clone git clone https://gitee.com/mirrors/ffmpeg -b release/6.0

编译win32版本:
./configure --arch=x86 --target-os=mingw32 --prefix=/opt/ffmpeg_install/ --cross-prefix=i686-w64-mingw32-

编译win64版本:
./configure --arch=x86 --target-os=mingw64 --prefix=/opt/ffmpeg_install/ --cross-prefix=x86_64-w64-mingw32-

#103 Re: 全志 SOC » 做了5块板子,有一块板子用udhcpc获取ip地址总是不成功。 » 2023-08-22 17:26:32

@Gentlepig
board.dts 里面可以改一下 phy 的 tx 和 rx 参数,改大或者改小试一试。

#106 Re: 全志 SOC » t113-s3 qt5.12性能问题 » 2023-08-06 22:36:16

t113性能不错,基本上网络卡了

#107 Re: 全志 SOC » V3S ffmpeg拍照出错 内核 uboot没问题 » 2023-07-25 11:56:26

Xiaoci 说:

@ookk303
好的谢谢ChatGPT。爱来自openai。
(刚刚好准备起床去问ChatGPT,你就帮我问了)

你们是认真的吗,笑趴我了。

#109 Re: 全志 SOC » 嵌入式linux板,如果做产品的话,是不是就不该留调试接口? » 2023-07-11 09:45:35

marcus 说:

感觉不放心直接不要在serial port上开get-tty,在需要的时候通过特殊操作再重新打开就行。

请教用什么"特殊操作"?

#111 Re: 全志 SOC » 萌新发帖,自己的A33板子识别不上MMC » 2023-06-21 12:40:27

好像A33不支持所有的eMMC,因为brom有点bug,貌似spi检测flash影响了eMMC的复位引脚。

#115 Re: 全志 SOC » 全志A20 / A64 / A133 / D1 / T113-I/V83x /V85x Tina / Android 文档合集/集合,很全! » 2023-04-22 23:23:50

V85x资料

Linux_CCU_开发指南.pdf
Linux_CE开发指南.pdf
Linux_Display_开发指南.pdf
Linux_DMAC_开发指南.pdf
Linux_EMAC_开发指南.pdf
Linux_G2D_开发指南.pdf
Linux_GPADC_开发指南.pdf
Linux_GPIO_开发指南.pdf
Linux_ISP_开发指南.pdf
Linux_LCD_开发指南.pdf
Linux_MIPI_CSI_开发指南.pdf
Linux_MMC_开发指南.pdf
Linux_Nor_开发指南.pdf
Linux_PMIC_开发指南.pdf
Linux_PWM_开发指南.pdf
Linux_RTC_开发指南.pdf
Linux_SID_开发指南.pdf
Linux_SPINAND_UBI离线烧录_开发指南.pdf
Linux_SPI-NAND_开发指南.pdf
Linux_SPI_开发指南.pdf
Linux_Standby_开发指南.pdf
Linux_TWI_开发指南.pdf
Linux_UART_开发指南.pdf
Linux_U-Boot_开发指南.pdf
Linux_USB_开发指南.pdf
Linux_安全_开发指南.pdf
MPP_Sample_使用说明.pdf
Tina_Linux_Camera_开发指南.pdf
Tina_Linux_Display_开发指南.pdf
Tina Linux E907开发指南.pdf'
Tina_Linux_Key_快速配置_使用指南.pdf
Tina_Linux_LCD_调试指南.pdf
Tina_Linux_NPU_AI模型混合量化指导.pdf
Tina_Linux_NPU_Lenet模型之从训练到端侧部署.pdf
Tina_Linux_NPU_VIPLite_API说明(CN).pdf'
Tina_Linux_NPU_VIPLite_API说明(EN).pdf'
Tina_Linux_NPU_Yolact模型部署.pdf
Tina_Linux_NPU常见网络性能分析数据.pdf
Tina_Linux_NPU开发简介.pdf
Tina_Linux_NPU混合量化部署.pdf
Tina_Linux_NPU部署工具安装指导.pdf
Tina_Linux_OTA_开发指南.pdf
Tina_Linux_PMU_开发指南.pdf
Tina_Linux_syslog_使用指南.pdf
Tina_Linux_USB_开发指南.pdf
Tina_Linux_V85X_方案FAQ.pdf
Tina_Linux_WiFi_RF测试_使用指南.pdf
Tina_Linux_Wi-Fi_开发指南.pdf
Tina_Linux_内存优化_开发指南.pdf
Tina_Linux_功耗管理_开发指南.pdf
Tina_Linux_各平台多媒体格式_支持列表_new.pdf
Tina_Linux_启动优化_开发指南.pdf
Tina_Linux_图形系统_开发指南.pdf
Tina_Linux_多媒体MPP_开发指南.pdf
Tina_Linux_存储_开发指南.pdf
Tina_Linux_存储性能_参考指南.pdf
Tina_Linux_安全_开发指南.pdf
Tina_Linux_打包流程_说明指南_new.pdf
Tina_Linux_系统裁剪_开发指南.pdf
Tina_Linux_系统调试_使用指南.pdf
Tina_Linux_系统软件_开发指南.pdf
Tina_Linux_网络性能_参考指南.pdf
Tina_Linux_蓝牙_开发指南.pdf
Tina_Linux_蓝牙_模组移植指南.pdf
Tina_Linux_配网_开发指南.pdf
Tina_Linux_配置_开发指南.pdf
Tina_Linux_量产测试_使用指南_new.pdf
Tina_Linux_音频_开发指南.pdf
V85X_Tina_Linux_功耗性能_参考指南.pdf

V85x资料

#116 Re: 全志 SOC » R528-s3喇叭咔嗒声 » 2023-04-20 14:06:24

V3s linux 4.13 音频播放延迟了,开始以为是线程同步问题,纠结了很久 (问题由 @Andy1234 解决,欢迎大家验证)
https://whycan.com/t_1791.html#p11083



是这个吗?

#118 Re: 全志 SOC » 想在V3s上驱动墨水屏,并开启fb设备,发现从framebuffer中无法更新画面 » 2023-03-24 23:45:40

用一块缓冲区,应用程序更新缓冲区,有变更的时候再刷新墨水屏。

#119 Re: 全志 SOC » v3s使用st7789显示反色 » 2023-03-24 23:43:04

8.2.15. Display Inversion OFF (20h).............................................................................................. 105
8.2.16. Display Inversion ON (21h) ............................................................................................... 106

艾,我也是栽这里

#120 Re: 全志 SOC » 全志a20可不可以接8位并口的8080 CPU屏?如果可以的话接口怎么连接? » 2023-02-09 09:19:42

lichee/linux-5.4/drivers/video/fbdev/sunxi/disp2/disp/de/include.h

enum disp_lcd_cpu_if {
        LCD_CPU_IF_RGB666_18PIN = 0,
        LCD_CPU_IF_RGB666_9PIN = 10,
        LCD_CPU_IF_RGB666_6PIN = 12,
        LCD_CPU_IF_RGB565_16PIN = 8,
        LCD_CPU_IF_RGB565_8PIN = 14,
};

lcd_cpu_if=8   RGB565 16脚
lcd_cpu_if=14   RGB565 8脚

#121 Re: 全志 SOC » 请问物联网卡,就买几张,有合适的卡商推荐吗 » 2023-02-05 20:16:47

yobbo 说:

一直在用合宙那边的sim和esim,价格也还可以,关键是量少也发货,不会像某些厂家,量小不发货。

合宙好像把sim卡下架了?

#122 Re: 全志 SOC » 全志G2D用的是 FIMG2D(三星 ip) ? » 2023-01-28 10:34:24

sokou 说:

D1S这款芯片吗?

是的,全志所有支持G2D功能的芯片都是这个IP,包括D1S

#124 全志 SOC » 全志G2D用的是 FIMG2D(三星 ip) ? » 2023-01-25 23:41:06

memory
回复: 5

https://linux-sunxi.org/Used_IP_cores
Allwinner implementation used. Might have connection to Exynos G2D.


https://android.googlesource.com/kernel/common.git/+/e4404fab2e0b70287a471a1e760c9338ce683fde/Documentation/devicetree/bindings/drm/exynos/g2d.txt

Samsung 2D Graphic Accelerator using DRM frame work
Samsung FIMG2D is a graphics 2D accelerator which supports Bit Block Transfer.
We set the drawing-context registers for configuring rendering parameters and
then start rendering.
This driver is for SOCs which contain G2D IPs with version 4.1.
Required properties:
    -compatible:
        should be "samsung,exynos-g2d-41".
    -reg:
        physical base address of the controller and length
        of memory mapped region.
    -interrupts:
        interrupt combiner values.
Example:
    g2d {
        compatible = "samsung,exynos-g2d-41";
        reg = <0x10850000 0x1000>;
        interrupts = <0 91 0>;
    };

#127 Re: 全志 SOC » 打开"DMA Contiguous Memory Allocator",触摸驱动外部中断申请就失败!这是什么神仙关系? » 2022-10-25 16:52:33

[    3.329176] input: sunxi-keyboard as /devices/virtual/input/input0
[    3.341828] Goodix-TS 0-005d: ID 911, version: 1060
[    3.351640] random: fast init done
[    3.361495] input: Goodix Capacitive TouchScreen as /devices/platform/soc/twi0/i2c-0/0-005d/input/input1
[    3.374963] Goodix-TS 0-005d: request IRQ failed: -22
[    3.412322] Goodix-TS: probe of 0-005d failed with error -22
[    3.421763] i2c /dev entries driver
[    3.431286] usbcore: registered new interface driver uvcvideo

同一个坑

#128 Re: 全志 SOC » 有同学在调试全志Allwinner V3s的ALSA吗?昨天播放搞定了,录音还没搞定,据说录音需要配置下,不知道该怎么搞 » 2022-10-24 09:13:06

bugfix 说:

设置寄存器:
#tinymix set 11 1

录音:
arecord -D hw:0,0 -d 6 -f S16_LE -r 8000 tmp.wav

播放:
aplay -D hw:0,0  tmp.wav

底噪很大,可以录到一点点声音, 基本不能用,不知道是软件问题还是硬件问题, 求大神解答!

# tinymix contents
Number of controls: 13
ctl     type    num     name                                    value
0       INT     1       DAC Playback Volume                     63 (range 0->63)
1       INT     1       Headphone Playback Volume               0 (range 0->63)
2       BOOL    2       Headphone Playback Switch               Off, Off
3       INT     1       Mic1 Playback Volume                    3 (range 0->7)
4       INT     1       Mic1 Boost Volume                       4 (range 0->7)
5       INT     1       ADC Gain Capture Volume                 3 (range 0->7)
6       BOOL    2       DAC Playback Switch                     Off, Off
7       BOOL    2       DAC Reversed Playback Switch            Off, Off
8       BOOL    2       Mic1 Playback Switch                    Off, Off
9       BOOL    2       Mixer Capture Switch                    Off, Off
10      BOOL    2       Mixer Reversed Capture Switch           Off, Off
11      BOOL    2       Mic1 Capture Switch                     Off, Off
12      ENUM    2       Headphone Source Playback Route         , DACMixer, , DACMixer
# tinymix set 11 1
#
#
# arecord -D hw:0,0 -d 6 -f S16_LE -r 8000 tmp.wav
Recording WAVE 'tmp.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono
arecord: pcm_read:2151: read error: Input/output error
#
#
# ls -l tmp.wav
-rw-r--r--    1 root     root            44 Oct 24 09:11 tmp.wav
#

linux5.4 录不了,录音出错。

#129 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 辣鸡向日葵,花了9元买了一个月的会员,却什么都干不了。我现在自己动手,用FRP这个优秀的开源软件把内网穿透搭起来了 » 2022-09-19 11:00:44

XIVN1987 说:

frp 服务器端需要运行在一个有公网 IP 的电脑上吧。。

推荐 StarryFrp,,StarryFrp 提供免费的 Frp 服务端,,最多可免费创建 10 条隧道

这个不错了,收藏。

#130 Re: 全志 SOC » 使用tinymix 播放音乐遇到问题 » 2022-09-11 23:49:34

root@dragonboard:~# tinymix
Mixer name: 'sun50iw10-codec'
Number of controls: 17
ctl     type    num     name                                     value
0       ENUM    1       codec hub mode                           hub_disable
1       ENUM    1       DAC Swap                                 Off
2       ENUM    1       ADC Swap                                 Off
3       INT     1       digital volume                           63
4       INT     1       MIC1 gain volume                         31
5       INT     1       MIC2 gain volume                         31
6       INT     1       LINEOUT volume                           26
7       INT     2       DAC volume                               0 0
8       INT     2       ADC volume                               160 160
9       INT     1       headphone gain                           7
10      BOOL    1       audiocodec rx_sync switch                Off
11      ENUM    1       LINEOUT Output Select                    DAC_DIFFER
12      BOOL    1       ADCL Input MIC1 Boost Switch             Off
13      BOOL    1       ADCR Input MIC2 Boost Switch             Off
14      BOOL    1       Headphone Switch                         Off
15      BOOL    1       HpSpeaker Switch                         Off
16      BOOL    1       LINEOUT Switch                           Off
root@dragonboard:~#
root@dragonboard:~#
root@dragonboard:~# tinymix set 14 on
Invalid mixer control
root@dragonboard:~#
root@dragonboard:~#

#132 Re: 上海航芯 » Linux开发环境下试玩ACM32F403RET7开发板 » 2022-07-02 22:03:27

楼主优秀啊, 都像你这样, MDK还能收到版权费吗?

#140 Re: 全志 SOC » 全志A20 / A64 / A133 / D1 / T113-I/V83x /V85x Tina / Android 文档合集/集合,很全! » 2022-05-11 19:04:35

Allwinner_V833_eMMC_Flash_Support_List_v1.2.pdf
Allwinner_V833_SDRAM_Support_List_V1.14.pdf
Allwinner_V833_V831_RAW_Sensor_Support_List_V1.02.pdf
Allwinner_V833_V831_SPI_NAND_Flash_Support_List_v1.01.pdf
Allwinner_V833_V831_SPI_NOR_Flash_Support_List_V1.2.pdf
AW_V833_Melis_RTOS_User_Manual_BSP_EISE_CN.pdf
AXP2101_datasheet_linearcharger_V0.2.pdf
Linux_Audio_Development_Guide.pdf
Linux_CCU_Development_Guide.pdf
Linux_Display_Development_Guide.pdf
Linux_DMAC_Development_Guide.pdf
Linux_DSPO_Development_Guide.pdf
Linux_G2D_Development_Guide.pdf
Linux_GPADC_Development_Guide.pdf
Linux_GPIO_Development_Guide.pdf
Linux_GPU_Development_Guide.pdf
Linux_IR_Development_Guide.pdf
Linux_LRADC_Development_Guide.pdf
Linux_PMIC_Development_Guide.pdf
Linux_RTC_Development_Guide.pdf
Linux_SID_Development_Guide.pdf
Linux_SPI_Development_Guide.pdf
Linux_Standby_Development_Guide.pdf
Linux_TWI_Development_Guide.pdf
Linux_UART_Development_Guide.pdf
Linux_U-Boot_Development_Guide.pdf
Linux_USB_Development_Guide.pdf
Longan_Linux_Development_Guide.pdf
Melis_RTOS_Audio_Development_Guide.pdf
Melis_RTOS_Debug_Guide.pdf
Melis_RTOS_MPP_Development_Guide.pdf
Melis_RTOS_OTA_Development_Guide.pdf
Melis_RTOS_Storage_Development_Guide.pdf
Melis_RTOS_System_Development_Guide.pdf
Melis_RTOS_Wi-Fi_Development_Guide.pdf
RTOS_Audio_Development_Guide.pdf
RTOS_CE_Development_Guide.pdf
RTOS_CSI_Development_Guide.pdf
RTOS_Display_Development_Guide.pdf
RTOS_DMAC_Development_Guide.pdf
RTOS_G2D_Development_Guide.pdf
RTOS_GPADC_Development_Guide.pdf
RTOS_GPIO_Development_Guide.pdf
RTOS_ISP_Development_Guide.pdf
RTOS_LEDC_Development_Guide.pdf
RTOS_LRADC_Development_Guide.pdf
RTOS_NG_CCU_Development_Guide.pdf
RTOS_PMIC_Development_Guide.pdf
RTOS_PWM_Development_Guide.pdf
RTOS_RTC_Development_Guide.pdf
RTOS_SMHC_Development_Guide.pdf
RTOS_SPI_Development_Guide.pdf
RTOS_SPINOR_Development_Guide.pdf
RTOS_TWI_Development_Guide.pdf
RTOS_UART_Development_Guide.pdf
RTOS_USB_Development_Guide.pdf
Tina_Linux_Audio_Development_Guide.pdf
Tina_Linux_AVS_User_Guide.pdf
Tina_Linux_Bluetooth_Development_Guide.pdf
Tina_Linux_Booting_Optimization_Development_Guide.pdf
Tina_Linux_Camera_Development_Guide.pdf
Tina_Linux_Debug_System_User_Guide.pdf
Tina_Linux_Display_Development_Guide.pdf
Tina_Linux_Gstreamer_User_Guide.pdf
Tina_Linux_GUI_Development_Guide.pdf
Tina_Linux_Image_Packing_Process_Help_Guide.pdf
Tina_Linux_IR_Development_Guide.pdf
Tina_Linux_LCD_Development_Guide.pdf
Tina_Linux_LEDC_Development_Guide.pdf
Tina_Linux_Mass_Production_Factory_Test_User_Guide.pdf
Tina_Linux_Memory_Development_Guide.pdf
Tina_Linux_Multi_Media_Decoding_Development_Guide.pdf
Tina_Linux_Multi_Media_Encoding_Development_Guide.pdf
Tina_Linux_Mult_Media_Format_Support_List.pdf
Tina_Linux_Network_Development_Guide.pdf
Tina_Linux_Power_Management_Development_Guide.pdf
Tina_Linux_PWM_Development_Guide (1).pdf
Tina_Linux_PWM_Development_Guide.pdf
Tina_Linux_SDK_Customization_Development_Guide.pdf
Tina_Linux_Secure_Development_Guide.pdf
Tina_Linux_Software_Development_Guide.pdf
Tina_Linux_SPI_LCD_Development_Guide.pdf
Tina_Linux_Storage_Development_Guide.pdf
Tina_Linux_Syslog_User_Guide.pdf
Tina_Linux_System_Configuration_Development_Guide.pdf
Tina_Linux_Temperature_Control_User_Guide.pdf
Tina_Linux_Tinatest_User_Guide.pdf
Tina_Linux_Wi-Fi_Development_Guide.pdf
Tina_Linux_WiFi_RF_Testcase_User_Guide.pdf
V831_V833_Datasheet_V1.1.pdf
v833_Lindenis_SBC_V2_0_Schematic.pdf

#141 Re: 全志 SOC » 发一个 荔枝派zero 能跑的 camdroid 固件, ov5647摄像头, 视频效果相当暗,很难看清楚. » 2022-05-05 10:08:21

发现 camdroid 烧到 R11 上面就酱紫了:

HELLO! BOOT0 is starting!
get_ifm reg_val=2
get_ifm warning ...

#143 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 是时候告别CSDN了! » 2022-05-02 17:58:31

https://zhuanlan.zhihu.com/p/269122272

看了一下下面的跟贴,一言难尽:

等待个蛋蛋,又是一个被KPI搞死的公司,还有什么好说的。进你网站的人一定是翻了好几倍,但每个人都对你们充满仇恨!反正KPI达标了,钱赚到手了,公司垮了和个人有什么关系呢?

真的是垃圾,标题和图片明明显示的是我想找的东西,等我点进去一堆联系,我想找的东西毛都没有,可给我恶心坏我了,我还以为是我点错了,结果点好几次都是这样,然后专门百度搜“CSDN就是个垃圾”就看到你这个,我估计好多人都是这么搜过来哈哈哈哈哈,CSDN吃枣药丸,以后我再去百度搜这种精神垃圾,我就是狗!!!!

....

#146 Re: 全志 SOC » 终于找到了全志SPI CS片选最多的soc了, 一共四个片选引脚 » 2022-03-29 17:53:54

/* sunxi_spi_set_cs : spi control set cs to connect device
 * enable : 1, working mode : set ss to connect device
 * enable : 0, default mode : set ss to do not connect device
 *
 * spi controller cs mode use this funtion to set cs
 * software cs mode use kernel code to set cs
 * */
static void sunxi_spi_set_cs(struct spi_device *spi, bool enable)
{
        u32 reg_val;
        struct sunxi_spi *sspi = spi_master_get_devdata(spi->master);

        sunxi_spi_ss_select(spi->chip_select, sspi->base_addr);

        reg_val = readl(sspi->base_addr + SPI_TC_REG);
        enable &= 0x01;
        if (enable)     //set cs to connect device
                reg_val |= SPI_TC_SS_LEVEL;
        else            //set cs to default mode
                reg_val &= ~SPI_TC_SS_LEVEL;
        writel(reg_val, sspi->base_addr + SPI_TC_REG);
}

果然是啊, 从D1 SDK 翻到的 lichee/linux-5.4/drivers/spi/spi-sunxi.c

#147 Re: 全志 SOC » D1哪吒开发板使用 RTL8723DS 作为WIFI中继 (转) » 2022-03-22 07:13:34

1。驱动RTL8723DS之后, ifconfig -a 命令出现两个设备:

root@TinaLinux:/# ifconfig -a

wlan0     Link encap:Ethernet  HWaddr 00:E0:4C:A7:D1:3A
          inet addr:192.168.3.119  Bcast:192.168.3.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:179282 errors:0 dropped:206 overruns:0 frame:0
          TX packets:87704 errors:0 dropped:1 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:195274967 (186.2 MiB)  TX bytes:15296595 (14.5 MiB)

wlan1     Link encap:Ethernet  HWaddr 02:E0:4C:A7:D1:3A
          inet addr:192.168.10.1  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::e0:4cff:fea7:d13a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:93844 errors:0 dropped:0 overruns:0 frame:0
          TX packets:157945 errors:0 dropped:1551 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:15869708 (15.1 MiB)  TX bytes:189752370 (180.9 MiB)

我们现在用 wlan0 作为sta,用wlan1作为soft ap,两个组合起来,作为家里wifi路由器的中继。

2。wlan0 连接路由器:

wifi_connect_ap_test memory 13800138000

3。设置wlan1 地址:

ifconfig wlan1 192.168.10.1 netmask 255.255.255.0 up

4。给wlan1开启dhcp服务器:

mkdir /var/lib/misc/ -p
touch /var/lib/misc/dnsmasq.leases
dnsmasq -i wlan1 --dhcp-range=192.168.10.100,192.168.10.109,2h

5。设置转发:

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

6。设置***/etc/hostapd.conf***:

interface=wlan1
driver=nl80211
#driver=madwifi
ssid=memory
channel=9
hw_mode=g
macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=3
wpa_passphrase=123456
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

7。用 hostapd 开启热点:

hostapd /etc/hostapd.conf  &

#151 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 记录一下常用易忘的Linux日常操作 » 2022-03-09 23:13:12

要将目录 tina_d1_open_v2/.repo/ 打包压缩并分割成多个2G的文件,可以用下面的命令:

tar cjf - tina_d1_open_v2/.repo/ |split -b 2G - /mnt/hgfs/D/tina_d1_open_v2.tar.bz2.





解压:

/mnt/hgfs/D/tina_d1_open_v2.tar.bz2.* | tar -xjv

#152 Re: 全志 SOC » 有没有编译好的windows下的sun-fel分享一下 » 2022-03-09 10:28:47

编译、安装Windows版本sunxi-fel步骤 (32M spi flash补丁,支持W25Q256/MX25L256)
https://whycan.com/t_444.html


或者xfel:

用 MSVC2017 编译 XFEL 项目
https://whycan.com/t_6660.html#p75447

#153 Re: 全志 SOC » 准备学习linux驱动开求大佬给指点 » 2022-03-09 09:45:50

V3s/S3 Linux 测试 轮询/中断 GPIO 按钮驱动程序 / 旋转编码器 等
https://whycan.com/t_2393.html

先试一试这个

#156 Re: 全志 SOC » licheepi中如何将编译好的程序拷贝到linux系统中 » 2022-02-15 09:14:29

如果有 网络的话,可以试一试 tftp,

如果有usb,试一试 adb

串口也可以直接上传文件,命令好象是 rz

#158 Re: 全志 SOC » 全志 D1 SDK 固打包件文件结构分析 » 2022-02-09 22:57:56

@tigger
这个不错,根据上面这个网页信息,我去D1 SDK 里面测试了一下,

$ cd /opt/D1/tina_d1_open/out/d1-mangopi_mq_rgb800x480_gt9xx/image

然后dd到img文件:

$
$ dd if=boot0_sdcard.fex of=/mnt/hgfs/D/y.img bs=1K seek=8
64+0 records in
64+0 records out
65536 bytes (66 kB, 64 KiB) copied, 0.0143461 s, 4.6 MB/s
$
$ dd if=boot_package.fex of=/mnt/hgfs/D/y.img bs=1K seek=12288
944+0 records in
944+0 records out
966656 bytes (967 kB, 944 KiB) copied, 0.297141 s, 3.3 MB/s
$
$ dd if=boot_package.fex of=/mnt/hgfs/D/y.img bs=1K seek=16400
944+0 records in
944+0 records out
966656 bytes (967 kB, 944 KiB) copied, 0.217014 s, 4.5 MB/s
$
$

用 win32diskimager 烧录到 TF卡,可以正常启动到 uboot了。

#161 Re: 全志 SOC » 全志A20 android4.4双屏异显 双屏同显终于可以了 (转载) » 2022-02-06 11:03:00

https://www.cnblogs.com/yiguobei99/p/4033919.html

;disp_mode            
(
0:screen0<screen0,fb0> 

1:screen1<screen1,fb0> 

2:two_diff_screen_diff_contents<screen0,screen1,fb0,fb1>; 

3:two_same_screen_diff_contets<screen0,screen1,fb0> 

4:two_diff_screen_same_contents<screen0,screen1,fb0>
)

五种模式?

#163 Re: 全志 SOC » 小白仿照社区大佬使用f1c100s制作开发板,电脑usb无法识别,请求支援 » 2022-02-04 23:58:51

如果一点电压都没有,那肯定就没起振了。记得大约是 1.5v左右。

#164 Re: 全志 SOC » F1C200 linux LVGL双缓冲支持 » 2022-01-27 13:21:28

shaoxi2010 说:

因为用的是ts_uinput,会将原始坐标做一次tslib转换后再生成新的event设备为符合屏幕转换的点信息。
所以没有用tslib驱动,用的evdev驱动

https://github.com/libts/tslib/blob/master/tools/ts_uinput.c

是一个后台进程吗?

#165 Re: 全志 SOC » F1C200 linux LVGL双缓冲支持 » 2022-01-27 12:41:08

瞄了一下楼主的源码, 并没有发现启用 tslib,请问是怎么回事呢?

#166 Re: 全志 SOC » 全志t3平台 usb host和rndis不能同时使用的问题 » 2022-01-26 10:12:27

按 D1s 的经验来说, 这个问题不存在的。

#167 Re: 全志 SOC » 全志A20 / A64 / A133 / D1 / T113-I/V83x /V85x Tina / Android 文档合集/集合,很全! » 2022-01-21 11:17:36

#168 Re: 全志 SOC » 全志A20 / A64 / A133 / D1 / T113-I/V83x /V85x Tina / Android 文档合集/集合,很全! » 2022-01-21 11:17:33

A133 Datasheet: A133_documents/A133_Datasheet_V1.1.pdf

A133 User Manual: A133_documents/A133_User_Manual_V1.1.pdf


Tina_Linux_WiFi_RF测试_使用指南.pdf
Tina_Linux_Key_快速配置_使用指南.pdf
Tina_Linux_音频_开发指南.pdf
Tina_Linux_量产测试_使用指南.pdf
Tina_Linux_配网_开发指南.pdf
Tina_Linux_Display_开发指南.pdf
Tina_Linux_配置_开发指南.pdf
Tina_Linux_Camera_开发指南.pdf
Tina_Linux_安全_开发指南.pdf
Tina_Linux_图形系统_开发指南.pdf
Tina_Linux_启动优化_开发指南.pdf
Tina_Linux_GPU开发指南.pdf
Tina_Linux_蓝牙_开发指南.pdf
Tina_Linux_多媒体编码_开发指南.pdf
Tina_Linux_内存优化_开发指南.pdf
Tina_Linux_OTA_开发指南.pdf
Tina_Linux_打包流程_说明指南.pdf
Tina_Linux_功耗管理_开发指南.pdf
Tina_Linux_系统裁剪_开发指南.pdf
Tina_Linux_存储性能_参考指南.pdf
Tina_Linux_存储_开发指南.pdf
Tina_Linux_USB_开发指南.pdf
Tina_Linux_GPU性能说明文档.pdf
Tina_Linux_网络指标_参考指南.pdf
Tina_Linux_各平台多媒体格式_支持列表.pdf
Tina_Linux_LCD_调试指南.pdf
Tina_Linux_网络性能_参考指南.pdf
Tina_Linux_syslog_使用指南.pdf
Tina_Linux_LEDC_开发指南.pdf
Tina_Linux_Tinatest测试_使用指南.pdf
Tina_Linux_Wi-Fi_开发指南.pdf
Tina_Linux_系统调试_使用指南.pdf
Tina_Linux_多媒体解码_开发指南.pdf
Tina_Linux_PWM_开发指南.pdf
Tina_Linux_温度控制_使用指南.pdf
Tina_Linux_系统软件_开发指南.pdf
Linux_MIPI_CSI_开发指南.pdf
Linux_GPU_开发指南.pdf
Linux_CE开发指南.pdf
Linux_Thermal_开发指南.pdf
Linux_GPIO_开发指南.pdf
Linux_SPI-NAND_开发指南.pdf
Linux_LCD_开发指南.pdf
Linux_离线烧录_开发指南.pdf
Linux_PMIC_开发指南.pdf
Linux_Display_开发指南.pdf
Linux_Media_开发指南.pdf
Linux_SID_开发指南.pdf
Linux_U-Boot_开发指南.pdf
Linux_LRADC_开发指南.pdf
Linux_GPADC_开发指南.pdf
Linux_RTC_开发指南.pdf
Linux_Audio_开发指南.pdf
Linux_GKI_开发指南.pdf
Linux_USB_开发指南.pdf
Linux_DMAC_开发指南.pdf
Linux_UART_开发指南.pdf
Linux_Device_Tree_使用指南.pdf
Linux_TWI_开发指南.pdf
Linux_HDMI20_开发指南.pdf
Linux_EMAC_开发指南.pdf
Linux_CPUFREQ_开发指南.pdf
Linux_Standby_开发指南.pdf
Linux_安全_开发指南.pdf
Linux_CPUIDLE_开发指南.pdf
Linux_CCU_开发指南.pdf
Linux_G2D_开发指南.pdf
Linux_SPL-PUB_开发指南.pdf


Android 10 sys_config.fex使用配置说明.pdf
Android 10 OTA开发使用指南.pdf
Android 10 DragonFire测试工具使用说明.pdf
Android 10 SECURE方案定制文档.pdf
Android 10 SDK Quick Start Guide.pdf
Android 10 uart驱动使用文档.pdf
Android 10 sys_partition使用说明.pdf
Android 10 SDK快速移植指南.pdf
Android 10 PERF测试使用手册.pdf
Android 10 camera模块开发说明书.pdf
Android 10 Wi-Fi BT Configuration Manual.pdf
Android 10 VTS测试操作指南.pdf
Android 10 SDK版本发布说明.pdf
Android 10 SDK基础架构说明.pdf
Android 10 clock接口使用说明书.pdf
Android 10 TWI模块使用说明书.pdf
Android 10 CTS测试操作指南.pdf
Android 10 SElinux使用说明.pdf
Android 10 USB模块说明书.pdf
Android 10 CTS Verifier操作指南.pdf
Android 10 BTS测试操作指南.pdf
Android 10 device_tree使用说明文档.pdf
Android 10 多媒体模块说明书.pdf
Android10 rotation配置.pdf
Android 10 pinctrl接口使用说明文档.pdf
软件自动识别DDR型号参考设计说明书.pdf
Android 10 Input开发说明书.pdf
Android 10 Wi-Fi BT Support List.pdf
Android 10 STS测试操作指南.pdf
pinctrl接口使用说明文档.pdf
Android 10 GTS测试操作指南.pdf
Android 10 LCD User Guide.pdf
Android 10 Longan User Manual.pdf
Android 10 Display User Guide.pdf
Android 10 性能测试使用手册.pdf
Android 10 standby使用说明书.pdf
Android 10 PMIC使用说明书.pdf
Android 10 UBoot开发说明书.pdf
A133 编译文档.pdf
Android 10 dma接口使用说明书.pdf
Android 10 camera模组选型指南.pdf
Android 10 camera自动检测使用说明.pdf
Android 10 音频模块使用说明书.pdf

#169 Re: 全志 SOC » 全志A20 / A64 / A133 / D1 / T113-I/V83x /V85x Tina / Android 文档合集/集合,很全! » 2022-01-21 11:17:30

全志D1/D1s RISC-V(基于平头哥C906) 哪吒开发板超全资料合集
https://whycan.com/t_6440.html





F133 Datasheet: F133_Datasheet_V1.0_whycan.pdf (无密码、无水印)
F133 User Manual: F133_User_Manual_V1.0.pdf (无密码、无水印)


D1 Datasheet: D1_Datasheet_V0.1(Draft Version)_whycan.pdf (无密码、无水印)
D1 User Manual: D1_User_Manual_V0.1(Draft Version)_whycan.pdf (无密码、无水印)


D1_Linux_AUDIOCODEC_开发指南.pdf
D1_Linux_CCU_开发指南.pdf
D1_Linux_CE开发指南.pdf
D1_Linux_CPUFREQ_开发指南.pdf
D1_Linux_DMAC_开发指南.pdf
D1_Linux_DMIC_开发指南.pdf
D1_Linux_Display_开发指南.pdf
D1_Linux_EMAC_开发指南.pdf
D1_Linux_G2D_开发指南.pdf
D1_Linux_GPADC_开发指南.pdf
D1_Linux_GPIO_开发指南.pdf
D1_Linux_HDMI20_开发指南.pdf
D1_Linux_I2S_开发指南.pdf
D1_Linux_IR-RX_开发指南.pdf
D1_Linux_IR-TX_开发指南.pdf
D1_Linux_LCD_开发指南.pdf
D1_Linux_LRADC_开发指南.pdf
D1_Linux_Media_开发指南.pdf
D1_Linux_RTC_开发指南.pdf
D1_Linux_SID_开发指南.pdf
D1_Linux_SPDIF_开发指南.pdf
D1_Linux_SPI-NAND_开发指南.pdf
D1_Linux_SPI_开发指南.pdf
D1_Linux_Standby_开发指南.pdf
D1_Linux_TWI_开发指南.pdf
D1_Linux_Thermal_开发指南.pdf
D1_Linux_UART_开发指南.pdf
D1_Linux_USB_开发指南.pdf
D1_Linux_离线烧录_开发指南.pdf
D1_Tina_Linux_U-Boot_开发指南.pdf

D1_Tina_Linux_Display_开发指南.pdf
D1_Tina_Linux_Key_快速配置_使用指南.pdf
D1_Tina_Linux_LCD_调试指南.pdf
D1_Tina_Linux_LEDC_开发指南.pdf
D1_Tina_Linux_OTA_开发指南.pdf
D1_Tina_Linux_PWM_开发指南.pdf
D1_Tina_Linux_SPI_LCD_调试指南.pdf
D1_Tina_Linux_Tinatest测试_使用指南.pdf
D1_Tina_Linux_U-Boot_开发指南.pdf
D1_Tina_Linux_USB_开发指南.pdf
D1_Tina_Linux_Wi-Fi_开发指南.pdf
D1_Tina_Linux_WiFi_RF测试_使用指南.pdf
D1_Tina_Linux_syslog_使用指南.pdf
D1_Tina_Linux_以太网_开发指南.pdf
D1_Tina_Linux_内存优化_开发指南.pdf
D1_Tina_Linux_各平台多媒体格式_支持列表.pdf
D1_Tina_Linux_启动优化_开发指南.pdf
D1_Tina_Linux_图形系统_开发指南.pdf
D1_Tina_Linux_多媒体解码_开发指南.pdf
D1_Tina_Linux_存储_开发指南.pdf
D1_Tina_Linux_存储性能_参考指南.pdf
D1_Tina_Linux_安全_开发指南.pdf
D1_Tina_Linux_打包流程_说明指南.pdf
D1_Tina_Linux_扩展IO_开发指南.pdf
D1_Tina_Linux_温度控制_使用指南.pdf
D1_Tina_Linux_系统裁剪_开发指南.pdf
D1_Tina_Linux_系统调试_使用指南.pdf
D1_Tina_Linux_系统软件_开发指南.pdf
D1_Tina_Linux_红外_开发指南.pdf
D1_Tina_Linux_网络性能_参考指南.pdf
D1_Tina_Linux_蓝牙_开发指南.pdf
D1_Tina_Linux_配网_开发指南.pdf
D1_Tina_Linux_配置_开发指南.pdf
D1_Tina_Linux_量产测试_使用指南.pdf
D1_Tina_Linux_音频_开发指南.pdf

#170 Re: 全志 SOC » 全志A20 / A64 / A133 / D1 / T113-I/V83x /V85x Tina / Android 文档合集/集合,很全! » 2022-01-21 11:17:27

Tina3.5文档
https://whycan.com/t_5162.html#p74152





TinaTest文档/音频功能测试文档.pdf
TinaTest文档/Tina量产测试使用文档.pdf
TinaTest文档/TinaTest使用说明.pdf
minigui/MiniGUI编程指南V3.0.pdf
minigui/minigui_per_view视频小视窗播放.pdf
minigui/MiniGUI TTF旋转字库制作并竖直显示文字.pdf
minigui/MiniGUI配置指南.pdf
minigui/MiniGUI更换键盘皮肤.pdf
minigui/minigui3.2裁剪.pdf
minigui/Ubuntu 64位移植Minigui3.2.pdf
系统文档/TinaLinux_SDK开发指南.pdf
系统文档/GPU性能说明文档.pdf
系统文档/TinaLinux_启动优化开发指南.pdf
系统文档/TinaLinux_功耗管理开发指南.pdf
系统文档/TinaLinux_系统调试指南.pdf
系统文档/TinaLinux_syslog使用指南.pdf
系统文档/TinaLinux_系统配置说明文档.pdf
系统文档/TinaLinux_WIFI_BT_性能测试指南.pdf
系统文档/TinaLinux_系统裁剪开发指南.pdf
系统文档/flash性能说明.pdf
ISP调试文档/新版HawkviewTools使用说明书_V1.3.pdf
ISP调试文档/图像质量调优指南_V1_4.pdf
ISP调试文档/isp参数详解_v1.1.pdf
ISP调试文档/旧版Hawkview Tool使用说明书_v1.5.pdf
基础模块说明文档/多媒体/TinaLinux_窗口系统开发指南.pdf
基础模块说明文档/多媒体/TinaLinux_各平台多媒体格式支持列表.pdf
基础模块说明文档/多媒体/TinaLinux_tplayer播放器开发和使用指南.pdf
基础模块说明文档/多媒体/TinaLinux_AVS使用指南.pdf
基础模块说明文档/多媒体/TinaLinux_Gstreamer使用文档.pdf
基础模块说明文档/多媒体/TinaLinux_trecorder录制接口开发和使用指南.pdf
基础模块说明文档/多媒体/TinaLinux_WEB开发指南.pdf
基础模块说明文档/量产升级/TinaLinux_OTA开发指南.pdf
基础模块说明文档/外设/TinaLinux_LEDC开发指南.pdf
基础模块说明文档/外设/TinaLinux_GPU开发指南.pdf
基础模块说明文档/外设/Tina WIFI RF测试说明文档.pdf
基础模块说明文档/外设/TinaLinux_LCD调试指南.pdf
基础模块说明文档/外设/TinaLinux_存储管理开发指南.pdf
基础模块说明文档/外设/TinaLinux_Camera开发指南.pdf
基础模块说明文档/外设/TinaLinux_Security开发指南.pdf
基础模块说明文档/外设/TinaLinux_bluetooth开发指南.pdf
基础模块说明文档/外设/TinaLinux_wifi开发指南.pdf
基础模块说明文档/外设/TinaLinux_Audio开发指南.pdf
基础模块说明文档/外设/TinaLinux GPIO IR驱动移植说明文档.pdf
基础模块说明文档/外设/TinaLinux_Display开发指南.pdf

#172 Re: 全志 SOC » 整理一些 D1 / D1s 的 DisplayEngine / LCD / HDMI 常用骚操作 » 2022-01-18 22:27:35

获取disp0 的 X / Y 分辨率:

mount -t debugfs none /sys/kernel/debug;
cd /sys/kernel/debug/dispdbg;
echo getxres > command;echo disp0 > name;echo 1 > start;cat info
echo getyres > command;echo disp0 > name;echo 1 > start;cat info

#173 Re: 全志 SOC » 整理一些 D1 / D1s 的 DisplayEngine / LCD / HDMI 常用骚操作 » 2022-01-18 20:58:12

该接口用于设置图像的亮度/对比度/饱和度/边缘锐度/细节增强/降噪的调节幅度。


//设置disp0 的图像亮度为80

echo 0 > /sys/class/disp/disp/attr/disp;
echo 80 > /sys/class/disp/disp/attr/enhance_bright;

//设置disp1 的饱和度为50

echo 1 > /sys/class/disp/disp/attr/disp;
echo 50 > /sys/class/disp/disp/attr/enhance_saturation;

#174 Re: 全志 SOC » 整理一些 D1 / D1s 的 DisplayEngine / LCD / HDMI 常用骚操作 » 2022-01-18 20:49:18

disp display channel
0: disp0,
1:disp1


enhance_mode
0:standard,
1: enhance,
2: soft,
3: enahnce + demo

//设置disp0 的色彩增强的模式为增强模式

echo 0 > /sys/class/disp/disp/attr/disp;
echo 1 > /sys/class/disp/disp/attr/enhance_mode;

//设置disp1 的色彩增强的模式为柔和模式

echo 1 > /sys/class/disp/disp/attr/disp;
echo 2 > /sys/class/disp/disp/attr/enhance_mode;

//设置disp0 的色彩增强的模式为增加模式,并且开启演示模式

echo 0 > /sys/class/disp/disp/attr/disp;
echo 3 > /sys/class/disp/disp/attr/enhance_mode;

#175 Re: 全志 SOC » 整理一些 D1 / D1s 的 DisplayEngine / LCD / HDMI 常用骚操作 » 2022-01-18 18:01:03

按住 s 上电启动可以进入u-boot命令行,输入两行命令可以把GPIO PD22拉高:

mw 0x02000098 0x01222222
mw 0x020000A0 0x00400000 

参考: 请问 uboot 不能驱动PWM7 (PD22) 是什么原因呢?
https://debugdump.com/topic/949/share/5

#176 Re: 全志 SOC » 整理一些 D1 / D1s 的 DisplayEngine / LCD / HDMI 常用骚操作 » 2022-01-18 17:57:50

LCD0重新初始化:

mount -t debugfs none /sys/kernel/debug;
cd /sys/kernel/debug/dispdbg;

echo suspend > command; echo disp0 > name; echo 1 > start
echo resume > command; echo disp0 > name; echo 1 > start

#177 Re: 全志 SOC » 整理一些 D1 / D1s 的 DisplayEngine / LCD / HDMI 常用骚操作 » 2022-01-18 17:56:33

切换HDMI到屏幕0:

mount -t debugfs none /sys/kernel/debug;
cd /sys/kernel/debug/dispdbg
echo disp0 > name; echo switch1 > command; echo 4 10 0 0 0x4 0x101 0 0 0 8 > param; echo 1 > start;

切换TV到屏幕0(但没有成功):

mount -t debugfs none /sys/kernel/debug;
cd /sys/kernel/debug/dispdbg
echo disp0 > name; echo switch1 > command; echo 2 11 > param; echo 1 > start;

切换HDMI到屏幕1:

mount -t debugfs none /sys/kernel/debug;
cd /sys/kernel/debug/dispdbg
echo disp1 > name; echo switch1 > command; echo 4 10 0 0 0x4 0x101 0 0 0 8 > param; echo 1 > start;

切换TV到屏幕1(但没有成功):

mount -t debugfs none /sys/kernel/debug;
cd /sys/kernel/debug/dispdbg
echo disp1 > name; echo switch1 > command; echo 2 11 > param; echo 1 > start;

参考: 【DIY教程】D1的双屏异显第一弹来啦!D1同时支持两个屏幕,一共做UI交互,一边个播放视频
https://debugdump.com/topic/362

#178 全志 SOC » 整理一些 D1 / D1s 的 DisplayEngine / LCD / HDMI 常用骚操作 » 2022-01-18 17:54:12

memory
回复: 6

调整LCD背光亮度:

mount -t debugfs none /sys/kernel/debug;
cd /sys/kernel/debug/dispdbg;
echo lcd0 > name; echo setbl > command; echo 100 > param; echo 1 > start

亮度 0 - 255 写入 param, 0最亮, 255最暗。


调到最亮:

echo lcd0 > name; echo setbl > command; echo 0 > param; echo 1 > start

关LCD背光:

echo lcd0 > name; echo setbl > command; echo 255 > param; echo 1 > start

读当前背光:

echo getbl > command; echo lcd0 > name; echo 1 > start; cat info

参考: 全志显示量产问题快速排查指南.pdf
参考: D1_Tina_Linux_Display_开发指南.pdf



AIC800 有两个LCD,如果液晶接在LCD1上面,那这么调背光(255最亮):

mount -t debugfs none /sys/kernel/debug;
cd /sys/kernel/debug/dispdbg;
echo lcd1 > name; echo setbl > command; echo 255 > param; echo 1 > start

#179 Re: 全志 SOC » f133 v3s f100功耗问题 » 2022-01-18 12:07:23

关于 lichee-pi zero v3s 以太网硬件严重发热问题和解决办法
https://whycan.com/t_3887.html

#180 Re: 全志 SOC » 请问这个判断BGA引脚有无虚焊的方法,用来判断F133A有没有TV IN 引脚有没有连接,靠谱吗? » 2022-01-17 22:25:27

Blueskull 说:
memory 说:

这几个IO万用表都显示是 0.742
说明什么问题呢?

说明焊接OK

我也觉得是, 所以F133A并没有从物理上断开 TV IN 那组引脚,

所以有两种可能:

① F133A 和 F133B 只是丝印不同,TV IN 功能可用。
② F133A通过产测的时候烧了opt寄存器,禁用了TV IN功能。

哪位大佬验证一下?

#181 Re: 全志 SOC » 请问这个判断BGA引脚有无虚焊的方法,用来判断F133A有没有TV IN 引脚有没有连接,靠谱吗? » 2022-01-17 19:53:16

xboot 说:

找个F133B,量阻抗,再跟A的比较,效果杠杠的。或者直接去跟D1比,无差别。

比较了 F133A 和 F133B,

这几个IO万用表都显示是 0.742

说明什么问题呢?

#182 全志 SOC » 请问这个判断BGA引脚有无虚焊的方法,用来判断F133A有没有TV IN 引脚有没有连接,靠谱吗? » 2022-01-17 19:11:51

memory
回复: 4

请问这个判断BGA引脚有无虚焊的方法,靠谱吗?
https://debugdump.com/topic/961

我测试了 TV IN 几个引脚,万用表都是显示 0.75,

感觉芯片内部 TV IN 应该是连接的,并没有物理断开。




传送门:
---------------------
全志F133A 与 F133B 的差别
https://whycan.com/t_7144.html#p68080

#188 Re: 全志 SOC » F1C100s-LCD-TV-CH579M 板子 » 2021-12-20 13:18:52

好方案! 搜了一下 CH579M 才 6.8 元。

#193 全志 SOC » V3s跑Tina,这是 spi nand flash挂了吗? » 2021-12-13 23:28:32

memory
回复: 0
[      0.402]

U-Boot 2011.09-rc1-00000-geb34904-dirty (Nov 28 2021 - 17:50:12) Allwinner Technology

[      0.411]version: 1.1.0
[      0.414]uboot commit : eb3490458843de28cd4abb59d2013438b3d0f101

ready
set power on vol to default
no battery, limit to dc
no key input
dram_para_set start
dram_para_set end
In:    Out:   Err:   Net:   Warning: failed to set MAC address


read boot or recovery all
   Verifying Checksum ... OK
OK
OK
[    0.000000] Booting Linux on physical CPU 0
[    0.000000] Linux version 3.4.39 (whycan@ubuntu) (gcc version 4.6.3 20120201 (prerelease) (crosstool-NG linaro-1.13.1-2012.02-20120222 - Linaro GCC 2012.02) ) #122 Mon Dec 13 22:28:18 CST 2021
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: sun8i
[    0.000000] ion_reserve_common: ion reserve: [0x45c00000, 0x48000000]!
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] On node 0 totalpages: 32768
[    0.000000] free_area_init_node: node 0, pgdat c0702414, node_mem_map c073f000
[    0.000000]   Normal zone: 256 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 32512 pages, LIFO batch:7
[    0.000000] script_init enter!
[    0.000000] script_init exit!
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line: console=ttyS0,115200 root=/dev/nandd loglevel=8
[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Memory: 128MB = 128MB total
[    0.000000] Memory: 85452k/85452k available, 45620k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xc8800000 - 0xff000000   ( 872 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0680000   (6624 kB)
[    0.000000]       .init : 0xc0680000 - 0xc06aa000   ( 168 kB)
[    0.000000]       .data : 0xc06aa000 - 0xc0702b60   ( 355 kB)
[    0.000000]        .bss : 0xc0702b84 - 0xc073e56c   ( 239 kB)
[    0.000000] NR_IRQS:544
[    0.000000] 524 ahb1 set parent pll_periph0d2
[    0.000000] Architected local timer running at 24.00MHz.
[    0.000000] Switching to timer-based delay loop
[    0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
[    0.000000] Console: colour dummy device 80x30
[    0.000269] Calibrating delay loop (skipped), value calculated using timer frequency.. 4800.00 BogoMIPS (lpj=24000000)
[    0.000321] pid_max: default: 32768 minimum: 301
[    0.000586] Mount-cache hash table entries: 512
[    0.001452] CPU: Testing write buffer coherency: ok
[    0.001799] Setting up static identity map for 0x404d2aa8 - 0x404d2b00
[    0.002830] devtmpfs: initialized
[    0.005857] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.006224] pinctrl core: initialized pinctrl subsystem
[    0.007079] NET: Registered protocol family 16
[    0.007562] DMA: preallocated 128 KiB pool for atomic coherent allocations
[    0.007654] script_sysfs_init success
[    0.007728] sunxi_dump_init success
[    0.009258] gpiochip_add: registered GPIOs 0 to 223 on device: sunxi-pinctrl
[    0.011114] sunxi-pinctrl sunxi-pinctrl: initialized sunXi PIO driver
[    0.012396] tsc2003 device registered
[    0.012993] [sunxi-module]: [sunxi-module.0] probe success
[    0.013079] script config pll_isp to 360 Mhz
[    0.013130] Not Found clk pll_video in script
[    0.013162] script config pll_ve to 360 Mhz
[    0.013203] Not Found clk pll_periph0 in script
[    0.013225] Not Found clk pll_de in script
[    0.013240] sunxi_default_clk_init
[    0.013259] try to set pll6ahb1 to 200000000
[    0.013283] Error not get clk pll6ahb1
[    0.013310] Error not get clk pll6ahb1try to set ahb1 to 200000000
[    0.013353] try to set apb1 to 100000000
[    0.013742] ===fe3o4==== sunxi_root_procfs_attach ret:0
[    0.026983] bio: create slab <bio-0> at 0
[    0.027410] pwm module init!
[    0.030471] ion_mem.size = 37748736
[    0.031493] SCSI subsystem initialized
[    0.031962] usbcore: registered new interface driver usbfs
[    0.032120] usbcore: registered new interface driver hub
[    0.032355] usbcore: registered new device driver usb
[    0.032614] twi_chan_cfg()341 - [twi0] has no twi_speed!
[    0.032640] twi_chan_cfg()352 - [twi0] has no twi_regulator.
[    0.032667] twi_chan_cfg()341 - [twi1] has no twi_speed!
[    0.032690] twi_chan_cfg()352 - [twi1] has no twi_regulator.
[    0.033629] Linux video capture interface: v2.00
[    0.034054] Advanced Linux Sound Architecture Driver Version 1.0.25.
[    0.035689] cfg80211: Calling CRDA to update world regulatory domain
[    0.037887] Switching to clocksource arch_sys_counter
[    0.049239] NET: Registered protocol family 2
[    0.049731] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.050679] TCP established hash table entries: 4096 (order: 3, 32768 bytes)
[    0.050864] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[    0.050964] TCP: Hash tables configured (established 4096 bind 4096)
[    0.050988] TCP: reno registered
[    0.051014] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.051062] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.051577] NET: Registered protocol family 1
[    0.052139] RPC: Registered named UNIX socket transport module.
[    0.052167] RPC: Registered udp transport module.
[    0.052186] RPC: Registered tcp transport module.
[    0.052204] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.052540] [pm]aw_pm_init!
[    0.052567] standby_mode = 1.
[    0.052583] wakeup src cnt is : 3.
[    0.052681] sunxi_reg_init enter
[    0.055273] VFS: Disk quotas dquot_6.5.2
[    0.055391] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.056175] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.056777] NTFS driver 2.1.30 [Flags: R/W].
[    0.056962] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[    0.057399] msgmni has been set to 166
[    0.059793] io scheduler noop registered
[    0.059820] io scheduler deadline registered
[    0.059966] io scheduler cfq registered (default)
[    0.059993] [DISP]disp_module_init
[    0.060878] cmdline,disp=
[    0.061914] rotation_sw module is config as no used
[    0.061970] [DISP] disp_get_rotation_sw,line:78:disp 0 out of range? g_rot_sw=0
[    0.062004] [DISP] disp_init_connections,line:289:NULL pointer: 0, 0
[    0.062168] fb_para.width = 240,fb_para.height = 240,fb_para.buffer_num = 2
[    0.063060] info->var.bits_per_pixel = 32
[    0.063087] [DISP] Fb_map_kernel_logo,line:924:Fb_map_kernel_logo failed!LCD_power_on 88 ..........
[    0.067242] LCD_power_on 89 ++++++++++++++++++++++++
[    0.068739] [DISP]disp_module_init finish
[    0.069212] sw_uart_get_devinfo()1503 - uart0 has no uart_regulator.
[    0.069250] sw_uart_get_devinfo()1503 - uart1 has no uart_regulator.
[    0.069282] sw_uart_get_devinfo()1503 - uart2 has no uart_regulator.
[    0.070351] uart0: ttyS0 at MMIO 0x1c28000 (irq = 32) is a SUNXI
[    0.070383] sw_uart_pm()890 - uart0 clk is already enable
[    0.070422] sw_console_setup()1233 - console setup baud 115200 parity n bits 8, flow n
[    0.263987] LCD_panel_init 122 ..........
[    0.803708] LCD_panel_init 123 ++++++++++++++++++++++++
[    0.809666] lcd_panel_st7789s_init 183 ++++++++++++++++++++++++
[    0.816432] [DISP] disp_sys_gpio_set_value,line:374:OSAL_GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    0.826239] console [ttyS0] enabled
[    0.830876] uart1: ttyS1 at MMIO 0x1c28400 (irq = 33) is a SUNXI
[    0.838139] uart2: ttyS2 at MMIO 0x1c28800 (irq = 34) is a SUNXI
[    0.846627] [rf_pm]: failed to fetch wifi configuration!
[    0.852691] sunxi-rf-pm: probe of sunxi-rf-pm.0 failed with error -1
[    0.859882] [wifi_pm]: get wl_reg_on gpio failed
[    0.865369] [wifi_pm]: wifi gpio init is OK !!
[    0.870459] [rfkill]: init no bt used in configuration
[    0.877356] spinand type err! 0[NAND]nand init start, spinand_used_flag is -1066850196
[    0.886318] spinand_cache_level err! 0spinand_capacity_level err! 0
[    0.893378] NandHwInit: Start Nand Hardware initializing .....
[    0.899920] kernel:nand version: 2 25 20150917 1145
[    0.905541] pin count:4
[    0.908443] request tx DMA
[    0.911508] request general tx dma channel ok!
[    0.916489] request rx DMA
[    0.919521] request general rx dma channel ok!
[    0.924566] NAND_ClkRequest: get pll6 rate 600000000HZ
[    0.930404] SPI nand ID: 12c212c2 12c212c2
[    0.935019] [SCAN_DBG] NandTwoPlaneOp: 1, DriverTwoPlaneOPCfg: 1, 0xffcfffff
[    0.943049] spinand, spinand_id_number_ctl, nand type err! 0
[    0.949395] _UpdateExtAccessFreqPara: no para.
[    0.954679] [DISP] disp_sys_gpio_set_value,line:374:OSAL_GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    0.964543] PHY_Scan_DelayMode: right delay mode 0x0
[    0.970524] PHY_Scan_DelayMode: right delay mode 0x800
[    0.976321] PHY_Scan_DelayMode: right delay mode,clk 75 MHz, bit[13]=0,bit[11]=1
[    0.984950] _GetOldPhysicArch: chip 0, block 20, page 0, oob: 0x0, 0x50, 0x48, 0x59
[    0.993566] _GetOldPhysicArch: get old physic arch ok, 0x6d 0x2!
[    1.000335] NAND_ReadPhyArch: get old physic arch ok, use old cfg, now:0x2 0x6d - old:0x2 0x6d!
[    1.010103]
[    1.010110]
[    1.013435] [SCAN_DBG] ==============Nand Architecture Parameter==============
[    1.021552] [SCAN_DBG]    Nand Chip ID:         0xffff12c2 0xffffffff
[    1.028774] [SCAN_DBG]    Nand Chip Count:      0x1
[    1.034257] [SCAN_DBG]    Nand Chip Connect:    0x1
[    1.039725] [SCAN_DBG]    Sector Count Of Page: 0x4
[    1.045218] [SCAN_DBG]    Page Count Of Block:  0x40
[    1.050801] [SCAN_DBG]    Block Count Of Die:   0x400
[    1.056463] [SCAN_DBG]    Plane Count Of Die:   0x2
[    1.061946] [SCAN_DBG]    Die Count Of Chip:    0x1
[    1.067414] [SCAN_DBG]    Bank Count Of Chip:   0x1
[    1.072896] [SCAN_DBG]    Optional Operation:   0x6d
[    1.078462] [SCAN_DBG]    Access Frequence:     0x4b
[    1.084043] [SCAN_DBG] =======================================================
[    1.084060]
[    1.093820]
[    1.095489] [FORMAT_DBG] ===========Logical Architecture Parameter===========
[    1.103504] [FORMAT_DBG]    Page Count of Logic Block:  0x40
[    1.109851] [FORMAT_DBG]    Sector Count of Logic Page: 0x8
[    1.116104] [FORMAT_DBG]    Block Count of Die:         0x200
[    1.122560] [FORMAT_DBG]    Die Count:                  0x1
[    1.128807] [FORMAT_DBG] ===================================================
[    1.136761] [DISP] disp_sys_gpio_set_value,line:374:OSAL_GPIO_DevWRITE_ONEPIN_DATA, hdl is NULL
[    1.148082] nand:found factory_bad_block(new version) table in block:26!
[    1.155629] nand:support secure storage
[    1.174085] secure storage updata ok!
[    1.178196] nand secure storage ok: 21,22
[    1.182716] NandHwInit: End Nand Hardware initializing ..... OK!
[    1.190992] nand:found factory_bad_block(new version) table in block:26!
[    1.198509] nand:support secure storage
[    1.202833] start block:23
[    1.206119] [NE]mbr read 12
[    1.209683] [NE]mbr read ok!
[    1.212937] [NE]mbr read end!
[    1.216277] [NE]mbr partition start!
[    1.220751] [NE]mbr partition ok!
[    1.224469] [NE]mbr partition end!
[    1.228298] [NE]new nand info init!!
[    1.232593] [NE]mbr read 12
[    1.236150] [NE]mbr read ok!
[    1.239396] [NE]mbr read end!
[    1.242757] [NE]get mbr_data table
[    1.247253] [ND]ok  get factory_bad_block table!
[    1.252458] [ND]factory bad block:0 215!
[    1.257544] [NE]new_bad_block table new format!
[    1.263070] [ND]ok get a new bad table!
[    1.268040] [ND]build all_phy partition start!
[    1.273044] [NE]mbr partition start!
[    1.277466] [NE]mbr partition ok!
[    1.281210] [NE]mbr partition end!
[    1.285030] [NE]partition_num: 0,size :0x36400,cross_talk 0
[    1.291301] [NE]part mbr size: 0x800 type: 0
[    1.296090] [NE]part bootloader size: 0x4000 type: 0
[    1.301673] [NE]part env size: 0x400 type: 0
[    1.306462] [NE]part boot size: 0x4000 type: 0
[    1.311460] [NE]part system size: 0x2d000 type: 0
[    1.316736] [NE]part UDISK size: 0x800 type: 0
[    1.321739] st7789v3 init over![ND]factory bad block:0,215 PartitionNO:0
[    1.329368] [ND]build 1 phy_partition !
[    1.333686] [ND]nand_info->type :0
[    1.337498] [ND]nand_info->SectorNumsPerPage :8
[    1.342592] [ND]nand_info->BytesUserData :16
[    1.347379] [ND]nand_info->PageNumsPerBlk :64
[    1.352276] [ND]nand_info->BlkPerChip :512
[    1.356867] [ND]nand_info->FirstBuild :0
[    1.361278] [ND]nand_info->FullBitmap :-1066681228
[    1.366649] [ND]nand_info->bad_block_addr.Chip_NO :0
[    1.372228] [ND]nand_info->bad_block_addr.Block_NO :13
[    1.377989] [ND]nand_info->mbr_block_addr.Chip_NO :0
[    1.383568] [ND]nand_info->mbr_block_addr.Block_NO :12
[    1.389329] [ND]nand_info->no_used_block_addr.Chip_NO :0
[    1.395298] [ND]nand_info->no_used_block_addr.Block_NO :16
[    1.401462] [ND]nand_info->new_bad_block_addr.Chip_NO :0
[    1.407417] [ND]nand_info->new_bad_block_addr.Block_NO :14
[    1.413582] [ND]nand_info->new_bad_page_addr :65535
[    1.419050] [ND]nand_info->partition_nums :1
[    1.423854] [ND]sizeof partition:1192
[    1.427959] [ND]nand_info->partition:0:
[    1.432273] [ND]size:0x36400
[    1.435500] [ND]cross_talk:0x0
[    1.438921] [ND]attribute:0x0
[    1.442261] [ND]start: chip:0 block:16
[    1.446464] [ND]end  : chip:0 block:511
[    1.451234] [ND]nand_partition0
[    1.454877] [ND]nftl start:496,62
[    1.458712] [ND]first
[    1.485312] [ND]bad block: 199
[    1.524369] [ND]before second 495 434.
[    1.528673] LCD_bl_open 104 ..........
[    1.532916] LCD_bl_open 105 ++++++++++++++++++++++++
[    1.538614] [DISP] disp_lcd_pwm_enable,line:1023:pwm device hdl is NULL
[    1.703907] [NE]smart->version:aaaaaa01;
[    1.708318] [NE]smart->total_recv_read_sectors:9022;
[    1.713912] [NE]smart->total_recv_write_sectors:184534;
[    1.719770] [NE]smart->total_real_read_pages:1245;
[    1.725157] [NE]smart->total_real_write_pages:23552;
[    1.730737] [NE]smart->total_recv_discard_sectors:0;
[    1.736303] [NE]smart->total_real_discard_sectors:0;
[    1.741883] [NE]smart->total_recv_read_claim_pages:0;
[    1.747546] [NE]smart->total_gc_times:0;
[    1.751956] [NE]smart->total_gc_pages:0;
[    1.756353] [NE]smart->total_wl_times:0;
[    1.760763] [NE]smart->total_real_read_error_pages:0;
[    1.766426] [NE]smart->total_real_write_error_pages:0;
[    1.772201] [NE]smart->total_normal_power_cycles:2;
[    1.777669] [NE]smart->total_unusual_power_cycles:0;
[    1.783248] [NE]smart->max_block_erase_times:0;
[    1.788326] [NE]smart->min_block_erase_times:0;
[    1.793418] [NE]smart->max_block_used_counter:0;
[    1.798594] [NE]smart->min_block_used_counter:0;
[    1.803783] [NE]smart->read_reclaim_utc:0;
[    1.811149] [NE]recover_phy_page_mapping no used page 5!!
[    1.817209] [ND]recover 126 5
[    1.820561] [ND]A64 nand2.0 version:0009
[    1.825057] [ND]zone->nand_chip->blk_per_chip: 496
[    1.830542] [ND]zone->nand_chip->bytes_per_page: 4096
[    1.836303] [ND]zone->nand_chip->pages_per_blk: 64
[    1.841786] [ND]zone->nand_chip->max_erase_times: 3000
[    1.847645] [ND]zone->nand_chip->support_read_reclaim: 1
[    1.853711] [ND]zone->test: 0
[    1.857133] [ND]zone->zone_no: 0
[    1.860860] [ND]zone->zone_attr: 0
[    1.864762] [ND]zone->blocks: 495
[    1.868574] [ND]zone->bad_block: 1
[    1.872498] [ND]zone->logic_cap_in_sects: 222208
[    1.877771] [ND]zone->backup_cap_in_sects: 31232
[    1.883058] [ND]zone->free_block_num: 126
[    1.887651] [ND]zone->gc_strategy.start_gc_free_blocks: 12
[    1.893912] [ND]zone->gc_strategy.stop_gc_free_blocks: 40
[    1.900076] [ND]zone->gc_strategy.gc_page: 0
[    1.904960] [ND]zone->gc_strategy.process: 1
[    1.909843] [ND]zone->prio_gc.prio_type : 0
[    1.914644] [ND]zone->zone_start_phy_block->phy_block.Block_NO: 0
[    1.921589] [ND]zone->zone_end_phy_block->phy_block.Block_NO: 495
[    1.928520] [ND]zone->zone_phy_page_map_for_gc: c55f2800
[    1.934588] [ND]zone->current_block.user_info: c55ad000
[    1.940558] [ND]zone->current_block.block_info: c55e91b8
[    1.946612] [ND]zone->current_block.block_info->phy_block.Block_NO: 126
[    1.954140] [ND]zone->current_block.page_used: 5
[    1.959414] [ND]zone->current_block.block_info->block_used_count: 368
[    1.966748] [ND]zone->read_reclaim_complete: 0
[    1.971842] [ND]zone->temp_page_buf: c55e7000
[    1.976823] [ND]zone->max_erase_num: 1
[    1.981136] [ND]zone->cache.cache_totals: 0
[    1.985923] [ND]zone->cfg->nftl_dont_use_cache: 1
[    1.991308] [ND]zone->cfg->nftl_use_cache_sort: 1
[    1.996680] [ND]zone->cfg->nftl_support_gc_read_reclaim: 1
[    2.002945] [ND]zone->cfg->nftl_support_wear_leveling: 1
[    2.008997] [ND]zone->cfg->nftl_need_erase: 0
[    2.013993] [ND]zone->cfg->nftl_min_free_block_num: 32
[    2.019852] [ND]zone->cfg->nftl_gc_threshold_free_block_num: a
[    2.026503] [ND]zone->cfg->nftl_min_free_block: a
[    2.031889] [ND]zone->cfg->nftl_gc_threshold_ratio_numerator: 2
[    2.038624] [ND]zone->cfg->nftl_gc_threshold_ratio_denominator: 3
[    2.045568] [ND]zone->cfg->nftl_max_cache_num: 20
[    2.050954] [ND]zone->cfg->nftl_max_cache_write_num: 10
[    2.056910] [ND]zone->cfg->nftl_cross_talk: 0
[    2.061906] [ND]zone->cfg->nftl_read_claim_interval: 1296000
[    2.068349] [NE]smart->version:aaaaaa01;
[    2.072759] [NE]smart->total_recv_read_sectors:9022;
[    2.078325] [NE]smart->total_recv_write_sectors:184534;
[    2.084197] [NE]smart->total_real_read_pages:1251;
[    2.089568] [NE]smart->total_real_write_pages:23552;
[    2.095147] [NE]smart->total_recv_discard_sectors:0;
[    2.100726] [NE]smart->total_real_discard_sectors:0;
[    2.106292] [NE]smart->total_recv_read_claim_pages:0;
[    2.111969] [NE]smart->total_gc_times:0;
[    2.116366] [NE]smart->total_gc_pages:0;
[    2.120776] [NE]smart->total_wl_times:0;
[    2.125173] [NE]smart->total_real_read_error_pages:0;
[    2.130850] [NE]smart->total_real_write_error_pages:0;
[    2.136610] [NE]smart->total_normal_power_cycles:2;
[    2.142093] [NE]smart->total_unusual_power_cycles:0;
[    2.147658] [NE]smart->max_block_erase_times:0;
[    2.152750] [NE]smart->min_block_erase_times:0;
[    2.157829] [NE]smart->max_block_used_counter:0;
[    2.163018] [NE]smart->min_block_used_counter:0;
[    2.168194] [NE]smart->read_reclaim_utc:0;
[    2.172797] [ND]nftl ok!
[    2.175729] [ND]max_erase_times = 65000
[    2.180268] [NAND]nand_dev add mbr
[    2.184090] [NAND]nand_dev add bootloader
[    2.190586]  nanda:
[    2.193417] [NAND]nand_dev add env
[    2.200740]  nandb: unknown partition table
[    2.205926] [NAND]nand_dev add boot
[    2.213312]  nandc: unknown partition table
[    2.218505] [NAND]nand_dev add system
[    2.226063]  nandd: unknown partition table
[    2.231326] [NAND]nand_dev add UDISK
[    2.237279]  nande: unknown partition table
[    2.242704] [NAND]nand init end
[    2.246920] sunxi_spi_chan_cfg()1376 - [spi-0] has no spi_regulator.
[    2.255163] spi spi0: master is unqueued, this is deprecated
[    2.261848] m25p_probe()966 - Use the Dual Mode Read.
[    2.267630] NorFlash ID: 0x18425 - 0x8425
[    2.272194] m25p80 spi0.0: unrecognized JEDEC id 018425
[    2.279844] usbcore: registered new interface driver rtl8192cu
[    2.286610] usbcore: registered new interface driver rt2500usb
[    2.293355] usbcore: registered new interface driver rt73usb
[    2.299822] usbcore: registered new interface driver rt2800usb
[    2.306422] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    2.333878] sunxi-ehci sunxi-ehci.1: SW USB2.0 'Enhanced' Host Controller (EHCI) Driver
[    2.342921] sunxi-ehci sunxi-ehci.1: new USB bus registered, assigned bus number 1
[    2.351590] sunxi-ehci sunxi-ehci.1: irq 104, io mem 0xf1c1a000
[    2.370051] sunxi-ehci sunxi-ehci.1: USB 0.0 started, EHCI 1.00
[    2.378026] hub 1-0:1.0: USB hub found
[    2.382326] hub 1-0:1.0: 1 port detected
[    2.387615] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    2.414743] sunxi-ohci sunxi-ohci.1: SW USB2.0 'Open' Host Controller (OHCI) Driver
[    2.423393] sunxi-ohci sunxi-ohci.1: new USB bus registered, assigned bus number 2
[    2.431997] sunxi-ohci sunxi-ohci.1: irq 105, io mem 0xf1c1a400
[    2.495198] hub 2-0:1.0: USB hub found
[    2.499438] hub 2-0:1.0: 1 port detected
[    2.504713] Initializing USB Mass Storage driver...
[    2.510476] usbcore: registered new interface driver usb-storage
[    2.517214] USB Mass Storage support registered.
[    2.522525] usbcore: registered new interface driver ums-cypress
[    2.529340] usbcore: registered new interface driver ums_eneub6250
[    2.536411] usbcore: registered new interface driver ums-freecom
[    2.543245] usbcore: registered new interface driver ums-isd200
[    2.549986] usbcore: registered new interface driver ums-jumpshot
[    2.556977] usbcore: registered new interface driver ums-realtek
[    2.563813] usbcore: registered new interface driver ums-sddr09
[    2.570567] usbcore: registered new interface driver ums-sddr55
[    2.577285] usbcore: registered new interface driver ums-usbat
[    2.584510] file system registered
[    2.591380] android_usb gadget: Mass Storage Function, version: 2009/09/11
[    2.599106] android_usb gadget: Number of LUNs=1
[    2.604467]  lun0: LUN: removable file: (no medium)
[    2.610904] android_usb gadget: android_usb ready
[    2.616836] mousedev: PS/2 mouse device common for all mice
[    2.623316] sunxikbd_script_init: key para not found, used default para.
[    2.632672] sunxi-rtc sunxi-rtc: rtc core: registered sunxi-rtc as rtc0
[    2.640253] i2c /dev entries driver
[    2.644843] uvcvideo: Adding mapping Brightness to control 00000000-0000-0000-0000-000000000101/2.
[    2.654997] uvcvideo: Adding mapping Contrast to control 00000000-0000-0000-0000-000000000101/3.
[    2.664876] uvcvideo: Adding mapping Hue to control 00000000-0000-0000-0000-000000000101/6.
[    2.674265] uvcvideo: Adding mapping Saturation to control 00000000-0000-0000-0000-000000000101/7.
[    2.684367] uvcvideo: Adding mapping Sharpness to control 00000000-0000-0000-0000-000000000101/8.
[    2.694345] uvcvideo: Adding mapping Gamma to control 00000000-0000-0000-0000-000000000101/9.
[    2.703931] uvcvideo: Adding mapping Backlight Compensation to control 00000000-0000-0000-0000-000000000101/1.
[    2.715173] uvcvideo: Adding mapping Gain to control 00000000-0000-0000-0000-000000000101/4.
[    2.724678] uvcvideo: Adding mapping Power Line Frequency to control 00000000-0000-0000-0000-000000000101/5.
[    2.735730] uvcvideo: Adding mapping Hue, Auto to control 00000000-0000-0000-0000-000000000101/16.
[    2.745807] uvcvideo: Adding mapping Exposure, Auto to control 00000000-0000-0000-0000-000000000001/2.
[    2.756273] uvcvideo: Adding mapping Exposure, Auto Priority to control 00000000-0000-0000-0000-000000000001/3.
[    2.767617] uvcvideo: Adding mapping Exposure (Absolute) to control 00000000-0000-0000-0000-000000000001/4.
[    2.778568] uvcvideo: Adding mapping White Balance Temperature, Auto to control 00000000-0000-0000-0000-000000000101/11.
[    2.790788] uvcvideo: Adding mapping White Balance Temperature to control 00000000-0000-0000-0000-000000000101/10.
[    2.802422] uvcvideo: Adding mapping White Balance Component, Auto to control 00000000-0000-0000-0000-000000000101/13.
[    2.814442] uvcvideo: Adding mapping White Balance Blue Component to control 00000000-0000-0000-0000-000000000101/12.
[    2.826365] uvcvideo: Adding mapping White Balance Red Component to control 00000000-0000-0000-0000-000000000101/12.
[    2.838196] uvcvideo: Adding mapping Focus (absolute) to control 00000000-0000-0000-0000-000000000001/6.
[    2.848875] uvcvideo: Adding mapping Focus, Auto to control 00000000-0000-0000-0000-000000000001/8.
[    2.859055] uvcvideo: Adding mapping Zoom, Absolute to control 00000000-0000-0000-0000-000000000001/11.
[    2.869622] uvcvideo: Adding mapping Zoom, Continuous to control 00000000-0000-0000-0000-000000000001/12.
[    2.880388] uvcvideo: Adding mapping Privacy to control 00000000-0000-0000-0000-000000000001/17.
[    2.890441] usbcore: registered new interface driver uvcvideo
[    2.896885] USB Video Class driver (v1.0.8_SONiX_v2.6.36.04)
[    2.903478] sunxi cedar version 0.1
[    2.907606] [cedar]: install start!!!
[    2.912179] [cedar]: install end!!!
[    2.916160] sunxi_wdt_init_module: sunxi WatchDog Timer Driver v1.0
[    2.923608] sunxi_wdt_probe: devm_ioremap return wdt_reg 0xf1c20ca0, res->start 0x01c20ca0, res->end 0x01c20cbf
[    2.935092] sunxi_wdt_probe: initialized (g_timeout=16s, g_nowayout=0)
[    2.942659] wdt_enable, write reg 0xf1c20cb8 val 0x00000000
[    2.948918] wdt_set_tmout, write 0x000000b0 to mode reg 0xf1c20cb8, actual timeout 16 sec
[    2.958399] [mmc]: SD/MMC/SDIO Host Controller Driver(v1.114 2015-6-2 10:21) Compiled in Dec 13 2021 at 11:12:54
[    2.969868] [mmc]: get mmc0's IO(sdc_cd) failed
[    2.974996] [mmc]: get mmc0's sdc_power failed
[    2.980037] [mmc]: get mmc1's sdc_power failed
[    2.985039] [mmc]: MMC host used card: 0x3, boot card: 0x0, io_card 2
[    2.993341] [mmc]: *** sunxi_mci_request_mmcio(L1379): sdc0 request io(cd) failed
[    3.001805] [mmc]: *** sunxi_mci_resource_request(L1580): sdc0 request mmcio failed
[    3.010899] [mmc]: *** sunxi_mci_free_mmcio(L1504): sdc0 set cd mulsel failed
[    3.018911] [mmc]: *** sunxi_mci_probe(L3090): sunxi-mmc.0: Failed to get resouce.
[    3.028442] [mmc]: sdc1 set ios: clk 0Hz bm OD pm OFF vdd 3.3V width 1 timing LEGACY(SDR12) dt B
[    3.041729] sunxi_leds_fetch_sysconfig_para script_parser_fetch "leds_para" leds_used = -1066837212
[    3.051981] =========script_get_err============
[    3.057718] usbcore: registered new interface driver usbhid
[    3.064055] usbhid: USB HID core driver
[    3.069121] usbcore: registered new interface driver snd-usb-audio
[    3.076331] Netfilter messages via NETLINK v0.30.
[    3.081669] nfnl_acct: registering with nfnetlink.
[    3.087156] nf_conntrack version 0.5.0 (1335 buckets, 5340 max)
[    3.094555] ctnetlink v0.93: registering with nfnetlink.
[    3.100664] NF_TPROXY: Transparent proxy support initialized, version 4.1.0
[    3.108476] NF_TPROXY: Copyright (c) 2006-2007 BalaBit IT Ltd.
[    3.115603] xt_time: kernel timezone is -0000
[    3.120567] ip_set: protocol 6
[    3.124470] ip_tables: (C) 2000-2006 Netfilter Core Team
[    3.130794] arp_tables: (C) 2002 David S. Miller
[    3.136092] TCP: cubic registered
[    3.140172] NET: Registered protocol family 10
[    3.146825] IPv6 over IPv4 tunneling driver
[    3.152945] NET: Registered protocol family 17
[    3.158199] ThumbEE CPU extension supported.
[    3.163081] Registering SWP/SWPB emulation handler
[    3.170745] sunxi-rtc sunxi-rtc: setting system clock to 1970-01-01 00:01:27 UTC (87)
[    3.182227] =========GPS========= :failed to fetch gps configuration!
[    3.189477] ALSA device list:
[    3.192872]   No soundcards found.
[    4.762231] TC Complete wait status timeout!
[    4.767034] wait tc complete timeout!
[    6.335585] TC Complete wait status timeout!
[    6.340388] wait tc complete timeout!
[    6.344502] PHY_PageRead bad flag: bank 0x0  block 0x1ed  page 0xa
[    6.351580] PHY_PageRead : bank 0 blk 493 pg 10 read timeout
[    7.923438] TC Complete wait status timeout!
[    7.928240] wait tc complete timeout!
[    9.496813] TC Complete wait status timeout!
[    9.501613] wait tc complete timeout!
[    9.505727] PHY_PageRead bad flag: bank 0x0  block 0x1ed  page 0xa
[    9.512806] PHY_PageRead : bank 0 blk 493 pg 10 read timeout
[   11.084361] TC Complete wait status timeout!
[   11.089160] wait tc complete timeout!
[   12.657759] TC Complete wait status timeout!
[   12.662582] wait tc complete timeout!
[   12.666714] PHY_PageRead bad flag: bank 0x0  block 0x1ed  page 0xa
[   12.673793] PHY_PageRead : bank 0 blk 493 pg 10 read timeout
[   14.245408] TC Complete wait status timeout!
[   14.250224] wait tc complete timeout!
[   15.818857] TC Complete wait status timeout!
[   15.823657] wait tc complete timeout!
[   15.827771] PHY_PageRead bad flag: bank 0x0  block 0x1ed  page 0xa
[   15.834850] PHY_PageRead : bank 0 blk 493 pg 10 read timeout
[   17.406156] TC Complete wait status timeout!
[   17.410967] wait tc complete timeout!
[   18.979522] TC Complete wait status timeout!
[   18.984322] wait tc complete timeout!
[   18.988436] PHY_PageRead bad flag: bank 0x0  block 0x1ed  page 0xb
[   18.995515] PHY_PageRead : bank 0 blk 493 pg 11 read timeout
[   20.566761] TC Complete wait status timeout!
[   20.571572] wait tc complete timeout!
[   22.140095] TC Complete wait status timeout!
[   22.144882] wait tc complete timeout!
[   22.148996] PHY_PageRead bad flag: bank 0x0  block 0x1ed  page 0xc
[   22.156074] PHY_PageRead : bank 0 blk 493 pg 12 read timeout
[   23.727225] TC Complete wait status timeout!
[   23.732036] wait tc complete timeout!
[   25.300566] TC Complete wait status timeout!
[   25.305353] wait tc complete timeout!
[   25.309467] PHY_PageRead bad flag: bank 0x0  block 0x1ed  page 0xd
[   25.316547] PHY_PageRead : bank 0 blk 493 pg 13 read timeout
[   26.888137] TC Complete wait status timeout!
[   26.892954] wait tc complete timeout!
[   28.461548] TC Complete wait status timeout!
[   28.466359] wait tc complete timeout!
[   28.470504] PHY_PageRead bad flag: bank 0x0  block 0x1ed  page 0xa
[   28.477536] PHY_PageRead : bank 0 blk 493 pg 10 read timeout
[   30.049015] TC Complete wait status timeout!
[   30.053828] wait tc complete timeout!
[   30.057941] TX FIFO size error!
[   31.625967] TC Complete wait status timeout!
[   31.630791] wait tc complete timeout!
[   31.634904] PHY_PageRead bad flag: bank 0x0  block 0x1ed  page 0xa
[   31.641983] PHY_PageRead : bank 0 blk 493 pg 10 read timeout
[   33.213375] TC Complete wait status timeout!
[   33.218172] wait tc complete timeout!
[   34.786900] TC Complete wait status timeout!
[   34.791723] wait tc complete timeout!
[   34.795852] PHY_PageRead bad flag: bank 0x0  block 0x1ed  page 0xa
[   34.802902] PHY_PageRead : bank 0 blk 493 pg 10 read timeout
[   34.809400] List of all partitions:
[   34.813365] 5d00            8192 nanda  (driver?)
[   34.818658] 5d08             512 nandb  (driver?)
[   34.823971] 5d10            8192 nandc  (driver?)
[   34.829260] 5d18           92160 nandd  (driver?)
[   34.834566] 5d20            1024 nande  (driver?)
[   34.839845] No filesystem could mount root, tried:  ext3 ext2 ext4 cramfs squashfs vfat ntfs
[   34.849378] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(93,24)
[   34.858856] Backtrace:
[   34.861666] [<c0013490>] (dump_backtrace+0x0/0x110) from [<c04cc024>] (dump_stack+0x18/0x1c)
[   34.871153]  r6:00008000 r5:c5437029 r4:c5437029 r3:00000001
[   34.877578] [<c04cc00c>] (dump_stack+0x0/0x1c) from [<c04cc22c>] (panic+0x78/0x1cc)
[   34.886216] [<c04cc1b4>] (panic+0x0/0x1cc) from [<c0680cf8>] (mount_block_root+0x1e0/0x224)
[   34.895603]  r3:c5427ef4 r2:00000020 r1:c5427f20 r0:c05d5363
[   34.902017]  r7:c06a3c84
[   34.904898] [<c0680b18>] (mount_block_root+0x0/0x224) from [<c0680e2c>] (mount_root+0xf0/0x110)
[   34.914696] [<c0680d3c>] (mount_root+0x0/0x110) from [<c0680f70>] (prepare_namespace+0x124/0x184)
[   34.924665]  r7:c0702bc0 r6:c06a3c5c r5:c06a3c95 r4:c0702c24
[   34.931107] [<c0680e4c>] (prepare_namespace+0x0/0x184) from [<c06808f0>] (kernel_init+0x16c/0x1a8)
[   34.941173]  r5:c06a3c7c r4:00000007
[   34.945233] [<c0680784>] (kernel_init+0x0/0x1a8) from [<c0031bf8>] (do_exit+0x0/0x660)
[   34.791723] wait tc complete timeout!
[   34.795852] PHY_PageRead bad flag: bank 0x0  block 0x1ed  page 0xa
[   34.802902] PHY_PageRead : bank 0 blk 493 pg 10 read timeout
[   34.809400] List of all partitions:
[   34.813365] 5d00            8192 nanda  (driver?)
[   34.818658] 5d08             512 nandb  (driver?)
[   34.823971] 5d10            8192 nandc  (driver?)
[   34.829260] 5d18           92160 nandd  (driver?)
[   34.834566] 5d20            1024 nande  (driver?)
[   34.839845] No filesystem could mount root, tried:  ext3 ext2 ext4 cramfs squashfs vfat ntfs
[   34.849378] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(93,24)
[   34.858856] Backtrace:
[   34.861666] [<c0013490>] (dump_backtrace+0x0/0x110) from [<c04cc024>] (dump_stack+0x18/0x1c)
[   34.871153]  r6:00008000 r5:c5437029 r4:c5437029 r3:00000001
[   34.877578] [<c04cc00c>] (dump_stack+0x0/0x1c) from [<c04cc22c>] (panic+0x78/0x1cc)
[   34.886216] [<c04cc1b4>] (panic+0x0/0x1cc) from [<c0680cf8>] (mount_block_root+0x1e0/0x224)
[   34.895603]  r3:c5427ef4 r2:00000020 r1:c5427f20 r0:c05d5363
[   34.902017]  r7:c06a3c84
[   34.904898] [<c0680b18>] (mount_block_root+0x0/0x224) from [<c0680e2c>] (mount_root+0xf0/0x110)
[   34.914696] [<c0680d3c>] (mount_root+0x0/0x110) from [<c0680f70>] (prepare_namespace+0x124/0x184)
[   34.924665]  r7:c0702bc0 r6:c06a3c5c r5:c06a3c95 r4:c0702c24
[   34.931107] [<c0680e4c>] (prepare_namespace+0x0/0x184) from [<c06808f0>] (kernel_init+0x16c/0x1a8)
[   34.941173]  r5:c06a3c7c r4:00000007
[   34.945233] [<c0680784>] (kernel_init+0x0/0x1a8) from [<c0031bf8>] (do_exit+0x0/0x660)

#194 Re: 全志 SOC » 索智S3-EVB上QT5 GUI LCD无显示 » 2021-12-12 12:41:20

2021-12-12_123528.png

是因为 全志SDK默认Framebuffer格式是 RGBA,有Alpha通道,这个通道要赋值才行。

#195 Re: 全志 SOC » 全志r328快速启动实现(上电1.5秒进Shell) » 2021-12-09 09:56:26

①启用了secureboot,给bootloader做了toc0签名
②主板焊接了rtl8723ds sdio模块
启动只需要1.5秒!!

请教楼主,这是因为①,还是因为②?

#197 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 怎么就管不住这买板子的手 » 2021-12-06 16:47:19

这就和女人柜子里面的衣服一样,明明不缺,就是觉得少。

#200 Re: 全志 SOC » 发现一个问题,荔枝派的SD卡引脚与串口0使用的是同一个引脚,这样做不会产生冲突吗? » 2021-11-22 11:06:30

树莓学LINUX 说:
cube 说:

没错,这就是端口复用啊,同一个io口通过寄存器配置可以指定其中一种复用。

但是在实际使用中,我可以同时使用SD卡与串口0

裸奔的时候或许可以,上Linux系统了基本没这种操作吧?

页脚

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

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