@chenlinfei 快亿点点(50%左右,还是达不到理论值,所以应该是有复合原因影响,复合影响的问题,都不好查)
 
		
		
		
		
	xiaowenge 发布的帖子
- 
    【DIY教程】D1哪吒开发板改成HDMI输出发布在 MR SeriesD1哪吒开发板自带的固件和官方释放的Tina D1 v1.0.1 SDK默认都是mipi显示输出,如果需要改成HDMI输出,按场景需求,有以下三种方法: 1.开发板直接命令行切换 
 这种方法仅限本次开机,重启设备知乎又会重新加载DTS,变回mipi输出
 命令: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;此时开发板会改成HDMI输出,使用命令cat colorbar可以进行测试是否切换成功了: echo 1 > /sys/class/disp/disp/attr/colorbar详见D1在线文档:https://d1.docs.aw-ol.com/study/study_5connect/#hdmi 2.烧HDMI固件 
 烧写官方提供的HDMI输出固件,就会变成HDMI输出,每次开机都是
 详见:https://d1.docs.aw-ol.com/source/3_getimg/
 固件下载地址:https://www.aw-ol.com/downloads/resources/44
  3.修改源码 
 如果想自己制作一个HDMI输出的固件,可以按照如下方法修改源码
 (1)修改DTS文件,uboot的dts和内核的dts都要改tina/device/config/chips/d1/configs/nezha$ git diff . diff --git a/configs/nezha/linux-5.4/board.dts b/configs/nezha/linux-5.4/board.dts index bfeed6c..1cef004 100755 --- a/configs/nezha/linux-5.4/board.dts +++ b/configs/nezha/linux-5.4/board.dts @@ -1128,30 +1128,25 @@ chn_cfg_mode : Hardware DE channel allocation config. 0:single display with disp_init_enable = <1>; disp_mode = <0>; - screen0_output_type = <1>; - screen0_output_mode = <4>; - - screen1_output_type = <3>; - screen1_output_mode = <10>; - - screen1_output_format = <0>; - screen1_output_bits = <0>; - screen1_output_eotf = <4>; - screen1_output_cs = <257>; - screen1_output_dvi_hdmi = <2>; - screen1_output_range = <2>; - screen1_output_scan = <0>; - screen1_output_aspect_ratio = <8>; - - dev0_output_type = <1>; - dev0_output_mode = <4>; + screen0_output_type = <3>; + screen0_output_mode = <10>; + + screen0_output_format = <0>; + screen0_output_bits = <0>; + screen0_output_eotf = <4>; + screen0_output_cs = <257>; + screen0_output_dvi_hdmi = <2>; + screen0_output_range = <2>; + screen0_output_scan = <0>; + screen0_output_aspect_ratio = <8>; + + screen1_output_type = <1>; + screen1_output_mode = <4>; + + dev0_output_type = <4>; + dev0_output_mode = <10>; dev0_screen_id = <0>; - dev0_do_hpd = <0>; - - dev1_output_type = <4>; - dev1_output_mode = <10>; - dev1_screen_id = <1>; - dev1_do_hpd = <1>; + dev0_do_hpd = <1>; def_output_dev = <0>; hdmi_mode_check = <1>; diff --git a/configs/nezha/uboot-board.dts b/configs/nezha/uboot-board.dts old mode 100644 new mode 100755 index 793dec2..a5c99a2 --- a/configs/nezha/uboot-board.dts +++ b/configs/nezha/uboot-board.dts @@ -214,30 +214,25 @@ disp_init_enable = <1>; disp_mode = <0>; - screen0_output_type = <1>; - screen0_output_mode = <4>; - - screen1_output_type = <3>; - screen1_output_mode = <10>; - - screen1_output_format = <0>; - screen1_output_bits = <0>; - screen1_output_eotf = <4>; - screen1_output_cs = <257>; - screen1_output_dvi_hdmi = <2>; - screen1_output_range = <2>; - screen1_output_scan = <0>; - screen1_output_aspect_ratio = <8>; - - dev0_output_type = <1>; - dev0_output_mode = <4>; + screen0_output_type = <3>; + screen0_output_mode = <10>; + + screen0_output_format = <0>; + screen0_output_bits = <0>; + screen0_output_eotf = <4>; + screen0_output_cs = <257>; + screen0_output_dvi_hdmi = <2>; + screen0_output_range = <2>; + screen0_output_scan = <0>; + screen0_output_aspect_ratio = <8>; + + screen1_output_type = <1>; + screen1_output_mode = <4>; + + dev0_output_type = <4>; + dev0_output_mode = <10>; dev0_screen_id = <0>; - dev0_do_hpd = <0>; - - dev1_output_type = <4>; - dev1_output_mode = <10>; - dev1_screen_id = <1>; - dev1_do_hpd = <1>; + dev0_do_hpd = <1>; def_output_dev = <0>; hdmi_mode_check = <1>;(2)重新编译uboot 
 因为单独make编译的时候默认是不编译ubootd的,所以需要编译一下uboot//进入uboot代码路径 cboot //单独编译uboot,编完uboot文件会自动复制到方案下,不用管它 muboot //重新编译打包 make -j64 pack(3)改掉启动logo(可选) 
 sdk自带的启动logo是适配mipi屏幕的,在HDMI屏幕上显示会异常,所以建议改掉原SDK自带那个哪吒的启动logo,改成了linux小企鹅,大家可以把tina/device/config/chips/d1/configs/nezha/config 下面的bootlogo.bmp文件替换成下面这个文件:
 bootlogo.7z完成以上几步之后,插上HDMI并启动开发板,显示器上就会输出linux小企鹅的logo了 
- 
    回复: D1哪吒开发板默认输出改成HDMI发布在 MR Series@xiaowenge 在 D1哪吒开发板默认输出改成HDMI 中说: @cloud_d1 知道了,你们的uboot没更新,因为单独make编译的时候默认是不编译ubootd的。 
 做这一步://进入uboot代码路径 cboot //单独编译uboot,编完uboot文件会自动复制到方案下,不用管它 muboot //重新编译打包 make -j64 pack附完整dts文件修改,之前的有个***dev0_do_hpd = <1>;***的参数没改到: tina/device/config/chips/d1/configs/nezha$ git diff . diff --git a/configs/nezha/linux-5.4/board.dts b/configs/nezha/linux-5.4/board.dts index bfeed6c..1cef004 100755 --- a/configs/nezha/linux-5.4/board.dts +++ b/configs/nezha/linux-5.4/board.dts @@ -1128,30 +1128,25 @@ chn_cfg_mode : Hardware DE channel allocation config. 0:single display with disp_init_enable = <1>; disp_mode = <0>; - screen0_output_type = <1>; - screen0_output_mode = <4>; - - screen1_output_type = <3>; - screen1_output_mode = <10>; - - screen1_output_format = <0>; - screen1_output_bits = <0>; - screen1_output_eotf = <4>; - screen1_output_cs = <257>; - screen1_output_dvi_hdmi = <2>; - screen1_output_range = <2>; - screen1_output_scan = <0>; - screen1_output_aspect_ratio = <8>; - - dev0_output_type = <1>; - dev0_output_mode = <4>; + screen0_output_type = <3>; + screen0_output_mode = <10>; + + screen0_output_format = <0>; + screen0_output_bits = <0>; + screen0_output_eotf = <4>; + screen0_output_cs = <257>; + screen0_output_dvi_hdmi = <2>; + screen0_output_range = <2>; + screen0_output_scan = <0>; + screen0_output_aspect_ratio = <8>; + + screen1_output_type = <1>; + screen1_output_mode = <4>; + + dev0_output_type = <4>; + dev0_output_mode = <10>; dev0_screen_id = <0>; - dev0_do_hpd = <0>; - - dev1_output_type = <4>; - dev1_output_mode = <10>; - dev1_screen_id = <1>; - dev1_do_hpd = <1>; + dev0_do_hpd = <1>; def_output_dev = <0>; hdmi_mode_check = <1>; diff --git a/configs/nezha/uboot-board.dts b/configs/nezha/uboot-board.dts old mode 100644 new mode 100755 index 793dec2..a5c99a2 --- a/configs/nezha/uboot-board.dts +++ b/configs/nezha/uboot-board.dts @@ -214,30 +214,25 @@ disp_init_enable = <1>; disp_mode = <0>; - screen0_output_type = <1>; - screen0_output_mode = <4>; - - screen1_output_type = <3>; - screen1_output_mode = <10>; - - screen1_output_format = <0>; - screen1_output_bits = <0>; - screen1_output_eotf = <4>; - screen1_output_cs = <257>; - screen1_output_dvi_hdmi = <2>; - screen1_output_range = <2>; - screen1_output_scan = <0>; - screen1_output_aspect_ratio = <8>; - - dev0_output_type = <1>; - dev0_output_mode = <4>; + screen0_output_type = <3>; + screen0_output_mode = <10>; + + screen0_output_format = <0>; + screen0_output_bits = <0>; + screen0_output_eotf = <4>; + screen0_output_cs = <257>; + screen0_output_dvi_hdmi = <2>; + screen0_output_range = <2>; + screen0_output_scan = <0>; + screen0_output_aspect_ratio = <8>; + + screen1_output_type = <1>; + screen1_output_mode = <4>; + + dev0_output_type = <4>; + dev0_output_mode = <10>; dev0_screen_id = <0>; - dev0_do_hpd = <0>; - - dev1_output_type = <4>; - dev1_output_mode = <10>; - dev1_screen_id = <1>; - dev1_do_hpd = <1>; + dev0_do_hpd = <1>; def_output_dev = <0>; hdmi_mode_check = <1>;
