导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页
    1. 主页
    2. memory
    3. 帖子
    M
    • 资料
    • 关注 0
    • 粉丝 6
    • 我的积分 9657
    • 主题 110
    • 帖子 404
    • 最佳 28
    • 群组 0

    memory 发布的帖子

    • 回复: 有大佬在T113跑视频采集的应用成功的么

      v3s bsp用opencv使用摄像头失败

      来反馈一下后续情况,并没有成功使用,最后还是v4l2底层调用获取图片了,bsp驱动并不能和opencv匹配。
      只能将目前发现的问题暂时和大家分享一下。
      1、必须指定vidioc_s_input设置,opencv只做了g_input。
      2、我的摄像头驱动即使设置了不支持的格式也不会返回错误,cap_v4l会一开始就尝试设置这个格式,返回错误才接着设置其他格式。摄像头并不支持BGR24但没有返回错误导致最后取不到帧或者帧全黑。
      但是这里我即使注释掉其余的把摄像头帧格式设置成UYVY(cap_v4l会自行做UYVY_TO_BGR的转换),获取到的图片会有四小块且是绿色的。目前找不到错误在哪,所以直接放弃更改cap_v4l.cpp。
      注:之前我勾选了buildroot里的libv4l,opencv就会编译cap_libv4l.cpp来进行v4l2调用,不推荐这个,因为这个只支持bgr24没有格式转换代码。

      可能没有实现某些v4l2操作.

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: R11 Linux3.4 挂载 4T 移动硬盘出错,请问应该怎么解决呢?

      @whycan

      感谢感谢,终于搞定了!👍

      就是配好 CONFIG_EFI_PARTITION

      发布在 A Series
      M
      memory
    • 芒果tiny200s f1c200s 板子,不改硬件不提升电压,CPU跑到816Mhz杠杠,改成960Mhz终于挂了

      芒果tiny200 板子,不改硬件不提升电压,CPU跑到816Mhz杠杠,改成960Mhz终于挂了

      发布在 其它全志芯片讨论区
      M
      memory
    • R11 Linux3.4 挂载 4T 移动硬盘出错,请问应该怎么解决呢?
      buildroot login:
      [ 1493.810493] usb 1-1.4: new high-speed usb device number 5 using sunxi-ehci1494.011341] scsi2 :usb-storage 1-1.4:1.0
      1495.033101] scsi 2:0:0:0:Direct-Access Seagate One Touch w/PW 1707 PQ:日ANSI:6 
      login: timed out after 60 seconds
      welcome to Buildroot
      buildroot login: [ 1500.795252]sd 2:0:0:0:[sda] Very big device. Trying to use READ CAPACITY(16).
      1500.806187] sd 2:0:0:0:[sda]9767541167 512-byte logical blocks: (5.00 TB/4.54 TiB)
      1500.81488日 sd 2:0:0:0: [sda] 4096-byte physical blocks 
      1500.8222531 sd 2:0:0:0: [sda] Write Protect is off 
      1500.8275971 sd 2:0:0:0: [sda] Mode Sense: bf 00 00 e 
      1500.834484 sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA 
      1500.848285 sd 2:0:0:0: [sda] Very big device. Trying to use READ CAPACITY(16) 
      1500.970265] sda:sdal 
      1500.983815] sd 2:0:0:0: [sda] Very big device. Trying to use READ CAPACITY(16) 
      1501.006303 sd 2:0:0:0:[sda] Attached scsI disk 
      1501.2193661 FAT-fs(sdal):utf8 is not a recommended I0 charset for FAT filesystems, filesystem will be case sensitive!1501.234100][EXFAT] trying to mount... root
      Last login: Thu Jan 1 00:26:20 on console cd/run/media/ ls
      

      35db6e4b-d5bd-4703-aba9-d4e01969874a-8dfa5980fc96764bd5690ff0b5f4525.jpg

      发布在 A Series
      M
      memory
    • 回复: 请问XR829 用 24Mhz 和 40Mhz 晶振的时候有什么区别呢?

      @yuzukitsuru
      谢谢大佬,正是我要的.

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: Linux嵌入式怎么学?

      Linux嵌入式不太懂,有没有人教教我可以怎么学习?

      发布在 灌水区
      M
      memory
    • 回复: 请问XR829 用 24Mhz 和 40Mhz 晶振的时候有什么区别呢?

      @yteraa
      抱歉抱歉,我改一下 ↓

      发布在 其它全志芯片讨论区
      M
      memory
    • 请问XR829 用 24Mhz 和 40Mhz 晶振的时候有什么区别呢?

      请问XR829 用 24Mhz 和 40Mhz 晶振的时候有什么区别呢?

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: V3S的RTC电流太大, 很耗电池....

      @yteraa
      请教有什么区别吗? 不是一样耗电嘛?

      发布在 A Series
      M
      memory
    • 回复: V3S的RTC电流太大, 很耗电池....

      事实就是这样,所以还是换 PCF8563那种RTC,保守估计都能坚持 3年,要是用V3s自带这种,货物还在仓库的时候RTC就没电了。

      发布在 A Series
      M
      memory
    • 回复: LVGL|lvgl教程之巧用图层(layer)编写模态对话框 (转载)

      de8f506f-cefc-4578-8679-a0958c28731a-image.png

      仔细看了一下 点击模态窗口空白处关闭日期模态对话框代码,写得太棒了!

      发布在 GUI
      M
      memory
    • 回复: 可编程电阻器,见过没?

      @randolph
      这个正经!

      发布在 灌水区
      M
      memory
    • 可编程电阻器,见过没?

      bf6e7358-858d-4feb-b72c-e18c551426e3-Q_}RUNFUK~2SZ~4YG_3YU%R.jpg

      发布在 灌水区
      M
      memory
    • 回复: 请问 V3s eMMC启动失败,这是什么问题呢?

      boot0启动成功了,但是他加载uboot计算校验码对不上,然后放弃启动了。

      发布在 其它全志芯片讨论区
      M
      memory
    • 请问 V3s eMMC启动失败,这是什么问题呢?

      32565074-0be0-4971-84c4-4c5cae7bd151-image.png

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: T113 MQ-R板子用tina 无法进入系统

      @mhcsoft 在 T113 MQ-R板子用tina 无法进入系统 中说:

      问题解决:让基友少走弯路,把修改共享出来

      sun8iw20p1_evb2_lowmem_defconfig

      大佬,这个文件与 brandy/brandy-2.0/u-boot-2018/configs/sun8iw20p1_evb2_defconfig 一模一样,一行都没改。

      发布在 Linux
      M
      memory
    • V853芯片量产啦!据说样片4刀左右,1T NPU算力,真香

      微信图片_20220530230445.jpg 微信图片_20220530230433.jpg

      发布在 V Series
      M
      memory
    • 有块V3s板子烧录时候检测不到DDR,即使一直插着电,V3s也不发热,冷冰冰的,是不是V3s坏了呢?

      e0207b09-be4a-485b-b58d-159e90754714-image.png

      HELLO! BOOT0 is starting!
      get_ifm reg_val=7
      axp read fail, maybe no pmu
      set pmu vol failed,maybe no pmu
      DRAM DRIVE INFO: V0.7
      DRAM Type = 2 (2:DDR2,3:DDR3,6:LPDDR2,7:LPDDR3)
      DRAM CLK = 360 MHz
      DRAM zq value: 000039bb
      initializing SDRAM Fail.
      beign to init dram
      DRAM DRIVE INFO: V0.7
      DRAM Type = 2 (2:DDR2,3:DDR3,6:LPDDR2,7:LPDDR3)
      DRAM CLK = 360 MHz
      DRAM zq value: 000039bb
      
      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: 【FAQ】全志D1芯片 如何在tina使用tplayerdemo 进行rtsp拉流说明?

      rtsp://1.116.32.155/media/test.mp4

      小白请教一下,这个怎么自己搭建呢?

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: H6 linux代码sensor数据位问题

      估计和像素点格式有关

      发布在 Linux
      M
      memory
    • 回复: 请问烧录软件 phoenixsuit 可以读出A133平板电脑的eMMC固件吗?

      uboot可能有这个功能,或者把eMMC拆下来,用usb读卡器读。

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: gt911 上电i2c地址一般是0x14,偶尔是0x5d,请问怎么把i2c固定成一个呢?

      @zxyuser

      787f5c35-4f0a-4cfe-ba04-ac8168cc9c6c-{WKECG.png

      发现是 ctp_wakeup gt911复位引脚配置错了,现在纠正过来,

      重启40次都正常了:

      a1195b52-08a0-424f-8f55-f23303.png

      发布在 MR Series
      M
      memory
    • gt911 上电i2c地址一般是0x14,偶尔是0x5d,请问怎么把i2c固定成一个呢?

      gt911 上电i2c地址一般是0x14,偶尔是0x5d,请问怎么把i2c固定成一个呢?

      发布在 MR Series
      M
      memory
    • 回复: melis4.0启动问题

      感觉TF卡的问题

      发布在 MR Series
      M
      memory
    • 回复: 使用 LicheeRV 86 Panel 与 Tina BSP 实现 RGB 与 SPI 双屏显示

      8a7ec8b6-b59a-4c6e-ac3d-137f5c334168-image.png

      屏蔽 CONFIG_DISP2_SUNXI 之后,

      CONFIG_LCD_FB: Framebuffer implementaion for LCD panel without DE and tcon

      这个就可以编译成功了。

      发布在 MR Series
      M
      memory
    • 回复: 使用 LicheeRV 86 Panel 与 Tina BSP 实现 RGB 与 SPI 双屏显示

      8e1025c2-6e5a-456c-863d-4be5cee75725-image.png

      本想调试一下st7789,发现tina 2.0 仍然不能用fbdev。

      发布在 MR Series
      M
      memory
    • 回复: SIPEED Lichee RV DOCK 全志D1开发板

      @readme0
      可能不支持。请稍等,我晚些改一个for v2.0 的patch发上来。

      发布在 MR Series
      M
      memory
    • 回复: Linux下的sd卡烧写工具LiveSuit

      @xiaowenge
      原来如此,点赞点赞!

      发布在 编译和烧写问题专区
      M
      memory
    • 回复: Linux下的sd卡烧写工具LiveSuit

      @xiaowenge
      刚刚试了一下 R818 Anroid 的 reboot efex 可以用。

      发布在 编译和烧写问题专区
      M
      memory
    • 回复: 在D1的tina上整上overlayfs

      @tevet
      请问怎么看是用 procd 还是 busybox init 呢?

      发布在 MR Series
      M
      memory
    • 回复: D1哪吒开发板使用 RTL8723DS 作为WIFI中继

      看下转发文件配置值:

      cat /proc/sys/net/ipv4/ip_forward
      

      如果不为1, 那么要设置一下:

      echo 1 > /proc/sys/net/ipv4/ip_forward
      
      发布在 MR Series
      M
      memory
    • D1哪吒开发板使用 RTL8723DS 作为WIFI中继

      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  &
      
      发布在 MR Series
      M
      memory
    • OpenWrt中文件夹staging_dir和build_dir的含义

      build_dir:用来解压所有的源代码和编译它们的位置

      staging_dir:用来安装所有已编译软件的位置,或者用来存放用来打包、组装固件的文件。

      build_dir文件夹中有三个区域:
      build_dir/host:用来编译所有跑在主机上的程序(OpenWRT从源中编译他自己版本的sed和其它许多工具)。这个区域将用来编译仅跑在你主机上的程序。

      build_dir/toolchain:用来编译打包中使用到的C交叉编译器和C标准库组件。这个区域将用来编译仅跑在你住几上的程序(例如:C交叉编译器)以及设计的跑在目标机器上的链接库,例如uClibc, libm, pthreads等等。

      build_dir/target:用于编译目标系统的实际的包,和Linux内核。

      staging_dir下也有三个区域:
      staging_dir/host:该文件夹是一个微型的Linux 根目录,有自己的目录bin/, lib/等等。这是主机工具安装的位置,构建系统的其余部分会将该区域的目录前缀到环境变量PATH中。

      staging_dir/toolchain:该文件夹是一个微型的Linux 根目录,有自己的目录bin/, lib/等等。它包含用来构建固件的C交叉编译器。你可以用该编译器在OpenWRT之外编译一个可以加载到固件中的简单的C程序。这个C编译器一般是这样:staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mips-openwrt-linux-uclibc-gcc。你可以看到CPU、C库和编码到其中的gcc的版本号;并且允许多目标同时在一起构建。

      staging_dir/target:包含每个目标包已安装的版本;根目录形式,包含bin/, lib/等等,并且将会变成实际的根目录,仅作出一些调整就会打包进固件镜像中,像root-ar71xx之类的。这里也有一些其它的文件在其中,主要生成软件包和开发软件包。

      参考链接: https://stackoverflow.com/questions/26030670/openwrt-buildroot-build-dir-and-staging-dir

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: A100 平板电脑开启自带的喇叭麦克风

      参考文档: Linux_AUDIOCODEC_开发指南.pdf

      发布在 其它全志芯片讨论区
      M
      memory
    • A100 平板电脑开启自带的喇叭麦克风

      board.dts 开启内建声卡:

      cf2d82aa-67f6-433b-90e7-d1b243757739-image.png

      tinymix 设置声卡寄存器:

      285780fc-0f77-4862-9b13-fb7a968e51bf-4ddf4407a0cf9f8ab2c084d2709bf1d.png

      这样就可以用 tinycap 录音, tinyplay 放音了。

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: 全志 A50 / A100 /A133 SDK 新增驱动配置

      @memory

      FT6336 驱动芯片用这个驱动搞定了:

      CONFIG_TOUCHSCREEN_FT6236=y

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: 测试 D1s的符合USB gadget设备

      参考文章: D1_Linux_USB_开发指南.pdf

      发布在 MR Series
      M
      memory
    • 回复: 测试 D1s的符合USB gadget设备

      tina v2.0 下载,约4G:
      链接: https://pan.baidu.com/s/1rTyKuWIwMUlBY4xLJofWEg?pwd=awol
      提取码:awol

      文件:

      tina_d1_open_v2.tar.bz2.aa 
      tina_d1_open_v2.tar.bz2.ab 
      tina_d1_open_v2.tar.bz2.ac
      

      ①解压:
      cat tina_d1_open_v2.tar.bz2.a* | tar -xjv

      ②从本地repo仓库同步SDK
      repo sync -l.

      ③ source build/envsetup.sh
      ④ lunch
      ⑤ make
      ⑥ pack

      发布在 MR Series
      M
      memory
    • 测试 D1s的符合USB gadget设备

      基于 tina v2.0

      修改:/etc/init.d/S50usb

      在 mkdir /sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0

      后面添加:

      echo /mnt/UDISK/disk.bin > /sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file

      这样电脑就能同时出现 adb 和 u盘了.

      当然得提前准备文件:
      dd if=/dev/zero of=/mnt/UDISK/disk.bin bs=1M count=4

      597c1b66-186c-47e1-a14a-7476d565169d-image.png

      记得勾上这个: CONFIG_USB_CONFIGFS_MASS_STORAGE=y

      发布在 MR Series
      M
      memory
    • 回复: D1 fastboot烧写rootfs分区有问题

      SDK是什么版本? 启动介质是 SPI NAND ? SPI NOR ? TF / eMMC?

      发布在 MR Series
      M
      memory
    • 发现了ping的bug,包序号溢出

      100e33e6-4a73-446f-acc7-0b2db5cdc9d0-image.png

      发布在 Linux
      M
      memory
    • 回复: 海鲜市场淘了一块35元二手香橙派H3开发板,看看会不会翻车

      9eb4253b-7715-4b6f-8a0e-41ef3bd0bc92-AZPH.png

      a73ea49b-f46f-42a2-adca-66d63ca454d3-55F40E2903F53866817057273C3FCFD6.jpg

      d26824ff-af38-4982-9274-e1f57d741e39-W2T@EST`~L_Y}9L2%T%16XQ.png

      量了一下,手里面两根线都是 地 / 黄 / 白 / 红 的顺序,对照香橙派的原理图,应该是可以用的。

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: 小淘气 F1C100s /F1C200s 开发板

      cc630102-263c-4fba-9a6a-c334e7cd0e35-CFB6B9FC861A51A577FD85449B4D3527.jpg

      再来试一试 TV OUT,正常。

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: 小淘气 F1C100s /F1C200s 开发板

      7a0d17a4-58f4-4be4-b483-b9e833155f05-d0d46dbb0bf06c4e418be1aa4eb7cd6.jpg

      0880d129-88f5-4d8b-a8a3-ee333f3d62d4-6252c6c963acc7fba69359736e26534.jpg

      这门禁机直接接CVBS显示器,可以看到画面,但是接F1C100s TV IN没有画面,是信号太弱?我这里是6楼。

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: 小淘气 F1C100s /F1C200s 开发板

      ea0b12bf-1b61-465a-8f62-c8dd9082073c-image.png

      好感度 +80

      作者很用心地实现了下载(骚录)功能!

      发布在 其它全志芯片讨论区
      M
      memory
    • 请问RTL8723DS怎么烧录mac地址?我在淘宝买的模块,每次启动都是固定ip,但是买的原装芯片,每次启动mac地址都不同。

      请问RTL8723DS怎么烧录mac地址?我在淘宝买的模块,每次启动都是固定ip,但是买的原装芯片,每次启动mac地址都不同。

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: 开发者成长计划正式上线!一起争做社区”高手“!

      不错,看看我多少分了。。。

      发布在 公告
      M
      memory
    • 回复: 请问 F1C200s 可以同时输出到LCD 和 TV 上吗?

      确实,手册翻了N遍,只有一个DE(显示引擎),按道理不能同时工作。

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: 小淘气 F1C100s /F1C200s 开发板

      764a4059-47ff-426c-b6d3-3b80cfb45a30-9ff6cc9a4a965d29584c1d3493d88e2.jpg

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: 小淘气 F1C100s /F1C200s 开发板

      04d60ba9-c7ce-47d6-9336-f76ebd7f518a-image.png

      发布在 其它全志芯片讨论区
      M
      memory
    • 小淘气 F1C100s /F1C200s 开发板

      硬件购买链接: https://item.taobao.com/item.htm?id=596355535336

      代码购买链接: https://item.taobao.com/item.htm?id=589639202997

      发布在 其它全志芯片讨论区
      M
      memory
    • 请问 F1C200s 可以同时输出到LCD 和 TV 上吗?

      请问 F1C200s 可以同时输出到LCD 和 TV 上吗?

      发布在 其它全志芯片讨论区
      M
      memory
    • 全志F1C100s在Tina Linux SDK上修改CPU频率的方法

      打开平台的clock配置dts文件, 位于[sdk]/lichee/linux-3.10/arch/arm/boot/dts/, 文件名是sun3iw1p1-clk.dtsi
      找到pll cpu, 将assigned-clock-rates修改为目标的频率, 单位是Hz. 如下:

      clk_pll_cpu: pll_cpu {
      #clock-cells = <0>;
      compatible = "allwinner,sunxi-pll-clock";
      lock-mode = "none";
      assigned-clock-rates = <696000000>;
      clock-output-names = "pll_cpu";
      };
      
      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: 哪吒开发板D1,适配鸿蒙系统init的进程无法启动

      @xyc_image

      ls: cannot access '/system/bin/init': No such file or directory

      文件不存在,检查一下文件系统的问题。

      发布在 MR Series
      M
      memory
    • 回复: 哪吒开发板D1,适配鸿蒙系统init的进程无法启动

      @xyc_image

      显示红色,应该是软链接挂了

      试一试:

      ls /system/bin/init -l

      发布在 MR Series
      M
      memory
    • 回复: D1 哪吒解码视频文件测试

      源码位置 package/allwinner/tina_multimedia_demo/decodertest/src/decodertest.c

      
      whycan@ubuntu:/opt/f1c100s/tina/tina$ cat /opt/D1/tina_d1_open/package/allwinner/tina_multimedia_demo/decodertest/src/decodertest.c
      /*************************************************************************
          > File Name: decodertest.c
          > Author:
          > Mail:
          > Created Time: 2017/10/15 14:20:17
       ************************************************************************/
      
      #include <stdio.h>
      #include <stdlib.h>
      #include <string.h>
      #include <pthread.h>
      #include <sys/time.h>
      #include <cdx_log.h>
      #include "cdx_config.h"
      #include "CdxParser.h"
      #include "vdecoder.h"
      #include "memoryAdapter.h"
      //#include <openssl/sha.h>
      
      #define ALIGN_16B(x) (((x) + (15)) & ~(15))
      
      static unsigned char decoderlog = 1;
      #define decoderLog if(decoderlog) \
                              printf
      
      #define DEMO_PARSER_MAX_STREAM_NUM 1024
      
      #define DEMO_PARSER_ERROR  (1 << 0)
      #define DEMO_DECODER_ERROR (1 << 1)
      #define DEMO_DISPLAY_ERROR (1 << 2)
      #define DEMO_DECODE_FINISH (1 << 3)
      #define DEMO_PARSER_EXIT   (1 << 5)
      #define DEMO_DECODER_EXIT  (1 << 6)
      #define DEMO_DISPLAY_EXIT  (1 << 7)
      #define DEMO_ERROR    (DEMO_PARSER_ERROR | DEMO_DECODER_ERROR | DEMO_DISPLAY_ERROR)
      #define DEMO_EXIT     (DEMO_ERROR | DEMO_DECODE_FINISH)
      
      typedef struct MultiThreadCtx
      {
          pthread_rwlock_t rwrock;
          int nEndofStream;
          int loop;
          int state;
      }MultiThreadCtx;
      
      typedef struct DecDemo
      {
              int ScaleDownEn;
          VideoDecoder *pVideoDec;
          CdxParserT *parser;
          CdxDataSourceT source;
          CdxMediaInfoT mediaInfo;
          MultiThreadCtx thread;
          long long totalTime;
          long long DurationTime;
          int  nDecodeFrameCount;
          char *pInputFile;
          char *pOutputFile;
          enum EPIXELFORMAT decode_format;
          pthread_mutex_t parserMutex;
          /* start to save yuv picture,
          * when decoded picture order >=  nSavePictureStartNumber
          */
          int  nSavePictureStartNumber;
          /* the saved picture number */
          int  nSavePictureNumber;
          struct ScMemOpsS* memops;
      }DecDemo;
      
      static long long GetNowUs(void)
      {
          struct timeval tv;
          gettimeofday(&tv, NULL);
          return (long long)tv.tv_sec * 1000000ll + tv.tv_usec;
      }
      
      int save_frame_to_file(void *str,void *start,int length)
      {
          FILE *fp = NULL;
      
          fp = fopen(str, "wb+");
          if(!fp){
              printf(" Open file error\n");
              return -1;
          }
      
          if(fwrite(start, length, 1, fp)){
              fclose(fp);
              return 0;
          }else{
              printf(" Write file fail (%s)\n",strerror(errno));
              fclose(fp);
              return -1;
          }
      
          return 0;
      }
      
      void show_help(void)
      {
          printf("***********************************************************\n");
          printf(" please enter following instructoins!\n");
          printf(" decodertest argv[1] argv[2] argv[3] argv[4] argv[5]\n");
          printf(" argv[1]: input data path\n");
          printf(" argv[2]: out data path\n");
              printf(" argv[3]: ScaleDownEnable---0:disable 1:enable\n");
          printf(" argv[4]: out data format---NV21 YV12 MB420\n");
          printf(" argv[5]: save picture start number\n");
          printf(" argv[6]: save frame number\n");
          printf("***********************************************************\n");
          printf(" for instance : decodertest /tmp/source.mp4 /tmp 0 NV21 2 10\n");
          printf("***********************************************************\n");
      }
      
      enum EPIXELFORMAT return_format(char *short_name)
      {
          if (strcmp(short_name, "YV12") == 0) {
              return PIXEL_FORMAT_YV12;
          } else if (strcmp(short_name, "NV21") == 0) {
              return PIXEL_FORMAT_NV21;
              } else if (strcmp(short_name, "MB420") == 0) {
              return PIXEL_FORMAT_YUV_MB32_420;
          } else {
              return 0;
          }
      }
      
      char *return_shortname(enum EPIXELFORMAT output_format)
      {
          if(output_format == PIXEL_FORMAT_YV12){
              return "YV12";
          }else if(output_format == PIXEL_FORMAT_NV12){
              return "NV12";
          }else if(output_format == PIXEL_FORMAT_NV21){
              return "NV21";
          }else if(output_format == PIXEL_FORMAT_YUV_MB32_420){
              return "MB420";
          }else{
              return NULL;
          }
      }
      
      static int initDecoder(DecDemo *Decoder)
      {
          int nRet, i;
          int bForceExit = 0;
          VConfig             VideoConf;
          VideoStreamInfo     VideoInfo;
          struct CdxProgramS *program;
          CdxStreamT *stream = NULL;
      
          memset(&VideoConf, 0, sizeof(VConfig));
          memset(&VideoInfo, 0, sizeof(VideoStreamInfo));
          memset(&Decoder->mediaInfo, 0, sizeof(CdxMediaInfoT));
          memset(&Decoder->source, 0, sizeof(CdxDataSourceT));
          Decoder->memops = MemAdapterGetOpsS();
          if(Decoder->memops == NULL){
              printf(" memops is NULL\n");
              return -1;
          }
          CdcMemOpen(Decoder->memops);
          decoderLog(" before strcpy(tmpUrl, url)\n");
          Decoder->source.uri = Decoder->pInputFile;
          decoderLog(" before CdxParserPrepare() %s\n", Decoder->source.uri);
          pthread_mutex_init(&Decoder->parserMutex, NULL);
          nRet = CdxParserPrepare(&Decoder->source, 0, &Decoder->parserMutex,
                                  &bForceExit, &Decoder->parser, &stream, NULL, NULL);
          if(nRet < 0 || Decoder->parser == NULL){
              printf(" decoder open parser error nRet = %d, Decoder->parser: %p\n", nRet, Decoder->parser);
              return -1;
          }
          decoderLog(" before CdxParserGetMediaInfo()\n");
          nRet = CdxParserGetMediaInfo(Decoder->parser, &Decoder->mediaInfo);
          if(nRet != 0){
              printf(" decoder parser get media info error\n");
              return -1;
          }
          decoderLog(" before CreateVideoDecoder()\n");
          Decoder->pVideoDec = CreateVideoDecoder();
          if(Decoder->pVideoDec == NULL){
              printf(" decoder demom CreateVideoDecoder() error\n");
              return -1;
          }
          decoderLog(" before InitializeVideoDecoder()\n");
          program = &(Decoder->mediaInfo.program[Decoder->mediaInfo.programIndex]);
          for (i = 0; i < 1; i++)
          {
              VideoStreamInfo *vp = &VideoInfo;
      
              vp->eCodecFormat = program->video[i].eCodecFormat;
              vp->nWidth = program->video[i].nWidth;
              vp->nHeight = program->video[i].nHeight;
              vp->nFrameRate = program->video[i].nFrameRate;
              vp->nFrameDuration = program->video[i].nFrameDuration;
              vp->nAspectRatio = program->video[i].nAspectRatio;
              vp->bIs3DStream = program->video[i].bIs3DStream;
              vp->nCodecSpecificDataLen = program->video[i].nCodecSpecificDataLen;
              vp->pCodecSpecificData = program->video[i].pCodecSpecificData;
          }
      
              if(Decoder->ScaleDownEn > 0){
                      VideoConf.nVbvBufferSize = 1*1024*1024;
                      VideoConf.bScaleDownEn = 1;
                      VideoConf.nHorizonScaleDownRatio = 1;
                      VideoConf.nVerticalScaleDownRatio = 1;
              }
      
              VideoConf.eOutputPixelFormat  = Decoder->decode_format;
      
          VideoConf.nDeInterlaceHoldingFrameBufferNum = GetConfigParamterInt("pic_4di_num", 2);
          VideoConf.nDisplayHoldingFrameBufferNum = GetConfigParamterInt("pic_4list_num", 3);
          VideoConf.nRotateHoldingFrameBufferNum = GetConfigParamterInt("pic_4rotate_num", 0);
          VideoConf.nDecodeSmoothFrameBufferNum = GetConfigParamterInt("pic_4smooth_num", 3);
          VideoConf.memops = Decoder->memops;
          nRet = InitializeVideoDecoder(Decoder->pVideoDec, &VideoInfo, &VideoConf);
          decoderLog(" after InitializeVideoDecoder()\n");
          if(nRet != 0){
              printf(" decoder demom initialize video decoder fail\n");
              DestroyVideoDecoder(Decoder->pVideoDec);
              Decoder->pVideoDec = NULL;
              return -1;
          }
      
          pthread_rwlock_init(&Decoder->thread.rwrock, NULL);
      
          decoderLog(" initDecoder OK\n");
          return 0;
      }
      
      void *parserThreadFunc(void *param)
      {
          DecDemo *pDec;
          CdxParserT *parser;
          VideoDecoder *pVideoDec;
          int nRet, nStreamNum, state;
          int nValidSize;
          int nRequestDataSize, trytime;
          unsigned char *buf;
          VideoStreamDataInfo  dataInfo;
          CdxPacketT packet;
      
          buf = malloc(1024*1024);
          if(buf == NULL){
              printf(" parser thread malloc error\n");
              goto parser_exit;
          }
          pDec = (DecDemo *)param;
          pVideoDec = pDec->pVideoDec;
          parser = pDec->parser;
          memset(&packet, 0, sizeof(packet));
          decoderLog(" parserThreadFunc(), thread created\n");
          state = 0;
          trytime = 0;
      
          /* fetch before read parse */
          while (0 == CdxParserPrefetch(parser, &packet))
          {
              usleep(50);
      
              /* get encoder buffer valid size */
              nValidSize = VideoStreamBufferSize(pVideoDec, 0) - VideoStreamDataSize(pVideoDec, 0);
              nRequestDataSize = packet.length;
      
              pthread_rwlock_wrlock(&pDec->thread.rwrock);
              state = pDec->thread.state;
              pthread_rwlock_unlock(&pDec->thread.rwrock);
              if(state & DEMO_EXIT){
                  printf(" hevc parser receive other thread error. exit flag\n");
                  goto parser_exit;
              }else if(state & DEMO_DECODER_EXIT){
                  printf(" decoder thread finish. parserThreadFunc() exit flag\n");
                  break;
              }
      
              if(trytime >= 2000){
                  printf(" parser thread trytime >= 2000, maybe some error happen\n");
                  pthread_rwlock_wrlock(&pDec->thread.rwrock);
                  pDec->thread.state |= DEMO_PARSER_ERROR;
                  pthread_rwlock_unlock(&pDec->thread.rwrock);
                  goto parser_exit;
              }
      
              if (packet.type == CDX_MEDIA_VIDEO && ((packet.flags&MINOR_STREAM)==0)){
                  if(nRequestDataSize > nValidSize){
                      usleep(50 * 1000);
                      trytime++;
                      continue;
                  }
      
                  /* get encoder buf */
                  nRet = RequestVideoStreamBuffer(pVideoDec,nRequestDataSize,(char**)&packet.buf,
                                                 &packet.buflen, (char**)&packet.ringBuf, &packet.ringBufLen, 0);
                  if(nRet != 0){
                      printf(" RequestVideoStreamBuffer fail. request size: %d, valid size: %d\n", nRequestDataSize, nValidSize);
                      usleep(50*1000);
                      continue;
                  }
      
                  if(packet.buflen + packet.ringBufLen < nRequestDataSize){
                      printf(" RequestVideoStreamBuffer fail, require size is too small\n");
                      pthread_rwlock_wrlock(&pDec->thread.rwrock);
                      pDec->thread.state |= DEMO_PARSER_ERROR;
                      pthread_rwlock_unlock(&pDec->thread.rwrock);
                      goto parser_exit;
                  }
              }
              else{
                  packet.buf = buf;
                  packet.buflen = packet.length;
                  CdxParserRead(parser, &packet);
                  continue;
              }
      
              /* get undecode data buffer number */
              trytime = 0;
              nStreamNum = VideoStreamFrameNum(pVideoDec, 0);
              if(nStreamNum > DEMO_PARSER_MAX_STREAM_NUM){
                  usleep(50*1000);
              }
      
              nRet = CdxParserRead(parser, &packet);
              if(nRet != 0){
                  printf(" parser thread read video data error\n");
                  pthread_rwlock_wrlock(&pDec->thread.rwrock);
                  pDec->thread.state |= DEMO_PARSER_ERROR;
                  pthread_rwlock_unlock(&pDec->thread.rwrock);
                  goto parser_exit;
              }
      
              /* video data to decoder */
              memset(&dataInfo, 0, sizeof(VideoStreamDataInfo));
              dataInfo.pData      = packet.buf;
              dataInfo.nLength    = packet.length;
              dataInfo.nPts       = packet.pts;
              dataInfo.nPcr       = packet.pcr;
              dataInfo.bIsFirstPart = (!!(packet.flags & FIRST_PART));
              dataInfo.bIsLastPart = (!!(packet.flags & LAST_PART));
              nRet = SubmitVideoStreamData(pVideoDec , &dataInfo, 0);
              if(nRet != 0){
                  printf(" parser thread  SubmitVideoStreamData() error\n");
                  pthread_rwlock_wrlock(&pDec->thread.rwrock);
                  pDec->thread.state |= DEMO_PARSER_ERROR;
                  pthread_rwlock_unlock(&pDec->thread.rwrock);
                  goto parser_exit;
              }
          }
      
          pthread_rwlock_wrlock(&pDec->thread.rwrock);
          pDec->thread.nEndofStream = 1;
          pDec->thread.state |= DEMO_PARSER_EXIT;
          pthread_rwlock_unlock(&pDec->thread.rwrock);
      
      parser_exit:
          if(buf)
              free(buf);
          decoderLog(" parser exit.....\n");
          pthread_exit(NULL);
          return 0;
      }
      
      void* DecodeThread(void* param)
      {
          DecDemo  *pVideoDecoder;
          VideoDecoder *pVideoDec;
          int nRet, nStreamNum, i, state;
          int nEndOfStream;
              int validNum = 0;
              VideoPicture *videoPicture = NULL;
              int dataLen = 0;
              char *decodeData = NULL;
              char savePath[128];
      
          pVideoDecoder = (DecDemo *)param;
          nEndOfStream = 0;
      
          pVideoDec = pVideoDecoder->pVideoDec;
          decoderLog(" DecodeThread(), thread created\n");
      
              /* get undecode data buffer number */
          i = 0;
          nStreamNum = VideoStreamFrameNum(pVideoDec, 0);
          while(nStreamNum < 200)
          {
              usleep(2*1000);
              i++;
              if(i > 100)
                  break;
              nStreamNum = VideoStreamFrameNum(pVideoDec, 0);
          }
          decoderLog(" data trunk number: %d, i = %d\n", nStreamNum, i);
      
              decoderLog(" DecodeThread() Decode Video Stream start ....\n");
              pVideoDecoder->nDecodeFrameCount = 0;
          while(1)
          {
              /* get stream data */
              usleep(50);
              pthread_rwlock_wrlock(&pVideoDecoder->thread.rwrock);
              nEndOfStream = pVideoDecoder->thread.nEndofStream;
              state = pVideoDecoder->thread.state;
              pthread_rwlock_unlock(&pVideoDecoder->thread.rwrock);
              if(state & DEMO_EXIT){
                  if(state & DEMO_ERROR)
                      printf(" decoer thread recieve an error singnal,  exit.....\n");
      
                  if(state & DEMO_DECODE_FINISH)
                      printf(" decoer thread recieve a finish singnal,  exit.....\n");
      
                  break;
              }
      
                      /* decode stream data */
              nRet = DecodeVideoStream(pVideoDec, nEndOfStream /*eos*/,
                      0/*key frame only*/, 0/*drop b frame*/,
                      0/*current time*/);
      
              if(nEndOfStream == 1 && nRet == VDECODE_RESULT_NO_BITSTREAM){
                  printf(" decoer thread finish decoding.  exit.....\n");
                  break;
              }
      
              if(nRet == VDECODE_RESULT_KEYFRAME_DECODED ||
                                      nRet == VDECODE_RESULT_FRAME_DECODED){
                  /* get decode data */
                              validNum = ValidPictureNum(pVideoDec, 0);
      
                              if(validNum >= 0 &&
                          pVideoDecoder->nSavePictureStartNumber <= pVideoDecoder->nDecodeFrameCount){
      
                      int saveNum = 0;
                      videoPicture = RequestPicture(pVideoDec, 0);
                      if (videoPicture == NULL) {
                          printf(" RequestPicture fail\n");
                          continue;
                      }
      
                                      dataLen = videoPicture->nWidth*videoPicture->nHeight*3/2;
                      decodeData = (char *)malloc(dataLen);
                      if(decodeData == NULL){
                          printf(" malloc decode data error\n");
                          return -1;
                      }
                      memcpy(decodeData, videoPicture->pData0, videoPicture->nWidth*videoPicture->nHeight);
                      memcpy(decodeData + videoPicture->nWidth*videoPicture->nHeight, videoPicture->pData1,videoPicture->nWidth*videoPicture->nHeight/2);
      
                      /* save picture data */
                      saveNum = pVideoDecoder->nDecodeFrameCount - pVideoDecoder->nSavePictureStartNumber;
                      memset(savePath, 0, sizeof(savePath));
                      sprintf(savePath, "%s/decode%s_%d_%d_%d.yuv", pVideoDecoder->pOutputFile,return_shortname(videoPicture->ePixelFormat),
                                                                      videoPicture->nWidth, videoPicture->nHeight, saveNum);
                      save_frame_to_file(savePath, decodeData, dataLen);
                      decoderLog(" save %s finish\n",savePath);
      
                      /* return picture */
                      ReturnPicture(pVideoDec, videoPicture);
      
                                      free(decodeData);
      
                      if(saveNum >= pVideoDecoder->nSavePictureNumber - 1){
                          decoderLog(" decoder thread finish\n");
                          break;
                      }
                  }else if(validNum >= 0){
                      videoPicture = RequestPicture(pVideoDec, 0);
                      if (videoPicture == NULL) {
                          printf(" RequestPicture fail\n");
                          continue;
                      }
                      ReturnPicture(pVideoDec, videoPicture);
                  }
      
                  pVideoDecoder->nDecodeFrameCount++;
              }
              if(nRet < 0){
                  printf(" decoder return error. decoder exit\n");
                  pthread_rwlock_wrlock(&pVideoDecoder->thread.rwrock);
                  pVideoDecoder->thread.state |= DEMO_DECODER_ERROR;
                  pthread_rwlock_unlock(&pVideoDecoder->thread.rwrock);
                  break;
              }
          }
      
          pthread_rwlock_wrlock(&pVideoDecoder->thread.rwrock);
          pVideoDecoder->thread.state |= DEMO_DECODER_EXIT;
          pthread_rwlock_unlock(&pVideoDecoder->thread.rwrock);
      
          decoderLog(" decoder thread exit....\n");
          pthread_exit(NULL);
          return 0;
      }
      
      
      int main(int argc, char **argv)
      {
          int nRet = 0;
          int i, nDramCostThreadNum;
          char pInputFile[128];
          char pOutputFile[128];
          pthread_t tparser, tdecoder;
          DecDemo Decoder;
          long long endTime;
      
              /* user setting */
          if(argc != 7){
              show_help();
              return -1;
          }
      
          memset(pInputFile, 0, sizeof(pInputFile));
          memset(pOutputFile, 0, sizeof(pOutputFile));
          if(strlen(argv[1] ) < 110){
              sprintf(pInputFile, "file://%s", argv[1]);
          }
          sprintf(pOutputFile, "%s", argv[2]);
      
          memset(&Decoder, 0, sizeof(DecDemo));
              Decoder.ScaleDownEn = atoi(argv[3]);
          Decoder.decode_format = return_format(argv[4]);
          if(Decoder.decode_format == 0){
              printf("*************************************************\n");
              printf(" Does not support %s\n", argv[4]);
              printf("*************************************************\n");
              return -1;
          }
      
          Decoder.nSavePictureStartNumber = atoi(argv[5]);
          Decoder.nSavePictureNumber = atoi(argv[6]);
      
          Decoder.pInputFile = pInputFile;
          Decoder.pOutputFile = pOutputFile;
      
          nRet = initDecoder(&Decoder);
          if(nRet != 0){
              decoderLog(" decoder demom initDecoder error\n");
              return -1;
          }
          decoderLog(" decoder input file: %s\n", Decoder.pInputFile);
          decoderLog(" decoder output directory: %s\n", Decoder.pOutputFile);
          decoderLog(" output pixel format: %s\n", return_shortname(Decoder.decode_format));
      
          Decoder.totalTime = GetNowUs();
      
          pthread_create(&tparser, NULL, parserThreadFunc, (void*)(&Decoder));
          pthread_create(&tdecoder, NULL, DecodeThread, (void*)(&Decoder));
      
          pthread_join(tparser, NULL);
          pthread_join(tdecoder, NULL);
      
          endTime = GetNowUs();
          Decoder.totalTime = endTime - Decoder.totalTime;
          decoderLog(" demoDecoder finish.decode frame: %d, cost %lld s\n",
                  Decoder.nDecodeFrameCount, Decoder.totalTime/(1000*1000));
          pthread_mutex_destroy(&Decoder.parserMutex);
          CdxParserClose(Decoder.parser);
          decoderLog(" after CdxParserClose()\n");
          DestroyVideoDecoder(Decoder.pVideoDec);
      
              CdcMemClose(Decoder.memops);
      }
      
      发布在 MR Series
      M
      memory
    • 回复: D1 哪吒解码视频文件测试

      4805f42e-5e9d-442a-a46c-c1565a7bf74e-image.png

      发布在 MR Series
      M
      memory
    • D1 哪吒解码视频文件测试

      ① 准备视频文件

      用 adb push binghe.mp4 /tmp 下载到系统

      ② 执行命令 decodertest /tmp/binghe.mp4 /tmp 0 NV21 2 100 解码100帧:

      root@TinaLinux:/# decodertest /tmp/binghe.mp4  /tmp 0 NV21 2 100
      WARNING: awplayer <cdx_log_set_level:30>: cdx Set log level to 6
      INFO   : cedarc <CedarPluginVDInit:79>: register h264 decoder success!
      INFO   : cedarc <CedarPluginVDInit:84>: register mjpeg decoder success!
      INFO   : cedarc <CedarPluginVDInit:86>: register mpeg2 decoder success!
      INFO   : cedarc <CedarPluginVDInit:92>: register mpeg4dx decoder success!
      INFO   : cedarc <CedarPluginVDInit:79>: register mpeg4H263 [18061.266585] VE: VE real_freq=576000000
      [18061.266585]
      decoder success!
      INFO   : cedarc <CedarPluginVDInit:90>: register mpeg4Normal decoder success!
      INFO   : cedarc <CedarPluginVDInit:74>: register vc1 decoder success!
      INFO   : cedarc <CedarPluginVDInit:85>: register h265 decoder success!
      INFO   : cedarc <VeInitialize:1307>: *** ic_version = 0x1301000010210,
       before strcpy(tmpUrl, url)
       before CdxParserPrepare() file:///tmp/binghe.mp4
       before CdxParserGetMediaInfo()
       before CreateVideoDecoder()
      INFO   : cedarc <log_set_level:43>: Set log level to 5 from /vendor/etc/cedarc.conf
      ERROR  : cedarc <DebugCheckConfig:301>: now cedarc log level:5
       before InitializeVideoDecoder()
       after InitializeVideoDecoder()
       initDecoder OK
       decoder input file: file:///tmp/binghe.mp4
       decoder output directory: /tmp
       output pixel format: NV21
       DecodeThread(), thread created
       parserThreadFunc(), thread created
       parser exit.....
       data trunk number: 182, i = 101
       DecodeThread() Decode Video Stream start ....
       RequestPicture fail
       save /tmp/decodeNV21_1280_720_0.yuv finish
       save /tmp/decodeNV21_1280_720_1.yuv finish
       save /tmp/decodeNV21_1280_720_2.yuv finish
       save /tmp/decodeNV21_1280_720_3.yuv finish
       save /tmp/decodeNV21_1280_720_4.yuv finish
       save /tmp/decodeNV21_1280_720_5.yuv finish
       save /tmp/decodeNV21_1280_720_6.yuv finish
       save /tmp/decodeNV21_1280_720_7.yuv finish
       save /tmp/decodeNV21_1280_720_8.yuv finish
       save /tmp/decodeNV21_1280_720_9.yuv finish
       save /tmp/decodeNV21_1280_720_10.yuv finish
       save /tmp/decodeNV21_1280_720_11.yuv finish
       save /tmp/decodeNV21_1280_720_12.yuv finish
       save /tmp/decodeNV21_1280_720_13.yuv finish
       save /tmp/decodeNV21_1280_720_14.yuv finish
       save /tmp/decodeNV21_1280_720_15.yuv finish
       save /tmp/decodeNV21_1280_720_16.yuv finish
       save /tmp/decodeNV21_1280_720_17.yuv finish
       save /tmp/decodeNV21_1280_720_18.yuv finish
       save /tmp/decodeNV21_1280_720_19.yuv finish
       save /tmp/decodeNV21_1280_720_20.yuv finish
       save /tmp/decodeNV21_1280_720_21.yuv finish
       save /tmp/decodeNV21_1280_720_22.yuv finish
       save /tmp/decodeNV21_1280_720_23.yuv finish
       save /tmp/decodeNV21_1280_720_24.yuv finish
       save /tmp/decodeNV21_1280_720_25.yuv finish
       save /tmp/decodeNV21_1280_720_26.yuv finish
       save /tmp/decodeNV21_1280_720_27.yuv finish
       save /tmp/decodeNV21_1280_720_28.yuv finish
       save /tmp/decodeNV21_1280_720_29.yuv finish
       save /tmp/decodeNV21_1280_720_30.yuv finish
       save /tmp/decodeNV21_1280_720_31.yuv finish
       save /tmp/decodeNV21_1280_720_32.yuv finish
       save /tmp/decodeNV21_1280_720_33.yuv finish
       save /tmp/decodeNV21_1280_720_34.yuv finish
       save /tmp/decodeNV21_1280_720_35.yuv finish
       save /tmp/decodeNV21_1280_720_36.yuv finish
       save /tmp/decodeNV21_1280_720_37.yuv finish
       save /tmp/decodeNV21_1280_720_38.yuv finish
       save /tmp/decodeNV21_1280_720_39.yuv finish
       save /tmp/decodeNV21_1280_720_40.yuv finish
       save /tmp/decodeNV21_1280_720_41.yuv finish
       save /tmp/decodeNV21_1280_720_42.yuv finish
       save /tmp/decodeNV21_1280_720_43.yuv finish
       save /tmp/decodeNV21_1280_720_44.yuv finish
       save /tmp/decodeNV21_1280_720_45.yuv finish
       save /tmp/decodeNV21_1280_720_46.yuv finish
       save /tmp/decodeNV21_1280_720_47.yuv finish
       save /tmp/decodeNV21_1280_720_48.yuv finish
       save /tmp/decodeNV21_1280_720_49.yuv finish
       save /tmp/decodeNV21_1280_720_50.yuv finish
       save /tmp/decodeNV21_1280_720_51.yuv finish
       save /tmp/decodeNV21_1280_720_52.yuv finish
       save /tmp/decodeNV21_1280_720_53.yuv finish
       save /tmp/decodeNV21_1280_720_54.yuv finish
       save /tmp/decodeNV21_1280_720_55.yuv finish
       save /tmp/decodeNV21_1280_720_56.yuv finish
       save /tmp/decodeNV21_1280_720_57.yuv finish
       save /tmp/decodeNV21_1280_720_58.yuv finish
       save /tmp/decodeNV21_1280_720_59.yuv finish
       save /tmp/decodeNV21_1280_720_60.yuv finish
       save /tmp/decodeNV21_1280_720_61.yuv finish
       save /tmp/decodeNV21_1280_720_62.yuv finish
       save /tmp/decodeNV21_1280_720_63.yuv finish
       save /tmp/decodeNV21_1280_720_64.yuv finish
       save /tmp/decodeNV21_1280_720_65.yuv finish
       save /tmp/decodeNV21_1280_720_66.yuv finish
       save /tmp/decodeNV21_1280_720_67.yuv finish
       save /tmp/decodeNV21_1280_720_68.yuv finish
       save /tmp/decodeNV21_1280_720_69.yuv finish
       save /tmp/decodeNV21_1280_720_70.yuv finish
       save /tmp/decodeNV21_1280_720_71.yuv finish
       save /tmp/decodeNV21_1280_720_72.yuv finish
       save /tmp/decodeNV21_1280_720_73.yuv finish
       save /tmp/decodeNV21_1280_720_74.yuv finish
       save /tmp/decodeNV21_1280_720_75.yuv finish
       save /tmp/decodeNV21_1280_720_76.yuv finish
       save /tmp/decodeNV21_1280_720_77.yuv finish
       save /tmp/decodeNV21_1280_720_78.yuv finish
       save /tmp/decodeNV21_1280_720_79.yuv finish
       save /tmp/decodeNV21_1280_720_80.yuv finish
       save /tmp/decodeNV21_1280_720_81.yuv finish
       save /tmp/decodeNV21_1280_720_82.yuv finish
       save /tmp/decodeNV21_1280_720_83.yuv finish
       save /tmp/decodeNV21_1280_720_84.yuv finish
       save /tmp/decodeNV21_1280_720_85.yuv finish
       save /tmp/decodeNV21_1280_720_86.yuv finish
       save /tmp/decodeNV21_1280_720_87.yuv finish
       save /tmp/decodeNV21_1280_720_88.yuv finish
       save /tmp/decodeNV21_1280_720_89.yuv finish
       save /tmp/decodeNV21_1280_720_90.yuv finish
       save /tmp/decodeNV21_1280_720_91.yuv finish
       save /tmp/decodeNV21_1280_720_92.yuv finish
       save /tmp/decodeNV21_1280_720_93.yuv finish
       save /tmp/decodeNV21_1280_720_94.yuv finish
       save /tmp/decodeNV21_1280_720_95.yuv finish
       save /tmp/decodeNV21_1280_720_96.yuv finish
       save /tmp/decodeNV21_1280_720_97.yuv finish
       save /tmp/decodeNV21_1280_720_98.yuv finish
       save /tmp/decodeNV21_1280_720_99.yuv finish
       decoder thread finish
       decoder thread exit....
       demoDecoder finish.decode frame: 101, cost 1 s
       after CdxParserClose()
      root@TinaLinux:/#
      

      ③ 获取yuv文件到电脑:adb pull /tmp/decodeNV21_1280_720_99.yuv
      6de3a875-ba9b-4a6f-a7e9-384e9865f911-image.png

      ④ 打开 https://rawpixels.net/ 显示文件:
      2f220537-cad1-4f0a-ab81-e8151a7fc89b-image.png

      发布在 MR Series
      M
      memory
    • 回复: 哪吒开发板D1,适配鸿蒙系统init的进程无法启动

      /init 执行失败,可能依赖的 libc.so.* 文件版本不对,

      解决方案: 用编译rootfs的gcc编译其他app。

      发布在 MR Series
      M
      memory
    • 回复: 请问大家 D1 的 TV 输出可以用吗?

      tina 1.0
      tina 1.0.1
      tina 2.0

      都是这种情况,围观群众先散了吧。

      发布在 MR Series
      M
      memory
    • 回复: 请问大家 D1 的 TV 输出可以用吗?

      修改 device/config/chips/d1-h/configs/nezha/linux-5.4/config-5.4

      勾选:

      CONFIG_TV_DISP2_SUNXI=y

      发现编译都过不了:

      make[4]: Entering directory '/opt/D1/tina_d1_open_v2/lichee/linux-5.4'
        INSTALL /opt/D1/tina_d1_open_v2/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/linux-5.4.61/user_headers/include
      make[4]: Leaving directory '/opt/D1/tina_d1_open_v2/lichee/linux-5.4'
      . /opt/D1/tina_d1_open_v2/build/shell.sh; grep '=[ym]' /opt/D1/tina_d1_open_v2/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/linux-5.4.61/.config.set | LC_ALL=C sort | md5s > /opt/D1/tina_d1_open_v2/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/linux-5.4.61/.vermagic
      touch /opt/D1/tina_d1_open_v2/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/linux-5.4.61/.configured
      rm -f /opt/D1/tina_d1_open_v2/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/symtab.h
      touch /opt/D1/tina_d1_open_v2/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/symtab.h
      make -C /opt/D1/tina_d1_open_v2/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/linux-5.4.61 HOSTCFLAGS="-O2 -I/opt/D1/tina_d1_open_v2/out/host/include -I/opt/D1/tina_d1_open_v2/out/host/usr/include  -Wall -Wmissing-prototypes -Wstrict-prototypes" CROSS_COMPILE="riscv64-unknown-linux-gnu-" ARCH="riscv" KBUILD_HAVE_NLS=no KBUILD_BUILD_USER="" KBUILD_BUILD_HOST="" CONFIG_SHELL="bash" V=''  EXTRA_LDSFLAGS="-I/opt/D1/tina_d1_open_v2/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha -include symtab.h" CC="riscv64-unknown-linux-gnu-gcc" vmlinux
      make[4]: Entering directory '/opt/D1/tina_d1_open_v2/lichee/linux-5.4'
      scripts/Makefile.asm-generic:25: redundant generic-y found in arch/riscv/include/asm/Kbuild: device.h
        CALL    scripts/checksyscalls.sh
        CALL    scripts/atomic/check-atomics.sh
        CHK     include/generated/compile.h
        CC      drivers/video/fbdev/sunxi/disp2/tv/drv_tv.o
      In file included from drivers/video/fbdev/sunxi/disp2/tv/drv_tv.c:15:
      drivers/video/fbdev/sunxi/disp2/tv/drv_tv.h:15:10: fatal error: asm/memory.h: No such file or directory
       #include <asm/memory.h>
                ^~~~~~~~~~~~~~
      compilation terminated.
      scripts/Makefile.build:286: recipe for target 'drivers/video/fbdev/sunxi/disp2/tv/drv_tv.o' failed
      make[9]: *** [drivers/video/fbdev/sunxi/disp2/tv/drv_tv.o] Error 1
      scripts/Makefile.build:556: recipe for target 'drivers/video/fbdev/sunxi/disp2/tv' failed
      make[8]: *** [drivers/video/fbdev/sunxi/disp2/tv] Error 2
      scripts/Makefile.build:556: recipe for target 'drivers/video/fbdev/sunxi' failed
      make[7]: *** [drivers/video/fbdev/sunxi] Error 2
      scripts/Makefile.build:556: recipe for target 'drivers/video/fbdev' failed
      make[6]: *** [drivers/video/fbdev] Error 2
      scripts/Makefile.build:556: recipe for target 'drivers/video' failed
      make[5]: *** [drivers/video] Error 2
      Makefile:1810: recipe for target 'drivers' failed
      make[4]: *** [drivers] Error 2
      make[4]: Leaving directory '/opt/D1/tina_d1_open_v2/lichee/linux-5.4'
      Makefile:28: recipe for target '/opt/D1/tina_d1_open_v2/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/symtab.h' failed
      make[3]: *** [/opt/D1/tina_d1_open_v2/out/d1-h-nezha/compile_dir/target/linux-d1-h-nezha/symtab.h] Error 2
      make[3]: Leaving directory '/opt/D1/tina_d1_open_v2/target/allwinner/d1-h-nezha'
      Makefile:13: recipe for target 'install' failed
      make[2]: *** [install] Error 2
      make[2]: Leaving directory '/opt/D1/tina_d1_open_v2/target/allwinner'
      target/Makefile:21: recipe for target 'target/allwinner/install' failed
      make[1]: *** [target/allwinner/install] Error 2
      make[1]: Leaving directory '/opt/D1/tina_d1_open_v2'
      /opt/D1/tina_d1_open_v2/build/toplevel.mk:304: recipe for target 'target/allwinner/install' failed
      make: *** [target/allwinner/install] Error 2
      
      #### make failed to build some targets (47 seconds) ####
      
      memory@ubuntu:/opt/D1/tina_d1_open_v2$
      

      TV OUT 支持应该是不行的。

      发布在 MR Series
      M
      memory
    • 请问大家 D1 的 TV 输出可以用吗?

      tina 1.0

      执行

      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;

      出错:

      root@TinaLinux:/sys/kernel/debug/dispdbg#
      root@TinaLinux:/sys/kernel/debug/dispdbg#
      root@TinaLinux:/sys/kernel/debug/dispdbg# cd /sys/kernel/debug/dispdbg
      root@TinaLinux:/sys/kernel/debug/dispdbg# echo disp0 > name; echo switch1 > comm
      and; echo 4 10 0 0 0x4 0x101 0 0 0 8 > param; echo 1 > start;
      [ 1262.544174] disp:0 type:4 mode:10 format:0 bits:0 eotf:4 cs:257 ouputmode:0 range:0 scan:0 aspect_ratio:8
      [ 1262.655370] ------------[ cut here ]------------
      [ 1262.660521] tcon-tv already disabled
      [ 1262.664547] WARNING: CPU: 0 PID: 125 at drivers/clk/clk.c:960 clk_core_disable+0x80/0x84
      [ 1262.673566] Modules linked in: xt_time xt_multiport xt_mark xt_mac xt_limit xt_comment xt_TCPMSS xt_LOG xr829 iptable_filter ipt_REJECT uvcvideo videobuf2_vmalloc videobuf2_memops fuse
      [ 1262.691919] CPU: 0 PID: 125 Comm: ash Tainted: G        W         5.4.61 #376
      [ 1262.699872] sepc: ffffffe0002ad182 ra : ffffffe0002ad182 sp : ffffffe03bdebbf0
      [ 1262.707921]  gp : ffffffe0008d332c tp : ffffffe03d86eb80 t0 : ffffffe0008e1ad0
      [ 1262.715970]  t1 : 0000000000000064 t2 : 0000000000000000 s0 : ffffffe03bdebc10
      [ 1262.724019]  s1 : ffffffe03d805900 a0 : 0000000000000018 a1 : 000000000000000a
      [ 1262.732068]  a2 : 000000000000010c a3 : ffffffe000840ea0 a4 : ffffffe000840e08
      [ 1262.740118]  a5 : 0000000000000001 a6 : 00000000000001e2 a7 : 0000000000000000
      [ 1262.748167]  s2 : ffffffe03d805900 s3 : ffffffe03ceba800 s4 : ffffffe03d9ce800
      [ 1262.756214]  s5 : ffffffe03ce8ad00 s6 : ffffffe03bdebe98 s7 : 0000000000000007
      [ 1262.764262]  s8 : 0000000000000000 s9 : 0000000029a03d50 s10: ffffffffffffffff
      [ 1262.772311]  s11: 000000000000002d t3 : ffffffe0008dcb00 t4 : 0000000000001df8
      [ 1262.780359]  t5 : 0000000000001df8 t6 : ffffffe0008dd07f
      [ 1262.786276] sstatus: 0000000200000100 sbadaddr: 0000000000000000 scause: 0000000000000003
      [ 1262.795389] ---[ end trace 999517c0954d9de5 ]---
      [ 1262.800969] ------------[ cut here ]------------
      [ 1262.806237] tcon-tv already unprepared
      [ 1262.810578] WARNING: CPU: 0 PID: 125 at drivers/clk/clk.c:819 clk_core_unprepare+0xb4/0xce
      [ 1262.820017] Modules linked in: xt_time xt_multiport xt_mark xt_mac xt_limit xt_comment xt_TCPMSS xt_LOG xr829 iptable_filter ipt_REJECT uvcvideo videobuf2_vmalloc videobuf2_memops fuse
      [ 1262.838654] CPU: 0 PID: 125 Comm: ash Tainted: G        W         5.4.61 #376
      [ 1262.846722] sepc: ffffffe0002ad0e8 ra : ffffffe0002ad0e8 sp : ffffffe03bdebc00
      [ 1262.855046]  gp : ffffffe0008d332c tp : ffffffe03d86eb80 t0 : 0000000000000000
      [ 1262.863199]  t1 : 0000000001806000 t2 : 0000000000000000 s0 : ffffffe03bdebc20
      [ 1262.871444]  s1 : ffffffe03d805900 a0 : 000000000000001a a1 : ffffffe03d86eb80
      [ 1262.879616]  a2 : 0000000000000890 a3 : ffffffe00083ff40 a4 : ffffffe000840e08
      [ 1262.887932]  a5 : 0000000000000000 a6 : 00000000000100ce a7 : 0000000000000065
      [ 1262.896096]  s2 : ffffffe03ceba400 s3 : ffffffe03ceba800 s4 : ffffffe03d9ce800
      [ 1262.904411]  s5 : ffffffe03ce8ad00 s6 : ffffffe03bdebe98 s7 : 0000000000000007
      [ 1262.912512]  s8 : 0000000000000000 s9 : 0000000029a03d50 s10: ffffffffffffffff
      [ 1262.920818]  s11: 000000000000002d t3 : 0000003fd042dcc0 t4 : 0000000000000000
      [ 1262.929098]  t5 : 0000000000000008 t6 : 0000000000040000
      [ 1262.935306] sstatus: 0000000200000120 sbadaddr: 0000000000000000 scause: 0000000000000003
      [ 1262.944520] ---[ end trace 999517c0954d9de6 ]---
      [ 1262.949873] ------------[ cut here ]------------
      [ 1262.955024] bus-tcon-tv already disabled
      [ 1262.959436] WARNING: CPU: 0 PID: 125 at drivers/clk/clk.c:960 clk_core_disable+0x80/0x84
      [ 1262.968455] Modules linked in: xt_time xt_multiport xt_mark xt_mac xt_limit xt_comment xt_TCPMSS xt_LOG xr829 iptable_filter ipt_REJECT uvcvideo videobuf2_vmalloc videobuf2_memops fuse
      [ 1262.986810] CPU: 0 PID: 125 Comm: ash Tainted: G        W         5.4.61 #376
      [ 1262.994762] sepc: ffffffe0002ad182 ra : ffffffe0002ad182 sp : ffffffe03bdebbf0
      [ 1263.002811]  gp : ffffffe0008d332c tp : ffffffe03d86eb80 t0 : ffffffe0008e2720
      [ 1263.010860]  t1 : 0000000000000064 t2 : 0000000000000000 s0 : ffffffe03bdebc10
      [ 1263.018910]  s1 : ffffffe03d805b00 a0 : 000000000000001c a1 : 000000000000000a
      [ 1263.026958]  a2 : 0000000000000139 a3 : ffffffe000840ea0 a4 : ffffffe000840e08
      [ 1263.035004]  a5 : 0000000000000001 a6 : 0000000000000206 a7 : 0000000000000000
      [ 1263.043052]  s2 : ffffffe03d805b00 s3 : ffffffe03ceba800 s4 : ffffffe03d9ce800
      [ 1263.051101]  s5 : ffffffe03ce8ae00 s6 : ffffffe03bdebe98 s7 : 0000000000000007
      [ 1263.059148]  s8 : 0000000000000000 s9 : 0000000029a03d50 s10: ffffffffffffffff
      [ 1263.067197]  s11: 000000000000002d t3 : ffffffe0008dcb00 t4 : 00000000000011b0
      [ 1263.075245]  t5 : 00000000000011b0 t6 : ffffffe0008dd083
      [ 1263.081162] sstatus: 0000000200000100 sbadaddr: 0000000000000000 scause: 0000000000000003
      [ 1263.090277] ---[ end trace 999517c0954d9de7 ]---
      [ 1263.099349] ------------[ cut here ]------------
      [ 1263.104618] bus-tcon-tv already unprepared
      [ 1263.109450] WARNING: CPU: 0 PID: 125 at drivers/clk/clk.c:819 clk_core_unprepare+0xb4/0xce
      [ 1263.118793] Modules linked in: xt_time xt_multiport xt_mark xt_mac xt_limit xt_comment xt_TCPMSS xt_LOG xr829 iptable_filter ipt_REJECT uvcvideo videobuf2_vmalloc videobuf2_memops fuse
      [ 1263.137506] CPU: 0 PID: 125 Comm: ash Tainted: G        W         5.4.61 #376
      [ 1263.145566] sepc: ffffffe0002ad0e8 ra : ffffffe0002ad0e8 sp : ffffffe03bdebc00
      [ 1263.162959]  gp : ffffffe0008d332c tp : ffffffe03d86eb80 t0 : 0000000000000000
      [ 1263.181267]  t1 : 0000000001806000 t2 : 0000000000000000 s0 : ffffffe03bdebc20
      [ 1263.191410]  s1 : ffffffe03d805b00 a0 : 000000000000001e a1 : ffffffe03d86eb80
      [ 1263.211686]  a2 : 0000000000000890 a3 : ffffffe00083ff40 a4 : ffffffe000840e08
      [ 1263.223073]  a5 : 0000000000000000 a6 : 00000000000100ce a7 : 0000000000000065
      [ 1263.231128]  s2 : ffffffe03ceba400 s3 : ffffffe03ceba800 s4 : ffffffe03d9ce800
      [ 1263.257502]  s5 : ffffffe03ce8ae00 s6 : ffffffe03bdebe98 s7 : 0000000000000007
      [ 1263.265774]  s8 : 0000000000000000 s9 : 0000000029a03d50 s10: ffffffffffffffff
      [ 1263.274004]  s11: 000000000000002d t3 : 0000003fd042dcc0 t4 : 0000000000000000
      [ 1263.282199]  t5 : 0000000000000008 t6 : 0000000000040000
      [ 1263.288299] sstatus: 0000000200000120 sbadaddr: 0000000000000000 scause: 0000000000000003
      [ 1263.297616] ---[ end trace 999517c0954d9de8 ]---
      [ 1263.322998] [HDMI receive params]: tv mode: 0xa format:0x0 data bits:0x0 eotf:0x4 cs:0x101 dvi_hdmi:2 range:0 scan:0 aspect_ratio:8
      [ 1264.402987] disp_al_manager_apply ouput_type:0
      [ 1264.408371] disp_al_hdmi_cfg
      [ 1264.523781] HDMI Audio Enable Successfully
      [ 1264.528533] [DISP] disp_device_attached_and_enable,line:233:
      [ 1264.528539] attached ok, mgr0<-->dev0
      [ 1264.539215] [DISP] disp_device_attached_and_enable,line:236:
      [ 1264.539226] type:4,mode:10,fmt:rgb,bits:8bits,eotf:4,cs:257 dvi_hdmi:2, range:0 scan:0 ratio:8
      root@TinaLinux:/sys/kernel/debug/dispdbg#
      
      发布在 MR Series
      M
      memory
    • 回复: SIPEED Lichee RV DOCK 全志D1开发板

      运行下面的命令行,显示切换到 HDMI :

      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;
      

      查看disp信息:

      # cat /sys/class/disp/disp/attr/sys
      screen 0:
      de_rate 300000000 hz, ref_fps:60
      mgr0: 1920x1080 fmt[rgb] cs[0x101] range[limit] eotf[0x4] bits[8bits] err[0] force_sync[0] unblank direct_show[false] iommu[1]
      dmabuf: cache[0] cache max[0] umap skip[0] overflow[0]
              hdmi output mode(10)    fps:60.6        1920x1080
              err:1   skip:217        irq:351130      vsync:0 vsync_skip:0
      
      BUF    enable ch[0] lyr[0] z[0] prem[N] a[pixel   0] fmt[ 77] fb[1280, 736; 640, 368; 640, 368] crop[   0,   0,1280, 720] frame[   0,   0,1920,1080] addr[fe000000,fe0e6000,fe11f800] flags[0x       0] trd[0,0]
      depth[ 0]    
      
      BUF    enable ch[1] lyr[0] z[16] prem[N] a[pixel 255] fmt[  0] fb[ 800, 480; 800, 480; 800, 480] crop[   0,   0, 800, 480] frame[   0,   0, 800, 480] addr[ffc00000,       0,       0] flags[0x       0] trd[0,0]
      depth[ 0] 
      

      查看声卡:

      # cat /proc/asound/cards
       0 [audiocodec     ]: audiocodec - audiocodec
                            audiocodec
       1 [snddmic        ]: snddmic - snddmic
                            snddmic
       2 [sndhdmi        ]: sndhdmi - sndhdmi
                            sndhdmi
      

      噪声从HDMI显示屏输出:

      aplay -D hw:sndhdmi -f S16_LE -c 2 -r 48000 /dev/urandom
      

      播放视频:

      tplayerdemo /tmp/x.mp4
      
      发布在 MR Series
      M
      memory
    • 淘宝这个 A133 开发板有没有朋友玩过?

      https://item.taobao.com/item.htm?id=666468579635

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: Sipeed Lichee RV 86 Panel 智能家居 中控开发板 支持Linux WAFT

      发现一个比较棘手的问题,

      如果 ST7701s LCD 在 uboot 初始化,那么颜色对不上,而且几乎所有像素点都在抖动,

      而且进入Linux之后一直保持这个状态。

      但是进入Linux之后用命令行对 LCD进行重新初始化:

      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
      

      那么LCD也正常了,百思不得其解。

      参考: 整理一些 D1 / D1s 的 DisplayEngine / LCD / HDMI 常用骚操作
      https://whycan.com/t_7726.html#p73690

      发布在 MR Series
      M
      memory
    • 回复: 搭建了一个 Tina 的 opkg 仓库,软件包逐渐完善中

      是不是要同一个编译器版本编译的 ipk才能正常安装运行?

      发布在 MR Series
      M
      memory
    • 回复: 全志 A50 / A100 /A133 SDK 新增驱动配置

      FT系列:ft6336 应该用 ft6x_ts.ko 驱动

      源码目录:longan/kernel/linux-4.9/drivers/input/touchscreen/ft6x/

      发布在 其它全志芯片讨论区
      M
      memory
    • 全志 A50 / A100 /A133 SDK 新增驱动配置

      一、 LCM

      在LCD源码目录(看第三章)下拷贝现有一个屏驱动,根据屏接口类型(LVDS,DSI,RGB等)选择一个合适模板。

      1. 如果是LVDS接口和不需要初始化命令的RGB接口的屏,那么可以直接用default_panel.c驱动即可,不需要新增文件,在sys_config.fex中修改lcd_driver_name为default_lcd,然后根据屏手册修改其它时序参数。如果是DSI接口,可以参考inet_dsi_panel.c或者WilliamLCD.c;如果是I8080接口(mcu接口或者cpu接口)可以参考cpu_gg1p4062utsw.c。

      2. 如果需要新增文件,那么选择好模板文件之后,修改strcut __lcd_panel变量的名字,以及这个变量成员name的名字,这个名字必须和sys_config.fex中[lcd0]的lcd_driver_name一致。

      3. 修改panel.c和panel.h。在全局结构体变量panel_array中新增刚才添加strcut __lcd_panel的变量指针。panel.h中新增strcut __lcd_panel的声明。

      4. 修改Makefile。在lcd屏驱动目录的上一级在disp-objs中新增刚才添加屏驱动.o5.以上步骤,也必须在uboot(看第三章)中完成,否则将无法在一秒内显示logo,uboot显示驱动的源码组织架构和api和内核的一致。

         add new lcd WilliamLcd_boe9881
      
      aosp/longan/brandy/brandy-1.0/brandy/u-boot-2014.07/drivers/video/sunxi/disp2/disp/Makefile
      aosp/longan/brandy/brandy-1.0/brandy/u-boot-2014.07/drivers/video/sunxi/disp2/disp/lcd/WilliamLcd_boe9881.c
      aosp/longan/brandy/brandy-1.0/brandy/u-boot-2014.07/drivers/video/sunxi/disp2/disp/lcd/panels.c
      aosp/longan/brandy/brandy-1.0/brandy/u-boot-2014.07/drivers/video/sunxi/disp2/disp/lcd/panels.h
      aosp/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/Makefile
      aosp/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/lcd/WilliamLcd_boe9881.c
      aosp/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/lcd/panels.c
      aosp/longan/kernel/linux-4.9/drivers/video/fbdev/sunxi/disp2/disp/lcd/panels.h
      

      二 、TP

      FT系列:ft5202,ft5204,ft5316,ft5x06(共用一个驱动,ft5x_ts.ko);源码目录:longan/kernel/linux-4.9/drivers/input/touchscreen/ftxxxx。

      Goodix系列: gt813,gt827,gt828(gt82x.ko),源码目录:longan/kernel/linux-4.9/drivers/input/touch-screen。

      Goodix gt9xx系列: 以gt9xx系列中带flash的触摸IC可以在此驱动中添加支持,源码目录:longan/kernel/linux-4.9/drivers/input/touchscreen/gt9xxnew。

      gsl系列:gsl1680,gsl2681,gsl1688,gsl1680e(gslX680.ko),驱动源文件目录:longan/kernel/linux-4.9/drivers/input/touchscreen/gslx680new;

          add new tp gsl1680_101_boe9881
       
      aosp/longan/kernel/linux-4.9/drivers/input/touchscreen/gslx680new/gsl1680_101_boe9881.h
      aosp/longan/kernel/linux-4.9/drivers/input/touchscreen/gslx680new/gslX680.c
      

      三、 摄像头

      1 复制hal文件,hal文件名对应isp_ini_parse.c前面的include部分,hal文件尾部结构名gc5025_yongjing_isp_cfg对应isp_ini_parse.c中间的引用的名字。

      2 复制驱动文件,修改SENSOR_NAME为isp_ini_parse.c中引用的名字。Makefile和Kconfig中分别加宏控以便defconfig调用。

          add camera: gc5025_yongjing
       
      aosp/android/hardware/aw/camera/3_4/allwinnertech/libAWIspApi/libisp_new/isp_cfg/SENSOR_H/gc5025_yongjing.h
      aosp/android/hardware/aw/camera/3_4/allwinnertech/libAWIspApi/libisp_new/isp_cfg/isp_ini_parse.c
      aosp/longan/kernel/linux-4.9/drivers/media/platform/sunxi-vin/Kconfig
      aosp/longan/kernel/linux-4.9/drivers/media/platform/sunxi-vin/modules/sensor/Makefile
      aosp/longan/kernel/linux-4.9/drivers/media/platform/sunxi-vin/modules/sensor/gc5025_yongjing.c
      

      ————————————————

      原文链接:https://blog.csdn.net/leslie3350/article/details/107044039

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: D1 uart2功能可以用在PD1和PC1引脚上吗?

      感觉和芯片的内部实现有关系,要测试才知道行不行。

      发布在 MR Series
      M
      memory
    • 回复: Win32 用 FASTBOOT 烧写 A100 eMMC

      40254869-a377-42fe-bd91-25f505604946-image.png

      3bc7baef-b330-4510-b920-414a68631b25-image.png
      a1db2794-fd48-43a2-80a3-f7b8db759dfa-18b5517d324f249ad025f12f085d203.png

      发布在 编译和烧写问题专区
      M
      memory
    • Win32 用 FASTBOOT 烧写 A100 eMMC

      ① 准备 fastboot_and_usbdriver.zip

      ② 电脑USB连接A100 otg,

      ③ A100 按住 s 上电进入 uboot 命令行,输入 fastboot 命令

      ④ 电脑出现一个 Android Phone 的USB设备则以驱动,如果未驱动则安装①里面的usbdriver

      ⑤ 电脑运行① fastboot.exe 命令:
      1) 列设备: fastboot devices
      2)擦除eMMC分区: fastboot erase xxxx (分区名)
      3)烧录文件到eMMC分区: fastboot flash xxx yyyy (xxxx是分区名,yyyy是文件名)
      4)重启: fastboot reboot

      发布在 编译和烧写问题专区
      M
      memory
    • 回复: 请问 D1 启动出现 GPT 错误是什么问题呢?

      5aca73ca-45b0-42b0-9db5-1e8c978897d7-b4ac737a9e1460e259e2a56dbf5a660.png

      找到问题了,后面那三个分区全是 rootfs, 无脑复制粘贴引起的。

      发布在 MR Series
      M
      memory
    • 回复: 请问 PhoenixCard 烧卡软件的 【量产卡】与 【启动卡】菜单有什么区别呢?

      刷完重启, Android正常,初步判断就是哪吒 u-boot 的 mmc 命令未实现导致量产卡失败?

      发布在 编译和烧写问题专区
      M
      memory
    • 回复: 请问 PhoenixCard 烧卡软件的 【量产卡】与 【启动卡】菜单有什么区别呢?

      既然 D1 哪吒不行,那试一试 A100:

      8fe66baf-19e4-41dc-af9e-d409822b38a3-FN.jpg

      6bb95198-aa35-4b03-a980-801f017a8332-01NT7JQ6[])JKO$1UU9T4BM.png

      插入TF卡上电开始自动烧录:
      dd42a565-6428-41d4-8d44-1dfaec718d65-F91837E3588FCDDA34A39A7853CFEF55.jpg

      串口日志:

      [88]HELLO! BOOT0 is starting!
      [91]BOOT0 commit : dc54be6
      [94]set pll start
      [95]periph0 has been enabled
      [99]set pll end
      [100][pmu]: bus read error
      [103][pmu]: bus read error
      [111]vaild para:1  select dram para0
      [114]board init ok
      [116]DRAM BOOT DRIVE INFO: V0.19
      [120]the chip id is 0x2400
      [122]the chip id is 0x2400
      [125]the chip id is 0x2400
      [128]the chip id is 0x2400
      [130]the chip id is 0x2400
      [133]chip id check OK
      [135]DRAM_VCC set to 1100 mv
      [168]DRAM retraining ten
      [174][AUTO DEBUG]32bit,1 ranks training success!
      [185]DRAM CLK =792 MHZ
      [187]DRAM Type =8 (3:DDR3,4:DDR4,7:LPDDR3,8:LPDDR4)
      [195]DRAM SIZE =1024 MBytes, para1 = 30fa, para2 = 4000000, dram_tpr13 = 6063
      [207]DRAM simple test OK.
      [210]dram size =1024
      [212]chipid = 53002400
      [214]nsi init ok 2020-4-7
      [217]card no is 0
      [219]sdcard 0 line count 4
      [222][mmc]: mmc driver ver 2020-05-25 09:40
      [232][mmc]: Wrong media type 0x0
      [235][mmc]: ***Try SD card 0***
      [255]mmc_read_info 748:region magic is not right, retry more time 0
      [273]mmc_read_info 748:region magic is not right, retry more time 0
      [290]mmc_read_info 748:region magic is not right, retry more time 0
      [308]mmc_read_info 748:region magic is not right, go err 0
      [314]dump info registers:[316]
      0x29b7c : [318]0 [318]0 [319]0 [320]0 [320]
      0x29b8c : [322]0 [323]0 [323]0 [324]0 [325]
      0x29b9c : [326]0 [327]0 [327]0 [328]0 [329]
      0x29bac : [330]0 [331]0 [332]0 [332]0 [333]
      0x29bbc : [335]0 [335]0 [336]0 [337]0 [337]
      0x29bcc : [339]0 [340]0 [340]0 [341]0 [342]
      0x29bdc : [343]0 [344]0 [345]0 [345]0 [346]
      0x29bec : [348]0 [348]0 [349]0 [350]0 [350]
      0x29bfc : [352]0 [353]0 [353]0 [354]0 [355]
      0x29c0c : [356]0 [357]0 [358]0 [358]0 [359]
      0x29c1c : [360]0 [361]0 [362]0 [362]0 [363]
      0x29c2c : [365]0 [365]0 [366]0 [367]0 [367]
      0x29c3c : [369]0 [370]0 [370]0 [371]0 [372]
      0x29c4c : [373]0 [374]0 [375]0 [375]0 [376]
      0x29c5c : [378]0 [378]0 [379]0 [380]0 [380]
      0x29c6c : [382]0 [383]0 [383]0 [384]0 [385]
      0x29c7c : [386]0 [387]0 [388]0 [388]0 [389]
      0x29c8c : [390]0 [391]0 [392]0 [392]0 [393]
      0x29c9c : [395]0 [395]0 [396]0 [397]0 [397]
      0x29cac : [399]0 [400]0 [400]0 [401]0 [402]
      0x29cbc : [403]0 [404]0 [405]0 [405]0 [406]
      0x29ccc : [408]0 [408]0 [409]0 [410]0 [410]
      0x29cdc : [412]0 [413]0 [413]0 [414]0 [415]
      0x29cec : [416]0 [417]0 [418]0 [418]0 [419]
      0x29cfc : [421]0 [421]0 [422]0 [423]0 [423]
      0x29d0c : [425]0 [425]0 [426]0 [427]0 [427]
      0x29d1c : [429]0 [430]0 [430]0 [431]0 [432]
      0x29d2c : [433]0 [434]0 [435]0 [435]0 [436]
      0x29d3c : [438]0 [438]0 [439]0 [440]0 [440]
      0x29d4c : [442]0 [443]0 [443]0 [444]0 [445]
      0x29d5c : [446]0 [447]0 [448]0 [448]0 [449]
      0x29d6c : [451]0 [451]0 [452]0 [453]0 [453]
      [454][mmc]: RMCA FAIL!
      [456][mmc]: mmc read timing info fail
      [460][mmc]: sdc0 spd mode error, 2
      [463][mmc]: mmc 0 bias 0
      [468][mmc]: HSSDR52/SDR25 4 bit
      [471][mmc]: 50000000 Hz
      [473][mmc]: 30264 MB
      [475][mmc]: ***SD/MMC 0 init OK!!!***
      [550]Loading boot-pkg Succeed(index=0).
      [554]Entry_name        = u-boot
      [561]Entry_name        = monitor
      [564]Entry_name        = scp
      [573]set arisc reset to de-assert state
      [576]Entry_name        = dtb
      [580]Jump to second Boot.
      NOTICE:  BL3-1: v1.0(debug):cc1f5d7
      NOTICE:  BL3-1: Built : 10:23:25, 2020-04-08
      NOTICE:  BL3-1 commit: 8
      ERROR:   Error initializing runtime service tspd_fast
      NOTICE:  BL3-1: Preparing for EL3 exit to normal world
      NOTICE:  BL3-1: Next image address = 0x4a000000
      ▒OTICE:  BL3-1: Next image spsr = 0x1d3
      
      U-Boot 2018.05 (Feb 07 2022 - 22:08:09 +0800) Allwinner Technology
      
      [00.621]CPU:   Allwinner Family
      [00.624]Model: sun50iw10
      I2C:   ready
      [00.874]DRAM:  1 GiB
      [00.877]Relocation Offset is: 35f17000
      [00.906]secure enable bit: 0
      [00.910][ARISC] :arisc initialize
      [00.915][ARISC ERROR] :get [allwinner,sunxi-hwspinlock] device node error
      CACHE: Misaligned operation at range [7ffa72a0, 7ffa75b8]
      [00.926][ARISC] :arisc para ok
      [SCP] :sunxi-arisc driver begin startup 2
      [SCP] :0x1
      [SCP] :arisc version: []
      [SCP] :arisc startup ready
      [SCP] :arisc startup notify message feedback
      [SCP] :send hard sync feedback message: 0x900200
      [SCP] :sunxi-arisc driver v1.10 is starting
      [00.953][ARISC] :sunxi-arisc driver startup succeeded
      [00.958]pmu_axp81X_probe pmic_bus_read fail
      [00.962]pmu_axp858_probe pmic_bus_read fail
      [00.966]PMU: no found
      [00.968]CPU=1008 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz  MBus=400Mhz
      [00.975]init_clocks:finish
      [00.977]drv_disp_init
      request pwm success, pwm8:pwm8:0x300a000.
      pwm_request: err:this pwm has been requested!
      [01.013]drv_disp_init finish
      [01.021]gic: sec monitor mode
      [01.023]boot_gui_init:start
      [01.028]set disp.dev2_output_type fail. using defval=0
      [01.033]disp 1, clk: pll(490000000),clk(490000000),dclk(70000000) dsi_rate(490000000)
           clk real:pll(492000000),clk(492000000),dclk(70285714) dsi_rate(0)
      [01.050]switch device: sel=1, type=1, mode=4, format=0, bits=0, eotf=4, cs=260
      [01.057]boot_gui_init:finish
      [01.059]flash init start
      [01.062]workmode = 17,storage type = 1
      try card 2
      set card number 2
      get card number 2
      [01.069][mmc]: mmc driver ver uboot2018:2020-5-25 9:26:00-20201021190
      [01.083][mmc]: Is not Boot mode!
      [01.086][mmc]: SUNXI SDMMC Controller Version:0x50300
      [01.097][mmc]: ************Try SD card 2************
      [01.102][mmc]: mmc 2 cmd timeout 100 status 100
      [01.106][mmc]: smc 2 err, cmd 8,  RTO
      [01.110][mmc]: mmc 2 close bus gating and reset
      [01.115][mmc]: mmc 2 cmd timeout 100 status 100
      [01.119][mmc]: smc 2 err, cmd 55,  RTO
      [01.122][mmc]: mmc 2 close bus gating and reset
      [01.127][mmc]: ************Try MMC card[01.130]soc ic_ver:0x0, qa_val:0x0, markid:0x53002400 dclk[0-9999]
       2************
      [01.203][mmc]: mmc 2 cmd timeout 100 status 100
      [01.207][mmc]: smc 2 err, cmd 8,  RTO
      [01.210][mmc]: mmc 2 close bus gating and reset
      [01.215][mmc]: mmc 2 cmd timeout 100 status 100
      [01.219][mmc]: smc 2 err, cmd 55,  RTO
      [01.223][mmc]: mmc 2 close bus gating and reset
      [01.239]LCD open finish
      [01.267][mmc]: gen_tuning_blk_bus8: total blk 10
      [01.271][mmc]: gen_tuning_blk_bus4: total blk 6
      [01.275][mmc]: Using 8 bit tuning now
      [01.281][mmc]: write_tuning_try_freq: write ok
      [01.285][mmc]: Pattern compare ok
      [01.288][mmc]: Write tuning pattern ok
      [01.292][mmc]: ================== HSSDR52_SDR25...
      [01.296][mmc]: skip freq 400000
      [01.299][mmc]: skip freq 25000000
      [01.302][mmc]: freq: 2-50000000-64-4
      [01.513][mmc]: [0-48|49] [61-63|3]
      [01.516][mmc]: ================== HSDDR52_DDR50...
      [01.521][mmc]: skip freq 400000
      [01.524][mmc]: freq: 1-25000000-64-4
      [01.746][mmc]: freq: 2-50000000-64-4
      [01.971][mmc]: [0-39|40] [47-49|3] [52-63|12]
      [01.975][mmc]: [0-24|25] [26-39|14] [47-63|17]
      [01.979][mmc]: DS26/SDR12: 0xffffffff 0xffffffff
      [01.983][mmc]: HSSDR52/SDR25: 0xff18ffff 0xffffffff
      [01.988][mmc]: HSDDR52/DDR50: 0xff0c14ff 0xffffffff
      [01.992][mmc]: HS200/SDR104: 0xffffffff 0xffffffff
      [01.997][mmc]: HS400: 0xffffffff 0xffffffff
      [02.001][mmc]: HS400: 0xffffffff 0xffffffff
      [02.005][mmc]: Best spd md: 2-HSDDR52/DDR50, freq: 2-50000000, Bus width: 8
      [02.011][mmc]: mmc driver ver uboot2018:2020-5-25 9:26:00-20201021190
      [02.018][mmc]: get sdc_type fail and use default host:tm1.
      [02.029][mmc]: Using default timing para
      [02.033][mmc]: SUNXI SDMMC Controller Version:0x50300
      [02.050][mmc]: card_caps:0x30000002
      [02.053][mmc]: host_caps:0x3000003f
      [02.059]Loading Environment from SUNXI_FLASH... OK
      [02.063]try to burn key
      [02.066]out of usb burn from boot: not need burn key
      Hit any key to stop autoboot:  0
      sunxi work mode=0x11
      run card sprite
      [02.083]try sprite_led_gpio config
      [02.087]sprite_led_gpio start
      [02.090]sunxi sprite begin
      screen_width = 1280
      screen_height = 800
      bar x1: 320 y1: 360
      bar x2: 960 y2: 440
      357443 bytes read in 32 ms (10.7 MiB/s)
      [SFTE_Set_Pixel_Sizes_i] 394 buf_size is 2304
      cur_pixel_size 32 pixel_size 32
      firmware name <NULL>
      img start = 0x18000
      try to read mmc start 98304
      read mmc ok
      [02.167]firmware probe ok
      [02.169]fetch download map
      *************DOWNLOAD MAP DUMP************
      total download part 9
      
      download part[0] name          :bootloader
      download part[0] download file :BOOT-RESOURCE_FE
      download part[0] verify file   :VBOOT-RESOURCE_F
      download part[0] lenlo         :0x10000
      download part[0] addrlo        :0x8000
      download part[0] encrypt       :0x0
      download part[0] verify        :0x1
      
      download part[1] name          :env
      download part[1] download file :ENV_FEX000000000
      download part[1] verify file   :VENV_FEX00000000
      download part[1] lenlo         :0x8000
      download part[1] addrlo        :0x18000
      download part[1] encrypt       :0x0
      download part[1] verify        :0x1
      
      download part[2] name          :boot
      download part[2] download file :BOOT_FEX00000000
      download part[2] verify file   :VBOOT_FEX0000000
      download part[2] lenlo         :0x10000
      download part[2] addrlo        :0x20000
      download part[2] encrypt       :0x0
      download part[2] verify        :0x1
      
      download part[3] name          :super
      download part[3] download file :SUPER_FEX0000000
      download part[3] verify file   :VSUPER_FEX000000
      download part[3] lenlo         :0x700000
      download part[3] addrlo        :0x30000
      download part[3] encrypt       :0x0
      download part[3] verify        :0x1
      
      download part[4] name          :recovery
      download part[4] download file :RECOVERY_FEX0000
      download part[4] verify file   :VRECOVERY_FEX000
      download part[4] lenlo         :0x10000
      download part[4] addrlo        :0x738000
      download part[4] encrypt       :0x0
      download part[4] verify        :0x1
      
      download part[5] name          :vbmeta
      download part[5] download file :VBMETA_FEX000000
      download part[5] verify file   :VVBMETA_FEX00000
      download part[5] lenlo         :0x8000
      download part[5] addrlo        :0x888000
      download part[5] encrypt       :0x0
      download part[5] verify        :0x1
      
      download part[6] name          :vbmeta_system
      download part[6] download file :VBMETA_SYSTEM_FE
      download part[6] verify file   :VVBMETA_SYSTEM_F
      download part[6] lenlo         :0x8000
      download part[6] addrlo        :0x890000
      download part[6] encrypt       :0x0
      download part[6] verify        :0x1
      
      download part[7] name          :vbmeta_vendor
      download part[7] download file :VBMETA_VENDOR_FE
      download part[7] verify file   :VVBMETA_VENDOR_F
      download part[7] lenlo         :0x8000
      download part[7] addrlo        :0x898000
      download part[7] encrypt       :0x0
      download part[7] verify        :0x1
      
      download part[8] name          :dtbo
      download part[8] download file :DTBO_FEX00000000
      download part[8] verify file   :VDTBO_FEX0000000
      download part[8] lenlo         :0x1000
      download part[8] addrlo        :0x8b8000
      download part[8] encrypt       :0x0
      download part[8] verify        :0x1
      
      [02.413]fetch mbr
      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 17
      
      part[0] name      :bootloader
      part[0] classname :DISK
      part[0] addrlo    :0x8000
      part[0] lenlo     :0x10000
      part[0] user_type :32768
      part[0] keydata   :0
      part[0] ro        :0
      
      part[1] name      :env
      part[1] classname :DISK
      part[1] addrlo    :0x18000
      part[1] lenlo     :0x8000
      part[1] user_type :32768
      part[1] keydata   :0
      part[1] ro        :0
      
      part[2] name      :boot
      part[2] classname :DISK
      part[2] addrlo    :0x20000
      part[2] lenlo     :0x10000
      part[2] user_type :32768
      part[2] keydata   :0
      part[2] ro        :0
      
      part[3] name      :super
      part[3] classname :DISK
      part[3] addrlo    :0x30000
      part[3] lenlo     :0x700000
      part[3] user_type :32768
      part[3] keydata   :0
      part[3] ro        :0
      
      part[4] name      :misc
      part[4] classname :DISK
      part[4] addrlo    :0x730000
      part[4] lenlo     :0x8000
      part[4] user_type :32768
      part[4] keydata   :0
      part[4] ro        :0
      
      part[5] name      :recovery
      part[5] classname :DISK
      part[5] addrlo    :0x738000
      part[5] lenlo     :0x10000
      part[5] user_type :32768
      part[5] keydata   :0
      part[5] ro        :0
      
      part[6] name      :cache
      part[6] classname :DISK
      part[6] addrlo    :0x748000
      part[6] lenlo     :0x140000
      part[6] user_type :32768
      part[6] keydata   :0
      part[6] ro        :0
      
      part[7] name      :vbmeta
      part[7] classname :DISK
      part[7] addrlo    :0x888000
      part[7] lenlo     :0x8000
      part[7] user_type :32768
      part[7] keydata   :0
      part[7] ro        :0
      
      part[8] name      :vbmeta_system
      part[8] classname :DISK
      part[8] addrlo    :0x890000
      part[8] lenlo     :0x8000
      part[8] user_type :32768
      part[8] keydata   :0
      part[8] ro        :0
      
      part[9] name      :vbmeta_vendor
      part[9] classname :DISK
      part[9] addrlo    :0x898000
      part[9] lenlo     :0x8000
      part[9] user_type :32768
      part[9] keydata   :0
      part[9] ro        :0
      
      part[10] name      :metadata
      part[10] classname :DISK
      part[10] addrlo    :0x8a0000
      part[10] lenlo     :0x8000
      part[10] user_type :32768
      part[10] keydata   :0
      part[10] ro        :0
      
      part[11] name      :private
      part[11] classname :DISK
      part[11] addrlo    :0x8a8000
      part[11] lenlo     :0x8000
      part[11] user_type :32768
      part[11] keydata   :0
      part[11] ro        :0
      
      part[12] name      :frp
      part[12] classname :DISK
      part[12] addrlo    :0x8b0000
      part[12] lenlo     :0x400
      part[12] user_type :32768
      part[12] keydata   :32768
      part[12] ro        :0
      
      part[13] name      :empty
      part[13] classname :DISK
      part[13] addrlo    :0x8b0400
      part[13] lenlo     :0x7c00
      part[13] user_type :32768
      part[13] keydata   :0
      part[13] ro        :0
      
      part[14] name      :dtbo
      part[14] classname :DISK
      part[14] addrlo    :0x8b8000
      part[14] lenlo     :0x1000
      part[14] user_type :32768
      part[14] keydata   :0
      part[14] ro        :0
      
      part[15] name      :media_data
      part[15] classname :DISK
      part[15] addrlo    :0x8b9000
      part[15] lenlo     :0x8000
      part[15] user_type :32768
      part[15] keydata   :0
      part[15] ro        :0
      
      part[16] name      :UDISK
      part[16] classname :DISK
      part[16] addrlo    :0x8c1000
      part[16] lenlo     :0x0
      part[16] user_type :33024
      part[16] keydata   :0
      part[16] ro        :0
      
      *************MBR DUMP***************
      total mbr part 17
      
      part[0] name      :bootloader
      part[0] classname :DISK
      part[0] addrlo    :0x8000
      part[0] lenlo     :0x10000
      part[0] user_type :0x8000
      part[0] keydata   :0x0
      part[0] ro        :0x0
      
      part[1] name      :env
      part[1] classname :DISK
      part[1] addrlo    :0x18000
      part[1] lenlo     :0x8000
      part[1] user_type :0x8000
      part[1] keydata   :0x0
      part[1] ro        :0x0
      
      part[2] name      :boot
      part[2] classname :DISK
      part[2] addrlo    :0x20000
      part[2] lenlo     :0x10000
      part[2] user_type :0x8000
      part[2] keydata   :0x0
      part[2] ro        :0x0
      
      part[3] name      :super
      part[3] classname :DISK
      part[3] addrlo    :0x30000
      part[3] lenlo     :0x700000
      part[3] user_type :0x8000
      part[3] keydata   :0x0
      part[3] ro        :0x0
      
      part[4] name      :misc
      part[4] classname :DISK
      part[4] addrlo    :0x730000
      part[4] lenlo     :0x8000
      part[4] user_type :0x8000
      part[4] keydata   :0x0
      part[4] ro        :0x0
      
      part[5] name      :recovery
      part[5] classname :DISK
      part[5] addrlo    :0x738000
      part[5] lenlo     :0x10000
      part[5] user_type :0x8000
      part[5] keydata   :0x0
      part[5] ro        :0x0
      
      part[6] name      :cache
      part[6] classname :DISK
      part[6] addrlo    :0x748000
      part[6] lenlo     :0x140000
      part[6] user_type :0x8000
      part[6] keydata   :0x0
      part[6] ro        :0x0
      
      part[7] name      :vbmeta
      part[7] classname :DISK
      part[7] addrlo    :0x888000
      part[7] lenlo     :0x8000
      part[7] user_type :0x8000
      part[7] keydata   :0x0
      part[7] ro        :0x0
      
      part[8] name      :vbmeta_system
      part[8] classname :DISK
      part[8] addrlo    :0x890000
      part[8] lenlo     :0x8000
      part[8] user_type :0x8000
      part[8] keydata   :0x0
      part[8] ro        :0x0
      
      part[9] name      :vbmeta_vendor
      part[9] classname :DISK
      part[9] addrlo    :0x898000
      part[9] lenlo     :0x8000
      part[9] user_type :0x8000
      part[9] keydata   :0x0
      part[9] ro        :0x0
      
      part[10] name      :metadata
      part[10] classname :DISK
      part[10] addrlo    :0x8a0000
      part[10] lenlo     :0x8000
      part[10] user_type :0x8000
      part[10] keydata   :0x0
      part[10] ro        :0x0
      
      part[11] name      :private
      part[11] classname :DISK
      part[11] addrlo    :0x8a8000
      part[11] lenlo     :0x8000
      part[11] user_type :0x8000
      part[11] keydata   :0x0
      part[11] ro        :0x0
      
      part[12] name      :frp
      part[12] classname :DISK
      part[12] addrlo    :0x8b0000
      part[12] lenlo     :0x400
      part[12] user_type :0x8000
      part[12] keydata   :0x8000
      part[12] ro        :0x0
      
      part[13] name      :empty
      part[13] classname :DISK
      part[13] addrlo    :0x8b0400
      part[13] lenlo     :0x7c00
      part[13] user_type :0x8000
      part[13] keydata   :0x0
      part[13] ro        :0x0
      
      part[14] name      :dtbo
      part[14] classname :DISK
      part[14] addrlo    :0x8b8000
      part[14] lenlo     :0x1000
      part[14] user_type :0x8000
      part[14] keydata   :0x0
      part[14] ro        :0x0
      
      part[15] name      :media_data
      part[15] classname :DISK
      part[15] addrlo    :0x8b9000
      part[15] lenlo     :0x8000
      part[15] user_type :0x8000
      part[15] keydata   :0x0
      part[15] ro        :0x0
      
      part[16] name      :UDISK
      part[16] classname :DISK
      part[16] addrlo    :0x8c1000
      part[16] lenlo     :0x0
      part[16] user_type :0x8100
      part[16] keydata   :0x0
      part[16] ro        :0x0
      
      [02.987]begin to erase flash
      total part: 18
      mbr 0, 8000, 8000
      bootloader 1, 10000, 8000
      env 2, 8000, 8000
      boot 3, 10000, 8000
      super 4, 700000, 8000
      misc 5, 8000, 8000
      recovery 6, 10000, 8000
      cache 7, 140000, 8000
      vbmeta 8, 8000, 8000
      vbmeta_system 9, 8000, 8000
      vbmeta_vendor 10, 8000, 8000
      metadata 11, 8000, 8000
      private 12, 8000, 8000
      frp 13, 400, 8000
      empty 14, 7c00, 8000
      dtbo 15, 1000, 8000
      media_data 16, 8000, 8000
      UDISK 17, 0, 8100
      [03.027]erase all part start
      need erase flash: 1
      ******Has init
      private part exist
      GPT:bootloader  : 12000         21fff
      GPT:env         : 22000         29fff
      GPT:boot        : 2a000         39fff
      GPT:super       : 3a000         739fff
      GPT:misc        : 73a000        741fff
      GPT:recovery    : 742000        751fff
      GPT:cache       : 752000        891fff
      GPT:vbmeta      : 892000        899fff
      GPT:vbmeta_system: 89a000        8a1fff
      GPT:vbmeta_vendor: 8a2000        8a9fff
      GPT:metadata    : 8aa000        8b1fff
      GPT:private     : 8b2000        8b9fff
      GPT:frp         : 8ba000        8ba3ff
      GPT:empty       : 8ba400        8c1fff
      GPT:dtbo        : 8c2000        8c2fff
      GPT:media_data  : 8c3000        8cafff
      GPT:UDISK       : 8cb000        e8ffde
      begin to store data
      part 0 name bootloader
      keydata = 0x0
      part 1 name env
      keydata = 0x0
      part 2 name boot
      keydata = 0x0
      part 3 name super
      keydata = 0x0
      part 4 name misc
      keydata = 0x0
      part 5 name recovery
      keydata = 0x0
      part 6 name cache
      keydata = 0x0
      part 7 name vbmeta
      keydata = 0x0
      part 8 name vbmeta_system
      keydata = 0x0
      part 9 name vbmeta_vendor
      keydata = 0x0
      part 10 name metadata
      keydata = 0x0
      part 11 name private
      keydata = 0x0
      find keypart private
      keypart read start: 0x8a8000, sectors 0x8000
      keypart part private read  0x8a8000, sectors 0x8000
      part 12 name frp
      keydata = 0x1
      find keypart frp
      keypart read start: 0x8b0000, sectors 0x400
      keypart part frp read  0x8b0000, sectors 0x400
      part 13 name empty
      keydata = 0x0
      part 14 name dtbo
      keydata = 0x0
      part 15 name media_data
      keydata = 0x0
      part 16 name UDISK
      keydata = 0x0
      begin to erase
      [03.380]erase all part start
      card2 erase boot0
      erase env part
      [03.394][mmc]: erase from: 139264, to: 172031, cnt: 32768, erase_group: 1024
      [03.411][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0xa ms
      erase boot part
      [03.419][mmc]: erase from: 172032, to: 237567, cnt: 65536, erase_group: 1024
      [03.452][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0x1b ms
      erase super part
      [03.460][mmc]: erase from: 237568, to: 7577599, cnt: 7340032, erase_group: 1024
      [05.564][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0x831 ms
      erase misc part
      [05.572][mmc]: erase from: 7577600, to: 7610367, cnt: 32768, erase_group: 1024
      [05.589][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0xa ms
      erase recovery part
      [05.597][mmc]: erase from: 7610368, to: 7675903, cnt: 65536, erase_group: 1024
      [05.631][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0x1b ms
      erase cache part
      [05.639][mmc]: erase from: 7675904, to: 8986623, cnt: 1310720, erase_group: 1024
      [05.989][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0x157 ms
      erase vbmeta part
      [05.997][mmc]: erase from: 8986624, to: 9019391, cnt: 32768, erase_group: 1024
      [06.014][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0xa ms
      erase vbmeta_system part
      [06.023][mmc]: erase from: 9019392, to: 9052159, cnt: 32768, erase_group: 1024
      [06.040][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0xa ms
      erase vbmeta_vendor part
      [06.048][mmc]: erase from: 9052160, to: 9084927, cnt: 32768, erase_group: 1024
      [06.065][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0xa ms
      erase metadata part
      [06.074][mmc]: erase from: 9084928, to: 9117695, cnt: 32768, erase_group: 1024
      [06.092][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0xb ms
      erase private part
      [06.100][mmc]: erase from: 9117696, to: 9150463, cnt: 32768, erase_group: 1024
      [06.121][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0xe ms
      erase frp part
      [06.129][mmc]: erase from: 9150464, to: 9151487, cnt: 1024, erase_group: 1024
      [06.138][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0x2 ms
      erase empty part
      [06.146][mmc]: erase from: 9151488, to: 9183231, cnt: 31744, erase_group: 1024
      [06.162][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0x9 ms
      erase dtbo part
      [06.170][mmc]: erase from: 9183232, to: 9187327, cnt: 4096, erase_group: 1024
      [06.180][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0x3 ms
      erase media_data part
      [06.188][mmc]: erase from: 9187328, to: 9220095, cnt: 32768, erase_group: 1024
      [06.206][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0xb ms
      erase UDISK part
      sunxi_sprite_mmc_phyerase: @nr is 0, erase from @from to end
      [06.219][mmc]: erase from: 9220096, to: 15268863, cnt: 6048768, erase_group: 1024
      [07.790][mmc]: sunxi_mmc_do_send_cmd_common: cmd 38 wait rsp busy 0x61c ms
      [07.797][mmc]: mmc_mmc_erase: some sectors in emmc are ignored!
      [07.802][mmc]: --0: from15268864  nr1023
      card erase all
      finish erase
      ******Has init
      rewrite
      ******Has init
      write primary GPT success
      write Backup GPT success
      keypart write start: 0x8a8000, sectors 0x8000
      keypart write start: 0x8b0000, sectors 0x400
      flash exit
      [08.242]successed in erasing flash
      ******Has init
      write primary GPT success
      write Backup GPT success
      [08.254]begin to download part
      [08.256]begin to download part bootloader
      partdata hi 0x0
      partdata lo 0x91ac00
      sparse: bad magic
      [09.282]successed in writting part bootloader
      origin_verify value = efcdf783, active_verify value = efcdf783
      [09.419]successed in verify part bootloader
      [09.423]successed in download part bootloader
      [09.427]begin to download part env
      partdata hi 0x0
      partdata lo 0x20000
      sparse: bad magic
      [09.449]successed in writting part env
      origin_verify value = abb98d91, active_verify value = abb98d91
      [09.462]successed in verify part env
      [09.465]successed in download part env
      [09.469]begin to download part boot
      partdata hi 0x0
      partdata lo 0x2000000
      sparse: bad magic
      [13.037]successed in writting part boot
      origin_verify value = 97897dde, active_verify value = 97897dde
      [13.484]successed in verify part boot
      [13.487]successed in download part boot
      [13.491]begin to download part super
      partdata hi 0x0
      partdata lo 0x35808280
      chunk 0(2385)
      chunk 1(2385)
      chunk 2(2385)
      chunk 3(2385)
      chunk 4(2385)
      chunk 5(2385)
      chunk 6(2385)
      chunk 7(2385)
      chunk 8(2385)
      chunk 9(2385)
      chunk 10(2385)
      chunk 11(2385)
      chunk 12(2385)
      chunk 13(2385)
      ...
      chunk 2378(2385)
      chunk 2379(2385)
      chunk 2380(2385)
      chunk 2381(2385)
      chunk 2382(2385)
      chunk 2383(2385)
      chunk 2384(2385)
      [232.228]successed in writting part super
      origin_verify value = 2c17b45a, active_verify value = 2c17b45a
      [232.237]successed in verify part super
      [232.241]successed in download part super
      [232.244]begin to download part recovery
      partdata hi 0x0
      partdata lo 0x2000000
      sparse: bad magic
      [239.134]successed in writting part recovery
      origin_verify value = c9c11f80, active_verify value = c9c11f80
      [239.583]successed in verify part recovery
      [239.587]successed in download part recovery
      [239.591]begin to download part vbmeta
      partdata hi 0x0
      partdata lo 0x2000
      sparse: bad magic
      [239.601]successed in writting part vbmeta
      origin_verify value = 4074c1f1, active_verify value = 4074c1f1
      [239.614]successed in verify part vbmeta
      [239.617]successed in download part vbmeta
      [239.621]begin to download part vbmeta_system
      partdata hi 0x0
      partdata lo 0x1000
      sparse: bad magic
      [239.631]successed in writting part vbmeta_system
      origin_verify value = 53be81d4, active_verify value = 53be81d4
      [239.644]successed in verify part vbmeta_system
      [239.648]successed in download part vbmeta_system
      [239.653]begin to download part vbmeta_vendor
      partdata hi 0x0
      partdata lo 0x1000
      sparse: bad magic
      [239.663]successed in writting part vbmeta_vendor
      origin_verify value = 3e1679d9, active_verify value = 3e1679d9
      [239.676]successed in verify part vbmeta_vendor
      [239.680]successed in download part vbmeta_vendor
      [239.684]begin to download part dtbo
      partdata hi 0x0
      partdata lo 0x200000
      sparse: bad magic
      [240.112]successed in writting part dtbo
      origin_verify value = c2511571, active_verify value = c2511571
      [240.151]successed in verify part dtbo
      [240.154]successed in download part dtbo
      [240.163]successed in downloading part
      uboot size = 0xec000
      storage type = 2
      sunxi_sprite_deal_uboot ok
      [240.342]successed in downloading uboot
      [240.431][mmc]: write mmc 2 info ok
      dram para[0] = 318
      dram para[1] = 8
      dram para[2] = c0c0c0c
      dram para[3] = d0d0d0d
      dram para[4] = e0e
      dram para[5] = f0e0c0e
      dram para[6] = 30fa
      dram para[7] = 4000000
      dram para[8] = 0
      dram para[9] = 34
      dram para[10] = 1b
      dram para[11] = 33
      dram para[12] = 3
      dram para[13] = 0
      dram para[14] = 0
      dram para[15] = 4
      dram para[16] = 72
      dram para[17] = 0
      dram para[18] = 7
      dram para[19] = 0
      dram para[20] = 0
      dram para[21] = 24
      dram para[22] = 0
      dram para[23] = 80000000
      dram para[24] = 0
      dram para[25] = 0
      dram para[26] = 31010101
      dram para[27] = 2e0000
      dram para[28] = 24222122
      dram para[29] = f0f0e0f
      dram para[30] = 6063
      dram para[31] = 1d1d1b1c
      storage type = 2
      [240.563]successed in downloading boot0
      CARD OK
      [240.567]sprite success
      sprite_next_work=3
      next work 3
      SUNXI_UPDATE_NEXT_ACTION_SHUTDOWN
      [243.575][mmc]: mmc exit start
      [243.647][mmc]: mmc 2 exit ok
      

      烧录完成

      发布在 编译和烧写问题专区
      M
      memory
    • 回复: 请问 PhoenixCard 烧卡软件的 【量产卡】与 【启动卡】菜单有什么区别呢?

      再次确认,官方的哪吒SDK + 哪吒开发板 uboot 也不能运行 mmc info 和 mmc dev 0 这些命令,看来这个量产卡功能在D1 平台应该不能正常测试。

      发布在 编译和烧写问题专区
      M
      memory
    • 回复: 请问 PhoenixCard 烧卡软件的 【量产卡】与 【启动卡】菜单有什么区别呢?

      输入 part list sunxi_flash 0 发现可以显示 TF卡分区:

      => part list sunxi_flash 0
      
      Partition Map for UNKNOWN device 0  --   Partition Type: EFI
      
      Part    Start LBA       End LBA         Name
              Attributes
              Type GUID
              Partition GUID
        1     0x00008780      0x0000a6ff      "boot-resource"
              attrs:  0x0000000000000000
              type:   0fc63daf-8483-4772-8e79-3d69d8477de4
              guid:   d4c8f1d5-757a-475a-b9a8-0074ff65dd1b
        2     0x0000a700      0x0000a8f7      "env"
              attrs:  0x0000000000000000
              type:   0fc63daf-8483-4772-8e79-3d69d8477de4
              guid:   fc2fd674-e9a9-4a44-89a2-cc5798413979
        3     0x0000a8f8      0x0000aaef      "env-redund"
              attrs:  0x0000000000000000
              type:   0fc63daf-8483-4772-8e79-3d69d8477de4
              guid:   b33c1ff3-5666-4b5c-9a3d-cac68f400ad0
        4     0x0000aaf0      0x0000fba7      "boot"
              attrs:  0x0000000000000000
              type:   0fc63daf-8483-4772-8e79-3d69d8477de4
              guid:   ef8068de-d87b-4265-8af3-5285368efc49
        5     0x0000fba8      0x0002fba7      "rootfs"
              attrs:  0x0000000000000000
              type:   0fc63daf-8483-4772-8e79-3d69d8477de4
              guid:   1846d402-1afd-4ecd-bf3a-29286953d7e0
        6     0x0002fba8      0x0002ff97      "dsp0"
              attrs:  0x0000000000000000
              type:   0fc63daf-8483-4772-8e79-3d69d8477de4
              guid:   94d209b1-385c-4a02-8d82-61e8a059b33e
        7     0x0002ff98      0x00036dd7      "recovery"
              attrs:  0x0000000000000000
              type:   0fc63daf-8483-4772-8e79-3d69d8477de4
              guid:   27263635-cf03-4add-82f9-af10d477c79d
      =>
      

      但是 mmc 命令根本木得反应:

      => mmc dev 0
      No MMC device available
      => mmc dev 2
      No MMC device available
      => mmc info
      No MMC device available
      =>
      

      感觉是 mmc 命令不响应的问题造成的。

      发布在 编译和烧写问题专区
      M
      memory
    • 回复: 请问 PhoenixCard 烧卡软件的 【量产卡】与 【启动卡】菜单有什么区别呢?
      [32]HELLO! BOOT0 is starting!
      [35]BOOT0 commit : 553a5eb
      [38]set pll start
      [39]periph0 has been enabled
      [42]set pll end
      [44][pmu]: bus read error
      [46]board init ok
      [48]ZQ value = 0x2f
      [50]get_pmu_exist() = -1
      [52]ddr_efuse_type: 0xa
      [54]mark_id: 0x5c
      [56]trefi:7.8ms
      [58][AUTO DEBUG] single rank and full DQ!
      [62]ddr_efuse_type: 0xa
      [64]mark_id: 0x5c
      [66]trefi:7.8ms
      [68][AUTO DEBUG] rank 0 row = 13
      [71][AUTO DEBUG] rank 0 bank = 4
      [74][AUTO DEBUG] rank 0 page size = 2 KB
      [78]DRAM BOOT DRIVE INFO: V0.32
      [81]DRAM CLK = 408 MHz
      [83]DRAM Type = 2 (2:DDR2,3:DDR3)
      [86]DRAMC read ODT  off.
      [89]DRAM ODT off.
      [90]ddr_efuse_type: 0xa
      [93]mark_id: 0x5c
      [95]DRAM SIZE =64 M
      [97]PLL_DDR_CTRL_REG:0xf9002100
      [100]DRAM_CLK_REG:0xc0000000
      [102][TIMING DEBUG] MR2= 0x0
      [107]DRAM simple test OK.
      [109]dram size =64
      [111]card no is 0
      [113]sdcard 0 line count 4
      [115][mmc]: mmc driver ver 2021-04-2 16:45
      [125][mmc]: Wrong media type 0x0
      [127][mmc]: ***Try SD card 0***
      [137][mmc]: HSSDR52/SDR25 4 bit
      [140][mmc]: 50000000 Hz
      [143][mmc]: 30264 MB
      [145][mmc]: ***SD/MMC 0 init OK!!!***
      [195]Loading boot-pkg Succeed(index=0).
      [199]Entry_name        = opensbi
      [202]Entry_name        = u-boot
      [206]Entry_name        = dtb
      [208]mmc not para
      [210]Jump to second Boot.
      
      OpenSBI auto-t113-linux-V0.1-1-ge15c4f7
         ____                    _____ ____ _____
        / __ \                  / ____|  _ \_   _|
       | |  | |_ __   ___ _ __ | (___ | |_) || |
       | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
       | |__| | |_) |  __/ | | |____) | |_) || |_
        \____/| .__/ \___|_| |_|_____/|____/_____|
              | |
              |_|
      
      Platform Name          : T-HEAD Xuantie Platform
      Platform HART Features : RV64ACDFIMSUVX
      Platform Max HARTs     : 1
      Current Hart           : 0
      Firmware Base          : 0x41fc0400
      Firmware Size          : 75 KB
      Runtime SBI Version    : 0.2
      
      MIDELEG : 0x0000000000000222
      MEDELEG : 0x000000000000b1ff
      PMP0    : 0x0000000041fc0000-0x0000000041fdffff (A)
      PMP1    : 0x0000000040000000-0x000000007fffffff (A,R,W,X)
      PMP2    : 0x0000000080000000-0x00000000bfffffff (A,R,W,X)
      PMP3    : 0x0000000000020000-0x0000000000027fff (A,?H?H????с2018.05-00019-gc7a7584e23 (Sep 26 2021 - 11:44:52 +0000) Allwinner Technology
      
      [00.296]DRAM:  64 MiB
      [00.298]Relocation Offset is: 01ee1000
      [00.303]secure enable bit: 0
      [00.306]CPU=1008 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz  MBus=300Mhz
      [00.312]flash init start
      [00.314]workmode = 17,storage type = 1
      try card 0
      set card number 0
      get card number 0
      [00.322][mmc]: mmc driver ver uboot2018:2021-09-07 19:43:00
      [00.327][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
      [00.339][mmc]: get card0 default pin fail
      [00.343][mmc]: can't find node "mmc0",will add new node
      [00.348][mmc]: fdt err returned <no error>
      [00.352][mmc]: Using default timing para
      [00.355][mmc]: sunxi mmc pin set failed!
      [00.359]error card no error
      [00.362][mmc]: MMC Device -1 not found
      MMC init failed
      try card0 fail
      try card 1
      set card number 1
      get card number 1
      [00.372][mmc]: mmc driver ver uboot2018:2021-09-07 19:43:00
      [00.378][mmc]: get sdc_type fail and use default host:tm1.
      [00.383][mmc]: mmc_get_para_from_fex: input sdc_no error: 1
      [00.388][mmc]: Using default timing para
      [00.392][mmc]: sunxi mmc pin set failed!
      [00.395]error,card no error
      [00.398][mmc]: MMC Device -1 not found
      MMC init failed
      try card1 fail
      try card 2
      set card number 2
      get card number 2
      [00.409][mmc]: mmc driver ver uboot2018:2021-09-07 19:43:00
      [00.414][mmc]: get sdc_type fail and use default host:tm4.
      [00.420][mmc]: Is not Boot mode!
      [00.423][mmc]: SUNXI SDMMC Controller Version:0x50310
      [00.434][mmc]: ************Try SD card 2************
      [00.440][mmc]: mmc 2 cmd timeout 100 status 100
      [00.444][mmc]: smc 2 err, cmd 8,  RTO
      [00.447][mmc]: mmc 2 close bus gating and reset
      [00.452][mmc]: mmc 2 cmd timeout 100 status 100
      [00.456][mmc]: smc 2 err, cmd 55,  RTO
      [00.460][mmc]: mmc 2 close bus gating and reset
      [00.464][mmc]: ************Try MMC card 2************
      [00.473][mmc]: mmc 2 cmd timeout 100 status 100
      [00.477][mmc]: smc 2 err, cmd 1,  RTO
      [00.480][mmc]: mmc 2 close bus gating and reset
      [00.485][mmc]: Card did not respond to voltage select!
      [00.489][mmc]: ************SD/MMC 2 init error!************
      [00.495][mmc]: mmc init product failed
      MMC init failed
      try card2 fail
      try emmc fail
      [00.503]sunxi-spinand: AW SPINand MTD Layer Version: 1.5 20200407
      [00.509]sunxi-spinand-phy: AW SPINand Phy Layer Version: 1.9 20200306
      [00.517]sunxi-spinand-phy: request spi0 gpio ok
      [00.521]sunxi-spinand-phy: request general tx dma channel ok!
      [00.527]sunxi-spinand-phy: request general rx dma channel ok!
      [00.532]sunxi-spinand-phy: set spic0 clk to 20 Mhz
      [00.537]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
      
      [00.582]sunxi-spinand-phy: not detect any munufacture from id table
      [00.589]sunxi-spinand-phy: get spi-nand Model from fdt fail
      [00.594]sunxi-spinand-phy: get phy info from fdt fail
      [00.598]sunxi-spinand-phy: not detect munufacture from fdt
      [00.604]sunxi-spinand-phy: detect munufacture from id table: GD
      [00.609]sunxi-spinand-phy: detect spinand id: ffff51c8 ffffffff
      [00.615]sunxi-spinand-phy: ========== arch info ==========
      [00.620]sunxi-spinand-phy: Model:               GD5F1GQ5UEYIG
      [00.626]sunxi-spinand-phy: Munufacture:         GD
      [00.630]sunxi-spinand-phy: DieCntPerChip:       1
      [00.634]sunxi-spinand-phy: BlkCntPerDie:        1024
      [00.639]sunxi-spinand-phy: PageCntPerBlk:       64
      [00.644]sunxi-spinand-phy: SectCntPerPage:      4
      [00.648]sunxi-spinand-phy: OobSizePerPage:      64
      [00.653]sunxi-spinand-phy: BadBlockFlag:        0x0
      [00.657]sunxi-spinand-phy: OperationOpt:        0x7
      [00.662]sunxi-spinand-phy: MaxEraseTimes:       50000
      [00.667]sunxi-spinand-phy: EccFlag:             0x1
      [00.671]sunxi-spinand-phy: EccType:             7
      [00.676]sunxi-spinand-phy: EccProtectedType:    2
      [00.680]sunxi-spinand-phy: ========================================
      [00.686]sunxi-spinand-phy:
      [00.688]sunxi-spinand-phy: ========== physical info ==========
      [00.694]sunxi-spinand-phy: TotalSize:    128 M
      [00.698]sunxi-spinand-phy: SectorSize:   512 B
      [00.702]sunxi-spinand-phy: PageSize:     2 K
      [00.706]sunxi-spinand-phy: BlockSize:    128 K
      [00.710]sunxi-spinand-phy: OOBSize:      64 B
      [00.715]sunxi-spinand-phy: ========================================
      [00.721]sunxi-spinand-phy:
      [00.723]sunxi-spinand-phy: ========== logical info ==========
      [00.729]sunxi-spinand-phy: TotalSize:    128 M
      [00.733]sunxi-spinand-phy: SectorSize:   512 B
      [00.737]sunxi-spinand-phy: PageSize:     4 K
      [00.741]sunxi-spinand-phy: BlockSize:    256 K
      [00.745]sunxi-spinand-phy: OOBSize:      128 B
      [00.749]sunxi-spinand-phy: ========================================
      [00.756]sunxi-spinand-phy: GD5F1GQ5UEYIG reset rx bit width to 1
      [00.761]sunxi-spinand-phy: GD5F1GQ5UEYIG reset tx bit width to 1
      [00.767]sunxi-spinand-phy: set spic0 clk to 100 Mhz
      [00.771]sunxi-spinand-phy: block lock register: 0x00
      [00.776]sunxi-spinand-phy: feature register: 0x11
      [00.781]sunxi-spinand-phy: sunxi physic nand init end
      [00.785][mmc]: mmc driver ver uboot2018:2021-09-07 19:43:00
      [00.791][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
      [00.803][mmc]: get card0 default pin fail
      [00.807][mmc]: can't find node "mmc0",will add new node
      [00.812][mmc]: fdt err returned <no error>
      [00.815][mmc]: Using default timing para
      [00.819][mmc]: sunxi mmc pin set failed!
      [00.823]error card no error
      [00.825][mmc]: MMC Device -1 not found
      fail to find one useful mmc card
      initcall sequence 0000000043f8fb20 failed at call 000000004200e81a (err=-1)
      ### ERROR ### Please RESET the board ###
      

      焊上 spi nand 之后,出现了 找不到 mmc0,可能是 uboot-board.dts TF 卡的配置有问题?

      发布在 编译和烧写问题专区
      M
      memory
    • 回复: 请问 PhoenixCard 烧卡软件的 【量产卡】与 【启动卡】菜单有什么区别呢?

      试了一下,选择量产卡烧录,启动日志:

      [32]HELLO! BOOT0 is starting!
      [35]BOOT0 commit : 27369ab-dirty
      [38]set pll start
      [40]periph0 has been enabled
      [43]set pll end
      [44][pmu]: bus read error
      [47]board init ok
      [48]ZQ value = 0x32***********
      [51]get_pmu_exist() = -1
      [54]ddr_efuse_type: 0xa
      [57][AUTO DEBUG] single rank and full DQ!
      [60]ddr_efuse_type: 0xa
      [63][AUTO DEBUG] rank 0 row = 13
      [66][AUTO DEBUG] rank 0 bank = 4
      [69][AUTO DEBUG] rank 0 page size = 2 KB
      [73]DRAM BOOT DRIVE INFO: V0.24
      [76]DRAM CLK = 528 MHz
      [78]DRAM Type = 2 (2:DDR2,3:DDR3)
      [81]DRAMC read ODT  off.
      [84]DRAM ODT off.
      [85]ddr_efuse_type: 0xa
      [88]DRAM SIZE =64 M
      [92]DRAM simple test OK.
      [94]dram size =64
      [96]card no is 0
      [97]sdcard 0 line count 4
      [100][mmc]: mmc driver ver 2021-04-2 16:45
      [109][mmc]: Wrong media type 0x0
      [112][mmc]: ***Try SD card 0***
      [122][mmc]: DS26/SDR12 4 bit
      [125][mmc]: 25000000 Hz
      [127][mmc]: 30264 MB
      [129][mmc]: ***SD/MMC 0 init OK!!!***
      [214]Loading boot-pkg Succeed(index=0).
      [218]Entry_name        = opensbi
      [221]Entry_name        = u-boot
      [225]Entry_name        = dtb
      [227]mmc not para
      [229]Jump to second Boot.
      
      OpenSBI v0.6
         ____                    _____ ____ _____
        / __ \                  / ____|  _ \_   _|
       | |  | |_ __   ___ _ __ | (___ | |_) || |
       | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
       | |__| | |_) |  __/ | | |____) | |_) || |_
        \____/| .__/ \___|_| |_|_____/|____/_____|
              | |
              |_|
      
      Platform Name          : T-HEAD Xuantie Platform
      Platform HART Features : RV64ACDFIMSUVX
      Platform Max HARTs     : 1
      Current Hart           : 0
      Firmware Base          : 0x40000400
      Firmware Size          : 75 KB
      Runtime SBI Version    : 0.2
      
      MIDELEG : 0x0000000000000222
      MEDELEG : 0x000000000000b1ff
      PMP0    : 0x0000000040000000-0x000000004001ffff (A)
      PMP1    : 0x0000000040000000-0x000000007fffffff (A,R,W,X)
      PMP2    : 0x0000000080000000-0x00000000bfffffff (A,R,W,X)
      PMP3    : 0x0000000000020000-0x0000000000027fff (A,_H?H????с2018.05-g0a88ac9-dirty-config-dirty (Feb 08 2022 - 22:32:34 +0800) Allwinner Technology
      
      [00.313]DRAM:  64 MiB
      [00.315]Relocation Offset is: 01f02000
      [00.320]secure enable bit: 0
      [00.322]CPU=1008 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz  MBus=300Mhz
      [00.329]flash init start
      [00.331]workmode = 17,storage type = 1
      try card 2
      set card number 2
      get card number 2
      [00.339][mmc]: mmc driver ver uboot2018:2021-04-16 14:23:00-1
      [00.344][mmc]: get sdc_type fail and use default host:tm4.
      [00.351][mmc]: Is not Boot mode!
      [00.353][mmc]: SUNXI SDMMC Controller Version:0x50310
      [00.364][mmc]: ************Try SD card 2************
      [00.369][mmc]: mmc 2 cmd timeout 2 status 2
      [00.373][mmc]: smc 2 err, cmd 8,  RE
      [00.376][mmc]: mmc 2 close bus gating and reset
      [00.381][mmc]: Current spd_md 0 freq_id 0 sdly 255
      [00.385][mmc]: Get next samply point 193 at spd_md 0 freq_id 0
      [00.391][mmc]: need retry next clk 400000
      [00.401][mmc]: ************Try SD card 2************
      [00.406][mmc]: mmc 2 cmd timeout 2 status 2
      [00.409][mmc]: smc 2 err, cmd 8,  RE
      [00.413][mmc]: mmc 2 close bus gating and reset
      [00.417][mmc]: Current spd_md 0 freq_id 0 sdly 193
      [00.421][mmc]: Get next samply point 131 at spd_md 0 freq_id 0
      [00.427][mmc]: need retry next clk 400000
      [00.437][mmc]: ************Try SD card 2************
      [00.442][mmc]: mmc 2 cmd timeout 2 status 2
      [00.446][mmc]: smc 2 err, cmd 8,  RE
      [00.449][mmc]: mmc 2 close bus gating and reset
      [00.453][mmc]: Current spd_md 0 freq_id 0 sdly 131
      [00.458][mmc]: Get next samply point 69 at spd_md 0 freq_id 0
      [00.463][mmc]: need retry next clk 400000
      [00.473][mmc]: ************Try SD card 2************
      [00.478][mmc]: mmc 2 cmd timeout 2 status 2
      [00.482][mmc]: smc 2 err, cmd 8,  RE
      [00.485][mmc]: mmc 2 close bus gating and reset
      [00.489][mmc]: Current spd_md 0 freq_id 0 sdly 69
      [00.494][mmc]: Get next samply point 7 at spd_md 0 freq_id 0
      [00.499][mmc]: need retry next clk 400000
      [00.509][mmc]: ************Try SD card 2************
      [00.514][mmc]: mmc 2 cmd timeout 2 status 2
      [00.518][mmc]: smc 2 err, cmd 8,  RE
      [00.521][mmc]: mmc 2 close bus gating and reset
      [00.525][mmc]: Current spd_md 0 freq_id 0 sdly 7
      [00.530][mmc]: Get next samply point 9 at spd_md 0 freq_id 0
      [00.535][mmc]: need retry next clk 400000
      [00.545][mmc]: ************Try SD card 2************
      [00.550][mmc]: mmc 2 cmd timeout 2 status 2
      [00.554][mmc]: smc 2 err, cmd 8,  RE
      [00.557][mmc]: mmc 2 close bus gating and reset
      [00.561][mmc]: Current spd_md 0 freq_id 0 sdly 9
      [00.565][mmc]: Get next samply point 11 at spd_md 0 freq_id 0
      [00.571][mmc]: need retry next clk 400000
      [00.581][mmc]: ************Try SD card 2************
      [00.586][mmc]: mmc 2 cmd timeout 2 status 2
      [00.590][mmc]: smc 2 err, cmd 8,  RE
      [00.593][mmc]: mmc 2 close bus gating and reset
      [00.597][mmc]: Current spd_md 0 freq_id 0 sdly 11
      [00.602][mmc]: Get next samply point 13 at spd_md 0 freq_id 0
      [00.607][mmc]: need retry next clk 400000
      [00.617][mmc]: ************Try SD card 2************
      [00.622][mmc]: mmc 2 cmd timeout 2 status 2
      [00.626][mmc]: smc 2 err, cmd 8,  RE
      [00.629][mmc]: mmc 2 close bus gating and reset
      [00.633][mmc]: Current spd_md 0 freq_id 0 sdly 13
      [00.638][mmc]: Get next samply point 15 at spd_md 0 freq_id 0
      [00.643][mmc]: need retry next clk 400000
      [00.653][mmc]: ************Try SD card 2************
      [00.658][mmc]: mmc 2 cmd timeout 2 status 2
      [00.662][mmc]: smc 2 err, cmd 8,  RE
      [00.665][mmc]: mmc 2 close bus gating and reset
      [00.669][mmc]: Current spd_md 0 freq_id 0 sdly 15
      [00.674][mmc]: Get next samply point 17 at spd_md 0 freq_id 0
      [00.679][mmc]: need retry next clk 400000
      [00.689][mmc]: ************Try SD card 2************
      [00.694][mmc]: mmc 2 cmd timeout 2 status 2
      [00.698][mmc]: smc 2 err, cmd 8,  RE
      [00.701][mmc]: mmc 2 close bus gating and reset
      [00.705][mmc]: Current spd_md 0 freq_id 0 sdly 17
      [00.710][mmc]: Get next samply point 19 at spd_md 0 freq_id 0
      [00.715][mmc]: need retry next clk 400000
      [00.725][mmc]: ************Try SD card 2************
      [00.730][mmc]: mmc 2 cmd timeout 2 status 2
      [00.734][mmc]: smc 2 err, cmd 8,  RE
      [00.737][mmc]: mmc 2 close bus gating and reset
      [00.742][mmc]: Current spd_md 0 freq_id 0 sdly 19
      [00.746][mmc]: Get next samply point 21 at spd_md 0 freq_id 0
      [00.751][mmc]: need retry next clk 400000
      [00.762][mmc]: ************Try SD card 2************
      [00.766][mmc]: mmc 2 cmd timeout 2 status 2
      [00.770][mmc]: smc 2 err, cmd 8,  RE
      [00.773][mmc]: mmc 2 close bus gating and reset
      [00.778][mmc]: Current spd_md 0 freq_id 0 sdly 21
      [00.782][mmc]: Get next samply point 23 at spd_md 0 freq_id 0
      [00.787][mmc]: need retry next clk 400000
      [00.798][mmc]: ************Try SD card 2************
      [00.802][mmc]: mmc 2 cmd timeout 2 status 2
      [00.806][mmc]: smc 2 err, cmd 8,  RE
      [00.809][mmc]: mmc 2 close bus gating and reset
      [00.814][mmc]: Current spd_md 0 freq_id 0 sdly 23
      [00.818][mmc]: Get next samply point 25 at spd_md 0 freq_id 0
      [00.824][mmc]: need retry next clk 400000
      [00.834][mmc]: ************Try SD card 2************
      [00.838][mmc]: mmc 2 cmd timeout 42 status 42
      [00.842][mmc]: smc 2 err, cmd 8,  RE RCE
      [00.846][mmc]: mmc 2 close bus gating and reset
      [00.850][mmc]: Current spd_md 0 freq_id 0 sdly 25
      [00.855][mmc]: Get next samply point 27 at spd_md 0 freq_id 0
      [00.860][mmc]: need retry next clk 400000
      [00.870][mmc]: ************Try SD card 2************
      [00.875][mmc]: mmc 2 cmd timeout 42 status 42
      [00.879][mmc]: smc 2 err, cmd 8,  RE RCE
      [00.883][mmc]: mmc 2 close bus gating and reset
      [00.887][mmc]: Current spd_md 0 freq_id 0 sdly 27
      [00.891][mmc]: Get next samply point 29 at spd_md 0 freq_id 0
      [00.897][mmc]: need retry next clk 400000
      [00.907][mmc]: ************Try SD card 2************
      [00.912][mmc]: mmc 2 cmd timeout 100 status 100
      [00.916][mmc]: smc 2 err, cmd 8,  RTO
      [00.920][mmc]: mmc 2 close bus gating and reset
      [00.925][mmc]: mmc 2 cmd timeout 100 status 100
      [00.929][mmc]: smc 2 err, cmd 55,  RTO
      [00.932][mmc]: mmc 2 close bus gating and reset
      [00.937][mmc]: ************Try MMC card 2************
      [00.945][mmc]: mmc 2 cmd timeout 100 status 100
      [00.950][mmc]: smc 2 err, cmd 1,  RTO
      [00.953][mmc]: mmc 2 close bus gating and reset
      [00.957][mmc]: Card did not respond to voltage select!
      [00.962][mmc]: ************SD/MMC 2 init error!************
      [00.967][mmc]: mmc init product failed
      MMC init failed
      try emmc fail
      [00.974]sunxi-spinand: AW SPINand MTD Layer Version: 1.5 20200407
      [00.980]sunxi-spinand-phy: AW SPINand Phy Layer Version: 1.9 20200306
      [00.988]sunxi-spinand-phy: request spi0 gpio ok
      [00.992]sunxi-spinand-phy: request general tx dma channel ok!
      [00.998]sunxi-spinand-phy: request general rx dma channel ok!
      [01.003]sunxi-spinand-phy: set spic0 clk to 20 Mhz
      [01.008]sunxi-spinand-phy: init spic0 clk ok
      [01.032]sunxi-spinand-phy: read id failed : -110
      try nand fail
      [01.040]unrecognized JEDEC id bytes: ff, ff, ff
      try spinor fail
      initcall sequence 0000000043f9a2e0 failed at call 000000004200d70e (err=-1)
      ### ERROR ### Please RESET the board ###
      

      会依次查找 emmc / spi nand / spi nor,都没有就出错退出了。

      发布在 编译和烧写问题专区
      M
      memory
    • 请问 D1 启动出现 GPT 错误是什么问题呢?
      [    2.018580] [SNDCODEC][sunxi_card_init][583]:card init finished
      [    2.026426] GPT:Primary header thinks Alt. header is not at the end of the disk.
      [    2.035192] mmc1: new high speed SDIO card at address 0001
      [    2.041967] GPT:92680 != 61980671
      [    2.045718] GPT:Alternate GPT header not at the end of the disk.
      [    2.052414] GPT:92680 != 61980671
      [    2.056125] GPT: Use GNU Parted to correct GPT errors.
      [    2.061914]  mmcblk0: p1 p2 p3 p4 p5
      [    2.070879] sunxi-codec-machine 2030340.sound: 2030000.codec <-> 203034c.dummy_cpudai mapping ok
      [    2.082390] input: audiocodec sunxi Audio Jack as /devices/platform/soc@3000000/2030340.sound/sound/card0/input0
      [    2.094644] [SNDCODEC][sunxi_card_dev_probe][832]:register card finished
      [    2.103046] rpmsg_hifi 3003000.msgbox.sunxi,dsp-msgbox.514.258: id:sunxi,dsp-msgbox new channel: 0x202 -> 0x102!
      [    2.114656] rpmsg_hifi 3003000.msgbox.sunxi,dsp-msgbox.514.258: rpmsg hifi[0] client driver is probed
      [    2.126800] NET: Registered protocol family 10
      [    2.133373] Segment Routing with IPv6
      [    2.137653] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
      [    2.145279] NET: Registered protocol family 17
      [    2.150318] can: controller area network core (rev 20170425 abi 9)
      [    2.157424] NET: Registered protocol family 29
      [    2.162391] can: raw protocol (rev 20170425)
      [    2.167197] can: broadcast manager protocol (rev 20170425 t)
      [    2.173545] can: netlink gateway (rev 20190810) max_hops=1
      [    2.180032] Bluetooth: RFCOMM TTY layer initialized
      [    2.185614] Bluetooth: RFCOMM socket layer initialized
      [    2.191377] Bluetooth: RFCOMM ver 1.11
      [    2.196901] Loading compiled-in X.509 certificates
      [    2.205052] HDMI 2.0 driver init start!
      [    2.209361] boot_hdmi=false
      [    2.212522] ERROR: can not get hdmi_cts_compatibility
      [    2.218247] ERROR: can not get hdmi_cec_support node
      [    2.223835] ERROR: can not get hdmi_cec_super_standby node
      [    2.229951] ERROR: can not get hdmi_hdcp_enable
      [    2.235065] ERROR: pinctrl_get for HDMI2.0 DDC fail
      [    2.240505] ERROR: can not get ddc_en_io_ctrl
      [    2.245447] ERROR: can not get hdmi_power_cnt
      [    2.251866] HDMI2.0 module init end
      [    2.290357] twi twi2: twi2 supply twi not found, using dummy regulator
      [    2.304124] sunxi_i2c_probe()2262 - [i2c2] probe success
      [    2.312633] sun8iw20-pinctrl 2000000.pinctrl: 2000000.pinctrl supply vcc-pb not found, using dummy regulator
      [    2.327320] get ehci0-controller wakeup-source is fail.
      [    2.333354] sunxi ehci0-controller don't init wakeup source
      [    2.339578] [sunxi-ehci0]: probe, pdev->name: 4101000.ehci0-controller, sunxi_ehci: 0xffffffe000904a40, 0x:ffffffd004bd0000, irq_no:2e
      [    2.353116] [sunxi-ehci0]: Not init ehci0
      [    2.358143] get ohci0-controller wakeup-source is fail.
      [    2.364174] sunxi ohci0-controller don't init wakeup source
      [    2.370396] [sunxi-ohci0]: probe, pdev->name: 4101400.ohci0-controller, sunxi_ohci: 0xffffffe000905580
      [    2.380838] [sunxi-ohci0]: Not init ohci0
      [    2.385894] get ehci1-controller wakeup-source is fail.
      [    2.391838] sunxi ehci1-controller don't init wakeup source
      [    2.398140] [sunxi-ehci1]: probe, pdev->name: 4200000.ehci1-controller, sunxi_ehci: 0xffffffe000904e00, 0x:ffffffd004bd9000, irq_no:31
      [    2.413146] sunxi-ehci 4200000.ehci1-controller: EHCI Host Controller
      [    2.420369] sunxi-ehci 4200000.ehci1-controller: new USB bus registered, assigned bus number 1
      [    2.430304] sunxi-ehci 4200000.ehci1-controller: irq 49, io mem 0x04200000
      [    2.462878] sunxi-ehci 4200000.ehci1-controller: USB 2.0 started, EHCI 1.00
      [    2.471730] hub 1-0:1.0: USB hub found
      [    2.476075] hub 1-0:1.0: 1 port detected
      [    2.481616] get ohci1-controller wakeup-source is fail.
      [    2.487671] sunxi ohci1-controller don't init wakeup source
      [    2.493979] [sunxi-ohci1]: probe, pdev->name: 4200400.ohci1-controller, sunxi_ohci: 0xffffffe000905940
      [    2.504797] sunxi-ohci 4200400.ohci1-controller: OHCI Host Controller
      [    2.512019] sunxi-ohci 4200400.ohci1-controller: new USB bus registered, assigned bus number 2
      [    2.521926] sunxi-ohci 4200400.ohci1-controller: irq 50, io mem 0x04200400
      [    2.597957] hub 2-0:1.0: USB hub found
      [    2.602201] hub 2-0:1.0: 1 port detected
      [    2.612183] cfg80211: Loading compiled-in X.509 certificates for regulatory database
      [    2.624802] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
      [    2.632268] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
      [    2.642106] clk: Not disabling unused clocks
      [    2.646972] cfg80211: failed to load regulatory.db
      [    2.652407] ALSA device list:
      [    2.655879]   #0: audiocodec
      [    2.659105] alloc_fd: slot 0 not NULL!
      [    2.669590] List of all partitions:
      [    2.673610] b300        30990336 mmcblk0
      [    2.673616]  driver: mmcblk
      [    2.681193]   b301            4032 mmcblk0p1 2a9f222d-b95d-43e1-8766-95ce27872abf
      [    2.681196]
      [    2.691298]   b302             252 mmcblk0p2 99f5f2b1-95b3-427c-bec3-6782f4fc2b53
      [    2.691303]
      [    2.701493]   b303             252 mmcblk0p3 c3e465de-6a1f-4006-b61c-d481a9e22861
      [    2.701498]
      [    2.711539]   b304           10332 mmcblk0p4 f5405084-d4ba-4a81-89c5-84e256e62667
      [    2.711543]
      [    2.721745]   b305           14112 mmcblk0p5 cb03eac2-ded4-4fb0-8023-bca6e652fc41
      [    2.721749]
      [    2.731797] No filesystem could mount root, tried:
      [    2.731802]  ext3
      [    2.737285]  ext2
      [    2.739428]  ext4
      [    2.741567]  squashfs
      [    2.743730]  vfat
      [    2.746258]
      [    2.750054] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,5)
      [    2.759466] CPU: 0 PID: 1 Comm: swapper Not tainted 5.4.61 #224
      [    2.766060] Call Trace:
      [    2.768800] [<ffffffe0000333ce>] walk_stackframe+0x0/0xa0
      [    2.774820] [<ffffffe0000335b0>] show_stack+0x2a/0x34
      [    2.780454] [<ffffffe00060c3d2>] dump_stack+0x20/0x28
      [    2.786087] [<ffffffe000038376>] panic+0xee/0x2b6
      [    2.791333] [<ffffffe000000f5a>] mount_block_root+0x26e/0x28a
      [    2.797738] [<ffffffe000000ffc>] mount_root+0x86/0x90
      [    2.803368] [<ffffffe000001116>] prepare_namespace+0x110/0x152
      [    2.809870] [<ffffffe000000b78>] kernel_init_freeable+0x17e/0x19a
      [    2.816670] [<ffffffe00061fce2>] kernel_init+0x12/0xee
      [    2.822398] [<ffffffe000032018>] ret_from_exception+0x0/0xc
      [    2.828613] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,5) ]---
      
      发布在 MR Series
      M
      memory
    • 回复: 15 刀的 Linux 计算机,基于 F1C100s

      7d1c5ac8-9eb3-4785-9157-dea27d72f8ca-image.png

      ccb80307-a8a4-42c1-b2d6-986b05b2cd3f-image.png

      0c49d000-2785-4dd5-b43c-97541436bb52-image.png

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: 15 刀的 Linux 计算机,基于 F1C100s

      d3b9e6b3-c002-4599-9822-8cf81837e171-image.png

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: 15 刀的 Linux 计算机,基于 F1C100s

      d7ff1abd-75e1-4c74-9398-b3a9b83a7b74-image.png

      发布在 其它全志芯片讨论区
      M
      memory
    • 15 刀的 Linux 计算机,基于 F1C100s

      链接: https://bbenchoff.github.io/pages/LinuxDevice.html

      发布在 其它全志芯片讨论区
      M
      memory
    • repo 下载了D1 的 SDK之后,修改了又想恢复最初版本的步骤

      执行: repo forall -vc "git reset --hard" 即可。

      解释:
      the repo forall will execute for all repos.

      the -v is verbose, so it will print the output of the command

      the -c "COMMAND TO EXECUTE" is the actual command you want

      参考: https://stackoverflow.com/questions/5012163/how-to-discard-changes-using-repo

      发布在 MR Series
      M
      memory
    • 回复: Linux下的sd卡烧写工具LiveSuit

      如果已经处于uboot 命令行,可以输入 efex 进入FEL烧录模式。

      发布在 编译和烧写问题专区
      M
      memory
    • 回复: 请问 根据这个文档 D1_Tina_Linux_安全_开发指南.pdf,为什么不能编译出 sboot?
      3.4 编译 boot0/fes/sboot
      cd longan/brandy/brandy-2.0/spl-pub进入spl-pub目录,需设置平台和要编译的模块参数。
      以{LICHEE_CHIP}为例,编译 nand/emmc 的方法如下:
      
      1. 编译boot0
      make distclean
      make p={LICHEE_CHIP} m=nand
      make boot0
      make distclean
      make p={LICHEE_CHIP} m=emmc
      make boot0
      
      2. 编译fes
      make distclean
      make p={LICHEE_CHIP} m=fes
      make fes
      
      3. 编译sboot
      make distclean
      make p={LICHEE_CHIP} m=sboot
      make sboot
      

      发现进入 spl-pub 编译,并没有什么反应:

      spl-pub$ make p=sun20iw1p1 m=nand
      ===This not's tina environment, use command make.===
      make: *** No targets specified and no makefile found.  Stop.
      
      #### make failed to build some targets  ####
      
      spl-pub$ make p=sun20iw1p1 m=sboot
      ===This not's tina environment, use command make.===
      make: *** No targets specified and no makefile found.  Stop.
      
      #### make failed to build some targets  ####
      
      发布在 MR Series
      M
      memory
    • 请问 根据这个文档 D1_Tina_Linux_安全_开发指南.pdf,为什么不能编译出 sboot?

      请问 根据这个文档 D1_Tina_Linux_安全_开发指南.pdf,为什么不能编译出 sboot?

      发布在 MR Series
      M
      memory
    • boot0启动的时候一直按 2 或者按 d,就能进入FEL烧录模式的原因
      void main(void)
      {
              int dram_size;
              int status;
              phys_addr_t  uboot_base = 0, optee_base = 0, monitor_base = 0, \
                                      rtos_base = 0, opensbi_base = 0;
              u16 pmu_type = 0, key_input = 0; /* TODO: set real value */
      
              sunxi_serial_init(BT0_head.prvt_head.uart_port, (void *)BT0_head.prvt_head.uart_ctrl, 6);
              printf("HELLO! BOOT0 is starting!\n");
              printf("BOOT0 commit : %s\n", BT0_head.hash);
              sunxi_set_printf_debug_mode(BT0_head.prvt_head.debug_mode);
      
              status = sunxi_board_init();
              if(status)
                      goto _BOOT_ERROR;
      
              if (rtc_probe_fel_flag()) {
                      rtc_clear_fel_flag();
                      goto _BOOT_ERROR;
      #ifdef CFG_SUNXI_PHY_KEY
              } else if (check_update_key(&key_input)) {
                      goto _BOOT_ERROR;
      #endif
              } else if (BT0_head.prvt_head.enable_jtag) {
                      printf("enable_jtag\n");
                      boot_set_gpio((normal_gpio_cfg *)BT0_head.prvt_head.jtag_gpio, 5, 1);
              }
      
      #ifdef FPGA_PLATFORM
              dram_size = mctl_init((void *)BT0_head.prvt_head.dram_para);
      #else
      #ifdef CFG_DDR_SOFT_TRAIN
              if (BT0_head.prvt_head.dram_para[30] & (1 << 11))
                      neon_enable();
      #endif
              dram_size = init_DRAM(0, (void *)BT0_head.prvt_head.dram_para);
      #endif
              if(!dram_size)
                      goto _BOOT_ERROR;
              else {
                      printf("dram size =%d\n", dram_size);
              }
      
              char uart_input_value = get_uart_input();
      
              if (uart_input_value == '2') {
                      sunxi_set_printf_debug_mode(3);
                      printf("detected user input 2\n");
                      goto _BOOT_ERROR;
              } else if (uart_input_value == 'd') {
                      sunxi_set_printf_debug_mode(8);
                      printf("detected user input d\n");
              }
      
              mmu_enable(dram_size);
              malloc_init(CONFIG_HEAP_BASE, CONFIG_HEAP_SIZE);
      

      lichee/brandy-2.0/spl/nboot/main/boot0_main.c

      发布在 MR Series
      M
      memory
    • 回复: 海鲜市场淘了一块35元二手香橙派H3开发板,看看会不会翻车

      573C5EEB5DCD5E5697558BCDF5BACFFE.jpg 6E0D9326476947A4DF74BA7CE9F4FC40.jpg 5B6F7F8927D2BACFBADBFEB840B6E64F.jpg

      接个垃圾堆里面的15寸屏试一试。

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: 在D1的tina上整上overlayfs

      @tevet
      再厚脸请教一下, rootfs_data 在哪里指定生成 ext4 格式的呢? 他如何填充文件的呢?如何把 rootfs_data 挂载成 overlayfs 的呢?

      发布在 MR Series
      M
      memory
    • 回复: 在D1的tina上整上overlayfs

      也就是说 overlayfs 文件系统是 ext2/ext4 对吗? 请问在哪里配置挂载这个 overlayfs 呢?

      发布在 MR Series
      M
      memory
    • 回复: 在D1的tina上整上overlayfs

      楼主666

      Index: e2fsprogs-1.42.12/lib/blkid/devname.c
      ===================================================================
      --- e2fsprogs-1.42.12.orig/lib/blkid/devname.c	2014-07-03 22:33:48.000000000 +0800
      +++ e2fsprogs-1.42.12/lib/blkid/devname.c	2022-01-27 22:54:42.879876367 +0800
      @@ -37,7 +37,9 @@
       #include <sys/mkdev.h>
       #endif
       #include <time.h>
      -
      +#ifdef HAVE_SYS_SYSMACROS_H
      +#include <sys/sysmacros.h>
      +#endif
       #include "blkidP.h"
       
       /*
      Index: e2fsprogs-1.42.12/lib/blkid/devno.c
      ===================================================================
      --- e2fsprogs-1.42.12.orig/lib/blkid/devno.c	2014-06-26 03:19:15.000000000 +0800
      +++ e2fsprogs-1.42.12/lib/blkid/devno.c	2022-01-27 22:55:17.691876715 +0800
      @@ -31,7 +31,9 @@
       #if HAVE_SYS_MKDEV_H
       #include <sys/mkdev.h>
       #endif
      -
      +#ifdef HAVE_SYS_SYSMACROS_H
      +#include <sys/sysmacros.h>
      +#endif
       #include "blkidP.h"
       
       char *blkid_strndup(const char *s, int length)
      Index: e2fsprogs-1.42.12/lib/ext2fs/finddev.c
      ===================================================================
      --- e2fsprogs-1.42.12.orig/lib/ext2fs/finddev.c	2014-06-26 03:19:15.000000000 +0800
      +++ e2fsprogs-1.42.12/lib/ext2fs/finddev.c	2022-01-27 22:55:46.043876998 +0800
      @@ -31,7 +31,9 @@
       #if HAVE_SYS_MKDEV_H
       #include <sys/mkdev.h>
       #endif
      -
      +#ifdef HAVE_SYS_SYSMACROS_H
      +#include <sys/sysmacros.h>
      +#endif
       #include "ext2_fs.h"
       #include "ext2fs.h"
       #include "ext2fsP.h"
      Index: e2fsprogs-1.42.12/lib/ext2fs/ismounted.c
      ===================================================================
      --- e2fsprogs-1.42.12.orig/lib/ext2fs/ismounted.c	2014-07-03 22:33:48.000000000 +0800
      +++ e2fsprogs-1.42.12/lib/ext2fs/ismounted.c	2022-01-27 22:56:45.743877595 +0800
      @@ -38,7 +38,9 @@
       #endif /* HAVE_GETMNTINFO */
       #include <string.h>
       #include <sys/stat.h>
      -
      +#ifdef HAVE_SYS_SYSMACROS_H
      +#include <sys/sysmacros.h>
      +#endif
       #include "ext2_fs.h"
       #include "ext2fs.h"
       
      Index: e2fsprogs-1.42.12/misc/mk_hugefiles.c
      ===================================================================
      --- e2fsprogs-1.42.12.orig/misc/mk_hugefiles.c	2014-08-27 21:26:49.000000000 +0800
      +++ e2fsprogs-1.42.12/misc/mk_hugefiles.c	2022-01-27 22:57:24.915877986 +0800
      @@ -34,6 +34,9 @@
       #include <sys/ioctl.h>
       #include <sys/types.h>
       #include <sys/stat.h>
      +#ifdef HAVE_SYS_SYSMACROS_H
      +#include <sys/sysmacros.h>
      +#endif
       #include <libgen.h>
       #include <limits.h>
       #include <blkid/blkid.h>
      

      可是光改这个package\utils\e2fsprogs\patches也不行吧?

      发布在 MR Series
      M
      memory
    • 回复: 请教关于工作中需对内核配置项的了解程度

      grep 搜索目录下面的 Kconfig 和 Makefile 文件,即查即用。

      发布在 Linux
      M
      memory
    • 回复: USB Gadget 模拟摄像头 g_webcam: musb-hdrc.4.auto: failed to start g_webcam: -22

      据说是端点(end point)不够。

      发布在 Linux
      M
      memory
    • 回复: D1s RTL8723DS wlan1 作为wifi热点

      87bbc2c8-d46e-4583-8394-4eeb3b6decf5-B5CB9CB270B28474258FD26D59EEB1DF.jpg

      发布在 MR Series
      M
      memory
    • D1s RTL8723DS wlan1 作为wifi热点

      ① 设置 wlan1 地址:
      ifconfig wlan1 192.168.5.1

      ② /etc/wifi/hostapd.conf 里面的 wlan0 改为 wlan1

      interface=wlan1
      driver=nl80211
      ssid=aw_ap001
      channel=6
      hw_mode=g
      ignore_broadcast_ssid=0
      auth_algs=1
      wpa=3
      wpa_passphrase=12345678
      wpa_key_mgmt=WPA-PSK
      wpa_pairwise=TKIP
      rsn_pairwise=CCMP
      

      ③ 执行hostapd:
      hostapd -B /etc/wifi/hostapd.conf

      ④ /etc/dnsmasq.conf 里面的 wlan0 改为 wlan1:

      # Change the following lines if you want dnsmasq to serve SRV
      # records.
      # You may add multiple srv-host lines.
      # The fields are <name>,<target>,<port>,<priority>,<weight>
      
      # A SRV record sending LDAP for the example.com domain to
      # ldapserver.example.com port 289
      #srv-host=_ldap._tcp.example.com,ldapserver.example.com,389
      
      # Two SRV records for LDAP, each with different priorities
      #srv-host=_ldap._tcp.example.com,ldapserver.example.com,389,1
      #srv-host=_ldap._tcp.example.com,ldapserver.example.com,389,2
      
      # A SRV record indicating that there is no LDAP server for the domain
      # example.com
      #srv-host=_ldap._tcp.example.com
      
      # The following line shows how to make dnsmasq serve an arbitrary PTR
      # record. This is useful for DNS-SD.
      # The fields are <name>,<target>
      #ptr-record=_http._tcp.dns-sd-services,"New Employee Page._http._tcp.dns-sd-services"
      
      # Change the following lines to enable dnsmasq to serve TXT records.
      # These are used for things like SPF and zeroconf.
      # The fields are <name>,<text>,<text>...
      
      #Example SPF.
      #txt-record=example.com,"v=spf1 a -all"
      
      #Example zeroconf
      #txt-record=_http._tcp.example.com,name=value,paper=A4
      
      # Provide an alias for a "local" DNS name. Note that this _only_ works
      # for targets which are names from DHCP or /etc/hosts. Give host
      # "bert" another name, bertrand
      # The fields are <cname>,<target>
      #cname=bertand,bert
      resolv-file=/etc/resolv.dnsmasq.conf
      strict-order
      cache-size=102400
      interface=wlan1
      min-cache-ttl=3600
      dhcp-range=192.168.5.2,192.168.5.255
      all-servers
      dhcp-sequential-ip
      

      ⑤ 执行 dnsmasq:
      /etc/init.d/dnsmasq restart

      ⑥ 现在手机wifi可以连接此热点了!

      参考: D1 LicheeRV Dock 移植RTL8723DS驱动
      https://bbs.aw-ol.com/topic/994/share/6

      发布在 MR Series
      M
      memory
    • 回复: 海鲜市场淘了一块35元二手香橙派H3开发板,看看会不会翻车

      浏览器播放哔哩哔哩视频,感觉帧率有点低。

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: 海鲜市场淘了一块35元二手香橙派H3开发板,看看会不会翻车

      9ae388cb-2c01-4850-b457-5a0eeae1b76d-b98699196cfde4e3c6dfa424dcab0d9.jpg

      c9c9830c-07e1-4aac-a25f-fac90aaedc1a-517c0aa704f90af65f77a3fd9b03831.jpg

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: 海鲜市场淘了一块35元二手香橙派H3开发板,看看会不会翻车

      貌似这个主线uboot的卡兼容性不好引起的,换一张卡就OK了:

      U-Boot 2018.05-orangepi (Mar 16 2021 - 14:43:53 +0800) Allwinner Technology
      
      CPU:   Allwinner H3 (SUN8I 1680)
      Model: Xunlong Orange Pi Lite
      DRAM:  1 GiB
      MMC:   SUNXI SD/MMC: 0
      Loading Environment from FAT... Unable to use mmc 0:1... Failed (-5)
      In:    serial@01c28000
      Out:   serial@01c28000
      Err:   serial@01c28000
      Net:   No ethernet found.
      starting USB...
      USB0:   USB EHCI 1.00
      USB1:   USB OHCI 1.0
      USB2:   USB EHCI 1.00
      USB3:   USB OHCI 1.0
      scanning bus 0 for devices... 1 USB Device(s) found
      scanning bus 2 for devices... 1 USB Device(s) found
             scanning usb for storage devices... 0 Storage Device(s) found
      Autoboot in 1 seconds, press <Space> to stop
      switch to partitions #0, OK
      mmc0 is current device
      Scanning mmc 0:1...
      Found U-Boot script /boot/boot.scr
      3971 bytes read in 19 ms (204.1 KiB/s)
      ## Executing script at 43100000
      U-boot loaded from SD
      Boot script loaded from mmc
      179 bytes read in 15 ms (10.7 KiB/s)
      5742487 bytes read in 305 ms (18 MiB/s)
      4660032 bytes read in 255 ms (17.4 MiB/s)
      Found legacy kernel configuration
      34468 bytes read in 28 ms (1.2 MiB/s)
      ## Loading init Ramdisk from Legacy Image at 43300000 ...
         Image Name:   uInitrd
         Image Type:   ARM Linux RAMDisk Image (gzip compressed)
         Data Size:    5742423 Bytes = 5.5 MiB
         Load Address: 00000000
         Entry Point:  00000000
         Verifying Checksum ... OK
      
      Starting kernel ...
      
      
      Orange Pi 2.1.0 Xenial ttyS0
      
      orangepilite login: root
      Password:
      
      Login incorrect
      orangepilite login:
      Login timed out after 60 seconds.
      
      Orange Pi 2.1.0 Xenial ttyS0
      
      orangepilite login:
      

      efdc845e-e85f-46b9-9121-599e0e6fe1e4-ED019B4A6F679162C5EE58CACF6D64F7.jpg

      发布在 其它全志芯片讨论区
      M
      memory
    • 回复: 海鲜市场淘了一块35元二手香橙派H3开发板,看看会不会翻车

      原理图: OrangePi_pc_schematic_v1.3.pdf

      用户手册: OrangePi_PC_H3_用户手册_v3.2.pdf

      发布在 其它全志芯片讨论区
      M
      memory
    • 1
    • 2
    • 3
    • 4
    • 5
    • 2 / 5