- 
    回复: D1哪吒开发板默认输出改成HDMI发布在 MR Series@cloud_d1 知道了,你们的uboot没更新,因为单独make编译的时候默认是不编译ubootd的。 
 做这一步://进入uboot代码路径 cboot //单独编译uboot,编完uboot文件会自动复制到方案下,不用管它 muboot //重新编译打包 make -j64 pack
- 
    【DIY教程】D1哪吒开发板移植wifi6模组AW869B发布在 MR SeriesD1哪吒开发板自带的是全志的XR829模组,支持2.4G wifi4和bt,但是不支持wifi6。 
 相比wifi4,wifi6具有更高的速度、更低的延时、更好的安全性等特点,在高端AIoT产品中有广泛的使用场景。因此,我们决定在D1上移植个wifi6模组来玩。
 我们的wifi6模组选择的是全志自己做的AW869B,该模组已经在全志平板、智能物联等产品上应用。1.硬件修改 
 1.1 换模组
 AW869B和D1哪吒开发板原装的XR829是pin to pin的,所以只需要撬开板子上的哪吒眼,把XR829吹下来,就可以直接把AW869B替换上去
  1.2 改电 
 AW869B规格书严格要求io供电是1.8V,但是现在SDIO_DATA脚的电压上拉测的只有1.4V,所以还要改个电,具体改法如下:
 1.2.1 修改VDDIO供电
 VDDIO供电默认来自VCC-PG,将VCC-PG由VCC_3V3改到LDOA-OUT.【即:拆掉RS121,贴上RS90(R0402,0欧)】
 1.2.2 BT-RESETN引脚拉低
 AW869B规格要求.【即:贴上RW20(R0402,100K)】
 修改点如图:
  2.软件修改 
 patch下载地址:https://www.aw-ol.com/downloads/resources/45
 2.1 添加AW869B驱动
 ① 将/software/driver下的aic8800文件夹拷贝至lichee/linux-5.4/drivers/net/wireless目录下
 ② lichee/linux-5.4/drivers/net/wireless/Makefile中添加obj-$(CONFIG_AIC_WLAN_SUPPORT) += aic8800/
 ③ lichee/linux-5.4/drivers/net/wireless/Kconfig中添加source "drivers/net/wireless/aic8800/Kconfig"
 ④ 在根目录执行make kernel_menuconfig命令,选中Device Drivers 》 Network device support 》 Wireless LAN 》 [*]AIC wireless Support <M> AIC8800 wlan Support <M> AIC8800 bluetooth Support⑤ 执行mkernel 2.2 适配Module 
 ①将software/patch目录下的0001-AIC8800-WiFi-Aic8800-WiFi-add-new-modules.path拷贝到target/allwinner/d1-common下执行git am
 ②在Tina根目录执行make menuconfig,选中 Kernel modules 》 Wireless Drivers 》 < * > kmod-net-aic8800
 2.3 添加firmware文件
 ①将/software/firmware下的aic8800目录文件夹拷贝至package/firmware/linux-firmware目录下
 ②在Tina根目录执行make menuconfig,选中 Firmware 》 < * > aic8800-firmware. (如不显示aic8800-firmware可以在根目录执行build\envsetup.sh)
 2.4 修改设备树的PG口电压
 ①将software/patch目录下的0001-AIC8800-WiFi-CONFIG_PG_1_8V.patch拷贝到/device/config/chips/d1/configs/nezha/linux-5.4执行git am
 2.5 编译、烧写、运行。
- 
    回复: D1哪吒开发板默认输出改成HDMI发布在 MR Series@tianmao 在 D1哪吒开发板默认输出改成HDMI 中说: @xiaowenge 赞,搭顺风车问下,这个企鹅是240320的黑底的照片,背景也是黑色的,这种显示比较好,如果我是白底的400400这种的,背景颜色应该怎么设置呢 看了下配置文件注释,好像没有配置背景颜色这么一说(当然也可能是有但是配置文件没有更新,具体要读一下驱动源码) 
 如果不是黑底的话,应该是P一整张适配整个屏幕大小的开机log吧,这样才不会有色差
  
- 
    回复: D1哪吒开发板默认输出改成HDMI发布在 MR Series有朋友提到用我以上的修改还是会绿屏(满屏绿那种),我回忆了一下修改点,我之前是改掉了原SDK自带那个哪吒的启动logo,改成了linux小企鹅,大家可以把tina/device/config/chips/d1/configs/nezha/config 下面的bootlogo.bmp文件替换成下面这个文件试试: 
 bootlogo.7z
 (文件是小企鹅启动logo)
 (之前改掉启动logo是因为哪吒那张图3M多太大了,我不是故意改掉不告诉你们的。。。。)
- 
    回复: uboot中 ubifs 可以关闭吗发布在 MR Series不建议直接关掉ubifs,因为可能对uboot其它模块有影响,我们的文档中有一份《D1 Tina Linux 启动优化开发指南》,里面有建议的优化启动速度方法,可以先参考进行启动时间的优化 
  
- 
    【固件发布】D1哪吒HDMI测试固件20210804(开机HDMI就有小企鹅启动logo)发布在 MR Series由于最近很多朋友在论坛提到HDMI的问题,所以上传一个HDMI输出的固件,供大家测试用 D1哪吒HDMI测试固件20210804(开机HDMI就有小企鹅启动logo)下载地址:https://www.aw-ol.com/downloads/resources/44 固件配置: 基于D1 哪吒对外释放 Open V1.0.1版本SDK: (1)默认boot dts和内核dts都配置成了HDMI输出,插上HDMI显示器(1080P)开机就有小企鹅启动logo输出; (2)* echo 1 > /sys/class/disp/disp/attr/colorbar * 可以测试HDMI的colorbar; (3)DTS修改参考论坛帖子:https://bbs.aw-ol.com/topic/253 发布时间:20210804 
- 
    神贴:CSDN上硬件十万个为什么的公众号文章合集发布在 其它全志芯片讨论区发现个神贴:CSDN上硬件十万个为什么的公众号文章合集 
 干货知识都整理得整整齐齐的,软件硬件的都有,都是实用贴,学会了就是高级硬件工程师了
  
 上链接:https://blog.csdn.net/pan0755/article/details/74454344
- 
    回复: 请问D1 tina v1.0.0 是不是默认支持了自带的mipi屏幕, 可是为什么我的没有显示呢?背光是亮的发布在 MR Series@memory 拿到代码,repo sync就是最新的 
- 
    回复: 请问D1怎么开双显和同显异显?发布在 MR Series@memory 在 请问D1怎么开双显和同显异显? 中说: @bedrock 在 请问D1怎么开双显和同显异显? 中说: 见文档: 
 固件下载:
 https://d1.docs.aw-ol.com/source/3_getimg/这个固件我这里MIPI可以显示, 但是HDMI不显示: [ 5.422590] [HDMI2 error]: sink do not support this mode:0 [ 5.965702] init: Console is alive [ 5.969722] init: - watchdog - [ 5.973342] init: - preinit -D1哪吒双屏同显测试固件 
 下载地址:https://www.aw-ol.com/downloads/resources/38固件配置: 基于D1 哪吒对外释放 Open V1.0.1版本SDK: (1)可适配1G/2G版本D1哪吒开发板; (2)可以支持8寸MIPI屏幕和HDMI双同时输出相同的视频,使用 tplaydemo +视频 路径即可播放; 发布时间:20210618 作者:Yongheng dts配好了,你要tplaydemo +视频播放 的时候才会同时从两个屏幕输出播放的视频 
- 
    回复: D1主板烧录HDMI输出固件,但无输出发布在 MR Series@xiaowenge 在 D1主板烧录HDMI输出固件,但无输出 中说: 两部走 
 1.手动切到HDMIcd /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;2.cat colorbar看看 echo 1 > /sys/class/disp/disp/attr/colorbar
- 
    回复: D1主板烧录HDMI输出固件,但无输出发布在 MR Series两部走 
 1.手动切到HDMIcd /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;2.cat colorbar看看 echo 1 > /sys/class/disp/disp/attr/colorbar
- 
    回复: 【骚操作】启动阶段改设备DTS的方法发布在 Linux*注:如果参数值是数字的话,要用"<>"括起来,如: fdt set /soc/disp/ screen0_output_type <4>如果是字符串的话要用引号引起来,如: dt set /soc/disp/ boot_fb0 "000000007eb4d680,780,438,20,1e00,348,17c,438,2bc"
- 
    【骚操作】启动阶段改设备DTS的方法发布在 Linux在设备BSP调试的过程中,经常会出现需要修改DTS的情况,比如调试一个新的屏幕、传感器或者wifi模组,传统的方法是: 
 在源码中直接修改board.dts文件->重新编译&打包->烧写到设备里
 这种方法繁杂,编译和烧写都要花费时间,严重影响开发效率。
 因此,全志提供了一个启动阶段DTS调试的方法,可以让我们在启动阶段就把DTS改掉,这次启动加载的就是改后的DTS。
 *注:这种修改是一次性的,不可以保存的,只限这次启动的时候生效,断电或者重启就不生效了1.设备上电过程中串口按住电脑键盘的"s"按键,让设备进入boot: 
 *注:是真的按住调试的电脑的键盘的s按键,和按住2另设备跳烧录的操作一样(参考:https://d1.docs.aw-ol.com/study/study_4compile/#pc2)
 如果进入boot成功,就会有如下log,这时就可以在串口对设备进行DTS修改操作。
  
 (详细log如下)[188]HELLO! BOOT0 is starting! [191]BOOT0 commit : 27369ab [194]set pll start [196]periph0 has been enabled [199]set pll end [200][pmu]: bus read error [203]board init ok [205]DRAM only have internal ZQ!! [208]get_pmu_exist() = -1 [210]DRAM BOOT DRIVE INFO: V0.24 [213]DRAM CLK = 792 MHz [215]DRAM Type = 3 (2:DDR2,3:DDR3) [219]DRAMC ZQ value: 0x7b7bfb [221]DRAM ODT value: 0x42. [224]ddr_efuse_type: 0x0 [227]DRAM SIZE =1024 M [231]DRAM simple test OK. [233]dram size =1024 [235]key press : s [237]spinand UBOOT_START_BLK_NUM 8 UBOOT_LAST_BLK_NUM 32 [242]block from 8 to 32 [318]Check is correct. [320]dma 0x2f9f8 int is not used yet [323]dma 0x2f9f8 int is free, you do not need to free it again [329]Entry_name = opensbi [332]Entry_name = u-boot [335]Entry_name = dtb [338]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,▒ U-Boot 2018.05-g0a88ac9 (Apr 30 2021 - 11:23:28 +0000) Allwinner Technology [00.421]DRAM: 1 GiB [00.423]Relocation Offset is: 3def0000 [00.427]secure enable bit: 0 [00.429]CPU=1008 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz MBus=300Mhz [00.436]flash init start [00.438]workmode = 0,storage type = 0 [00.444]sunxi-spinand-phy: not detect any munufacture from id table [00.450]sunxi-spinand-phy: get spi-nand Model from fdt fail [00.456]sunxi-spinand-phy: get phy info from fdt fail device nand0 <nand>, # parts = 4 #: name size offset mask_flags 0: boot0 0x00100000 0x00000000 1 1: uboot 0x00300000 0x00100000 1 2: secure_storage 0x00100000 0x00400000 1 3: sys 0x0fb00000 0x00500000 0 active partition: nand0,0 - (boot0) 0x00100000 @ 0x00000000 defaults: mtdids : nand0=nand mtdparts: mtdparts=nand:1024k@0(boot0)ro,3072k@1048576(uboot)ro,1024k@4194304(secure_storage)ro,-(sys) [00.794]ubi0: attaching mtd4 [01.190]ubi0: scanning is finished [01.200]ubi0: attached mtd4 (name "sys", size 251 MiB) [01.204]ubi0: PEB size: 262144 bytes (256 KiB), LEB size: 258048 bytes [01.211]ubi0: min./max. I/O unit sizes: 4096/4096, sub-page size 2048 [01.217]ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096 [01.223]ubi0: good PEBs: 1004, bad PEBs: 0, corrupted PEBs: 0 [01.228]ubi0: user volume: 9, internal volumes: 1, max. volumes count: 128 [01.235]ubi0: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 0 [01.243]ubi0: available PEBs: 0, total reserved PEBs: 1004, PEBs reserved for bad PEB handling: 40 [01.251]sunxi flash init ok [01.254]line:714 init_clocks __clk_init: clk pll_periph0x2 already initialized register fix_factor clk error [01.264]drv_disp_init request pwm success, pwm2:pwm2:0x2000c00. [01.281]drv_disp_init finish [01.283]boot_gui_init:start [01.286]set disp.dev2_output_type fail. using defval=0 [01.478]boot_gui_init:finish [01.891]LCD open finish partno erro : can't find partition bootloader 54 bytes read in 0 ms [02.052]bmp_name=bootlogo.bmp size 3072054 3072054 bytes read in 126 ms (23.3 MiB/s) [02.402]Loading Environment from SUNXI_FLASH... OK [02.435]out of usb burn from boot: not need burn key [02.460]update bootcmd [02.482]change working_fdt 0x7eaafda8 to 0x7ea8fda8 [02.503]update dts Hit any key to stop autoboot: 0 => sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss Unknown command 'sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss' - try 'help' => =>2.要看哪个DTS节点的参数,就输入 fdt list +节点名称 
 比如查看整个/soc/的DTS:=> fdt list /soc/ soc@3000000 { #address-cells = <0x00000002>; #size-cells = <0x00000002>; compatible = "simple-bus"; ranges; sram_ctrl@3000000 { }; rtc_ccu@7090000 { }; clock@2001000 { }; clock@7010000 { }; interrupt-controller@10000000 { }; uart@2500000 { }; uart@2500400 { }; uart@2500800 { }; uart@2500c00 { }; uart@2501000 { }; uart@2501400 { }; ce@03040000 { }; s_cir@7040000 { }; ir@2003000 { }; deinterlace@5400000 { }; eth@4500000 { }; rtc@7090000 { }; dma-controller@3002000 { }; timer@2050000 { }; watchdog@6011000 { }; mbus-comtroller@3102000 { }; pmu { }; idle { }; pinctrl@2000000 { }; spi@4025000 { }; spi@4026000 { }; twi@2502000 { }; twi@2502400 { }; twi@2502800 { }; twi@2502c00 { }; ledc@2008000 { }; pwm@2000c00 { }; keyboard@2009800 { }; sid@3006000 { }; gpadc@2009000 { }; ths@02009400 { }; rtp@2009c00 { }; codec@2030000 { }; dummy_cpudai@203034c { }; sound@2030340 { }; rpaf-dsp@203034c { }; dmic@2031000 { }; sound@2031050 { }; sounddmic@2031060 { }; daudio@2032000 { }; sounddaudio0@20320a0 { }; daudio@2033000 { }; sounddaudio1@20330a0 { }; daudio@2034000 { }; sounddaudio2@20340a0 { }; hdmiaudio@20340a4 { }; spdif@2036000 { }; soundspdif@2036040 { }; g2d@5410000 { }; disp@5000000 { }; ve@1c0e000 { }; msgbox@0601f000 { }; lcd0@1c0c000 { }; sdmmc@4022000 { }; sdmmc@4020000 { }; sdmmc@4021000 { }; hdmi@5500000 { }; usbc0@0 { }; udc-controller@0x04100000 { }; ehci0-controller@0x04101000 { }; ohci0-controller@0x04101400 { }; usbc1@0 { }; ehci1-controller@0x04200000 { }; ohci1-controller@0x04200400 { }; pwm0@2000c10 { }; pwm1@2000c11 { }; pwm2@2000c12 { }; pwm3@2000c13 { }; pwm4@2000c14 { }; pwm5@2000c15 { }; pwm6@2000c16 { }; pwm7@2000c17 { }; vind@5800800 { }; tvd@05c00000 { }; tvd0@05c01000 { }; card0_boot_para@2 { }; card2_boot_para@3 { }; rfkill@0 { }; btlpm@0 { }; addr_mgt@0 { }; };再比如看pwm0的设置则为: => fdt list /soc/pwm0 pwm0@2000c10 { compatible = "allwinner,sunxi-pwm0"; reg = <0x00000000 0x02000c10 0x00000000 0x00000004>; reg_base = <0x02000c00>; pinctrl-names = "active", "sleep"; pinctrl-0 = <0x00000056>; pinctrl-1 = <0x00000057>; status = "okay"; phandle = <0x00000030>; };3.如果要修改某个节点的参数,则使用 fdt set 节点名称 参数名称 要修改的数值 
 如 fdt set /soc/disp dev0_do_hpd <0>4.改好后输入 boot 启动设备即可。 
- 
    回复: SPI-NANDFLASH性能低问题发布在 MR Series@chenlinfei 在 SPI-NANDFLASH性能低问题 中说: 不了理论值的,应该小于理论值很多,但是不到理论值的1/10就有点低了。另外,uboot读nand能有接近10MB/s。 
 是否能优化spi小数据读写?还有擦除耗时和编程耗时啥的,每page(2k)大概耗时在45us左右,算下来读取的速度应该在22M/s左右。DMA耗时的问题确实存在,已经内部在查这个问题了。 
- 
    回复: 请问《D1_Tina_Linux_配网_开发指南.pdf》里面的声波配网app哪里可以下载呢?发布在 MR Series@tigger tina源码里面有,/package/allwinner/smartlinkd (大概是这个目录,你搜下) 
- 
    【资料发布】D1芯片封装文档及DDR参考设计文档发布在 MR Series资料释放: 
 D1芯片封装文档及DDR参考设计文档
 拥有了它们你就可以基于D1芯片设计自己的小板板了
 详情请到全志客户服务平台下载:
 https://open.allwinnertech.com/#/doc?menuID=2
  
- 
    回复: SPI-NANDFLASH性能低问题发布在 MR Series到不了理论值那么高吧,SPI-Nand顺序写估计能到2MB/s(四线),顺序读5MB/s差不多了。SPI-Nand随机写是120iops左右,随机读估计在600iops左右 
- 
    回复: D1哪吒开发板默认输出改成HDMI发布在 MR Series@nideyida 在 D1哪吒开发板默认输出改成HDMI 中说: 我先用在线文档介绍的方法切到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;再cat colorbar,就不绿了,说明不是硬件或者显示器的问题,应该是我配置的问题 echo 1 > /sys/class/disp/disp/attr/colorbar实测播放视频没绿。。。。就cat colorbar就绿,这就很尴尬了。。。 
- 
    回复: D1哪吒开发板默认输出改成HDMI发布在 MR Seriesboard.dts和uboot-board.dts你都这样改: tina/device/config/chips/d1/configs/nezha$ git diff . diff --git a/configs/nezha/linux-5.4/board.dts b/configs/nezha/linux-5.4/board.dts index bfeed6c..335895e 100755 --- a/configs/nezha/linux-5.4/board.dts +++ b/configs/nezha/linux-5.4/board.dts @@ -1128,25 +1128,25 @@ chn_cfg_mode : Hardware DE channel allocation config. 0:single display with disp_init_enable = <1>; disp_mode = <0>; - screen0_output_type = <1>; - screen0_output_mode = <4>; - - screen1_output_type = <4>; - screen1_output_mode = <10>; - - screen1_output_format = <0>; - screen1_output_bits = <0>; - screen1_output_eotf = <4>; - screen1_output_cs = <257>; - screen1_output_dvi_hdmi = <2>; - screen1_output_range = <2>; - screen1_output_scan = <0>; - screen1_output_aspect_ratio = <8>; - - dev0_output_type = <1>; - dev0_output_mode = <4>; + screen0_output_type = <3>; + screen0_output_mode = <10>; + + screen0_output_format = <0>; + screen0_output_bits = <0>; + screen0_output_eotf = <4>; + screen0_output_cs = <257>; + screen0_output_dvi_hdmi = <2>; + screen0_output_range = <2>; + screen0_output_scan = <0>; + screen0_output_aspect_ratio = <8>; + + screen1_output_type = <1>; + screen1_output_mode = <4>; + + dev0_output_type = <4>; + dev0_output_mode = <10>; dev0_screen_id = <0>;
- 
    回复: D1 DMIC+AMIC同时读取,系统出现kernel panic发布在 MR Series哦哦,2路amic当回路是吧? 
 //使用arecord命令,在设备硬件设备snddmic上录一个采样率为16000、格式为S16_LE、6声道的音频文件,存到/tmp/test.wav
 arecord -D hw:snddmic -r 16000 -f S16_LE -c 6 /tmp/test.wav
 试下能不能录到音,确认一下硬件是不是坏的
- 
    D1-H/D1s SPI NAND & DDR支持列表发布在 MR Series以下为D1 tina理论上支持的nand列表,用料量产前建议先找全志或代理商FAE确认压测情况。 
 Micron:MT29F1G01ABAFDSF-AAT(NW808)
 MT29F2G01ABAGDWB
 Winbond:W25N01GVZEIG
 MXIC:MX35LF1GE4AB
 MX35LF2GE4AD
 GigaDevi ce:GD5F1GQ4UBYIGR
 GD5F1GQ5UEYIGR
 GD5F2GQ5UEYIGR
 ESMT:F50L2G41XA
 F50L1G41LB(2M) -> F50L1G41LB-104YG2M F50L1G41LB- 104YG2ME
 Dosilicon:DS35Q1GA-1B
 FORESEE:E FS35ND01G-S1F1QWFI
 Zetta:ZD35Q1GA-IBR
 FM:FM25S01更新DDR支持列表: 
 Hynix :H5TQ4G63EFR-RDC DDR3 FBGA 96 4Gb 256Mx16 792MHz
 Micron: MT41K512M16HA-125 DDR3L FBGA 96 8Gb 512Mx16 792MHz
 SpecTek: PRN512M16Z11CD8LY-083 DDR3 FBGA 96 8Gb 512Mx16 792MHz
 (D1-H哪吒开发板上用的就是这几款,全志内部做过压力测试的)
- 
    【系统更新】更新多媒体中间件,在Tina D1上支持gstreamer发布在 MR Series基于D1_Tina_Open V1.0.1版本更新对gstreamer的支持: 
 1、Tina升级gstreamer主包及其各插件包到1.16.3版本,支持RV架构;
 2、gstreamer显示插件sunxifbsink支持g2d硬件旋转;
 3、更新多媒体中间件。
 详见全志客户服务平台:全志客户服务平台
  
- 
    回复: 请问哪吒 D1 开发板拔插 HDMI 显示器, 提示sink do not support this mode 是什么问题? 换了两台显示器了.发布在 MR Seriesecho 4 10 0 0 0x4 0x101 0 0 0 8 > param;这里第二个参数是分辨率,按照.dts注释里写的: 0screenx_output_mode (used for hdmi output, 0:480i 1:576i 2:480p 3:576p 4:720p50 5:720p60 6:1080i50 7:1080i60 8:1080p24 9:1080p50 10:1080p60 )
- 
    回复: 请问哪吒 D1 开发板拔插 HDMI 显示器, 提示sink do not support this mode 是什么问题? 换了两台显示器了.发布在 MR Series@tigger 默认应该是MIPI输出,切到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; 
  
- 
    回复: 围观 D1s EVB发布在 MR Series参考D1原理图,MIPI会用到DSI-CKN\DSI-CKP\DSI-DN0\DSI-DP0\DSI-DN1\DSI-DP1\DSI-DN2\DSI-DP2\DSI-DN3\DSI-DP3\DSI-RESET: 
  
 *DSI-CNX/DSI-CPX是数据组,屏幕分辨率低的数据量少,一组也行,比较多的是 两组 和四组,720p以上分辨率一般4组。这里我们比较豪,可以直接上4组,支持1080P都行这几组引脚在F133都有: 
  查阅F133 user manual,可以看到有支持最多8路DMIC: 
  
  
 看引脚,PF16-PD19都可以用来做DMIC的数据脚,PD20可以用来做时钟
  
 F133的引脚相对D1会少很多,只有一组DMIC脚,没有那么多复用的,操作空间会小很多,用了之后引脚的其它功能就不能再用了。回路正好将一路声音从amic的地方来回做AEC就可以了。 综上,语音小电视方案在F133上可行。 
- 
    回复: 【DIY教程】用D1哪吒开发板做一个卡牌识别机,可以玩游戏王、狼人杀、三国杀、剧本杀发布在 MR Series这个游戏王对战机会实现如下功能: 
 1.识别卡牌;
 2.展示召唤效果——动画+光效+BGM;
 3.修改攻击力/防御力
 ——这是线下对战中的一个痛点,因为在对战中经常有卡牌的效果影响怪兽的怪兽攻击力/防御力,比如场上有一只A怪兽的时候,B怪兽的攻击力会增加300点等以上功能需要两个显示屏幕实现,正好D1支持双屏异显,即同时接两个屏幕,分别输出不一样的内容,并且可以支持触控,这样看,我们的功能就都能在一块D1开发板上实现。 
 我们需要的硬件配置有:
 D1哪吒开发板,MIPI屏幕+HDMI屏幕,USB摄像头,LED灯带做出来整个demo的硬件方案大概就是这样的: 
  
- 
    回复: 【DIY教程】用D1哪吒开发板做一个卡牌识别机,可以玩游戏王、狼人杀、三国杀、剧本杀发布在 MR Series这个小demo的灵感,来源于前些天很火的一个司法拍卖: 
 80块钱游戏卡“青眼白龙”拍出8700万天价!原主人是95后贪污近7000万被判无期
  
  
 这款纯金的“青眼白龙”卡牌限量发售500套,官方定价为1万多人民币。
 虽然这个次拍卖是被人恶意哄抬价格,但是根据近期日本拍卖网站的成交价格来看,这张卡的实际市场估值已经去到了20-30万人民币左右。
 对此我们只能说:
  与此同时,我们看到了这样一个抖音视频: 
 通过全息风扇玩游戏王,增强线下游戏的氛围感
 
  
 小时候看游戏王的动画片,里面的角色对战的时候可以直接召唤到怪兽,出场还自带动画和BGM,而我们自己玩的时候,则是一堆冷冰冰的卡牌,想想真是太无趣了
  
 所以我们决定做一个【现实版插件】——游戏王对战机!
 通过屏幕效果的展示和一些辅助功能,增强线下卡牌对战的氛围感和体验
- 
    回复: R329编译错误发布在 A Series@tomwang 后面这份log没传成功。看之前那份编译环境啥的应该没啥问题,都编了大半了,可能时不断编出了新的库,虚拟机磁盘分配的空间不够了,所以编译异常,试着把虚拟器分配的空间调大试一下 
- 
    回复: R329编译错误发布在 A Seriessatisfy_dependencies_for: Cannot satisfy the following dependencies for bluez-alsa: 你重新开一个终端,配置一下环境变量,然后lunch的时候选择r329_evb5_min-tina编译试一下 
- 
    回复: R329按照官方文档下载无法编译发布在 A Series@tomwang 
 换了电脑还是一样的报错,那有两种可能:
 1.你的账号权限有问题——概率极小,因为大家权限都是一样的,如果实在怀疑,可以重新注册一个账号试一下
 2.配置环境&权限时你漏了一步没有做——大概率,但我不知道你的操作流程,分析不出时哪一步没做
- 
    回复: 想请问怎么在d1开发板上通过摄像头实时输出图像到显示器上发布在 MR Series详见在线文档:https://d1.docs.allwinnertech.com/study/study_7camerademo/#_9 
 目前只是先拍,下一步是显示处理(实时)
- 
    在线文档更新:USB摄像头拍照Demo发布在 MR Series在线文档更新:USB摄像头拍照Demo —— https://d1.docs.allwinnertech.com/study/study_7camerademo/#_9 
 插上就能用,手把手叫你给D1装上眼睛
  
- 
    D1在线文档更新:手把手教你编译第一个Hello Word发布在 MR SeriesD1在线文档更新:手把手教你编译第一个Hello Word 
  
 链接:
 https://d1.docs.allwinnertech.com/study/study_6helloword/
- 
    回复: 以前以为XR829只是一个WIFI芯片,今天看了一下D1原理图,没想到是WIFI蓝牙二合一。发布在 MR SeriesXR829还带ble。AW啥无线片子都有,什么带MCU的 wifi单模的 能跑鸿蒙的 
- 
    回复: R329按照官方文档下载无法编译发布在 A Series@tomwang 在 R329按照官方文档下载无法编译 中说: @xiaowenge 编译机台用的是ubuntu14.04,环境完全按照官方文档搭建完成。 
 看错误log的话好像是repo manifest问题?看Log是的,但是看你截图上的ls内容,代码应该都下完了,或者可以先检查下各目录的内容,是不是里面的东西没下完? 
- 
    回复: R329的DSP开发如何申请?发布在 A Series@xacnma 在配置DSP环境时,需要获得Cadence 的license授权,这个好像不太好搞,需要直接和Cadence 签约,目前几个玩智能音箱的大客户和算法公司因为之前的项目有合作,基本都有签,可以直接玩起来,但是个人开发者估计不好搞,具可以和Cadence 沟通申请一下:https://www.synaptics.com/contact 
  
- 
    回复: 2021年D1哪吒开发板第一期成果汇报发布在 MR Series微信公众号 嵌入式IoT 开箱评测系列: 
 全志D1开发板(哪吒 RISCV64)开箱评测
 关于d1哪吒开发板的启动流程分析
 用哪吒D1开发板体验riscv向量底层编程
 哪吒D1开发板RISC-V CLINT编程实践原稿转自公众号:嵌入式IoT 
 原创:bigmagic
- 
    回复: 【资源汇总】D1-H芯片资料资源汇总发布在 公告2021年第一期成果汇总 
 官宣文章:
 1.【国产芯片之光!】全志科技发布首颗RISC-V应用处理器2.【免签NDA直接下】D1 Tina SDK v1.0正式释放!深入了解RISC-V的每一个DNA! 玩转开发板实例: 4.D1哪吒开发板开机连接wifi热点, 启动 sshd 服务 6.D1使用JTAG 10.哪吒开启 SSH 和 VNC 远程访问,再也不用鼠标和显示器了 13.全志D1裸奔工具XFEL 18.D1同时输出两个显示屏幕 20.将单独编译的opensbi u-boot kernel rootfs 烧录制作成可以启动的sdcard.img镜像 21.【Hacking Nezha Board】D1裸机程序开发 22.【Hacking Nezha Board】D1 Device Tree Oerlay 23.【Hacking Nezha Board】D1 boot适配 24.【深度讨论】目前D1芯片引导启动流程过长的问题,以及对RISC-V下引导程序环境的思考 25.自己动手编写一个非常简单的RISC-V C调用使用ABI规则ASM汇编的demo, 使用qemu-riscv64虚拟机测试. 26.D1精简版裸机程序 27.D1 哪吒开发板功耗数据 30.D1 尝试运行 Docker RISC-V 64位原生环境 31.D1芯片参考设计 32.如何让D1 uboot支持uImage镜像 + dtb启动系统 33.完整支持buildroot 2021 LTS构建D1开发板SD卡系统镜像 34.【极简操作】使用builroot 2021一键编译生成D1 nezha 系统镜像! 37.基于社区最新开源仓库(Opensbi、Linux)构建nezha - d1开发环境 38.哪吒D1/RVBoards RISCV Debian 64位 Docker 集成镜像 40.【实践操作】自己从头构建riscv 64 ubuntu等发行版系统! 42.使用Ubuntu20.04 LTS编译D1-Tina踩坑记录 官方威力加强包: 
 1.MIPI屏幕TFT08006支持3.ncnn支持 6.Fedora支持 活动&评测: 4.“创造 · 无限” 全志主题活动@2021 RISC-V中国峰会 5.开发者之声 
- 
    回复: 锦绣海湾城房屋租售发布在 灌水区借楼出租海湾城一期联排中间位别墅, 
 194平方,
 豪华欧式装修,
 5000一个月,
 3层5室2厅4卫3阳,
 带停车位2个,
 物业费426元/月。
 联系人:文工 16763232956
  
    
  
  
- 
    【代码编不过请看这里】D1 Tina SDK完整编译log发布在 MR Series有开发者提到Tina编译会出现问题,不知道怎么解决,这里我们将完整Tina SDK编译时候的log打包一份供大家参考。下载地址:https://www.aw-ol.com/downloads/resources/41 我的代码仓库曾经编译过代码,故我先将out目录删掉全部重新编译,这样的log会比较全: xiaowenge@ubuntu:~/workspace/d_tina_d1_open_v1.0$ rm -rf out/ xiaowenge@ubuntu:~/workspace/d_tina_d1_open_v1.0$ source build/envsetup.sh Setup env done! Please run lunch next. xiaowenge@ubuntu:~/workspace/d_tina_d1_open_v1.0$ lunch You're building on Linux Lunch menu... pick a combo: 1. d1_nezha_min-tina 2. d1_nezha-tina Which would you like? [Default d1_nezha]: 2 ============================================ TINA_BUILD_TOP=/home/xiaowenge/workspace/d_tina_d1_open_v1.0 TINA_TARGET_ARCH=riscv TARGET_PRODUCT=d1_nezha TARGET_PLATFORM=d1 TARGET_BOARD=d1-nezha TARGET_PLAN=nezha TARGET_BUILD_VARIANT=tina TARGET_BUILD_TYPE=release TARGET_KERNEL_VERSION=5.4 TARGET_UBOOT=u-boot-2018 TARGET_CHIP=sun20iw1p1 ============================================ xiaowenge@ubuntu:~/workspace/d_tina_d1_open_v1.0$ make -j > compilelog.log [1] 57825 Collecting target info: done+ mkdir -p /home/xiaowenge/workspace/d_tina_d1_open_v1.0/out/host + mkdir -p /home/xiaowenge/workspace/d_tina_d1_open_v1.0/out/d1-nezha/staging_dir/target + cd /home/xiaowenge/workspace/d_tina_d1_open_v1.0/out/host + mkdir -p bin lib include stamp + cd /home/xiaowenge/workspace/d_tina_d1_open_v1.0/out/d1-nezha/staging_dir/target + mkdir -p bin lib include stamp This is not dpkg install-info anymore, but GNU install-info See the man page for ginstall-info for command line arguments src/sstrip.c: In function 'readelfheader32': src/sstrip.c:363:1: warning: format '%d' expects argument of type 'int', but argument 5 has type 'long unsigned int' [-Wformat=] HEADER_FUNCTIONS(32) ^ src/sstrip.c:363:1: warning: format '%d' expects argument of type 'int', but argument 5 has type 'long unsigned int' [-Wformat=] src/sstrip.c:363:1: warning: format '%d' expects argument of type 'int', but argument 5 has type 'long unsigned int' [-Wformat=] src/sstrip.c:363:1: warning: format '%d' expects argument of type 'int', but argument 5 has type 'long unsigned int' [-Wformat=] ………………完整log见上面的下载链接 编译成功后打包log: xiaowenge@ubuntu:~/workspace/d_tina_d1_open_v1.0$ pack --==========-- PACK_CHIP sun20iw1p1 PACK_PLATFORM tina PACK_BOARD d1-nezha PACK_KERN PACK_DEBUG uart0 PACK_SIG none PACK_SECURE none PACK_MODE normal PACK_FUNC android PACK_PROGRAMMER none PACK_TAR_IMAGE none PACK_TOPDIR /home/kunyao/workspace/d_tina_d1_open_v1.0 --==========-- No kernel param, parse it from d1 copying tools file copying configs file storage_type value is 5 rm /home/xiaowenge/workspace/d_tina_d1_open_v1.0/out/d1-nezha/image/sys_partition_nor.fex rm /home/xiaowenge/workspace/d_tina_d1_open_v1.0/out/d1-nezha/image/image_nor.cfg copying boot resource LZMA 4.65 : Igor Pavlov : Public domain : 2009-02-03 copying boot file make user resource for : /home/xiaowenge/workspace/d_tina_d1_open_v1.0/out/d1-nezha/image/sys_partition.fex handle partition user-res no user resource partitions APP_PART_DOWNLOAD_FILE = /home/xiaowenge/workspace/d_tina_d1_open_v1.0/out/d1-nezha/image/app.fex Need size of filesystem no data resource partitions don't build dtbo ... update_chip pack boot package GetPrivateProfileSection read to end content_count=3 LICHEE_REDUNDANT_ENV_SIZE config in BoardConfig.mk --mkenvimage create redundant env data!-- ---redundant env data size 0x20000--- packing for tina linux normal this is not a partition key gpt_head->header_crc32 = 0x5277aea2 GPT----part num 8--- gpt_entry: 128 gpt_header: 92 GPT:boot-resource: 1f8 2177 GPT:env : 2178 236f GPT:env-redund : 2370 2567 GPT:boot : 2568 761f GPT:rootfs : 7620 11597 GPT:dsp0 : 11598 11987 GPT:recovery : 11988 187c7 GPT:UDISK : 187c8 187d7 update gpt file ok update mbr file ok ==================================== show "sys_partition_for_dragon.fex" message ------------------------------------ [mbr] mbr_size : 252 Kbyte ------------------------------------ partition_name : boot-resource partition_size : 8064 downloadfile : boot-resource.fex boot-resource.fex size : 3.0M byte ------------------------------------ partition_name : env partition_size : 504 downloadfile : env.fex env.fex size : 128K byte ------------------------------------ partition_name : env-redund partition_size : 504 downloadfile : env.fex env.fex size : 128K byte ------------------------------------ partition_name : boot partition_size : 20664 downloadfile : boot.fex boot.fex -> /home/xiaowenge/workspace/d_tina_d1_open_v1.0/out/d1-nezha/boot.img boot.img size : 9.1M byte ------------------------------------ partition_name : rootfs partition_size : 40824 downloadfile : rootfs.fex rootfs.fex -> /home/xiaowenge/workspace/d_tina_d1_open_v1.0/out/d1-nezha/rootfs.img rootfs.img size : 16M byte ------------------------------------ partition_name : dsp0 partition_size : 1008 downloadfile : dsp0.fex dsp0.fex size : 258K byte ------------------------------------ partition_name : recovery partition_size : 28224 ------------------------------------ /home/xiaowenge/workspace/d_tina_d1_open_v1.0/out/host/bin/ /home/xiaowenge/workspace/d_tina_d1_open_v1.0/out/d1-nezha/image Begin Parse sys_partion.fex Add partion boot-resource.fex BOOT-RESOURCE_FEX Add partion very boot-resource.fex BOOT-RESOURCE_FEX FilePath: boot-resource.fex FileLength=2f8c00Add partion env.fex ENV_FEX000000000 Add partion very env.fex ENV_FEX000000000 FilePath: env.fex FileLength=20000Add partion env.fex ENV_FEX000000000 Add partion very env.fex ENV_FEX000000000 FilePath: env.fex FileLength=20000Add partion boot.fex BOOT_FEX00000000 Add partion very boot.fex BOOT_FEX00000000 FilePath: boot.fex FileLength=912000Add partion rootfs.fex ROOTFS_FEX000000 Add partion very rootfs.fex ROOTFS_FEX000000 FilePath: rootfs.fex FileLength=fa0000Add partion dsp0.fex DSP0_FEX00000000 Add partion very dsp0.fex DSP0_FEX00000000 FilePath: dsp0.fex FileLength=4059csys_config.fex Len: 0x4ebe config.fex Len: 0x6c00 board.fex Len: 0x400 split_xxxx.fex Len: 0x200 sys_partition.fex Len: 0xbe3 sunxi.fex Len: 0xd400 boot0_nand.fex Len: 0x10000 boot0_sdcard.fex Len: 0x10000 u-boot.fex Len: 0xdc000 u-boot-crash.fex Len: 0x25 toc1.fex Len: 0x8 toc0.fex Len: 0x8 fes1.fex Len: 0xa560 boot_package.fex Len: 0xfc000 usbtool.fex Len: 0x24e00 usbtool_crash.fex Len: 0x1ec00 aultools.fex Len: 0x28a73 aultls32.fex Len: 0x25205 cardtool.fex Len: 0x11e00 cardscript.fex Len: 0x6de sunxi_gpt.fex Len: 0x2000 sunxi_mbr.fex Len: 0x10000 dlinfo.fex Len: 0x4000 arisc.fex Len: 0xf vmlinux.fex Len: 0x8 tinaconf.fex Len: 0xcd00 boot-resource.fex Len: 0x2f8c00 Vboot-resource.fex Len: 0x4 env.fex Len: 0x20000 Venv.fex Len: 0x4 env.fex Len: 0x20000 Venv.fex Len: 0x4 boot.fex Len: 0x912000 Vboot.fex Len: 0x4 rootfs.fex Len: 0xfa0000 Vrootfs.fex Len: 0x4 dsp0.fex Len: 0x4059c Vdsp0.fex Len: 0x4 BuildImg 0 Dragon execute image.cfg SUCCESS ! ----------image is for nand/emmc---------- ----------image is at---------- /home/xiaowenge/workspace/d_tina_d1_open_v1.0/out/d1-nezha/tina_d1-nezha_uart0.img pack finish 我的代码版本是v1.0.1的: xiaowenge@ubuntu:~/workspace/d_tina_d1_open_v1.0/lichee/linux-5.4$ git log . commit 035e3450a899008ef15bb387d0ed41aafd733a8a (HEAD -> product-smartx-d1-tina-v1.0-release, tag: smartx-d1-tina-v1.0.1-release, tina/product-smartx-d1-tina-v1.0-release, m/master) Author: liwencong <liwencong@allwinnertech.com> Date: Fri May 21 14:01:26 2021 +0800 smartx-d1-tina-v1.0.1-release release commit 9e841db240d4f7161ac1c931bd889dc17eb9b076 (tag: smartx-d1-tina-v1.0.0-release) Author: liwencong <liwencong@allwinnertech.com> Date: Fri Apr 30 19:24:15 2021 +0800 smartx-d1-tina-v1.0.0-release release
- 
    回复: 【极简操作】使用builroot 2021一键编译生成D1 nezha 系统镜像!发布在 MR Series@aldfaaa 有人移了系统,有人做了docker,有人写了文档,感觉没我们全志什么事了 
- 
    回复: 关于D1tina中软件包的想法发布在 MR Series@bedrock 适配了,但又不一定适配了。。。有点是在其他全志芯片平台适配了比如r16 r328 r329啥的,但是D1不一定适配了 
- 
    cma扩充和开机logo消失问题分享发布在 Linux在使用的是128M dram的小内存配置,播放视频需要通过ion申请较多的连续物理内存空间,所以需要扩充CMA的大小,否则会导致cma扩充和开机logo消失。 【芯片平台】R311 
 【软件版本】tina3.5.1
 【问题背景】
 使用的是128MB的ddr,对于多视频播放和旋转的场景ion的使用非常吃紧,需要想办法扩大cma的大小。
 【问题简述】
 R311更改cma大小后,出现了不进kernel,开机logo消失等问题。
 【问题处理过程】
 (1)不进kernel:
 更改cma大小为72MB后,系统无法进kernel,撤回修改,查看系统保留内存的分布:root@TinaLinux:/# cat /sys/kernel/debug/memblock/reserved 0: 0x40004000..0x40007fff, size:16K 1: 0x40020000..0x40020fff, size:4K 2: 0x40100000..0x40b480cb, size:10528K 3: 0x41000000..0x4100000b, size:0K 4: 0x43500000..0x4351617f, size:88K 5: 0x43c00000..0x47bfffff, size:65536K 6: 0x47cc8000..0x47f65fff, size:2680K 7: 0x47f7da00..0x47f961ff, size:98K 8: 0x47f9621c..0x47ffefff, size:419K 9: 0x47fff640..0x47fff67b, size:0K 10: 0x47fff680..0x47fff6bb, size:0K 11: 0x47fff6c0..0x47fff737, size:0K 12: 0x47fff740..0x47fff74f, size:0K 13: 0x47fff780..0x47fff78f, size:0K 14: 0x47fff7c0..0x47fff7c3, size:0K 15: 0x47fff800..0x47fff9ad, size:0K 16: 0x47fff9c0..0x47fffb6d, size:0K 17: 0x47fffb80..0x47fffd2d, size:0K 18: 0x47fffd40..0x47fffd43, size:0K 19: 0x47fffd64..0x47fffd81, size:0K 20: 0x47fffd84..0x47fffdb8, size:0K 21: 0x47fffdbc..0x47fffe1c, size:0K 22: 0x47fffe20..0x47fffe70, size:0K 23: 0x47fffe74..0x47ffff06, size:0K 24: 0x47ffff08..0x47ffff22, size:0K 25: 0x47ffff24..0x47ffff3e, size:0K 26: 0x47ffff40..0x47ffff5f, size:0K 27: 0x47ffff64..0x47ffff7e, size:0K 28: 0x47ffff80..0x47ffff8f, size:0K 29: 0x47ffff94..0x47ffffae, size:0K 30: 0x47ffffb0..0x47ffffff, size:0K发现dts起始地址为0x43500000,cma的下一个保留区域起始地址为0x47cc8000,留给dts和cma的空间只有0x47cc8000-0x43500000约为71MB,cma大小设置为72MB后,超出了范围,导致不进kernel。怎么解决问题?把dts的起始地址往前挪动一下,cma的空间就可以得到扩充,如下所示,把dts的位置向前挪动0x00500000,cma足够容纳72MB的cma保留区域: include/configs/sunxi-base.h: -#define CONFIG_SUNXI_FDT_ADDR SDRAM_OFFSET(0x03500000) +#define CONFIG_SUNXI_FDT_ADDR SDRAM_OFFSET(0x03000000)修改后的保留内存的分布如下: root@TinaLinux:/# cat /sys/kernel/debug/memblock/reserved 0: 0x40004000..0x40007fff, size:16K 1: 0x40020000..0x40020fff, size:4K 2: 0x40100000..0x40b480cb, size:10528K 3: 0x41000000..0x4100000b, size:0K 4: 0x43000000..0x4301617f, size:88K 5: 0x433fffff..0x47bfffff, size:73728K 6: 0x47cc8000..0x47f65fff, size:2680K 7: 0x47f7da00..0x47f961ff, size:98K 8: 0x47f9621c..0x47ffefff, size:419K 9: 0x47fff640..0x47fff67b, size:0K 10: 0x47fff680..0x47fff6bb, size:0K 11: 0x47fff6c0..0x47fff737, size:0K 12: 0x47fff740..0x47fff74f, size:0K 13: 0x47fff780..0x47fff78f, size:0K 14: 0x47fff7c0..0x47fff7c3, size:0K 15: 0x47fff800..0x47fff9ad, size:0K 16: 0x47fff9c0..0x47fffb6d, size:0K 17: 0x47fffb80..0x47fffd2d, size:0K 18: 0x47fffd40..0x47fffd43, size:0K 19: 0x47fffd64..0x47fffd81, size:0K 20: 0x47fffd84..0x47fffdb8, size:0K 21: 0x47fffdbc..0x47fffe1c, size:0K 22: 0x47fffe20..0x47fffe70, size:0K 23: 0x47fffe74..0x47ffff06, size:0K 24: 0x47ffff08..0x47ffff22, size:0K 25: 0x47ffff24..0x47ffff3e, size:0K 26: 0x47ffff40..0x47ffff5f, size:0K 27: 0x47ffff64..0x47ffff7e, size:0K 28: 0x47ffff80..0x47ffff8f, size:0K 29: 0x47ffff94..0x47ffffae, size:0K 30: 0x47ffffb0..0x47ffffff, size:0K(2)开机logo消失: 
 开机logo是从uboot解码并显示的,找到logo解码的地方:compress_buf = get_decode_buffer(); if (compress_buf == NULL) { printf("bmp compress_buf empty,quit\n"); set_bmp_decode_flag(BMP_DECODE_FAIL); goto __third_cpu_end; } buf = (unsigned char *)(SUNXI_DISPLAY_FRAME_BUFFER_ADDR + SUNXI_DISPLAY_FRAME_BUFFER_SIZE); ret = sunxi_bmp_decode_from_compress(buf, compress_buf);发现需要从地址compress_buf把logo的bmp格式数据解压到buf地址,buf地址为SUNXI_DISPLAY_FRAME_BUFFER_ADDR + SUNXI_DISPLAY_FRAME_BUFFER_SIZE,也就是0x47400000。compress_buf的地址如下所示: if (next_mode == SUNXI_STATE_NORMAL_BOOT) { set_decode_buffer((unsigned char *) (SUNXI_LOGO_COMPRESSED_LOGO_BUFF)); } else if (next_mode == SUNXI_STATE_SHUTDOWN_CHARGE) {从这里的代码片段知道,logo的原始数据放在地址SUNXI_LOGO_COMPRESSED_LOGO_BUFF,也就是0x43000010,而现在dts的区域的保留区域是( 0x43000000..0x4301617f),刚好覆盖到了SUNXI_LOGO_COMPRESSED_LOGO_BUFF。将SUNXI_LOGO_COMPRESSED_LOGO_BUFF改为0x42000000,这样就能使logo数据不落在内存的保留区域内。 然而编译后再验证,发现logo还是没法显示,从目前得到的信息看不到问题点,说明问题的原因还是没有全部被找到,继续跟进解码数据的过程:int lzmaBuffToBuffDecompress (unsigned char *outStream, SizeT *uncompressedSize, unsigned char *inStream, SizeT length) { ....... /* Read the uncompressed size */ for (i = 0; i < 8; i++) { unsigned char b = inStream[LZMA_SIZE_OFFSET + i]; if (i < 4) { outSize += (UInt32)(b) << (i * 8); } else { outSizeHigh += (UInt32)(b) << ((i - 4) * 8); } } outSizeFull = (SizeT)outSize; if (sizeof(SizeT) >= 8) { /* * SizeT is a 64 bit uint => We can manage files larger than 4GB! * */ outSizeFull |= (((SizeT)outSizeHigh << 16) << 16); } else if (outSizeHigh != 0 || (UInt32)(SizeT)outSize != outSize) { /* * SizeT is a 32 bit uint => We cannot manage files larger than * 4GB! Assume however that all 0xf values is "unknown size" and * not actually a file of 2^64 bits. * */ if (outSizeHigh != (SizeT)-1 || outSize != (SizeT)-1) { debug ("LZMA: 64bit support not enabled.\n"); return SZ_ERROR_DATA; } } ....... }如上面代码片段所示,检查*inStream(内存中的bmp数据)前面8位信息的时候,函数报错返回了,这里说明了内存中的bmp数据有问题。bmp数据需要先从flash里面拷贝到内存SUNXI_LOGO_COMPRESSED_LOGO_BUFF中,后面才能从SUNXI_LOGO_COMPRESSED_LOGO_BUFF解码出来 。现数据有异常,需要检查bmp数据从flash拷贝到内存的过程。查找SUNXI_LOGO_COMPRESSED_LOGO_BUFF使用的地方,arch/arm/cpu/armv7/sun8iw15p1/spl/fip_common.c里面有类似从flash拷贝logo数据到内存的代码: arch/arm/cpu/armv7/sun8iw15p1/spl/fip_common.c: int load_fip(int *use_monitor) { ...... } else if (strncmp(toc1_item->name, ITEM_LOGO_NAME, sizeof(ITEM_LOGO_NAME)) == 0) { *(uint *)(SUNXI_LOGO_COMPRESSED_LOGO_SIZE_ADDR) = toc1_item->data_len; toc1_flash_read(toc1_item->data_offset/512, (toc1_item->data_len+511)/512, (void *)SUNXI_LOGO_COMPRESSED_LOGO_BUFF); } else if (strncmp(toc1_item->name, ITEM_SHUTDOWNCHARGE_LOGO_NAME, sizeof(ITEM_SHUTDOWNCHARGE_LOGO_NAME)) == 0) { ...... }从这段代码中看不出来有问题,再看看发现编译uboot的时候跟本不会编译到这个文件,怎么回事,询问负责uboot模块的同事得知,这里的文件是给boot0用的,logo数据从flash拷贝到内存的动作也是在boot0的时候做的。所以更新了SUNXI_LOGO_COMPRESSED_LOGO_BUFF的地址,还需要同时编译boot0,这样对于logo数据的拷贝和解码来说,SUNXI_LOGO_COMPRESSED_LOGO_BUFF才是相同的地址。 (文 by. shaokang) 
 。
 。

 这些接出来的线是干啥的?
 这些接出来的线是干啥的?












